@font-face{font-family:Fraunces;src:url(/assets/fraunces-var-BOz5zopO.woff2) format("woff2-variations");font-weight:100 1000;font-style:normal;font-display:swap}:root{--ink: oklch(.16 .035 320);--ink-2: oklch(.21 .045 320);--ink-3: oklch(.29 .05 320);--parchment: oklch(.94 .03 85);--parchment-dim: oklch(.85 .04 85);--parchment-edge: oklch(.68 .06 80);--ink-text: oklch(.25 .05 320);--gold: oklch(.8 .14 85);--gold-deep: oklch(.65 .13 70);--ember: oklch(.6 .21 30);--spell: oklch(.72 .17 150);--faded: oklch(.64 .045 320);--font: "Fraunces", "Iowan Old Style", Georgia, serif;--ease-out: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:radial-gradient(120% 90% at 50% -10%,var(--ink-2),var(--ink) 60%) fixed var(--ink);color:var(--parchment);font-family:var(--font);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer;touch-action:manipulation}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.btn--play:focus-visible{outline-color:var(--parchment)}#root{min-height:100dvh;display:flex;flex-direction:column}main{flex:1;width:min(100%,30rem);margin:0 auto;display:flex;flex-direction:column;padding:max(env(safe-area-inset-top),.75rem) 1.25rem max(env(safe-area-inset-bottom),1rem)}.btn{min-height:3.25rem;padding:.6rem 1.6rem;border-radius:999px;font-weight:640;font-size:1.05rem;letter-spacing:.01em;transition:transform .12s var(--ease-out)}.btn--play{background:linear-gradient(oklch(.85 .13 88),var(--gold));color:var(--ink-text);font-weight:800;font-size:1.3rem;min-height:3.9rem;padding-inline:3.2rem;box-shadow:0 5px 0 var(--gold-deep),0 12px 28px #c17f2159}.btn--play:active{transform:translateY(4px);box-shadow:0 1px 0 var(--gold-deep)}.btn--ghost{color:var(--faded);box-shadow:inset 0 0 0 1.5px var(--ink-3)}.btn--ghost:active{transform:scale(.96)}.btn--skip{color:#f88d67;box-shadow:inset 0 0 0 1.5px #8c352a}.btn--skip:active{transform:scale(.96)}.mute{font-size:1.05rem;opacity:.55;min-width:2.4rem;min-height:2.4rem}.mute--corner{position:absolute;top:max(env(safe-area-inset-top),.75rem);right:1rem}.trail{font-size:1.35rem;letter-spacing:.12em;text-align:center;margin:.4rem 0;word-break:break-all}.start{position:relative;align-items:center;justify-content:center;gap:1.1rem;text-align:center}.logo{margin:0;font-size:clamp(2.6rem,11vw,3.4rem);font-weight:900;font-variation-settings:"opsz" 144;letter-spacing:-.02em;line-height:1}.logo em{font-style:italic;color:var(--gold)}.daily-chip{margin:.55rem 0 0;color:var(--faded);font-size:.95rem;letter-spacing:.14em;text-transform:uppercase}.tagline{margin:0;color:var(--faded);font-style:italic;font-size:1.02rem}.start__fresh,.start__played{display:flex;flex-direction:column;align-items:center;gap:1.15rem}.start__played-title{margin:0;font-style:italic;font-weight:640;font-size:1.35rem}.start__played-meta,.over__meta{margin:0;color:var(--faded)}.start__next{margin:.4rem 0 0;color:var(--faded);font-size:.9rem;font-style:italic}.start__stats{padding-top:1.4rem;color:var(--faded);font-size:.88rem;letter-spacing:.06em;text-align:center}.demo{display:flex;flex-direction:column;align-items:center;gap:.55rem;opacity:.9}.demo__slots,.demo__rack{display:flex;gap:.3rem}.demo__slot,.demo__tile{width:2.1rem;height:2.1rem;display:grid;place-items:center;border-radius:.55rem;font-weight:800;font-size:1rem}.demo__slot{background:#0c040f;box-shadow:inset 0 2px 5px #00000080;color:var(--ink-text)}.demo__slot--filled{background:var(--parchment);animation:pop-in .18s var(--ease-out)}.demo--solved .demo__slot--filled{background:var(--spell);transition:background .15s}.demo__tile{background:linear-gradient(var(--parchment),var(--parchment-dim));color:var(--ink-text);box-shadow:0 2.5px 0 var(--parchment-edge);transition:opacity .2s}.demo__tile--used{opacity:.22}.demo__caption{margin:.15rem 0 0;color:var(--faded);font-size:.82rem;font-style:italic;letter-spacing:.04em}.countdown{align-items:center;justify-content:center}.countdown__num{font-size:7rem;font-weight:900;color:var(--gold);animation:count-pop .34s var(--ease-out) both}@keyframes count-pop{0%{transform:scale(1.7);opacity:0}to{transform:scale(1);opacity:1}}.run{gap:.7rem}.run__hud{display:flex;align-items:center;gap:.5rem}.hud-spacer{flex:1}.hud-chip{padding:.28rem .85rem;border-radius:999px;background:#2a172ecc;font-size:.92rem;color:var(--parchment)}.hud-chip--practice{color:var(--gold);font-style:italic}.hud-time{font-size:1.55rem;font-weight:800;font-variant-numeric:tabular-nums;min-width:3.2rem;text-align:right}.hud-time--low{color:var(--ember);animation:heartbeat 1s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1)}12%{transform:scale(1.14)}24%{transform:scale(1)}}.timer{height:.62rem;border-radius:999px;background:#0a030c;box-shadow:inset 0 1px 4px #0000008c;overflow:hidden}.timer__fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold-deep),var(--gold));box-shadow:0 0 12px #e7b6438c;transition:width .1s linear}.run--low .timer__fill{background:linear-gradient(90deg,oklch(.45 .18 30),var(--ember));box-shadow:0 0 14px #e23726a6}.run--low:after{content:"";position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 90px #ba0d0166;animation:vignette 1s ease-in-out infinite}@keyframes vignette{50%{opacity:.35}}.stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(.7rem,3vh,1.4rem)}.slots--reveal .slot--ghost{background:#1c0c20;box-shadow:inset 0 2px 7px #00000073,inset 0 0 0 1.5px var(--gold-deep);color:var(--gold);font-style:italic;animation:ghost-in .24s var(--ease-out) both;animation-delay:calc(var(--s) * 50ms)}.slots--reveal-skip .slot--ghost{animation:none}@keyframes ghost-in{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.slots{position:relative;display:flex;gap:.42rem}.slot{width:clamp(2.5rem,11vw,3.1rem);aspect-ratio:1;border-radius:.8rem;display:grid;place-items:center;background:#0c040f;box-shadow:inset 0 2px 7px #0000008c,inset 0 0 0 1.5px var(--ink-3);font-size:1.5rem;font-weight:800;text-transform:uppercase;color:var(--ink-text)}.slot--filled{background:var(--parchment);box-shadow:inset 0 0 0 2px var(--gold-deep);animation:pop-in .16s var(--ease-out)}@keyframes pop-in{0%{transform:scale(.55)}to{transform:scale(1)}}.slots--solve .slot{background:var(--spell);box-shadow:inset 0 0 0 2px #05893e;animation:solve-pop .4s var(--ease-out) both;animation-delay:calc(var(--s) * 40ms)}@keyframes solve-pop{30%{transform:translateY(-9px) scale(1.08)}to{transform:translateY(0) scale(1)}}.slots--wrong{animation:shake .34s linear}.slots--wrong .slot--filled{background:#f87966;box-shadow:inset 0 0 0 2px var(--ember)}@keyframes shake{20%{transform:translate(-9px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}.bonus{position:absolute;top:-.6rem;right:-.4rem;color:var(--spell);font-weight:900;font-size:1.25rem;animation:rise .7s var(--ease-out) forwards;pointer-events:none}@keyframes rise{to{transform:translateY(-2.6rem);opacity:0}}.burst{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.burst i{position:absolute;width:.45rem;height:.45rem;border-radius:50%;background:var(--gold);animation:spark .55s var(--ease-out) forwards;transform:rotate(calc(var(--n) * 45deg)) translate(0)}.burst i:nth-child(2n){background:var(--spell)}@keyframes spark{to{transform:rotate(calc(var(--n) * 45deg)) translate(4.5rem) scale(0);opacity:0}}.rack{--gap: .55rem;--tile: clamp(3rem, calc(78vw / var(--cols) - var(--gap)), 4.6rem);display:flex;flex-wrap:wrap;gap:var(--gap);justify-content:center;width:calc(var(--cols) * var(--tile) + (var(--cols) - 1) * var(--gap))}.tile{width:var(--tile);aspect-ratio:1;border-radius:1rem;display:grid;place-items:center;background:linear-gradient(var(--parchment),var(--parchment-dim));color:var(--ink-text);font-weight:850;font-size:calc(var(--tile) * .46);text-transform:uppercase;box-shadow:0 4px 0 var(--parchment-edge),0 8px 18px #0006;animation:deal-in .34s var(--ease-out) both;animation-delay:calc(var(--i) * 45ms);transition:transform .1s var(--ease-out),opacity .16s,box-shadow .1s}@keyframes deal-in{0%{transform:translateY(1.4rem) scale(.7);opacity:0}}.tile:active{transform:translateY(3px) scale(.97);box-shadow:0 1px 0 var(--parchment-edge),0 3px 8px #00000059}.tile--used{opacity:.22;transform:scale(.9);box-shadow:none;pointer-events:none}.rack--dimmed{opacity:.3;transition:opacity .2s;pointer-events:none}.actions{display:flex;justify-content:space-between;gap:.6rem;padding-top:.4rem}.actions .btn{flex:1;font-size:.98rem;padding-inline:.5rem}.over{align-items:center;justify-content:center;gap:.9rem;text-align:center}.over__kicker{margin:0;color:var(--faded);letter-spacing:.14em;text-transform:uppercase;font-size:.85rem}.over__title{margin:0;font-style:italic;font-weight:900;font-size:clamp(1.9rem,8vw,2.4rem);font-variation-settings:"opsz" 144}.over__score{margin:.4rem 0 0;display:flex;flex-direction:column;align-items:center;line-height:1}.over__score-num{font-size:5.4rem;font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums}.over__score-label{color:var(--faded);font-size:1rem;letter-spacing:.1em}.over__note{margin:0;color:var(--faded);font-style:italic;font-size:.92rem}.over__actions{display:flex;gap:.7rem}@media(prefers-reduced-motion:reduce){.slots--wrong,.hud-time--low,.run--low:after,.countdown__num,.tile,.slots--solve .slot,.bonus,.burst i{animation:none}.btn,.tile{transition:none}}@media(hover:hover){.btn--play:hover{transform:translateY(-1px)}.btn--ghost:hover,.btn--skip:hover{color:var(--parchment)}}
