*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{min-height:100vh;min-height:100dvh;font-family:Comfortaa,Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:500;line-height:1.5;color:#fff;background:#667eea;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;min-height:100dvh}html,body{overscroll-behavior:none}*{-webkit-touch-callout:none}@supports (padding: env(safe-area-inset-top)){body{padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}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}*{touch-action:manipulation}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.letter-image{position:absolute;pointer-events:auto;opacity:0;transform-origin:center center;display:flex;align-items:center;justify-content:center;width:100%;height:100%;animation:imageAppear .5s cubic-bezier(.34,1.56,.64,1) 2s forwards,imageMove .6s cubic-bezier(.4,0,.2,1) 2.5s forwards}@keyframes imageAppear{0%{opacity:0;transform:translate(40%,-40%) scale(.05)}to{opacity:.6;transform:translate(40%,-40%) scale(.1)}}@keyframes imageMove{0%{opacity:.6;transform:translate(40%,-40%) scale(.1)}to{opacity:1;transform:translate(0) scale(.5)}}.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}.letter-image__svg{position:relative;width:50%;height:50%;max-width:none;max-height:none;filter:drop-shadow(0 8px 16px rgba(0,0,0,.4));z-index:1;overflow:visible;flex-shrink:0}.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}.letter-display--empty{opacity:.7}.letter-display__hint{display:flex;flex-direction:column;align-items:center;gap:.75rem;font-size:clamp(1.5rem,5vw,2.5rem);color:#fffc;text-align:center;padding:2rem;animation:pulse 2s ease-in-out infinite}.letter-display__hint-text{line-height:1.15}.letter-display__char{position:absolute;font-size:35vmin;font-weight:900;color:var(--letter-color, #fff);-webkit-text-stroke:3px #fff;paint-order:stroke fill;text-shadow:0 4px 8px rgba(0,0,0,.3),0 8px 16px rgba(0,0,0,.2);line-height:1;margin:0;padding:0;text-align:center;z-index:1;transform-origin:center center;opacity:0;animation:letterAppear .6s cubic-bezier(.34,1.56,.64,1) forwards,letterPulse 1.5s ease-in-out .6s 2 alternate,letterMove .6s 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:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes letterPulse{0%{transform:scale(1)}to{transform:scale(1.05)}}@keyframes letterMove{0%{opacity:1;transform:scale(1)}to{opacity:1;transform:translate(-30cqw,-30cqh) scale(.4)}}.animation-stage{position:relative;width:90dvw;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:#ffffff1a;border:2px dashed rgba(255,255,255,.3)}@media(orientation:portrait)and (max-aspect-ratio:3/5){.animation-stage{width:100dvw;height:100dvw}}@media(orientation:portrait)and (min-aspect-ratio:3/5)and (max-aspect-ratio:2/3){.animation-stage{width:90dvw;height:90dvw}}@media(orientation:portrait)and (min-aspect-ratio:2/3){.animation-stage{width:80dvw;height:80dvw}}@media(orientation:landscape)and (min-aspect-ratio:15/8){.animation-stage{width:100dvh;height:100dvh}}@media(orientation:landscape)and (max-aspect-ratio:15/8)and (min-aspect-ratio:5/3){.animation-stage{width:84dvh;height:84dvh}}@media(orientation:landscape)and (max-aspect-ratio:5/3)and (min-aspect-ratio:3/2){.animation-stage{width:80dvh;height:80dvh}}@media(orientation:landscape)and (max-aspect-ratio:3/2){.animation-stage{width:66dvh;height:66dvh}}.hint-arrow{color:#fffffff2;filter:drop-shadow(0 6px 10px rgba(0,0,0,.18));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(8px);opacity:1}}.virtual-keyboard{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:.3rem;gap:.3rem;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.virtual-keyboard__row{display:flex;justify-content:center;align-items:center;gap:.25rem;width:100%}.virtual-keyboard__key{position:relative;display:flex;align-items:center;justify-content:center;width:calc(100% / var(--max-keys) - .3rem);height:3rem;font-size:clamp(1.2rem,5vw,2.2rem);font-weight:700;font-family:inherit;color:#fff;background:linear-gradient(145deg,#fff3,#ffffff0d);border:2px solid rgba(255,255,255,.3);border-radius:.5rem;cursor:pointer;transition:all .15s ease;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 4px 6px #0000001a,inset 0 1px #fff3}.virtual-keyboard__key--hint{border-color:#ffffffd9;box-shadow:0 0 #ffffff59,0 4px 8px #0000002e,inset 0 1px #ffffff40;animation:virtualKeyHintShake 1.4s ease-in-out infinite}.virtual-keyboard__hint-arrow{position:absolute;top:-1.1rem;left:50%;transform:translate(-50%);width:28px;height:28px;color:#fffffff2;filter:drop-shadow(0 6px 10px rgba(0,0,0,.22));pointer-events:none;animation:virtualKeyHintArrow 1.2s 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(-1.5px) translateY(-.75px) rotate(-.75deg)}3%,5%,7%,9%,11%,13%,15%,17%,19%,27%{transform:translate(1.5px) translateY(.75px) rotate(.75deg)}28%{transform:translate(0) translateY(0) rotate(0)}}@keyframes virtualKeyHintArrow{0%,to{transform:translate(-50%) translateY(0);opacity:.75}50%{transform:translate(-50%) translateY(-6px);opacity:1}}.virtual-keyboard__key:hover{transform:scale(1.05);background:linear-gradient(145deg,#ffffff4d,#ffffff1a)}.virtual-keyboard__key:active{transform:scale(.95);background:var(--key-color, rgba(255, 255, 255, .4))}.virtual-keyboard__key--active{background:var(--key-color, rgba(255, 255, 255, .4));border-color:var(--key-color, rgba(255, 255, 255, .6));transform:scale(1.05);box-shadow:0 0 20px var(--key-color),0 4px 8px #0003}.virtual-keyboard--full{padding:5vw;gap:.4rem;justify-content:flex-end;align-items:stretch;max-height:100%;overflow:hidden}.virtual-keyboard--full .virtual-keyboard__row{gap:.35rem}.virtual-keyboard--full .virtual-keyboard__key{height:clamp(2.5rem,8vh,4rem);font-size:clamp(1.4rem,6vw,2.5rem);border-radius:.6rem}.virtual-keyboard--left,.virtual-keyboard--right{justify-content:center;padding:3vh 3vw;gap:.3rem;height:auto}.virtual-keyboard--left .virtual-keyboard__row{justify-content:flex-start;gap:.2rem}.virtual-keyboard--right .virtual-keyboard__row{justify-content:flex-end;gap:.2rem}.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:.4rem}@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:.2rem}.virtual-keyboard--left .virtual-keyboard__row,.virtual-keyboard--right .virtual-keyboard__row{gap:.15rem}}@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:.4rem}.virtual-keyboard--left .virtual-keyboard__row,.virtual-keyboard--right .virtual-keyboard__row{gap:.4rem}}.game__fullscreen-btn{position:fixed;top:1rem;right:1rem;z-index:1000;width:3rem;height:3rem;border:none;border-radius:50%;background:#fff3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#ffffffe6;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;border:1px solid rgba(255,255,255,.3)}.game__fullscreen-btn:hover{background:#ffffff4d;transform:scale(1.1)}.game__fullscreen-btn:active{transform:scale(.95)}@media(max-width:768px){.game__fullscreen-btn{opacity:.7}.game__fullscreen-btn:active{opacity:1}}.language-switcher{position:fixed;top:1rem;left:1rem;z-index:1000;padding:.5rem 1rem;background:#ffffffe6;border:2px solid rgba(102,126,234,.3);border-radius:.5rem;font-size:1rem;font-weight:600;color:#667eea;cursor:pointer;transition:all .2s ease;font-family:Comfortaa,sans-serif;box-shadow:0 2px 8px #0000001a}.language-switcher:hover{background:#fff;border-color:#667eea;transform:scale(1.05)}.language-switcher:active{transform:scale(.95)}@media(max-width:768px){.language-switcher{top:.5rem;left:.5rem;padding:.4rem .8rem;font-size:.9rem}}.game{position:relative;display:flex;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;overflow:hidden;font-family:Comfortaa,Nunito,-apple-system,BlinkMacSystemFont,sans-serif}.game__background{position:fixed;inset:0;z-index:-1;background:linear-gradient(135deg,var(--bg-color) 0%,color-mix(in srgb,var(--bg-color) 70%,#764ba2) 50%,color-mix(in srgb,var(--bg-color) 50%,#f093fb) 100%);transition:background .5s ease}.game__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}.game__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)}}.game__main{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem}.game{flex-direction:column}.game__main{flex:2;min-height:0;overflow:hidden}.game__footer{flex:0 0 auto;display:flex;min-height:0;padding-bottom:env(safe-area-inset-bottom,0)}.game__sidebar{display:none}@media(min-aspect-ratio:1/1){.game{flex-direction:row}.game__sidebar{flex:0 0 25%;width:25%;display:flex;align-items:center;justify-content:center;padding:.5rem}.game__sidebar--left{padding-left:env(safe-area-inset-left,.5rem)}.game__sidebar--right{padding-right:env(safe-area-inset-right,.5rem)}.game__main{flex:0 0 50%;width:50%;padding:.5rem}@media(min-aspect-ratio:2/1){.game__main{padding:0;height:100%}}.game__footer{display:none}}@media(min-width:1024px)and (pointer:fine){.game{flex-direction:column}.game__main{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0}.game__sidebar,.game__footer{display:none!important}}.game__desktop-hint{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:.75rem;padding:1rem 2rem;background:#ffffff26;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:2rem;color:#ffffffe6;font-size:1.1rem;text-align:center;animation:fadeInUp .5s ease;border:1px solid rgba(255,255,255,.2)}.game__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)}}:root{--bg-color: #667eea}
