.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}.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(--ui-corner-control-edge-offset),env(safe-area-inset-top));left:max(var(--ui-corner-control-edge-offset),env(safe-area-inset-left));z-index:var(--z-overlay)}@media(max-width:768px){.language-switcher__wrapper--overlay{top:max(var(--ui-corner-control-edge-offset),env(safe-area-inset-top));left:max(var(--ui-corner-control-edge-offset),env(safe-area-inset-left))}}.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(--ui-corner-control-edge-offset),env(safe-area-inset-top));left:max(var(--ui-corner-control-edge-offset),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(--ui-corner-control-icon-size);height:var(--ui-corner-control-icon-size)}.back-to-menu--inline{position:relative}@media(max-width:768px){.back-to-menu__wrapper--overlay{top:max(var(--ui-corner-control-edge-offset),env(safe-area-inset-top));left:max(var(--ui-corner-control-edge-offset),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(--ui-corner-control-edge-offset),env(safe-area-inset-top));left:max(var(--ui-corner-control-edge-offset),env(safe-area-inset-left));right:max(var(--ui-corner-control-edge-offset),env(safe-area-inset-right));z-index:var(--z-overlay)}.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}}.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:var(--ui-round-button-size);height:var(--ui-round-button-size);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(--ui-round-button-icon-size);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}}.animation-stage{--animation-stage-size: 90vw;--animation-stage-inline-max: 100vw;--animation-stage-block-max: 100vh;--animation-stage-block-max: 100svh;position:relative;width:min(var(--animation-stage-size),var(--animation-stage-inline-max),var(--animation-stage-block-max));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(--animation-stage-bg, transparent);border:var(--animation-stage-border, none)}@media(orientation:portrait)and (max-aspect-ratio:3/5){.animation-stage{--animation-stage-size: 100vw}}@media(orientation:portrait)and (min-aspect-ratio:3/5)and (max-aspect-ratio:2/3){.animation-stage{--animation-stage-size: 90vw}}@media(orientation:portrait)and (min-aspect-ratio:2/3){.animation-stage{--animation-stage-size: 80vw}}@media(orientation:portrait)and (max-width:320px){.animation-stage{--animation-stage-size: 100vw}}@media(orientation:landscape)and (min-aspect-ratio:15/8){.animation-stage{--animation-stage-size: 100vh;--animation-stage-size: 100svh}}@media(orientation:landscape)and (max-aspect-ratio:15/8)and (min-aspect-ratio:5/3){.animation-stage{--animation-stage-size: 84vh;--animation-stage-size: 84svh}}@media(orientation:landscape)and (max-aspect-ratio:5/3)and (min-aspect-ratio:3/2){.animation-stage{--animation-stage-size: 80vh;--animation-stage-size: 80svh}}@media(orientation:landscape)and (max-aspect-ratio:3/2){.animation-stage{--animation-stage-size: 66vh;--animation-stage-size: 66svh}}.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);--animation-stage-border: 2px dashed var(--alphabet-debug-border);--animation-stage-bg: var(--alphabet-debug-bg);--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)}}
