@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:400;src:url(./fredoka-latin-400-normal-17JuUzdy.woff2)format("woff2"),url(./fredoka-latin-400-normal-DbXSrOeS.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:500;src:url(./fredoka-latin-500-normal-B0JifZgm.woff2)format("woff2"),url(./fredoka-latin-500-normal-BL692wg7.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(./fredoka-latin-600-normal-C4zohCW5.woff2)format("woff2"),url(./fredoka-latin-600-normal-CcrEjrB4.woff)format("woff")}@property --h{syntax:"<number>";inherits:true;initial-value:265}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-top:#0a0f24;--bg-mid:#131136;--bg-bottom:#1f1748;--text:#ece8ff;--text-dim:#aaa3d6;--text-faint:#6e6899;--lavender:#c4b5fd;--pink:#f5c2e7;--moon:#fde9a6;--surface:#ffffff0f;--surface-strong:#ffffff1c;--border:#ffffff1f;--primary-from:#a996f5;--primary-to:#eaa8e0;--primary-text:#1a1240;--font:"Fredoka", ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", sans-serif;--ease-spring:cubic-bezier(.3, 1.5, .5, 1);--ease-soft:cubic-bezier(.2, .8, .2, 1);--gutter:16px}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html,body{overscroll-behavior:none;margin:0}body{font-family:var(--font);color:var(--text);background-color:var(--bg-top);background-image:radial-gradient(120% 60% at 50% 115%, #7e57c259, transparent 70%), radial-gradient(80% 50% at 85% -10%, #384ea040, transparent 70%), linear-gradient(180deg, var(--bg-top) 0%, var(--bg-mid) 55%, var(--bg-bottom) 100%);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--lavender);outline-offset:3px}svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0}.btn{letter-spacing:.01em;min-height:52px;transition:transform .25s var(--ease-spring), background-color .3s, box-shadow .3s, opacity .3s;border-radius:999px;justify-content:center;align-items:center;gap:.5em;padding:0 1.5em;font-size:1.1rem;font-weight:500;display:inline-flex}.btn:active:not(:disabled){transform:scale(.93)}.btn:disabled{opacity:.35;cursor:default}.btn-primary{background:linear-gradient(135deg, var(--primary-from), var(--primary-to));color:var(--primary-text);font-weight:600;box-shadow:0 10px 30px -10px #c9a0f0a6,inset 0 1px #ffffff73}.btn-primary:disabled{box-shadow:none}.btn-ghost{background:var(--surface);border:1px solid var(--border)}.btn-round{border-radius:50%;width:56px;height:56px;padding:0}.btn-round svg{width:24px;height:24px}.icon-btn{width:48px;height:48px;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);transition:transform .25s var(--ease-spring), color .3s, background-color .3s;border-radius:50%;place-items:center;display:grid}.icon-btn:active{transform:scale(.9)}.icon-btn svg{width:20px;height:20px}@media (hover:hover){.btn-ghost:hover:not(:disabled),.icon-btn:hover{background:var(--surface-strong)}.btn-primary:hover:not(:disabled){box-shadow:0 12px 36px -8px #c9a0f0cc,inset 0 1px #ffffff73}}#sky{pointer-events:none;position:fixed;inset:0;overflow:hidden}.star{width:var(--s);height:var(--s);opacity:var(--o);box-shadow:0 0 calc(var(--s) * 2) #ffffff80;animation:twinkle var(--d) ease-in-out var(--delay) infinite;background:#fff;border-radius:50%;position:absolute}.sparkle{color:hsl(var(--h) 90% 85%);text-shadow:0 0 8px hsl(var(--h) 90% 70% / .8);animation:sparkle var(--d) ease-in-out var(--delay) infinite;line-height:1;position:absolute}.shooting-star{filter:drop-shadow(0 0 6px #ffffffb3);transform-origin:0;opacity:0;background:linear-gradient(90deg,#fffffff2,#fff0);border-radius:2px;width:140px;height:2px;position:absolute}.moon-wrap{position:relative}.moon{--moon-size:64px;width:var(--moon-size);height:var(--moon-size);box-shadow:inset calc(var(--moon-size) * -.28) calc(var(--moon-size) * -.1) 0 0 var(--moon);filter:drop-shadow(0 0 14px #fde9a673);border-radius:50%;animation:6s ease-in-out infinite bob}.zzz{color:var(--lavender);font-size:1.1rem;font-weight:600;position:absolute;top:-6px;right:-10px}.zzz span{opacity:0;animation:3.6s ease-in infinite zfloat;position:absolute}.zzz span:nth-child(2){font-size:1.3em;animation-delay:1.2s}.zzz span:nth-child(3){font-size:1.6em;animation-delay:2.4s}@keyframes twinkle{0%,to{opacity:var(--o);transform:scale(1)}50%{opacity:calc(var(--o) * .2);transform:scale(.6)}}@keyframes sparkle{0%,to{opacity:.15;transform:scale(.6)rotate(0)}50%{opacity:.85;transform:scale(1)rotate(45deg)}}@keyframes float{0%,to{transform:translateY(-6px)}50%{transform:translateY(8px)}}@keyframes breathe{0%,to{opacity:.75;transform:scale(.88)}50%{opacity:1;transform:scale(1.06)}}@keyframes bob{0%,to{transform:translateY(0)rotate(-22deg)}50%{transform:translateY(-8px)rotate(-10deg)}}@keyframes fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes dice-spin{to{transform:rotate(360deg)}}@keyframes zfloat{0%{opacity:0;transform:translate(0)scale(.6)rotate(-10deg)}20%{opacity:.9}to{opacity:0;transform:translate(28px,-64px)scale(1.2)rotate(12deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.2s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.zzz span{opacity:.7}.zzz span:nth-child(2){transform:translate(14px,-22px)}.zzz span:nth-child(3){transform:translate(30px,-48px)}}html,body{height:100%;overflow:hidden}.particle{z-index:40;pointer-events:none;color:hsl(var(--h) 95% 85%);text-shadow:0 0 8px hsl(var(--h) 90% 70%);line-height:1;position:fixed}#dim-overlay{z-index:50;opacity:0;pointer-events:none;background:#000;transition:opacity .8s;position:fixed;inset:0}.is-dim #dim-overlay{opacity:.5}.corner{z-index:10;top:max(var(--gutter), env(safe-area-inset-top));right:max(var(--gutter), env(safe-area-inset-right));gap:8px;display:flex;position:fixed}#dim-toggle[aria-pressed=true]{color:var(--moon)}#dim-toggle[aria-pressed=true] svg{fill:currentColor}#sound-toggle[aria-pressed=true]{color:var(--lavender)}#sound-toggle[aria-pressed=true] .sound-off,#sound-toggle[aria-pressed=false] .sound-on{display:none}#app{position:fixed;inset:0}.screen{padding:max(var(--gutter), env(safe-area-inset-top)) max(var(--gutter), env(safe-area-inset-right)) max(var(--gutter), env(safe-area-inset-bottom)) max(var(--gutter), env(safe-area-inset-left));opacity:0;visibility:hidden;transition:opacity .5s ease, transform .6s var(--ease-soft), visibility 0s linear .6s;flex-direction:column;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden auto;transform:scale(.96)}.screen.is-active{opacity:1;visibility:visible;transition-delay:.1s,.1s,0s;transform:none}.start-inner{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:420px;margin-block:auto;padding-top:40px;display:flex}.screen.is-active .start-inner>*{animation:fade-up .8s var(--ease-soft) both;animation-delay:calc(var(--i) * 90ms + .1s)}.title{letter-spacing:-.01em;margin:18px 0 0;font-size:clamp(2.6rem,12vw,3.6rem);font-weight:600;line-height:1.05}.title span{background:linear-gradient(135deg, var(--lavender), var(--pink));color:#0000;-webkit-background-clip:text;background-clip:text}.subtitle{color:var(--text-dim);text-wrap:balance;margin:10px 0 32px;font-size:1.05rem;line-height:1.4}#start-form{flex-direction:column;gap:14px;width:100%;display:flex}.input-wrap{background:var(--surface);border:1px solid var(--border);border-radius:22px;transition:border-color .3s,box-shadow .3s;overflow:hidden}.input-wrap:focus-within{border-color:#c4b5fd99;box-shadow:0 0 0 4px #c4b5fd1f}.input-wrap input{width:100%;color:var(--text);font:inherit;text-align:center;caret-color:var(--lavender);text-overflow:ellipsis;background:0 0;border:0;outline:0;padding:18px 16px;font-size:1.3rem;font-weight:500;display:block}.input-wrap input::placeholder{color:var(--text-faint)}.input-wrap.is-rolling input{color:var(--lavender)}.dice{display:inline-block}.is-rolling .dice{animation:.45s linear infinite dice-spin}.toggle{min-height:48px;color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:12px;display:flex}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle small{color:var(--text-faint);font-size:.9em}.toggle-track{background:var(--surface-strong);border:1px solid var(--border);border-radius:999px;flex:none;width:48px;height:28px;transition:background-color .3s;position:relative}.toggle-thumb{background:var(--text-dim);width:20px;height:20px;transition:transform .35s var(--ease-spring), background-color .3s;border-radius:50%;position:absolute;top:3px;left:3px}.toggle input:checked+.toggle-track{background:#a996f580}.toggle input:checked+.toggle-track .toggle-thumb{background:#fff;transform:translate(20px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--lavender);outline-offset:3px}.btn-start{min-height:60px;margin-top:6px;font-size:1.25rem}#screen-game{gap:12px}.game-header{grid-template-columns:48px minmax(0,1fr) 104px;align-items:center;gap:10px;width:100%;max-width:480px;display:grid}.category-pill{background:var(--surface);border:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;justify-self:center;max-width:100%;padding:10px 18px;font-size:1.05rem;font-weight:500;overflow:hidden}.letter-stage{outline-offset:-8px;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:32px;flex:1;place-items:center;width:100%;max-width:480px;min-height:200px;transition:--h .9s;display:grid;position:relative}.letter-stage:before{content:"";aspect-ratio:1;background:radial-gradient(circle, hsl(var(--h) 85% 70% / .3) 0%, hsl(var(--h) 85% 60% / .1) 40%, transparent 68%);pointer-events:none;border-radius:50%;width:min(86vw,46dvh,420px);animation:6s ease-in-out infinite breathe;position:absolute;top:50%;left:50%;translate:-50% -50%}.letter-drag{transition:transform .45s var(--ease-spring)}.letter-float{animation:6s ease-in-out infinite float}.letter-host{place-items:center;display:grid}.letter{color:hsl(var(--h) 95% 86%);text-shadow:0 0 .06em hsl(var(--h) 95% 80% / .8), 0 0 .3em hsl(var(--h) 90% 65% / .45);will-change:transform, opacity, filter;grid-area:1/1;font-size:clamp(7rem,min(52vw,36dvh),18rem);font-weight:600;line-height:1}.hint{text-align:center;color:var(--text-faint);margin:0;font-size:.95rem;transition:opacity .6s,transform .6s;position:absolute;bottom:6px;left:0;right:0}.hint span{animation:2.4s ease-in-out infinite hint-pulse}.hint.is-hidden{opacity:0;transform:translateY(6px)}.progress{flex-wrap:wrap;justify-content:center;gap:6px 4px;width:100%;max-width:440px;display:flex}.dot{aspect-ratio:1;width:calc(7.69231% - 3.69231px);max-width:32px;color:var(--text-faint);transition:color .4s, background-color .4s, box-shadow .4s, opacity .4s, transform .35s var(--ease-spring);border-radius:50%;place-items:center;padding:0;font-size:.78rem;font-weight:500;display:grid;position:relative}.dot.is-done{color:hsl(var(--h) 95% 85%);background:hsl(var(--h) 80% 70% / .14);text-shadow:0 0 8px hsl(var(--h) 90% 70% / .8)}.dot.is-skipped{opacity:.5;text-decoration:line-through}.dot.is-current{opacity:1;color:var(--primary-text);background:hsl(var(--h) 95% 84%);box-shadow:0 0 14px hsl(var(--h) 90% 70% / .7);text-shadow:none;text-decoration:none;transform:scale(1.15)}.dot.is-current:after{content:"";border:1.5px solid hsl(var(--h) 90% 80% / .7);border-radius:50%;animation:2s ease-out infinite ring;position:absolute;inset:-3px}.controls{justify-content:center;align-items:center;gap:18px;padding:4px 0 2px;display:flex}.btn-next{width:72px;height:72px}.btn-next svg{width:28px;height:28px}.btn-skip{min-width:128px}.end-inner{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:420px;margin-block:auto;display:flex}.moon-wrap.big .moon{--moon-size:120px}.screen.is-active .moon-wrap.big{animation:moon-rise 1.4s var(--ease-soft) both}.goodnight{margin:32px 0 10px;font-size:clamp(2.4rem,11vw,3.4rem);font-weight:600;line-height:1.1}.goodnight span{animation:rise .8s var(--ease-spring) both;display:inline-block}.end-summary{color:var(--text-dim);margin:0;font-size:1.1rem;line-height:1.45}.end-sub{color:var(--text-faint);margin:6px 0 32px}.end-actions{flex-direction:column;gap:12px;width:100%;display:flex}.btn-link{min-height:48px;color:var(--text-dim);align-items:center;gap:8px;margin-top:10px;padding:0 12px;font-size:1rem;transition:color .3s;display:inline-flex}.btn-link svg{width:18px;height:18px}@media (hover:hover){.btn-link:hover{color:var(--text)}}@keyframes hint-pulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes ring{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}@keyframes moon-rise{0%{opacity:0;transform:translateY(40px)scale(.5)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;filter:blur(4px);transform:translateY(.6em)scale(.8)}to{opacity:1;filter:blur();transform:none}}@media (height<=620px){.start-inner{padding-top:56px}.subtitle{margin-bottom:20px}.btn-next{width:64px;height:64px}#screen-game{gap:8px}}
