:root{--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--s: var(--space-2);--m: var(--space-3);--l: var(--space-4);--xl: var(--space-5);--xxl: var(--space-6);--color-primary: #667eea;--color-secondary: #764ba2;--color-accent: #f093fb;--color-text-base: #fff;--color-text-base-rgb: 255 255 255;--opacity-text-secondary: .9;--opacity-text-muted: .85;--opacity-text-subtle: .8;--text-primary: var(--color-text-base);--text-secondary: rgb(var(--color-text-base-rgb) / var(--opacity-text-secondary));--text-muted: rgb(var(--color-text-base-rgb) / var(--opacity-text-muted));--text-subtle: rgb(var(--color-text-base-rgb) / var(--opacity-text-subtle));--color-danger: #ef4444;--color-neutral-600: #6b7280;--color-neutral-700: #4b5563;--color-border: rgba(102, 126, 234, .3);--color-border-focus: #667eea;--color-border-light: rgba(255, 255, 255, .2);--color-border-medium: rgba(255, 255, 255, .3);--color-border-strong: rgba(255, 255, 255, .6);--bg-gradient: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);--bg-glass: rgba(255, 255, 255, .1);--bg-glass-strong: rgba(255, 255, 255, .2);--bg-glass-subtle: rgba(255, 255, 255, .05);--bg-button: rgba(255, 255, 255, .9);--bg-danger: rgba(239, 68, 68, .2);--bg-danger-hover: rgba(239, 68, 68, .3);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .1);--shadow-md: 0 4px 16px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .2);--shadow-text-sm: 0 2px 4px rgba(0, 0, 0, .2);--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--font-family-base: "Comfortaa", "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-xxl: 2rem;--font-weight-normal: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1;--line-height-base: 1.5;--layout-max-width-md: 700px;--layout-max-width-lg: 800px;--z-base: 1;--z-header: 10;--z-dropdown: 100;--z-overlay: 1000;--z-modal: 2000}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;font-size:16px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}:root{--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px)}body{height:100%;min-height:100%;font-family:var(--font-family-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);color:var(--text-primary);background:var(--color-primary);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{overscroll-behavior:none}#root{height:100%;min-height:0;overflow:hidden}.safe-area-padding{--safe-area-base: 0px;padding:max(var(--safe-area-base),var(--safe-area-top)) max(var(--safe-area-base),var(--safe-area-right)) max(var(--safe-area-base),var(--safe-area-bottom)) max(var(--safe-area-base),var(--safe-area-left))}*{-webkit-touch-callout:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}button:focus{outline:none}button:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.control-button{display:inline-flex;align-items:center;justify-content:center;height:var(--xxl);padding:0 var(--s);background:var(--bg-glass-strong);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--text-primary);cursor:pointer;transition:transform var(--transition-base),background var(--transition-base),border-color var(--transition-base),color var(--transition-base);font-family:var(--font-family-base);box-shadow:var(--shadow-sm);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.control-button:hover{background:var(--bg-glass);border-color:var(--color-border-medium);transform:scale(1.05)}.control-button:active{transform:scale(.95)}@media(max-height:480px)and (orientation:portrait){.control-button{padding:var(--s);font-size:var(--m);border-radius:var(--s)}}@media(max-width:768px){.control-button{padding:var(--s);font-size:var(--m)}}@media(orientation:landscape){.control-button{font-size:var(--m)}}.glass{background:var(--bg-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--color-border-light)}.glass:hover{background:var(--bg-glass-strong)}.scene-transition{width:100%;height:100%;will-change:opacity,transform}.scene-transition--idle{opacity:1;transform:translateY(0)}.scene-transition--enter{animation:sceneTransitionEnter .22s cubic-bezier(.2,0,0,1) both}.scene-transition--exit{animation:sceneTransitionExit .14s cubic-bezier(.4,0,1,1) both;pointer-events:none}@keyframes sceneTransitionEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes sceneTransitionExit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}.button-tooltip{--hold-hint-gap: 8px;--hold-hint-min-width: 0rem;--hold-hint-max-width: min(18rem, calc(100vw - 2rem) );--hold-hint-padding: 6px 10px;--hold-hint-font-size: .75rem;--hold-hint-font-weight: 500;--hold-hint-line-height: 1.3;--hold-hint-bg: rgba(0, 0, 0, .85);--hold-hint-color: #fff;--hold-hint-radius: 8px;--hold-hint-shadow: 0 2px 8px rgba(0, 0, 0, .25);--hold-hint-arrow-size: 6px;--hold-hint-arrow-offset: 16px;position:relative;display:inline-block}.button-tooltip__hint{position:absolute;z-index:10;box-sizing:border-box;width:max-content;min-width:var(--hold-hint-min-width);max-width:var(--hold-hint-max-width);padding:var(--hold-hint-padding);font-size:var(--hold-hint-font-size);line-height:var(--hold-hint-line-height);font-weight:var(--hold-hint-font-weight);color:var(--hold-hint-color);white-space:normal;text-wrap:pretty;background:var(--hold-hint-bg);border-radius:var(--hold-hint-radius);box-shadow:var(--hold-hint-shadow);pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--transition-fast),visibility var(--transition-fast)}.button-tooltip__hint:before{content:"";position:absolute;border:var(--hold-hint-arrow-size) solid transparent}@media(hover:hover){.button-tooltip:hover .button-tooltip__hint{opacity:1;visibility:visible}}.button-tooltip:focus-within .button-tooltip__hint,.button-tooltip[data-force-visible=true] .button-tooltip__hint{opacity:1;visibility:visible}.button-tooltip__hint--right-center{left:100%;top:50%;transform:translateY(-50%);margin-left:var(--hold-hint-gap)}.button-tooltip__hint--right-center:before{right:100%;top:50%;transform:translateY(-50%);border-right-color:var(--hold-hint-bg)}.button-tooltip__hint--left-center{right:100%;top:50%;transform:translateY(-50%);margin-right:var(--hold-hint-gap)}.button-tooltip__hint--left-center:before{left:100%;top:50%;transform:translateY(-50%);border-left-color:var(--hold-hint-bg)}.button-tooltip__hint--top-start{left:0;bottom:100%;margin-bottom:var(--hold-hint-gap)}.button-tooltip__hint--top-start:before{left:var(--hold-hint-arrow-offset);top:100%;border-top-color:var(--hold-hint-bg)}.button-tooltip__hint--top-center{left:50%;bottom:100%;transform:translate(-50%);margin-bottom:var(--hold-hint-gap)}.button-tooltip__hint--top-center:before{left:50%;top:100%;transform:translate(-50%);border-top-color:var(--hold-hint-bg)}.button-tooltip__hint--bottom-start{left:0;top:100%;margin-top:var(--hold-hint-gap)}.button-tooltip__hint--bottom-start:before{left:var(--hold-hint-arrow-offset);bottom:100%;border-bottom-color:var(--hold-hint-bg)}.button-tooltip__hint--bottom-end{right:0;top:100%;margin-top:var(--hold-hint-gap)}.button-tooltip__hint--bottom-end:before{right:var(--hold-hint-arrow-offset);bottom:100%;border-bottom-color:var(--hold-hint-bg)}.hold-to-activate{--hold-indicator-active: rgba(255, 255, 255, .85);--hold-indicator-rest: rgba(255, 255, 255, .16)}.hold-to-activate__button{position:relative;overflow:hidden}.hold-to-activate__indicator{position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);background:conic-gradient(var(--hold-indicator-active) calc(var(--hold-progress) * 1turn),var(--hold-indicator-rest) 0);-webkit-mask:radial-gradient(circle,transparent 62%,#000 64%);mask:radial-gradient(circle,transparent 62%,#000 64%)}.hold-to-activate__button--holding .hold-to-activate__indicator{opacity:1}.feedback-widget__fab-wrapper{--hold-hint-gap: 8px;--hold-hint-min-width: min(11rem, calc(100vw - 2rem) );--hold-hint-max-width: min(20rem, calc(100vw - 2rem) );--hold-hint-padding: 8px 12px;--hold-hint-font-size: .8rem;--hold-hint-bg: #1a1a2e;--hold-hint-shadow: 0 2px 12px rgba(0, 0, 0, .4);--hold-hint-arrow-offset: 16px;--hold-indicator-active: rgba(255, 255, 255, .9);--hold-indicator-rest: rgba(255, 255, 255, .16);position:fixed;left:max(var(--m),env(safe-area-inset-left));bottom:max(var(--m),env(safe-area-inset-bottom));z-index:calc(var(--z-modal) - 1)}.feedback-widget__fab{position:relative;width:3.25rem;height:3.25rem;border-radius:999px;padding:0;overflow:hidden}.feedback-widget__icon{position:relative;z-index:1;width:1.25rem;height:1.25rem}.feedback-widget__overlay{position:fixed;inset:0;z-index:var(--z-modal);background:#0000006b;display:flex;align-items:flex-end;justify-content:center;padding:max(var(--m),env(safe-area-inset-top)) max(var(--m),env(safe-area-inset-right)) max(var(--m),env(safe-area-inset-bottom)) max(var(--m),env(safe-area-inset-left));opacity:1;transition:opacity .26s ease}.feedback-widget__overlay--closing{opacity:0;pointer-events:none}.feedback-widget__panel{width:min(100%,30rem);border-radius:var(--radius-lg);border:1px solid var(--color-border-light);background:#181e3cf0;box-shadow:var(--shadow-lg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-primary);overflow:hidden;opacity:1;transform:translateY(0) scale(1);transition:opacity .26s ease,transform .26s ease}.feedback-widget__panel--closing{opacity:0;transform:translateY(.35rem) scale(.985)}.feedback-widget__panel--submitted{display:flex;flex-direction:column}.feedback-widget__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--m);padding:var(--l)}.feedback-widget__header h2{font-size:var(--font-size-lg);line-height:1.2}.feedback-widget__subtitle-group{margin-top:var(--s);display:flex;flex-direction:column;gap:calc(var(--s) * .5)}.feedback-widget__subtitle{margin:0;color:var(--text-muted);font-size:var(--font-size-sm)}.feedback-widget__close{font-size:1.5rem;line-height:1;color:var(--text-primary);opacity:.85}.feedback-widget__form{display:flex;flex-direction:column;gap:var(--m);padding:0 var(--l) var(--l)}.feedback-widget__chips{display:flex;flex-wrap:wrap;gap:var(--s)}.feedback-widget__chip{border-radius:999px;border:1px solid var(--color-border-light);background:var(--bg-glass-subtle);color:var(--text-primary);font-size:var(--font-size-sm);padding:var(--s) var(--m);transition:border-color var(--transition-fast),background var(--transition-fast)}.feedback-widget__chip--active{border-color:var(--color-border-strong);background:var(--bg-glass-strong)}.feedback-widget__message{display:flex;flex-direction:column;gap:var(--s)}.feedback-widget__message textarea{width:100%;resize:vertical;border-radius:var(--radius-md);border:1px solid var(--color-border-light);background:#0000003d;color:var(--text-primary);padding:var(--m);font-family:inherit;min-height:7.5rem}.feedback-widget__category-context{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary)}.feedback-widget__reactions{display:flex;justify-content:center;gap:var(--m)}.feedback-widget__reaction{border-radius:999px;border:1px solid var(--color-border-light);background:var(--bg-glass-subtle);width:2.8rem;height:2.8rem;font-size:1.3rem;display:inline-flex;align-items:center;justify-content:center}.feedback-widget__reaction--active{border-color:var(--color-border-strong);background:var(--bg-glass-strong)}.feedback-widget__submit{display:block;width:100%;border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--bg-glass-strong);color:var(--text-primary);padding:var(--m);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.feedback-widget__submit-tooltip{display:block;width:100%}.feedback-widget__submit:disabled{opacity:.6}.feedback-widget__thanks{position:relative;isolation:isolate;overflow:hidden;flex:1;min-height:100%;padding:var(--xxl) var(--l) calc(var(--xxl) + var(--m));text-align:center;display:grid;place-items:center;background:linear-gradient(180deg,#ff78a529,#78dcff24),#181e3cd6;opacity:1;transform:translateY(0) scale(1);transition:opacity .22s ease,transform .22s ease}.feedback-widget__overlay--closing .feedback-widget__thanks{opacity:0;transform:translateY(-.15rem) scale(.985)}.feedback-widget__thanks:before{content:"";position:absolute;inset:-50%;z-index:-2;background:radial-gradient(circle at 32% 30%,rgba(255,120,165,.26),transparent 42%),radial-gradient(circle at 68% 68%,rgba(120,220,255,.2),transparent 48%);opacity:0;transform:scale(.72);animation:feedback-widget-thanks-glow .68s ease-out forwards}.feedback-widget__thanks:after{content:"";position:absolute;width:min(62vw,18rem);aspect-ratio:1;border-radius:999px;border:1px solid rgba(255,255,255,.24);box-shadow:0 0 #ffffff29;z-index:-1;opacity:0;transform:scale(.6);animation:feedback-widget-thanks-ring .9s cubic-bezier(.2,.8,.2,1) .12s forwards}.feedback-widget__thanks p{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:.01em;text-shadow:0 .2rem .8rem rgba(0,0,0,.28);animation:feedback-widget-thanks-pop .52s cubic-bezier(.22,1,.36,1) both,feedback-widget-thanks-float 2.2s ease-in-out .62s infinite}@keyframes feedback-widget-thanks-pop{0%{opacity:0;transform:translateY(.7rem) scale(.86)}70%{opacity:1;transform:translateY(-.16rem) scale(1.04)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes feedback-widget-thanks-glow{0%{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@keyframes feedback-widget-thanks-ring{0%{opacity:0;transform:scale(.6);box-shadow:0 0 #fff3}40%{opacity:1}to{opacity:0;transform:scale(1.25);box-shadow:0 0 0 .75rem #fff0}}@keyframes feedback-widget-thanks-float{0%{transform:translateY(0)}50%{transform:translateY(-.14rem)}to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.feedback-widget__overlay,.feedback-widget__panel,.feedback-widget__thanks{transition:none}.feedback-widget__thanks:before,.feedback-widget__thanks:after,.feedback-widget__thanks p{animation:none;opacity:1;transform:none}}@media(min-width:769px){.feedback-widget__overlay{align-items:center}}.language-switcher__wrapper--inline{--hold-hint-max-width: min(12rem, calc(100vw - 2rem) );position:relative}.language-switcher__wrapper--overlay{--hold-hint-max-width: min(12rem, calc(100vw - 2rem) );position:fixed;top:max(var(--l),env(safe-area-inset-top));left:max(var(--l),env(safe-area-inset-left));z-index:var(--z-overlay)}@media(max-width:768px){.language-switcher__wrapper--overlay{top:max(var(--s),env(safe-area-inset-top));left:max(var(--s),env(safe-area-inset-left))}}.top-controls{direction:ltr;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.top-controls__left,.top-controls__right{display:inline-flex;align-items:center;gap:var(--s);pointer-events:auto}.top-controls--inline{position:relative;width:100%}.top-controls--overlay{position:absolute;top:max(var(--m),env(safe-area-inset-top));left:max(var(--m),env(safe-area-inset-left));right:max(var(--m),env(safe-area-inset-right));z-index:var(--z-overlay)}.game-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s);padding:var(--l) var(--l);min-height:clamp(180px,36vh,300px);width:100%;background:var(--bg-glass-strong);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--color-border-light);border-radius:var(--m);cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base),background var(--transition-base);font-family:var(--font-family-base);text-align:center;box-shadow:var(--shadow-md);animation:gameCardAppear .5s ease-out both}@keyframes gameCardAppear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.game-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);background:var(--bg-glass-strong)}.game-card:active{transform:scale(.98)}.game-card__icon{font-size:clamp(var(--font-size-xxl),7vmin,4rem);font-weight:var(--font-weight-bold);background:var(--bg-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:iconPulse 3s ease-in-out infinite}@keyframes iconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.game-card__name{margin:0;font-size:clamp(1.2rem,4vmin,var(--font-size-xxl));font-weight:var(--font-weight-bold);color:var(--text-primary);text-shadow:var(--shadow-text-sm)}.game-card__description{margin:0;font-size:clamp(var(--font-size-sm),2.5vmin,var(--font-size-base));color:var(--text-subtle);line-height:1.35}.game-card--disabled{opacity:.6;cursor:not-allowed}.game-card--disabled:hover{transform:none;box-shadow:var(--shadow-md);background:var(--bg-glass-strong)}.game-card--disabled .game-card__icon{animation:none}@media(orientation:landscape){.game-card{min-height:clamp(130px,38vh,220px);padding:var(--m) var(--s);gap:var(--s);border-radius:var(--s)}.game-card__icon{font-size:clamp(var(--font-size-xxl),5vmin,2.5rem)}.game-card__name{font-size:clamp(var(--font-size-base),3vmin,var(--font-size-lg))}.game-card__description{font-size:clamp(.8rem,2.2vmin,var(--font-size-base))}}.main-screen{--main-games-max-width: min(400px, 90vw);--main-games-max-width-landscape: min(280px, 36vw);position:fixed;inset:0;width:100%;height:100svh;display:flex;flex-direction:column;font-family:var(--font-family-base);overflow:clip;overscroll-behavior:none}.main-screen__background{position:absolute;inset:0;background:var(--bg-gradient);z-index:-1}.main-screen__top-controls{flex-shrink:0;padding:max(var(--m),env(safe-area-inset-top)) max(var(--m),env(safe-area-inset-right)) 0 max(var(--m),env(safe-area-inset-left))}.main-screen__content{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;padding:var(--s) max(var(--s),env(safe-area-inset-right)) max(var(--s),env(safe-area-inset-bottom)) max(var(--s),env(safe-area-inset-left));animation:contentFadeIn .5s ease-out both}@keyframes contentFadeIn{to{opacity:1}}.main-screen__hero{text-align:center;margin-bottom:var(--s)}.main-screen__brand{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--s);direction:ltr}.main-screen__logo{display:block;width:clamp(44px,8vmin,72px);height:auto;margin:0;filter:drop-shadow(0 8px 18px rgba(0,0,0,.2))}.main-screen__title{margin:0;font-size:clamp(var(--font-size-lg),4.8vmin,3rem);font-weight:var(--font-weight-bold);color:var(--text-primary);text-shadow:var(--shadow-md);animation:titlePop .6s ease-out;line-height:1}@keyframes titlePop{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.main-screen__subtitle{margin:var(--xs) 0 0;font-size:clamp(.8rem,2.5vmin,var(--font-size-lg));color:var(--text-secondary)}.main-screen__games{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--m);width:100%;max-width:var(--main-games-max-width);margin:0 auto;padding-bottom:var(--l)}.main-screen__games .game-card{flex:0 0 auto}.main-screen__footer{margin-top:auto;padding:var(--m) 0 max(var(--s),env(safe-area-inset-bottom));text-align:center}.main-screen__footer-links{display:flex;justify-content:center;gap:var(--m);flex-wrap:wrap}.main-screen__footer-link{background:none;border:none;color:var(--text-subtle);font-family:inherit;font-size:var(--l);cursor:pointer;padding:var(--s) var(--m);transition:color .2s;text-decoration:underline;text-underline-offset:4px}.main-screen__footer-link:hover{color:var(--text-primary)}@media(orientation:landscape){.main-screen__top-controls{padding-top:max(var(--m),env(safe-area-inset-top))}.main-screen__content{padding-top:var(--s);padding-bottom:0}.main-screen__hero{margin-bottom:var(--s)}.main-screen__logo{width:clamp(34px,6.4vmin,54px)}.main-screen__title{font-size:clamp(var(--font-size-base),3.7vmin,var(--font-size-xl))}.main-screen__subtitle{font-size:clamp(var(--m),2vmin,var(--font-size-base))}.main-screen__games{max-width:var(--main-games-max-width-landscape);padding-bottom:var(--m)}.main-screen__footer{padding-top:var(--s)}.main-screen__footer-link{font-size:var(--m)}}.user-info{display:flex;align-items:center;gap:var(--m);padding:var(--s) var(--m);background:var(--bg-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--l);border:1px solid var(--color-border-light);color:var(--text-primary);font-size:var(--m);transition:background var(--transition-base),border-color var(--transition-base)}.user-info:hover{background:var(--bg-glass-strong);border-color:var(--color-border-medium)}.user-info--compact{padding:var(--s);min-width:2.5rem;justify-content:center}.user-info__avatar{width:var(--xxl);height:var(--xxl);border-radius:50%;border:2px solid var(--color-border-medium);object-fit:cover}.user-info__initials{width:var(--xxl);height:var(--xxl);border-radius:50%;border:2px solid var(--color-border-medium);display:flex;align-items:center;justify-content:center;background:var(--bg-gradient);font-weight:var(--font-weight-semibold);font-size:var(--m)}.user-info__content{display:flex;flex-direction:column;gap:var(--s)}.user-info__name{font-weight:var(--font-weight-normal);line-height:1.2}.user-info__email{font-size:var(--m);opacity:.8;line-height:1.2}.user-info--overlay{position:fixed;top:4rem;right:var(--l);z-index:1000}@media(max-height:480px)and (orientation:portrait){.user-info{padding:var(--s);font-size:var(--m)}.user-info--compact{min-width:var(--xxl);padding:var(--s)}.user-info__avatar,.user-info__initials{width:var(--xl);height:var(--xl);font-size:var(--s)}}@media(max-width:768px){.user-info{padding:var(--s) var(--m);font-size:var(--m)}.user-info__avatar,.user-info__initials{width:1.75rem;height:1.75rem;font-size:var(--s)}.user-info--overlay{top:4rem;right:var(--s)}}@media(orientation:landscape){.user-info{font-size:var(--m)}.user-info--compact{padding:var(--s)}.user-info__avatar,.user-info__initials{width:1.75rem;height:1.75rem;font-size:var(--s)}}.back-to-menu__wrapper{--hold-hint-padding: 6px 10px;--hold-hint-font-size: .75rem;--hold-hint-bg: rgba(0, 0, 0, .85);--hold-hint-shadow: 0 2px 8px rgba(0, 0, 0, .25);--hold-indicator-active: rgba(255, 255, 255, .85);--hold-indicator-rest: rgba(255, 255, 255, .16)}.back-to-menu__wrapper--overlay{position:fixed;top:max(var(--m),env(safe-area-inset-top));left:max(var(--m),env(safe-area-inset-left));z-index:var(--z-overlay)}.back-to-menu__wrapper--overlay .back-to-menu{position:relative}.back-to-menu{position:relative;overflow:hidden}.back-to-menu__icon{width:var(--l);height:var(--l)}.back-to-menu--inline{position:relative}@media(max-width:768px){.back-to-menu__wrapper--overlay{top:max(var(--m),env(safe-area-inset-top));left:max(var(--m),env(safe-area-inset-left))}}.settings-screen{--settings-header-spacer: 80px;--safe-area-base: var(--xxl);position:relative;height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;max-width:var(--layout-max-width-lg);margin:0 auto;background:var(--bg-gradient);color:var(--text-primary)}.settings-screen__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--xxl)}.settings-screen__header h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin:0}.settings-screen__spacer{width:var(--settings-header-spacer)}.settings-screen__content{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--xxl);overflow-y:auto;overflow-x:hidden}.settings-section{background:var(--bg-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-lg);padding:var(--xl);border:1px solid var(--color-border-light)}.settings-section h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0 0 var(--l) 0;opacity:.9}.settings-section__description{margin:0 0 var(--l) 0;color:var(--text-secondary);font-size:var(--font-size-sm)}.settings-section__user{display:flex;flex-direction:column;gap:var(--l);align-items:flex-start}.settings-actions{display:flex;flex-wrap:wrap;gap:var(--m)}.settings-role-info{display:flex;align-items:center;gap:var(--s);padding:var(--s) var(--m);background:var(--bg-glass);border-radius:var(--radius-sm);border:1px solid var(--color-border-light)}.settings-role-label{font-size:var(--font-size-sm);opacity:.9;font-weight:var(--font-weight-normal)}.settings-role-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:capitalize;color:var(--text-secondary)}.settings-button{padding:var(--m) var(--xl);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);cursor:pointer;transition:all var(--transition-base);background:var(--bg-glass-strong);color:var(--text-primary);border:1px solid var(--color-border-medium)}.settings-button:hover{background:var(--color-border-medium);transform:translateY(-2px)}.settings-button:active{transform:translateY(0)}.settings-button--danger{background:var(--bg-danger);border-color:var(--bg-danger-hover)}.settings-button--danger:hover{background:var(--bg-danger-hover)}.settings-meta-grid{display:flex;flex-direction:column;gap:var(--s)}.settings-meta-row{display:flex;justify-content:space-between;align-items:center;gap:var(--l);padding:var(--s) var(--m);background:var(--bg-glass-subtle);border:1px solid var(--color-border-light);border-radius:var(--radius-sm)}.settings-meta-label{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal)}.settings-meta-value{margin:0;color:var(--text-primary);font-size:var(--font-size-sm);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}@media(max-width:768px){.settings-screen{--safe-area-base: var(--l)}.settings-screen__header h1{font-size:var(--font-size-xl)}.settings-section{padding:var(--l)}.settings-meta-row{flex-direction:column;align-items:flex-start;gap:var(--s)}}.faq-screen{position:relative;height:100vh;height:100svh;display:flex;flex-direction:column;font-family:var(--font-family-base);overflow:hidden}.faq-screen__background{position:absolute;inset:0;background:var(--bg-gradient);z-index:-1}.faq-screen__header{display:flex;flex-direction:column;align-items:center;padding:max(var(--m),env(safe-area-inset-top)) max(var(--m),env(safe-area-inset-right)) var(--m) max(var(--m),env(safe-area-inset-left));flex-shrink:0;background:var(--bg-gradient);z-index:var(--z-header)}.faq-screen__top-controls{margin-bottom:var(--s)}.faq-screen__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--text-primary);text-align:center}.faq-screen__content{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--xl);padding:var(--l) max(var(--l),env(safe-area-inset-right)) max(var(--xxl),env(safe-area-inset-bottom)) max(var(--l),env(safe-area-inset-left));max-width:var(--layout-max-width-md);margin:0 auto;width:100%;overflow-y:auto;overflow-x:hidden}.faq-category{background:var(--bg-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--xl)}.faq-category__title{margin:0 0 var(--l);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--text-primary)}.faq-category__items{display:flex;flex-direction:column;gap:var(--s)}.faq-item{background:var(--bg-glass);border-radius:var(--radius-sm);overflow:hidden;transition:background var(--transition-base)}.faq-item--open{background:var(--bg-glass-strong)}.faq-item__question{display:flex;align-items:center;gap:var(--m);width:100%;padding:var(--l);background:transparent;border:none;color:var(--text-primary);font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);text-align:left;cursor:pointer;transition:background var(--transition-base)}.faq-item__question:hover{background:var(--bg-glass-subtle)}.faq-item__icon{flex-shrink:0;font-size:var(--font-size-sm);transition:transform .2s ease}.faq-item--open .faq-item__icon{color:var(--text-secondary)}.faq-item__answer{padding:0 var(--l) var(--l) 2.5rem;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.5;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media(min-width:600px){.faq-screen__title{font-size:var(--font-size-xl)}.faq-category{padding:var(--xxl)}}.privacy-screen{position:relative;height:100vh;height:100svh;display:flex;flex-direction:column;font-family:var(--font-family-base);overflow:hidden}.privacy-screen__background{position:absolute;inset:0;background:var(--bg-gradient);z-index:-1}.privacy-screen__header{display:flex;flex-direction:column;align-items:center;padding:max(var(--m),var(--safe-area-top)) max(var(--m),var(--safe-area-right)) var(--m) max(var(--m),var(--safe-area-left));flex-shrink:0;background:var(--bg-gradient);z-index:var(--z-header)}.privacy-screen__top-controls{margin-bottom:var(--s)}.privacy-screen__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--text-primary);text-align:center}.privacy-screen__content{flex:1;min-height:0;width:100%;max-width:var(--layout-max-width-md);margin:0 auto;padding:var(--l) max(var(--l),var(--safe-area-right)) max(var(--xxl),var(--safe-area-bottom)) max(var(--l),var(--safe-area-left));overflow-y:auto;overflow-x:hidden}.privacy-policy{background:var(--bg-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--xl);color:var(--text-primary)}.privacy-policy__meta{margin:0 0 var(--l);font-size:var(--font-size-sm);color:var(--text-secondary)}.privacy-policy h2{margin:var(--xl) 0 var(--s);font-size:var(--font-size-base);font-weight:var(--font-weight-bold)}.privacy-policy p{margin:0 0 var(--s);line-height:1.55}.privacy-policy ul{margin:0 0 var(--s) var(--l);display:flex;flex-direction:column;gap:var(--s)}.privacy-policy li{line-height:1.5}@media(min-width:600px){.privacy-screen__title{font-size:var(--font-size-xl)}.privacy-policy{padding:var(--xxl)}}.letter-image{--animation-duration: 1.2s;--animation-delay: 2.5s;position:absolute;pointer-events:auto;transform-origin:center center;display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:visible}.letter-image__motion-x,.letter-image__motion-y,.letter-image__motion-scale{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transform-origin:center center;backface-visibility:hidden}.letter-image__motion-x{transform:translate3d(40%,0,0)}.letter-image__motion-y{transform:translate3d(0,-30%,0)}.letter-image__motion-scale{opacity:0;transform:scale(.2)}.letter-image--animate .letter-image__motion-x,.letter-image--animate .letter-image__motion-y,.letter-image--animate .letter-image__motion-scale{will-change:transform}.letter-image--animate .letter-image__motion-x{animation:imageEnterX var(--animation-duration) cubic-bezier(.6,0,.8,1) var(--animation-delay) forwards}.letter-image--animate .letter-image__motion-y{animation:imageEnterY var(--animation-duration) cubic-bezier(.25,1.05,.45,1) var(--animation-delay) forwards}.letter-image--animate .letter-image__motion-scale{will-change:opacity,transform;animation:imageEnterAlpha var(--animation-duration) ease-in var(--animation-delay) forwards,imageEnterScale var(--animation-duration) cubic-bezier(.2,0,.6,1) var(--animation-delay) forwards}@keyframes imageEnterAlpha{0%{opacity:0}30%{opacity:1}to{opacity:1}}@keyframes imageEnterScale{0%{transform:scale(.1)}88%{transform:scale(.48)}to{transform:scale(.45)}}@keyframes imageEnterX{0%{transform:translate3d(40%,0,0)}to{transform:translateZ(0)}}@keyframes imageEnterY{0%{transform:translate3d(0,-30%,0)}to{transform:translateZ(0)}}.letter-image__background{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:50%;height:50%;border-radius:50%;background:#ffffff40;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 8px 32px #0003,inset 0 1px #ffffff4d;animation:bgPulse 2.5s ease-in-out 3.7s infinite}@keyframes bgPulse{0%,to{opacity:1;transform:translate(-50%,-50%) scale(1)}50%{opacity:.85;transform:translate(-50%,-50%) scale(1.03)}}.letter-image__svg{position:relative;width:50%;height:50%;max-width:none;max-height:none;filter:none;z-index:1;overflow:visible;flex-shrink:0;backface-visibility:hidden}.letter-image--animate .letter-image__svg{animation:imageIdle 4s ease-in-out 3.7s infinite}.letter-image__svg--full{width:100%;height:100%}@keyframes imageIdle{0%,to{transform:translateZ(0) rotate(0)}25%{transform:translate3d(0,-1.5%,0) rotate(2deg)}50%{transform:translate3d(0,-3%,0) rotate(0)}75%{transform:translate3d(0,-1.5%,0) rotate(-2deg)}}.letter-display{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;position:relative;contain:layout paint;isolation:isolate}.letter-display--empty{opacity:.7}.letter-display__hint{display:flex;flex-direction:column;align-items:center;gap:var(--m);font-size:clamp(var(--font-size-xl),5vw,2.5rem);color:var(--text-subtle);text-align:center;padding:var(--xxl);animation:pulse 2s ease-in-out infinite}.letter-display__hint-text{line-height:1.15}.letter-display__char{position:absolute;display:inline-flex;align-items:center;justify-content:center;font-size:var(--alphabet-letter-size);font-weight:900;color:var(--letter-color, var(--text-primary));-webkit-text-stroke:var(--alphabet-letter-stroke) var(--text-primary);paint-order:stroke fill;text-shadow:var(--alphabet-letter-shadow);line-height:1.12;margin:0;padding:.1em .04em .02em;box-sizing:content-box;text-align:center;white-space:pre;z-index:var(--alphabet-z-letter);transform-origin:center center;opacity:0;transform:translateZ(0) scale(.3);backface-visibility:hidden;overflow:visible}.letter-display__char--animate{will-change:transform,opacity;animation:letterAppear var(--alphabet-letter-appear) cubic-bezier(.34,1.56,.64,1) forwards,letterPulse var(--alphabet-letter-pulse) ease-in-out var(--alphabet-letter-appear) 2 alternate,letterMove var(--alphabet-letter-move) cubic-bezier(.4,0,.2,1) 2.5s forwards}@keyframes pulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}@keyframes letterAppear{0%{opacity:0;transform:translateZ(0) scale(.3)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes letterPulse{0%{transform:translateZ(0) scale(1)}to{transform:translateZ(0) scale(1.05)}}@keyframes letterMove{0%{opacity:1;transform:translateZ(0) scale(1)}to{opacity:1;transform:translate3d(-27vmin,-27vmin,0) scale(.4)}}@media(pointer:coarse){.letter-display__char{line-height:1.2;padding-top:.22em}}.animation-stage{position:relative;width:90vw;aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;container-type:size;background:var(--alphabet-debug-bg);border:2px dashed var(--alphabet-debug-border)}@media(orientation:portrait)and (max-aspect-ratio:3/5){.animation-stage{width:100vw;height:100vw}}@media(orientation:portrait)and (min-aspect-ratio:3/5)and (max-aspect-ratio:2/3){.animation-stage{width:90vw;height:90vw}}@media(orientation:portrait)and (min-aspect-ratio:2/3){.animation-stage{width:80vw;height:80vw}}@media(orientation:landscape)and (min-aspect-ratio:15/8){.animation-stage{width:100vh;height:100vh}}@media(orientation:landscape)and (max-aspect-ratio:15/8)and (min-aspect-ratio:5/3){.animation-stage{width:84vh;height:84vh}}@media(orientation:landscape)and (max-aspect-ratio:5/3)and (min-aspect-ratio:3/2){.animation-stage{width:80vh;height:80vh}}@media(orientation:landscape)and (max-aspect-ratio:3/2){.animation-stage{width:66vh;height:66vh}}.hint-arrow{color:var(--text-secondary);filter:var(--alphabet-hint-arrow-shadow);opacity:.9}.hint-arrow--bounce{animation:hintArrowBounce 1.25s ease-in-out infinite}@keyframes hintArrowBounce{0%,to{transform:translateY(0);opacity:.75}50%{transform:translateY(var(--alphabet-hint-arrow-bounce));opacity:1}}.tap-hint{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:var(--alphabet-z-tap-hint)}.tap-hint__finger{position:fixed;z-index:var(--alphabet-z-tap-hint-ripple);animation:tapHintFingerCycle var(--alphabet-tap-hint-cycle) linear 5s infinite;transform-origin:center center;opacity:0;top:var(--finger-start-top, 0);left:var(--finger-start-left, 50%);transform:translate(-50%,-50%)}.tap-hint__finger img{display:block;margin-left:var(--alphabet-tap-finger-margin-left)}.tap-hint__ripple{position:fixed;width:var(--alphabet-tap-ripple-size);height:var(--alphabet-tap-ripple-size);border:var(--alphabet-tap-ripple-border);border-radius:50%;pointer-events:none;top:var(--key-center-y, 0);left:var(--key-center-x, 50%);opacity:0;transform:translate(-50%,-50%) scale(0);z-index:var(--alphabet-z-tap-hint)}.tap-hint>.tap-hint__ripple:nth-child(2){animation:tapHintRippleCycle1 var(--alphabet-tap-hint-cycle) var(--alphabet-transition-ripple) 5s infinite;z-index:1}.tap-hint>.tap-hint__ripple.tap-hint__ripple--delay-1{animation:tapHintRippleCycle2 var(--alphabet-tap-hint-cycle) var(--alphabet-transition-ripple) 5s infinite;z-index:2}@keyframes tapHintRippleCycle1{0%,27%{transform:translate(-50%,-50%) scale(0);opacity:1}60%,to{transform:translate(-50%,-50%) scale(2);opacity:0}}@keyframes tapHintRippleCycle2{0%,33%{transform:translate(-50%,-50%) scale(0);opacity:1}70%,to{transform:translate(-50%,-50%) scale(2);opacity:0}}.tap-hint--full .tap-hint__finger{top:calc(var(--keyboard-top, 0) - var(--alphabet-tap-offset-lg))}.tap-hint--left .tap-hint__finger,.tap-hint--right .tap-hint__finger{top:calc(var(--keyboard-top, 0) - var(--alphabet-tap-offset-md))}@keyframes tapHintFingerAppear{0%{opacity:0;transform:translate(-50%) translateY(calc(-1 * var(--alphabet-tap-offset-sm))) scale(.7)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes tapHintFingerMove{0%{transform:translate(-50%) translateY(0) scale(1)}to{transform:translate(calc(-50% + var(--tap-hint-x, 0))) translateY(var(--tap-hint-y, 0)) scale(1)}}@keyframes tapHintFingerTap{0%,to{transform:translate(calc(-50% + var(--tap-hint-x, 0))) translateY(var(--tap-hint-y, 0)) scale(1)}50%{transform:translate(calc(-50% + var(--tap-hint-x, 0))) translateY(calc(var(--tap-hint-y, 0) + var(--alphabet-tap-offset-xs))) scale(.85)}}@keyframes tapHintFingerReturn{0%{transform:translate(calc(-50% + var(--tap-hint-x, 0))) translateY(var(--tap-hint-y, 0)) scale(1)}to{transform:translate(-50%) translateY(0) scale(1)}}@keyframes tapHintFingerDisappear{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%) translateY(calc(-1 * var(--alphabet-tap-offset-sm))) scale(.7)}}@keyframes tapHintRipple{0%{transform:translate(-50%,-50%) scale(0);opacity:1}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}@keyframes tapHintFingerCycle{0%{opacity:0;top:var(--finger-start-top, 0);left:var(--finger-start-left, 50%);transform:translate(-50%,calc(-50% - var(--alphabet-tap-offset-lg))) scale(.7)}6%{opacity:1;top:var(--finger-start-top, 0);left:var(--finger-start-left, 50%);transform:translate(-50%,-50%) scale(1)}20%{top:var(--finger-end-top, 0);left:var(--finger-end-left, 50%);transform:translate(-50%,calc(-50% + var(--alphabet-tap-offset-md))) scale(1)}29%{top:var(--finger-end-top, 0);left:var(--finger-end-left, 50%);transform:translate(-50%,calc(-50% + var(--alphabet-tap-offset-md))) scale(1)}32%{top:var(--finger-end-top, 0);left:var(--finger-end-left, 50%);transform:translate(-50%,calc(-50% + var(--alphabet-tap-offset-sm))) scale(.85)}35%{top:var(--finger-end-top, 0);left:var(--finger-end-left, 50%);transform:translate(-50%,calc(-50% + var(--alphabet-tap-offset-md))) scale(1);opacity:1}44%{top:var(--finger-end-top, 0);left:var(--finger-end-left, 50%);transform:translate(-50%,calc(-50% + var(--alphabet-tap-offset-md))) scale(1);opacity:1}46%{opacity:0;top:var(--finger-end-top, 0);left:var(--finger-end-left, 50%);transform:translate(-50%,calc(-50% + var(--alphabet-tap-offset-xs))) scale(.5)}46.1%,58%{opacity:0;top:var(--finger-end-top, 0);left:var(--finger-end-left, 50%);transform:translate(-50%,-50%) scale(.5)}58.1%,to{opacity:0;top:var(--finger-start-top, 0);left:var(--finger-start-left, 50%);transform:translate(-50%,calc(-50% - var(--alphabet-tap-offset-lg))) scale(.7)}}.virtual-keyboard{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:var(--alphabet-keyboard-gap-lg);gap:var(--alphabet-keyboard-gap-lg);user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;position:relative}.virtual-keyboard__row{display:flex;justify-content:center;align-items:center;gap:var(--alphabet-keyboard-gap-base);width:100%}.virtual-keyboard__key{position:relative;display:flex;align-items:center;justify-content:center;width:calc(100% / var(--max-keys) - var(--alphabet-keyboard-gap-lg));height:3rem;font-size:clamp(1.2rem,5vw,2.2rem);font-weight:var(--font-weight-bold);font-family:inherit;color:var(--text-primary);background:var(--alphabet-key-bg);border:var(--alphabet-key-border-width) solid var(--alphabet-key-border);border-radius:var(--alphabet-key-radius-md);cursor:pointer;transition:transform var(--alphabet-transition-fast),background-color var(--alphabet-transition-fast),border-color var(--alphabet-transition-fast),box-shadow var(--alphabet-transition-fast),opacity var(--alphabet-transition-fast);backdrop-filter:blur(var(--alphabet-blur));-webkit-backdrop-filter:blur(var(--alphabet-blur));box-shadow:var(--alphabet-key-shadow)}.virtual-keyboard__key--hint{border-color:var(--alphabet-key-border-hint);box-shadow:var(--alphabet-key-shadow-hint);animation:virtualKeyHintShake var(--alphabet-hint-shake-duration) ease-in-out infinite}.virtual-keyboard__hint-arrow{position:absolute;top:var(--alphabet-hint-arrow-offset);left:50%;transform:translate(-50%);width:var(--alphabet-hint-arrow-size);height:var(--alphabet-hint-arrow-size);color:var(--text-secondary);filter:var(--alphabet-hint-arrow-shadow);pointer-events:none;animation:virtualKeyHintArrow var(--alphabet-hint-arrow-duration) ease-in-out infinite}@keyframes virtualKeyHintShake{0%,to{transform:translate(0) translateY(0) rotate(0)}2%,4%,6%,8%,10%,12%,14%,16%,18%,26%{transform:translate(calc(-1 * var(--alphabet-hint-shake-x))) translateY(calc(-1 * var(--alphabet-hint-shake-y))) rotate(calc(-1 * var(--alphabet-hint-shake-rotate)))}3%,5%,7%,9%,11%,13%,15%,17%,19%,27%{transform:translate(var(--alphabet-hint-shake-x)) translateY(var(--alphabet-hint-shake-y)) rotate(var(--alphabet-hint-shake-rotate))}28%{transform:translate(0) translateY(0) rotate(0)}}@keyframes virtualKeyHintArrow{0%,to{transform:translate(-50%) translateY(0);opacity:.75}50%{transform:translate(-50%) translateY(calc(-1 * var(--alphabet-hint-arrow-float)));opacity:1}}.virtual-keyboard__key:hover{transform:scale(1.05);background:var(--alphabet-key-bg-hover)}.virtual-keyboard__key:active{transform:scale(.95);background:var(--key-color, var(--alphabet-key-bg-active))}.virtual-keyboard__key--active{background:var(--key-color, var(--alphabet-key-bg-active));border-color:var(--key-color, var(--alphabet-key-border-active));transform:scale(1.05);box-shadow:var(--alphabet-key-shadow-active)}.virtual-keyboard__key--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.virtual-keyboard__key--disabled:hover,.virtual-keyboard__key--disabled:active{transform:none}@media(pointer:coarse){.virtual-keyboard__key{backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 2px 4px #0000001f,inset 0 1px #ffffff24}.virtual-keyboard__key--hint{animation:none;box-shadow:0 0 0 1px var(--alphabet-key-border-hint),0 2px 4px #0000001f}.virtual-keyboard__hint-arrow{filter:none;opacity:.95}.virtual-keyboard__key--active{box-shadow:0 0 12px var(--key-color),0 2px 4px #00000024}}.virtual-keyboard--full{padding:5vw;gap:var(--alphabet-keyboard-gap-xxl);justify-content:flex-end;align-items:stretch;max-height:100%;overflow:hidden}.virtual-keyboard--full .virtual-keyboard__row{gap:var(--alphabet-keyboard-gap-xl)}.virtual-keyboard--full .virtual-keyboard__key{height:clamp(2.5rem,8vh,4rem);font-size:clamp(1.4rem,6vw,2.5rem);border-radius:var(--alphabet-key-radius-lg)}.virtual-keyboard--left,.virtual-keyboard--right{justify-content:center;padding:3vh 3vw;gap:var(--alphabet-keyboard-gap-lg);height:auto}.virtual-keyboard--left .virtual-keyboard__row{justify-content:flex-start;gap:var(--alphabet-keyboard-gap-md)}.virtual-keyboard--right .virtual-keyboard__row{justify-content:flex-end;gap:var(--alphabet-keyboard-gap-md)}.virtual-keyboard--left .virtual-keyboard__key,.virtual-keyboard--right .virtual-keyboard__key{height:clamp(2rem,12vh,3.5rem);width:clamp(2.5rem,6vmin,4rem);flex:none;font-size:clamp(.9rem,3.5vmin,1.5rem);border-radius:var(--alphabet-key-radius-sm)}@media(orientation:landscape)and (max-width:667px)and (max-height:375px){.virtual-keyboard--left .virtual-keyboard__key,.virtual-keyboard--right .virtual-keyboard__key{width:clamp(2.2rem,5.5vmin,3.3rem);height:clamp(3rem,15vh,5rem);font-size:clamp(1.2rem,5vmin,1.5rem)}.virtual-keyboard--left,.virtual-keyboard--right{padding:2vh 2vw;gap:var(--alphabet-keyboard-gap-md)}.virtual-keyboard--left .virtual-keyboard__row,.virtual-keyboard--right .virtual-keyboard__row{gap:var(--alphabet-keyboard-gap-sm)}}@media(min-width:900px){.virtual-keyboard--left .virtual-keyboard__key,.virtual-keyboard--right .virtual-keyboard__key{height:clamp(3rem,12vmin,5rem);width:clamp(3.5rem,7vmin,6rem);font-size:clamp(1.3rem,4.5vmin,2.2rem)}.virtual-keyboard--left,.virtual-keyboard--right{padding:4vmin;gap:var(--alphabet-keyboard-gap-xxl)}.virtual-keyboard--left .virtual-keyboard__row,.virtual-keyboard--right .virtual-keyboard__row{gap:var(--alphabet-keyboard-gap-xxl)}}.alphabet__fullscreen-tooltip{position:absolute;bottom:max(var(--l),env(safe-area-inset-bottom));right:var(--l);z-index:var(--z-overlay)}.alphabet__fullscreen-btn{width:3rem;height:3rem;border:none;border-radius:50%;background:var(--bg-glass-strong);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--text-secondary);font-size:var(--font-size-xl);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-slow);border:1px solid var(--color-border-medium)}.alphabet__fullscreen-btn:hover{background:var(--color-border-medium);transform:scale(1.1)}.alphabet__fullscreen-btn:active{transform:scale(.95)}@media(max-width:768px){.alphabet__fullscreen-btn{opacity:.7}.alphabet__fullscreen-btn:active{opacity:1}}.background{position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,var(--bg-color) 0%,color-mix(in srgb,var(--bg-color) 70%,var(--color-secondary)) 50%,color-mix(in srgb,var(--bg-color) 50%,var(--color-accent)) 100%)}.background--prev{opacity:1;z-index:-2}.background--current{opacity:0;z-index:-1;transition:opacity 1s ease-in-out}.background--current.background--active{opacity:1}.background:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 80%,rgba(255,255,255,.15) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.1) 0%,transparent 40%),radial-gradient(circle at 40% 40%,rgba(255,255,255,.05) 0%,transparent 60%);pointer-events:none}.background:after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 10% 10%,rgba(255,255,255,.08) 0%,transparent 20%),radial-gradient(circle at 90% 90%,rgba(255,255,255,.06) 0%,transparent 25%),radial-gradient(circle at 50% 50%,rgba(255,255,255,.04) 0%,transparent 30%);animation:floatBg 20s ease-in-out infinite;pointer-events:none}@keyframes floatBg{0%,to{transform:translate(0) scale(1)}33%{transform:translate(2%,-2%) scale(1.02)}66%{transform:translate(-1%,1%) scale(.98)}}@media(pointer:coarse){.background:after{animation:none;transform:none}}.alphabet{--alphabet-bg-color: #667eea;--alphabet-key-bg: linear-gradient(145deg, var(--bg-glass-strong), var(--bg-glass-subtle));--alphabet-key-bg-hover: linear-gradient(145deg, var(--color-border-medium), var(--bg-glass));--alphabet-key-bg-active: rgba(255, 255, 255, .4);--alphabet-key-border: var(--color-border-medium);--alphabet-key-border-hint: var(--text-muted);--alphabet-key-border-active: var(--color-border-strong);--alphabet-debug-border: var(--color-border-medium);--alphabet-debug-bg: var(--bg-glass);--alphabet-keyboard-gap-sm: .15rem;--alphabet-keyboard-gap-md: .2rem;--alphabet-keyboard-gap-base: .25rem;--alphabet-keyboard-gap-lg: .3rem;--alphabet-keyboard-gap-xl: .35rem;--alphabet-keyboard-gap-xxl: .4rem;--alphabet-key-radius-sm: .4rem;--alphabet-key-radius-md: .5rem;--alphabet-key-radius-lg: .6rem;--alphabet-z-letter: 1;--alphabet-z-animation: 10;--alphabet-z-tap-hint: 1000;--alphabet-z-tap-hint-ripple: 1001;--alphabet-z-fullscreen: 1000;--alphabet-key-shadow: 0 4px 6px rgba(0, 0, 0, .1), inset 0 1px 0 rgba(255, 255, 255, .2);--alphabet-key-shadow-hint: 0 4px 8px rgba(0, 0, 0, .18), inset 0 1px 0 rgba(255, 255, 255, .25);--alphabet-key-shadow-active: 0 0 20px var(--key-color), 0 4px 8px rgba(0, 0, 0, .2);--alphabet-transition-fast: .15s ease;--alphabet-transition-ripple: cubic-bezier(.4, 0, .2, 1);--alphabet-blur: 10px;--alphabet-key-border-width: 2px;--alphabet-hint-shake-x: 1.5px;--alphabet-hint-shake-y: .75px;--alphabet-hint-shake-rotate: .75deg;--alphabet-hint-arrow-float: 6px;--alphabet-hint-shake-duration: 1.4s;--alphabet-hint-arrow-duration: 1.2s;--alphabet-tap-hint-cycle: 5s;--alphabet-letter-appear: .6s;--alphabet-letter-pulse: .75s;--alphabet-letter-move: .6s;--alphabet-letter-size: 35vmin;--alphabet-letter-stroke: 3px;--alphabet-letter-shadow: 0 4px 8px rgba(0, 0, 0, .3), 0 8px 16px rgba(0, 0, 0, .2);--alphabet-hint-arrow-size: 28px;--alphabet-hint-arrow-offset: -1.1rem;--alphabet-hint-arrow-shadow: drop-shadow(0 6px 10px rgba(0, 0, 0, .18));--alphabet-hint-arrow-bounce: 8px;--alphabet-tap-ripple-size: 50px;--alphabet-tap-ripple-border: 3px solid rgba(255, 255, 255, .6);--alphabet-tap-offset-lg: 50px;--alphabet-tap-offset-md: 30px;--alphabet-tap-offset-sm: 20px;--alphabet-tap-offset-xs: 10px;--alphabet-tap-finger-margin-left: 24px;--alphabet-desktop-hint-font-size: 1.1rem}@media(pointer:coarse){.alphabet{--alphabet-letter-stroke: 2px;--alphabet-letter-shadow: 0 2px 6px rgba(0, 0, 0, .22)}}.alphabet{position:relative;display:flex;height:100vh;height:100svh;max-height:100vh;max-height:100svh;overflow:hidden;font-family:var(--font-family-base)}.alphabet__main{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--l)}.alphabet{flex-direction:column}.alphabet__main{flex:2;min-height:0;overflow:hidden}.alphabet__footer{flex:0 0 auto;display:flex;min-height:0;padding-bottom:env(safe-area-inset-bottom,0)}.alphabet__sidebar{display:none}@media(min-aspect-ratio:1/1){.alphabet{flex-direction:row}.alphabet__sidebar{flex:0 0 25%;width:25%;display:flex;align-items:center;justify-content:center;padding:var(--s)}.alphabet__sidebar--left{padding-left:env(safe-area-inset-left,var(--s))}.alphabet__sidebar--right{padding-right:env(safe-area-inset-right,var(--s))}.alphabet__main{flex:0 0 50%;width:50%;padding:var(--s)}@media(min-aspect-ratio:2/1){.alphabet__main{padding:0;height:100%}}.alphabet__footer{display:none}@media(pointer:fine){.alphabet__sidebar{display:none}.alphabet__main{flex:1;width:100%;max-width:100%;margin:0 auto}}}.alphabet__desktop-hint{position:fixed;bottom:var(--xxl);left:50%;transform:translate(-50%) translateY(20px);display:inline-flex;align-items:center;gap:var(--m);padding:var(--l) var(--xxl);background:var(--bg-glass-strong);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:var(--xxl);color:var(--text-secondary);font-size:var(--alphabet-desktop-hint-font-size);text-align:center;border:1px solid var(--color-border-light);opacity:0;transition:opacity .5s ease,transform .5s ease;pointer-events:none}.alphabet__desktop-hint--visible{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.alphabet__desktop-hint--hidden{opacity:0;transform:translate(-50%) translateY(20px);pointer-events:none}.alphabet__desktop-hint-text{line-height:1.15}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.unauthorized-screen{--safe-area-base: var(--xxl);position:relative;height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;max-width:var(--layout-max-width-lg);margin:0 auto;background:linear-gradient(135deg,var(--color-neutral-600) 0%,var(--color-neutral-700) 100%);color:var(--text-primary)}.unauthorized-screen__header{flex-shrink:0;margin-bottom:var(--xxl)}.unauthorized-screen__header h1{font-size:var(--xxl);font-weight:var(--font-weight-semibold);margin:0}.unauthorized-screen__content{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--xxl);overflow-y:auto;overflow-x:hidden}.unauthorized-section{background:var(--bg-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-lg);padding:var(--xl);border:1px solid var(--color-border-light)}.unauthorized-section h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0 0 var(--l) 0;opacity:.9}.unauthorized-message{font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);margin:0 0 var(--s) 0;opacity:.95}.unauthorized-description{font-size:var(--font-size-sm);opacity:.8;margin:0;line-height:var(--line-height-base)}.unauthorized-section__user{display:flex;flex-direction:column;gap:var(--l);align-items:flex-start}.unauthorized-role-info{display:flex;align-items:center;gap:var(--s);padding:var(--s) var(--m);background:var(--bg-glass);border-radius:var(--radius-sm);border:1px solid var(--color-border-light)}.unauthorized-role-label{font-size:var(--font-size-sm);opacity:.9;font-weight:var(--font-weight-normal)}.unauthorized-role-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:capitalize;color:var(--text-secondary)}.unauthorized-button{padding:var(--m) var(--xl);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);cursor:pointer;transition:all var(--transition-base);background:var(--bg-glass-strong);color:var(--text-primary);border:1px solid var(--color-border-medium)}.unauthorized-button:hover{background:var(--color-border-medium);transform:translateY(-2px)}.unauthorized-button:active{transform:translateY(0)}.unauthorized-button--danger{background:var(--bg-glass-strong);border-color:var(--color-border-medium)}.unauthorized-button--danger:hover{background:var(--bg-glass-strong)}@media(max-width:768px){.unauthorized-screen{--safe-area-base: var(--l)}.unauthorized-screen__header h1{font-size:var(--font-size-xl)}.unauthorized-section{padding:var(--l)}}
