@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fredoka-latin-600-normal-C4zohCW5.woff2)format("woff2"),url(/assets/fredoka-latin-600-normal-CcrEjrB4.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fredoka-latin-700-normal-BOIZVyIN.woff2)format("woff2"),url(/assets/fredoka-latin-700-normal-C8FeHd3X.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-400-normal-r8SDr6Up.woff2)format("woff2"),url(/assets/nunito-latin-400-normal-DKg4f3fz.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2)format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/nunito-latin-900-normal-BVB1fGs6.woff2)format("woff2"),url(/assets/nunito-latin-900-normal-CVn49sIn.woff)format("woff")}:root{color:oklch(20% .035 68);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:oklch(98.5% .026 86);font-family:Nunito,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;font-weight:700;line-height:1.45}*{box-sizing:border-box}html{background:oklch(98.5% .026 86);min-width:320px}body{background:oklch(98.5% .026 86);min-width:320px;min-height:100svh;margin:0;overflow-x:hidden}html:has(.app-shell.is-low-tide){background:oklch(96.5% .035 40)}html:has(.app-shell.is-low-tide) body{background:oklch(96.5% .035 40)}html:has(.app-shell.is-results-tint){background:oklch(98.5% .026 86)}html:has(.app-shell.is-results-tint) body{background:oklch(98.5% .026 86)}html:has(.app-shell.is-results-tint-deadend){background:oklch(96.5% .035 40)}html:has(.app-shell.is-results-tint-deadend) body{background:oklch(96.5% .035 40)}button{-webkit-tap-highlight-color:transparent}button:focus-visible{outline-offset:3px;outline:3px solid oklch(70% .17 240);box-shadow:0 0 0 6px oklch(98.5% .024 86/.92)}#root{min-height:100svh}.app-message{text-align:center;place-content:center;gap:18px;min-height:100svh;display:grid}.app-message-logo{font-family:var(--font-game);color:var(--ink);letter-spacing:.01em;font-size:clamp(1.8rem,8vw,2.6rem);font-weight:700}.app-message-logo.is-pulsing .logo-tile{animation:1.1s ease-in-out infinite message-tile-pulse}.app-message-logo.is-pulsing .logo-tile:last-of-type{animation-delay:.22s}.app-message-text{color:var(--ink-quiet);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:clamp(.95rem,2dvh,1.1rem);font-weight:800}.app-message-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}@keyframes message-tile-pulse{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.app-shell,.modal-backdrop{--font-game:Fredoka, Nunito, ui-rounded, system-ui, sans-serif;--font-ui:Nunito, ui-rounded, system-ui, sans-serif;--canvas:oklch(98.5% .026 86);--canvas-2:oklch(96.5% .036 82);--surface:oklch(99.8% .014 88);--surface-warm:oklch(97.5% .03 82);--ink:oklch(22% .035 62);--ink-soft:oklch(38% .035 62/.72);--ink-quiet:oklch(47% .035 62/.64);--sand-edge:oklch(79% .07 74);--sand-edge-deep:oklch(65% .08 70);--leaf:oklch(72% .17 145);--leaf-fill:oklch(53% .16 145);--leaf-bright:oklch(54% .16 145);--leaf-edge:oklch(39% .12 145);--amber:oklch(78% .15 70);--amber-fill:oklch(74% .15 70);--amber-edge:oklch(55% .12 66);--violet:oklch(65% .15 290);--violet-soft:oklch(84% .07 292);--violet-edge:oklch(42% .13 290);--sky:oklch(72% .12 240);--sky-edge:oklch(50% .13 240);--coral:oklch(70% .12 25);--coral-edge:oklch(47% .11 25);--warm-white:oklch(99.5% .012 88);--focus:oklch(66% .15 240);--shadow-soft:oklch(38% .06 62/.14);--shadow-contact:oklch(28% .05 62/.22);--ease-out-quint:cubic-bezier(.22, 1, .36, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);font-family:var(--font-ui)}.app-shell{isolation:isolate;box-sizing:border-box;width:min(100%,980px);min-height:100dvh;color:var(--ink);transition:background .26s var(--ease-out-quint), color .22s var(--ease-out-quint);background:0 0;grid-template-rows:auto minmax(0,1fr);align-content:stretch;gap:clamp(14px,2.8vw,24px);margin:0 auto;padding:clamp(14px,3vw,30px);display:grid;position:relative;overflow:hidden}.rollover-banner{z-index:45;top:max(10px, env(safe-area-inset-top));border:2px solid var(--leaf-edge);background:var(--leaf);color:#18351e;min-height:44px;box-shadow:0 5px 0 var(--leaf-edge), 0 12px 28px #283c1e2e;cursor:pointer;border-radius:999px;padding:10px 18px;font:800 .9rem/1.2 Nunito,sans-serif;position:fixed;left:50%;transform:translate(-50%)}.page-backdrop{z-index:-1;pointer-events:none;background:radial-gradient(circle, oklch(53% .04 70/.1) 0 1px, transparent 1.4px) 0 0 / 22px 22px, var(--canvas);position:fixed;inset:-80px 0 -170px}.page-backdrop:before{content:"";opacity:0;transition:opacity .26s var(--ease-out-quint,ease-out);background:radial-gradient(circle,oklch(53% .04 70/.08) 0 1px,#0000 1.4px) 0 0/22px 22px,oklch(96.5% .035 40);position:absolute;inset:0}.page-backdrop.is-deadend:before{opacity:1}.app-shell.is-complete{overflow:visible}.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}.game-hud{text-align:center;gap:clamp(20px,3.8dvh,44px);margin-bottom:clamp(12px,2.4dvh,30px);display:grid}.hud-title-row{grid-template-columns:minmax(82px,1fr) minmax(0,auto) minmax(82px,1fr);align-items:start;gap:10px;display:grid}.title-block{align-self:center;min-width:0}.shift-logo{color:var(--ink);font-family:var(--font-game);letter-spacing:0;white-space:nowrap;justify-content:center;align-items:baseline;gap:clamp(1px,.28vw,3px);margin:0;font-size:min(clamp(1.6rem,6.4vw,4.2rem),clamp(1.6rem,5.2dvh,4.2rem));font-weight:700;line-height:.9;display:inline-flex}.logo-space{width:.3em;display:inline-block}.logo-letter{transform-origin:50% 84%;display:inline-block}.shift-logo.is-arriving .logo-letter{animation:logo-settle .52s var(--ease-out-expo) both}.logo-letter:nth-child(2n){animation-delay:36ms}.logo-letter:nth-child(3n){animation-delay:72ms}.logo-letter-small{font-size:.85em;line-height:1;transform:translateY(-.02em)}.logo-tile,.logo-badge{border:2px solid oklch(27% .045 62);border-bottom:.14em solid var(--sand-edge);background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.78), transparent 42%), linear-gradient(180deg, oklch(100% .006 88), oklch(97% .025 82) 72%), var(--surface);min-width:.94em;height:1.02em;box-shadow:inset 0 .08em 0 oklch(100% 0 0/.74), inset 0 -.02em 0 oklch(36% .04 62/.1), 0 .08em .3em var(--shadow-soft);border-radius:.18em;justify-content:center;align-items:center;padding:.1em .16em .12em;display:inline-flex;transform:none}.logo-tile-green{border-color:var(--leaf-edge);border-bottom-color:var(--leaf-edge);background:radial-gradient(circle at 32% 18%, oklch(100% 0 0/.22), transparent 40%), linear-gradient(180deg, var(--leaf-bright), var(--leaf-fill) 78%);color:var(--warm-white);transform:none}.logo-tile-sky{border-color:var(--sky-edge);border-bottom-color:var(--sky-edge);background:radial-gradient(circle at 32% 18%, oklch(100% 0 0/.28), transparent 40%), linear-gradient(180deg, oklch(77% .12 240), var(--sky) 78%);color:var(--warm-white);transform:none}.logo-badge{border-color:var(--amber-edge);border-bottom-color:var(--amber-edge);color:oklch(25% .05 62);background:oklch(91% .08 75);border-radius:999px;align-self:center;min-width:auto;height:auto;margin-left:.38em;padding:.18em .34em .22em;font-size:.54em;line-height:1;transform:translateY(.02em)}.hud-stat span,.board-meta,.completion-bonus{color:var(--amber-edge);margin:-4px 0 10px;font-size:.82rem;font-weight:800}.completion-kicker{color:var(--ink-quiet);letter-spacing:.055em;text-transform:uppercase;margin:0;font-size:clamp(.66rem,1.9vw,.78rem);font-weight:900}.hud-stat{text-align:left;justify-self:start;gap:1px;min-width:82px;display:grid}.hud-stat>span{color:var(--amber-edge);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;margin:0 0 2px;font-size:clamp(.88rem,2.6vw,1.12rem);font-weight:900}.hud-stat strong{color:var(--ink);font-family:var(--font-game);text-shadow:0 2px oklch(91% .08 75/.92),0 5px oklch(75% .15 70/.34),0 10px 18px oklch(70% .12 70/.2);font-size:min(clamp(2rem,7.4vw,4.5rem),clamp(2rem,5.6dvh,4.5rem));font-weight:700;line-height:.88;position:relative}.hud-stat strong:after{content:"";z-index:-1;background:linear-gradient(90deg, var(--amber-fill), oklch(82% .16 72));opacity:.66;border-radius:999px;height:.28em;position:absolute;bottom:-2px;left:2px;right:18%}.hud-stat>.streak-badge{border:1.5px solid var(--amber-edge);border-bottom:3px solid var(--amber-edge);color:oklch(27% .055 62);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;background:radial-gradient(circle at 32% 18%,oklch(100% 0 0/.38),#0000 42%),linear-gradient(oklch(95% .07 78),oklch(86% .11 76));border-radius:999px;width:fit-content;max-width:76px;margin:3px 0 0;padding:2px 7px 3px;font-size:clamp(.56rem,1.7vw,.72rem);font-weight:900;line-height:1;box-shadow:inset 0 1px oklch(100% 0 0/.58),0 5px 10px oklch(55% .12 66/.13)}.hud-actions{justify-content:center;align-items:center;gap:8px;display:flex}.app-shell.is-viewing-results .play-area,.app-shell.is-viewing-results .bottom-action-bar{visibility:hidden}.bottom-action-bar.is-behind-modal{visibility:hidden;opacity:0}.bottom-action-bar{transition:opacity .2s ease-out;display:none}.desktop-rail{display:none}.icon-button,.tool-button,.preview-bar{border:2px solid oklch(31% .04 62/.72);border-bottom:6px solid var(--sand-edge);background:var(--surface);min-height:clamp(44px,6.2dvh,60px);color:var(--ink);box-shadow:inset 0 2px 0 oklch(100% 0 0/.84), 0 12px 24px var(--shadow-soft);font-size:clamp(.9rem,2.2dvh,1.2rem);font:inherit;cursor:pointer;transition:background-color .16s var(--ease-out-quint), border-color .16s var(--ease-out-quint), box-shadow .16s var(--ease-out-quint), transform .16s var(--ease-out-quint), opacity .16s var(--ease-out-quint);border-radius:999px;font-size:clamp(.86rem,2.1dvh,1.14rem);font-weight:900}.icon-button,.tool-button{padding:0 14px 2px}.help-button{flex:0 0 44px;width:44px;padding:0}.overflow-menu{justify-self:end;position:relative}.icon-button.menu-button{aspect-ratio:1;place-content:center;align-self:center;gap:3px;width:clamp(44px,5.8dvh,56px);min-width:44px;height:clamp(44px,5.8dvh,56px);min-height:0;padding:0 0 2px;display:grid}.menu-button span{background:currentColor;border-radius:999px;width:15px;height:2.5px}.menu-build{color:var(--ink-quiet,oklch(55% .03 62));font-family:var(--font-ui);letter-spacing:.06em;text-align:center;text-transform:uppercase;border-top:1px solid oklch(31% .04 62/.14);margin-top:4px;padding:6px 12px 2px;font-size:.62rem;font-weight:700;display:block}.menu-popover{z-index:8;border:2px solid oklch(31% .04 62/.72);border-bottom:6px solid var(--sand-edge);background:var(--surface);min-width:166px;box-shadow:inset 0 2px 0 oklch(100% 0 0/.78), 0 18px 28px var(--shadow-soft);border-radius:18px;padding:8px;position:absolute;top:calc(100% + 10px);right:0}.menu-popover button{width:100%;min-height:38px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;padding:0 10px;font-size:.86rem;font-weight:900}.menu-popover button:hover,.is-keyboard-nav .menu-popover button:focus-visible{background:oklch(90% .07 145);outline:none}.icon-button:hover:not(:disabled),.tool-button:hover:not(:disabled),.preview-bar:hover:not(:disabled){border-color:var(--ink);transform:translateY(-2px);box-shadow:inset 0 2px oklch(100% 0 0/.92),0 15px 28px oklch(35% .06 62/.16)}.icon-button:active:not(:disabled),.tool-button:active:not(:disabled),.preview-bar:active:not(:disabled){box-shadow:inset 0 2px 5px oklch(30% .04 62/.08), 0 7px 14px var(--shadow-soft);border-bottom-width:3px;transform:translateY(3px)}.icon-button:disabled,.tool-button:disabled,.preview-bar:disabled{cursor:default;opacity:.45}.pivot-tool{justify-content:center;align-items:center;gap:9px;display:inline-flex}.pivot-tool.is-active{border-color:var(--leaf-edge);border-bottom-color:var(--leaf-edge);background:var(--leaf-fill);color:var(--warm-white);box-shadow:inset 0 2px oklch(100% 0 0/.22),0 12px 24px oklch(42% .13 145/.22)}.pivot-dots{align-items:center;gap:4px;display:inline-flex}.pivot-dots span{border:2px solid var(--sky-edge);background:var(--surface-warm);border-radius:50%;width:8px;height:8px;box-shadow:inset 0 1px oklch(100% 0 0/.8)}.pivot-dots .is-filled{border-color:var(--sky-edge);background:var(--sky)}.pivot-tool.is-active .pivot-dots span{background:oklch(96% .035 88/.42);border-color:oklch(96% .035 88/.88)}.pivot-tool.is-active .pivot-dots .is-filled{background:var(--sky)}.play-area{flex-direction:column;align-items:center;gap:clamp(14px,2.6dvh,30px);width:100%;min-height:0;display:flex}.play-area:before{content:"";flex:.8 0 0}.play-area:after{content:"";flex:1 0 0}.play-area.is-complete{align-content:start;gap:0}.app-shell.is-round-over{flex-direction:column;display:flex;overflow:visible}.app-shell.is-round-over .play-area{flex:auto}.app-shell.is-round-over .play-area:before,.app-shell.is-round-over .play-area:after{content:none}.app-shell.is-round-over .completion-celebration,.app-shell.is-round-over .dead-end-celebration{margin-block:auto;padding-block:6px}@media (width>=900px){.app-shell.is-round-over{display:grid}.app-shell.is-round-over .play-area{flex:initial}}.preview-bar{box-sizing:border-box;text-align:left;background:oklch(99.8% .014 88/.94);grid-template-columns:minmax(0,1fr) auto minmax(78px,auto);align-items:center;gap:10px;width:min(100%,540px);height:58px;min-height:58px;padding:6px 6px 8px 30px;display:grid}.preview-word{min-width:0;color:var(--ink);font-family:var(--font-game);letter-spacing:0;text-overflow:ellipsis;font-size:clamp(1.22rem,3.3dvh,1.85rem);font-weight:700;line-height:1;overflow:hidden}.preview-word.is-empty{color:var(--ink-quiet);font-family:var(--font-ui);font-size:clamp(1.1rem,3.6vw,1.32rem);font-weight:900}.preview-score{min-width:44px;color:var(--amber-edge);font-family:var(--font-game);text-align:center;font-variant-numeric:tabular-nums;border:2px solid #0000;border-bottom-width:4px;border-radius:999px;font-size:clamp(1rem,3vw,1.24rem);font-weight:700;line-height:1}.preview-score:empty{min-width:0}.preview-score:not(:empty){justify-content:center;align-items:baseline;gap:5px;padding:5px 8px 7px;display:inline-flex}.preview-score-tag{font-family:var(--font-ui);letter-spacing:.07em;text-transform:uppercase;font-size:.78rem;font-weight:1000;line-height:1}.preview-score-number{font-size:1.18em;font-weight:800}.preview-score-mult{font-family:var(--font-ui);letter-spacing:.02em;background:color-mix(in oklab, currentColor 14%, transparent);border-radius:999px;padding:3px 6px 4px;font-size:.72rem;font-weight:1000;line-height:1}.preview-enter,.preview-enter-spacer{min-width:78px}.preview-enter{border:2px solid var(--leaf-edge);border-bottom:5px solid var(--leaf-edge);background:var(--leaf-fill);min-height:42px;color:var(--warm-white);font:inherit;cursor:pointer;border-radius:999px;min-width:clamp(84px,20vw,124px);font-size:clamp(1rem,2.4dvh,1.28rem);font-weight:900;box-shadow:inset 0 2px oklch(100% 0 0/.22),0 9px 18px oklch(42% .13 145/.2)}.preview-enter:hover{background:var(--leaf-bright)}.preview-enter:active{border-bottom-width:2px;transform:translateY(3px)}.preview-enter-spacer{display:block}.preview-bar[aria-disabled=true]{cursor:default}.preview-bar[aria-disabled=true]:hover{border-color:oklch(31% .04 62/.72);border-bottom-color:var(--sand-edge);box-shadow:inset 0 2px 0 oklch(100% 0 0/.84), 0 12px 24px var(--shadow-soft);background:oklch(99.8% .014 88/.94);transform:none}.preview-bar.is-rejected,.preview-bar.is-rejected:hover{background:oklch(95% .045 28);border-color:oklch(52% .17 28);animation:.24s ease-out reject-nudge;box-shadow:inset 0 2px oklch(100% 0 0/.5),0 12px 24px oklch(52% .17 28/.14)}.preview-bar.is-rejected .preview-word{color:oklch(44% .16 28)}.preview-reject{color:oklch(44% .16 28);font-family:var(--font-ui);white-space:nowrap;font-size:clamp(1.1rem,3.6vw,1.32rem);font-weight:900;line-height:1}@keyframes reject-nudge{0%,to{transform:translate(0)}25%{transform:translate(-5px)}60%{transform:translate(4px)}}.preview-bar.is-valid{border-color:var(--leaf-edge);border-bottom-color:var(--leaf-edge);background:var(--leaf-fill);color:var(--warm-white);box-shadow:inset 0 2px oklch(100% 0 0/.22),0 16px 30px oklch(42% .13 145/.22)}.preview-bar.is-valid .preview-word,.preview-bar.is-valid .preview-score{color:var(--warm-white)}.preview-bar.is-valid .preview-score{border-color:var(--amber-edge);border-bottom-color:var(--amber-edge);color:var(--ink);background:oklch(91% .075 78);box-shadow:0 4px oklch(34% .08 66/.24)}.preview-bar .preview-score.is-splash-value{border-color:var(--violet-edge);border-bottom-color:var(--violet-edge);background:linear-gradient(180deg, oklch(90% .05 292), var(--violet-soft));color:var(--violet-edge);box-shadow:inset 0 1px oklch(100% 0 0/.55),0 4px oklch(42% .13 290/.24)}.preview-bar.is-splash-preview .preview-score.is-splash-value{animation:.24s cubic-bezier(.2,1.35,.42,1) both preview-splash-pop}.desktop-rail .no-words-banner{display:none}.play-area{position:relative}.play-area .no-words-banner{z-index:6;margin-inline:auto;animation:.38s cubic-bezier(.22,1.2,.32,1) both banner-drop-in;position:absolute;top:0;left:0;right:0}.play-area .no-words-banner.is-leaving,.desktop-rail .no-words-banner.is-leaving{pointer-events:none;animation:.28s cubic-bezier(.55,0,.85,.5) both banner-drop-out}.desktop-rail .no-words-banner{animation:.38s cubic-bezier(.22,1.2,.32,1) both banner-drop-in}@keyframes banner-drop-in{0%{opacity:0;transform:translateY(-130%)}55%{opacity:1}78%{transform:translateY(5%)}to{opacity:1;transform:translateY(0)}}@keyframes banner-drop-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(90%)}}.no-words-banner{box-sizing:border-box;border:2px solid var(--leaf-edge);border-bottom:7px solid var(--leaf-edge);background:radial-gradient(circle at 12% 18%, oklch(100% 0 0/.74), transparent 34%), linear-gradient(135deg, var(--warm-white), oklch(91% .07 145));width:min(100%,540px);color:var(--ink);border-radius:20px;justify-content:space-between;align-items:center;gap:14px;padding:12px 15px 14px;display:flex;box-shadow:inset 0 2px oklch(100% 0 0/.78),0 14px 26px oklch(39% .12 145/.16)}.no-words-banner div{gap:2px;min-width:0;display:grid}.no-words-banner strong{font-family:var(--font-game);font-size:clamp(1.16rem,4vw,1.46rem);font-weight:700;line-height:1}.no-words-banner span,.no-words-banner p{color:var(--ink-soft);margin:0;font-size:.86rem;font-weight:900}.no-words-banner p{border:2px solid var(--amber-edge);border-bottom:4px solid var(--amber-edge);color:var(--ink);white-space:nowrap;background:oklch(93% .07 78);border-radius:999px;flex:none;padding:5px 9px 7px}.board-shell{justify-items:center;gap:0;width:100%;min-height:0;margin-top:clamp(4px,1.2dvh,14px);display:grid}.board-shell.is-shaking .game-board{animation:board-shake .26s var(--ease-out-quint)}.game-board.is-entering .tile:not(.is-clearing){animation:.86s linear backwards tile-spill;animation-delay:var(--entry-delay)}.game-board{--tile-gap:clamp(4px, 1.15vw, 8px);--board-size:min(540px, calc(100svw - 24px));--tile-size:calc((var(--board-size) - ((var(--grid-size) - 1) * var(--tile-gap))) / var(--grid-size));width:var(--board-size);height:var(--board-size);touch-action:none;-webkit-user-select:none;user-select:none;position:relative}.selection-trail{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.selection-trail polyline{fill:none;stroke:oklch(48% .16 145/.9);stroke-width:16px;stroke-linecap:round;stroke-linejoin:round}.tile{--tile-edge:var(--sand-edge);--tile-edge-size:clamp(6px, calc(var(--tile-size) * .12), 9px);z-index:2;width:var(--tile-size);height:var(--tile-size);box-sizing:border-box;border:2px solid oklch(31% .04 62/.72);border-bottom:var(--tile-edge-size) solid var(--tile-edge);border-radius:calc(var(--tile-size) * .18);background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.78), transparent 42%), linear-gradient(180deg, oklch(100% .006 88), oklch(97% .025 82) 72%), var(--surface);color:var(--ink);font:inherit;cursor:pointer;touch-action:none;transform:var(--tile-transform);transition:transform .22s var(--ease-out-expo), background-color .17s var(--ease-out-quint), border-color .17s var(--ease-out-quint), border-bottom-width .12s var(--ease-out-quint), color .17s var(--ease-out-quint), box-shadow .17s var(--ease-out-quint);position:absolute;top:0;left:0;box-shadow:inset 0 2px oklch(100% 0 0/.84),inset 0 -1px oklch(36% .04 62/.1),0 8px 16px oklch(31% .04 62/.12)}.tile:before{content:"";border-radius:calc(var(--tile-size) * .13);pointer-events:none;background:linear-gradient(oklch(100% 0 0/.72),oklch(100% 0 0/0));height:30%;position:absolute;inset:3px 5px auto}.tile:after{content:"";height:var(--tile-edge-size);border-radius:0 0 calc(var(--tile-size) * .14) calc(var(--tile-size) * .14);pointer-events:none;background:linear-gradient(oklch(100% 0 0/.1),oklch(24% .04 62/.12));position:absolute;bottom:0;left:2px;right:2px}@media (hover:hover) and (pointer:fine){.tile:hover:not(:disabled){transform:var(--tile-transform) translateY(-2px);box-shadow:inset 0 2px oklch(100% 0 0/.9),inset 0 -1px oklch(36% .04 62/.1),0 11px 20px oklch(31% .04 62/.15)}}.tile:active:not(:disabled){--tile-edge-size:clamp(3px, calc(var(--tile-size) * .055), 5px);transform:var(--tile-transform) translateY(4px);box-shadow:inset 0 2px 7px oklch(24% .04 62/.12),0 5px 10px oklch(31% .04 62/.1)}.tile.is-selected{--tile-edge:var(--leaf-edge);z-index:3;border-color:var(--leaf-edge);background:radial-gradient(circle at 32% 18%, oklch(100% 0 0/.22), transparent 40%), linear-gradient(180deg, var(--leaf-bright), var(--leaf-fill) 78%);color:var(--warm-white);box-shadow:inset 0 2px oklch(100% 0 0/.2),0 5px 8px -5px oklch(42% .13 145/.4)}.tile.is-pivot-first{--tile-edge:var(--sky-edge);border-color:var(--sky-edge);background:radial-gradient(circle at 32% 18%, oklch(100% 0 0/.28), transparent 40%), linear-gradient(180deg, oklch(77% .12 240), var(--sky) 78%);color:var(--warm-white);box-shadow:inset 0 0 0 3px oklch(100% 0 0/.26),0 5px 8px -5px oklch(50% .13 240/.36)}.tile.is-pivot-swap-target{--tile-edge:oklch(76% .06 240);background:radial-gradient(circle at 32% 18%,oklch(100% 0 0/.5),#0000 42%),linear-gradient(oklch(99% .008 240),oklch(96.5% .02 240) 78%);border-color:oklch(76% .06 240);box-shadow:inset 0 0 0 3px oklch(78% .08 240/.14),inset 0 2px oklch(100% 0 0/.7),0 6px 12px oklch(55% .1 240/.1)}.tile.is-splash-soon{--tile-edge:oklch(72% .07 292);color:oklch(50% .11 290);background:radial-gradient(circle at 32% 18%,oklch(100% 0 0/.4),#0000 42%),linear-gradient(oklch(97.5% .02 292),oklch(93% .04 292) 82%);border-color:oklch(72% .07 292);box-shadow:inset 0 2px oklch(100% 0 0/.4),0 5px 8px -5px oklch(43% .13 290/.22)}.tile.is-splashed{--tile-edge:var(--violet-edge);border-color:var(--violet-edge);background:radial-gradient(circle at 32% 18%, oklch(100% 0 0/.32), transparent 42%), linear-gradient(180deg, oklch(90% .05 292), var(--violet-soft) 82%);color:var(--violet-edge);box-shadow:inset 0 2px oklch(100% 0 0/.28),0 5px 8px -5px oklch(43% .13 290/.34)}.tile.is-splashed.is-pivot-swap-target{border-color:oklch(62% .1 240);box-shadow:inset 0 0 0 3px oklch(100% 0 0/.28),inset 0 2px oklch(100% 0 0/.28),0 6px 12px oklch(50% .13 240/.16)}.tile.is-splashed.is-selected{--tile-edge:var(--leaf-edge);border-color:var(--leaf-edge);background:radial-gradient(circle at 32% 18%, oklch(100% 0 0/.22), transparent 40%), linear-gradient(180deg, var(--leaf-bright), var(--leaf-fill) 78%);color:var(--warm-white);box-shadow:inset 0 2px oklch(100% 0 0/.2),0 5px 8px -5px oklch(42% .13 145/.4)}.tile.is-clearing{z-index:6;pointer-events:none;animation:.62s linear both tile-spill-out;animation-delay:var(--clear-delay)}.tile-face{inset:0 0 var(--tile-edge-size);transform-origin:50% 58%;display:block;position:absolute}.tile.is-selected .tile-face{animation:.17s cubic-bezier(.2,1.35,.42,1) both selected-pop}.tile.is-splash-new .tile-face{animation:.38s cubic-bezier(.18,1.06,.28,1) both splash-tile;animation-delay:var(--splash-delay)}.tile-letter{font-family:var(--font-game);font-size:calc(var(--tile-size) * .5);place-items:center;font-weight:600;line-height:1;display:grid;position:absolute;inset:0}.tile-value{min-width:.78em;color:var(--amber-edge);font-family:var(--font-game);font-size:clamp(.62rem, calc(var(--tile-size) * .26), 1.05rem);text-align:center;text-shadow:0 1px oklch(100% 0 0/.72);transform-origin:60% 30%;padding:0;font-weight:700;line-height:1;animation:.21s cubic-bezier(.2,1.45,.45,1) value-pop;position:absolute;bottom:1px;right:3px}.tile.is-selected .tile-value{color:oklch(96% .04 88);text-shadow:0 1px oklch(25% .08 145/.2)}.tile.is-splashed .tile-value{color:var(--violet-edge)}.tile.is-splashed.is-selected .tile-value{color:oklch(96% .04 88);text-shadow:0 1px oklch(25% .08 145/.2)}.tile.is-splash-new .tile-value{animation:value-pop .3s cubic-bezier(.2, 1.5, .45, 1) var(--splash-delay) both}.splash-wave,.splash-perimeter-cell,.score-chip{left:calc((var(--board-point-x) * (var(--tile-size) + var(--tile-gap))) + (var(--tile-size) / 2));top:calc((var(--board-point-y) * (var(--tile-size) + var(--tile-gap))) + (var(--tile-size) / 2));pointer-events:none;position:absolute}.splash-perimeter-cell{z-index:1;width:var(--tile-size);height:var(--tile-size);border:2px solid var(--violet-edge);border-radius:calc(var(--tile-size) * .18);opacity:0;transform:var(--tile-transform);animation:splash-perimeter .64s var(--ease-out-quint) forwards;background:oklch(82% .08 292/.24);top:0;left:0;box-shadow:0 0 oklch(65% .15 290/.22),inset 0 0 18px oklch(100% 0 0/.24)}.splash-wave{z-index:0;width:calc(var(--tile-size) * 1.15);height:calc(var(--tile-size) * 1.15);animation:splash-wave .58s var(--ease-out-quint) forwards;border:3px solid oklch(65% .15 290/.36);border-radius:999px;transform:translate(-50%,-50%)scale(.32);box-shadow:0 0 oklch(65% .15 290/.2),inset 0 0 24px oklch(84% .07 292/.22)}.score-chip{z-index:6;border:2px solid var(--amber-edge);border-bottom:5px solid var(--amber-edge);background:var(--amber-fill);color:var(--ink);font-family:var(--font-game);animation:score-chip-rise .76s var(--ease-out-expo) forwards;border-radius:14px;padding:6px 10px 8px;font-size:clamp(.92rem,1.9dvh,1.32rem);font-weight:700;line-height:1;transform:translate(-50%,-55%);box-shadow:inset 0 2px oklch(100% 0 0/.32),0 10px 18px oklch(55% .12 66/.2)}.score-chip.is-surge{border-color:var(--violet-edge);border-bottom-color:var(--violet-edge);background:linear-gradient(180deg, oklch(95% .04 292), var(--violet-soft));color:var(--violet-edge);animation:score-chip-rise-surge .86s var(--ease-out-expo) forwards;box-shadow:inset 0 2px oklch(100% 0 0/.5),0 10px 20px oklch(42% .13 290/.28)}@keyframes score-chip-rise-surge{0%{opacity:0;transform:translate(-50%,-40%)scale(.82)}16%{opacity:1;transform:translate(-50%,-66%)scale(1.16)}to{opacity:0;transform:translate(-50%,-142%)scale(1)}}.board-meta{justify-content:center;align-items:center;gap:12px;min-height:20px;display:flex}.board-meta span{min-width:84px}.board-meta strong{color:var(--leaf-edge)}.completion-celebration,.dead-end-celebration{align-content:start;justify-items:center;width:min(100%,540px);padding-top:clamp(2px,.8svh,8px);display:grid;position:relative;overflow:visible}.dead-end-glow-sweep{z-index:0;filter:blur(12px);opacity:0;pointer-events:none;width:min(112vw,760px);height:clamp(130px,29vw,200px);animation:dead-end-glow-sweep .92s var(--ease-out-expo) .12s both;background:linear-gradient(100deg,#0000 0 23%,oklch(72% .1 25/.22) 44%,#0000 64% 100%);border-radius:999px;position:absolute;top:-16px;left:50%;transform:translate(-78%)rotate(-4deg)}.dead-end-word{z-index:3;perspective:700px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(4px,1.4vw,12px);width:min(100%,520px);min-height:clamp(45px,12vw,64px);margin-bottom:clamp(6px,1.6vw,10px);display:grid;position:relative}.dead-end-word-group{gap:clamp(3px,.8vw,5px);display:inline-flex}.dead-end-word-group:first-child{justify-self:start}.dead-end-word-group:nth-child(2){justify-self:center}.dead-end-word-group:last-child{justify-self:end}.dead-end-title-tile{border:2px solid oklch(27% .045 62);border-bottom:clamp(5px, 1.2vw, 7px) solid var(--coral-edge);min-width:clamp(26px,7vw,39px);height:clamp(31px,8.2vw,45px);color:var(--ink);font-family:var(--font-game);opacity:0;transform-origin:50% 90%;background:radial-gradient(circle at 32% 20%,oklch(100% 0 0/.66),#0000 42%),linear-gradient(oklch(100% .006 88),oklch(97% .025 82) 74%);border-radius:clamp(7px,1.7vw,10px);justify-content:center;align-items:center;padding:0 .17em .08em;font-size:clamp(.96rem,4.2vw,1.42rem);font-weight:700;line-height:1;animation:.76s cubic-bezier(.2,.82,.22,1) both dead-end-letter-drop;display:inline-flex;box-shadow:inset 0 2px oklch(100% 0 0/.68),0 9px 16px oklch(31% .04 62/.13)}.dead-end-title-tile:first-child{animation-delay:.34s}.dead-end-title-tile:nth-child(2){animation-delay:.41s}.dead-end-title-tile:nth-child(3){animation-delay:.48s}.dead-end-word-group:nth-child(2) .dead-end-title-tile:first-child{animation-delay:.55s}.dead-end-word-group:nth-child(2) .dead-end-title-tile:nth-child(2){animation-delay:.62s}.dead-end-word-group:nth-child(3) .dead-end-title-tile:first-child{animation-delay:.69s}.dead-end-word-group:nth-child(3) .dead-end-title-tile:nth-child(2){animation-delay:.76s}.dead-end-word-group:nth-child(3) .dead-end-title-tile:nth-child(3){animation-delay:.83s}.dead-end-word-group:nth-child(3) .dead-end-title-tile:nth-child(4){animation-delay:.9s}.dead-end-word-group:nth-child(3) .dead-end-title-tile:nth-child(5){animation-delay:.97s}.completion-glow-sweep{z-index:0;filter:blur(10px);opacity:0;pointer-events:none;background:linear-gradient(100deg,#0000 0 24%,oklch(82% .15 72/.28) 44%,#0000 64% 100%);border-radius:999px;width:min(112vw,760px);height:clamp(136px,30vw,210px);position:absolute;top:-12px;left:50%;transform:translate(-74%)rotate(-4deg)}.completion-celebration.is-celebrating .completion-glow-sweep{animation:completion-glow-sweep .88s var(--ease-out-expo) both}.cleared-word{z-index:3;perspective:700px;justify-content:center;align-items:center;gap:clamp(3px,.9vw,6px);min-height:clamp(45px,12vw,64px);margin-bottom:clamp(6px,1.6vw,10px);display:flex;position:relative}.cleared-tile{border:2px solid oklch(27% .045 62);border-bottom:clamp(5px, 1.3vw, 8px) solid var(--sand-edge);min-width:clamp(29px,8vw,45px);height:clamp(32px,8.8vw,49px);color:var(--ink);font-family:var(--font-game);opacity:1;background:radial-gradient(circle at 32% 20%,oklch(100% 0 0/.74),#0000 42%),linear-gradient(oklch(100% .006 88),oklch(97% .025 82) 74%);border-radius:clamp(7px,1.8vw,10px);justify-content:center;align-items:center;padding:0 .18em .08em;font-size:clamp(1.02rem,4.7vw,1.64rem);font-weight:700;line-height:1;display:inline-flex;box-shadow:inset 0 2px oklch(100% 0 0/.72),0 10px 18px oklch(31% .04 62/.14)}.completion-celebration.is-celebrating .cleared-tile{opacity:0;transform-origin:50% 90%;animation:cleared-letter-assemble .92s var(--ease-out-quint) both}.completion-celebration.is-celebrating .cleared-tile:first-child{animation-delay:.26s}.completion-celebration.is-celebrating .cleared-tile:nth-child(2){animation-delay:.32s}.completion-celebration.is-celebrating .cleared-tile:nth-child(3){animation-delay:.38s}.completion-celebration.is-celebrating .cleared-tile:nth-child(4){animation-delay:.44s}.completion-celebration.is-celebrating .cleared-tile:nth-child(5){animation-delay:.5s}.completion-celebration.is-celebrating .cleared-tile:nth-child(6){animation-delay:.56s}.completion-celebration.is-celebrating .cleared-tile:nth-child(7){animation-delay:.62s}.completion-celebration.is-celebrating .cleared-tile:nth-child(8){animation-delay:.68s}.completion-panel{border:2px solid var(--amber-edge);border-bottom:8px solid var(--amber-edge);background:var(--surface);text-align:left;border-radius:28px;justify-self:center;width:min(100%,540px);padding:clamp(18px,4vw,26px);box-shadow:inset 0 2px oklch(100% 0 0/.74),0 20px 36px oklch(45% .1 66/.18)}.completion-panel--win{z-index:2;border-radius:24px;width:min(100%,520px);padding:clamp(12px,3.4vw,20px);position:relative}.completion-celebration.is-celebrating .completion-panel--win{opacity:0;transform-origin:50% 0;animation:completion-panel-rise .58s var(--ease-out-expo) .9s both}.completion-scoreline{margin-bottom:16px}.completion-scoreline h2{color:var(--ink);font-family:var(--font-game);letter-spacing:0;text-shadow:0 5px oklch(78% .15 70/.66);align-items:flex-end;gap:4px;margin:0;font-size:clamp(3rem,14vw,5.4rem);font-weight:700;line-height:.86;display:flex}.score-reference{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;padding-bottom:1px;display:inline-flex}.score-value{transform:translateY(-7px)}.completion-panel--win .completion-scoreline{margin-bottom:8px}.completion-panel--win .completion-scoreline h2{font-variant-numeric:tabular-nums;font-size:clamp(2.9rem,12.5vw,5.6rem)}.completion-scoreline h2 .score-max{color:var(--ink-quiet);text-shadow:none;font-size:.5em;font-weight:700}.completion-scoreline h2 .score-max small{font-size:.44em;font-family:var(--font-ui);letter-spacing:.04em;text-transform:uppercase;font-weight:800}.completion-pills{font-family:var(--font-ui);text-shadow:none;flex-wrap:wrap;gap:5px;display:flex}.completion-pills>span{border:2px solid var(--amber-edge);border-bottom:4px solid var(--amber-edge);color:oklch(25% .05 62);text-transform:uppercase;white-space:nowrap;background:oklch(91% .08 75);border-radius:999px;padding:4px 10px 5px;font-size:.66rem;font-weight:900;line-height:1.1}.completion-pills>.personal-best-pill{color:oklch(27% .08 145);background:oklch(90% .11 145);border-color:oklch(50% .13 145) oklch(50% .13 145) oklch(43% .13 145)}.completion-panel--win .completion-bonus{margin:0 0 9px}.completion-celebration.is-celebrating .completion-panel--win .completion-bonus{opacity:0;animation:completion-bonus-reveal .24s var(--ease-out-quint) 1.72s both}.completion-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.completion-stats div{background:oklch(99.5% .014 88/.72);border:2px solid oklch(31% .04 62/.18);border-bottom:5px solid oklch(79% .07 74/.68);border-radius:16px;gap:2px;min-width:0;padding:9px 10px 10px;display:grid}.stats-section-label{color:var(--ink-quiet);letter-spacing:.08em;text-transform:uppercase;margin:12px 0 6px;font-size:.68rem;font-weight:900}.stats-columns{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.stats-column .stats-section-label{margin-top:4px}.completion-stats.completion-stats--column{grid-template-columns:1fr}.stats-rows{gap:2px;display:grid}.stats-rows .stats-section-label{margin:9px 0 5px}.completion-stats.completion-stats--row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.completion-stats--row div{border-radius:12px;justify-content:space-between;align-items:baseline;gap:6px;padding:5px 16px 6px 11px;display:flex}.completion-stats--row dt{font-size:.76rem}.completion-panel--win .completion-stats--row dd{font-size:clamp(1.15rem,4.4vw,1.5rem);font-weight:700;line-height:1}.completion-stats--row .is-points-per-word dt{flex-direction:column;align-items:flex-start;line-height:.82;display:flex}.completion-stats--row .is-points-per-word{align-items:center}.completion-stats--row div:first-child{background:oklch(95% .045 145);border-bottom-color:oklch(62% .13 145/.75)}.completion-stats--row div:nth-child(2){background:oklch(95% .04 240);border-bottom-color:oklch(64% .11 240/.75)}.completion-stats--row div:nth-child(3){background:oklch(95% .04 292);border-bottom-color:oklch(60% .12 290/.7)}.stats-rows .stats-row:nth-child(2) .completion-stats--row div:first-child{background:oklch(95% .04 240);border-bottom-color:oklch(64% .11 240/.75)}.stats-rows .stats-row:nth-child(2) .completion-stats--row div:nth-child(2){background:oklch(95% .04 292);border-bottom-color:oklch(60% .12 290/.7)}.stats-rows .stats-row:nth-child(2) .completion-stats--row div:nth-child(3){background:oklch(95% .045 145);border-bottom-color:oklch(62% .13 145/.75)}.completion-stats--row div.is-close-call-stat{border-color:oklch(58% .13 66/.36);border-bottom-color:var(--amber-edge);background:radial-gradient(circle at 32% 16%,oklch(100% 0 0/.52),#0000 40%),linear-gradient(oklch(98% .055 82),oklch(92% .09 76))}.completion-stats--column div:first-child{background:oklch(95% .045 145);border-bottom-color:oklch(62% .13 145/.75)}.completion-stats--column div:nth-child(2){background:oklch(95% .04 240);border-bottom-color:oklch(64% .11 240/.75)}.completion-stats--column div:nth-child(3){background:oklch(95% .04 292);border-bottom-color:oklch(60% .12 290/.7)}.completion-stats--column div.is-close-call-stat{border-color:oklch(58% .13 66/.36);border-bottom-color:var(--amber-edge);background:radial-gradient(circle at 32% 16%,oklch(100% 0 0/.52),#0000 40%),linear-gradient(oklch(98% .055 82),oklch(92% .09 76));box-shadow:inset 0 1px oklch(100% 0 0/.58),0 8px 16px oklch(55% .12 66/.12)}.completion-panel--win .completion-stats{grid-template-columns:1fr;gap:8px}.completion-panel--win .completion-stats.completion-stats--row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.completion-panel--win .completion-stats div{border-bottom-width:4px;border-radius:13px;padding:7px 8px 8px}.completion-panel dt{color:var(--ink-quiet);letter-spacing:.045em;text-transform:uppercase;font-size:.72rem;font-weight:900}.completion-panel dd{color:var(--ink);font-family:var(--font-game);margin:0;font-weight:600}.completion-panel--win dt{font-size:.64rem}.completion-panel--win dd{font-size:clamp(.95rem,3.2vw,1.1rem);line-height:1.06}.dead-end-panel{z-index:2;border-color:var(--coral-edge);border-bottom-color:var(--coral-edge);opacity:0;transform-origin:50% 0;width:min(100%,520px);animation:completion-panel-rise .56s var(--ease-out-expo) .9s both;background:oklch(93% .045 25);padding:clamp(12px,3.4vw,20px);position:relative;box-shadow:inset 0 2px oklch(100% 0 0/.72),0 20px 36px oklch(47% .11 25/.18)}.dead-end-panel .completion-kicker{color:var(--coral-edge)}.dead-end-panel .completion-scoreline h2{text-shadow:0 5px oklch(74% .1 25/.46)}.dead-end-panel .completion-pills>span:not(.personal-best-pill){border-color:var(--coral-edge);border-bottom-color:var(--coral-edge);background:var(--coral);color:var(--warm-white)}.dead-end-panel .completion-bonus{opacity:0;animation:completion-bonus-reveal .26s var(--ease-out-quint) 1.52s both;margin:0 0 9px}.dead-end-celebration.is-static .dead-end-glow-sweep{display:none}.dead-end-celebration.is-static .dead-end-title-tile,.dead-end-celebration.is-static .dead-end-panel,.dead-end-celebration.is-static .dead-end-panel .completion-bonus{opacity:1;animation:none}.dead-end-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:16px;display:grid}.dead-end-actions button{font-size:clamp(1.08rem,2.2dvh,1.3rem)}.dead-end-actions--single{grid-template-columns:1fr}.dead-end-restart{border-color:var(--coral-edge);border-bottom-color:var(--coral-edge);background:var(--coral);box-shadow:inset 0 2px oklch(100% 0 0/.2),0 14px 24px oklch(47% .11 25/.22)}.dead-end-restart:hover{background:oklch(74% .12 25)}.primary-button.danger-button{border-color:var(--coral-edge);border-bottom-color:var(--coral-edge);background:var(--coral);box-shadow:inset 0 2px oklch(100% 0 0/.2),0 14px 24px oklch(47% .11 25/.22)}.primary-button.danger-button:hover{background:oklch(74% .12 25)}.secondary-button{border:2px solid oklch(31% .04 62/.58);border-bottom:6px solid var(--sand-edge);background:var(--surface);min-height:48px;color:var(--ink);box-shadow:inset 0 2px 0 oklch(100% 0 0/.78), 0 12px 22px var(--shadow-soft);font:inherit;cursor:pointer;transition:background-color .16s var(--ease-out-quint), box-shadow .16s var(--ease-out-quint), transform .16s var(--ease-out-quint);border-radius:999px;font-weight:900}.secondary-button:hover{background:oklch(97% .025 82);transform:translateY(-2px)}.secondary-button:active{border-bottom-width:3px;transform:translateY(3px)}.primary-button{border:2px solid var(--leaf-edge);border-bottom:6px solid var(--leaf-edge);background:var(--leaf-fill);min-height:48px;color:var(--warm-white);font:inherit;cursor:pointer;transition:background-color .16s var(--ease-out-quint), box-shadow .16s var(--ease-out-quint), transform .16s var(--ease-out-quint);border-radius:999px;font-weight:900;box-shadow:inset 0 2px oklch(100% 0 0/.22),0 14px 24px oklch(42% .13 145/.22)}.primary-button:hover{background:var(--leaf-bright);transform:translateY(-2px)}.primary-button:active{border-bottom-width:3px;transform:translateY(3px);box-shadow:inset 0 2px 6px oklch(24% .04 62/.12),0 7px 14px oklch(42% .13 145/.16)}.share-button{width:100%;margin-top:16px}.modal-backdrop{z-index:10;background:oklch(20% .035 62/.34);place-items:start center;padding:clamp(10px,2.5svh,24px) 12px 12px;animation:.24s ease-out both backdrop-in;display:grid;position:fixed;inset:0}.how-to-modal,.results-viewer-modal{animation:.54s cubic-bezier(.2,.9,.24,1.06) both card-drop-in}.modal-backdrop.is-departing{pointer-events:none;animation:.28s ease-in .14s both backdrop-out}.modal-backdrop.is-departing .how-to-modal,.modal-backdrop.is-departing .results-viewer-modal{animation:.4s cubic-bezier(.55,0,.85,.4) both card-drop-out}.game-board.is-exiting .tile{animation:.56s linear both tile-spill-out;animation-delay:var(--exit-delay,var(--entry-delay));pointer-events:none}.game-board.is-exiting .tile.is-clearing{animation:.56s linear both tile-spill-out;animation-delay:var(--exit-delay,var(--clear-delay))}.app-shell.is-results-tint .play-area>:not(.board-shell),.app-shell.is-results-tint .bottom-action-bar,.app-shell.is-round-spilling .play-area>:not(.board-shell){pointer-events:none;animation:.56s cubic-bezier(.5,0,.85,.45) both ui-spill-off}.app-shell.is-results-tint .bottom-action-bar{animation-delay:90ms}.app-shell.is-round-over .bottom-action-bar{display:none}.app-shell.is-results-closing .play-area>:not(.board-shell),.app-shell.is-results-closing .bottom-action-bar{animation:.6s cubic-bezier(.22,.9,.3,1.04) .14s both ui-fall-in}@keyframes ui-spill-off{0%{transform:translateY(0)rotate(0)}16%{transform:translateY(-9px)rotate(-.7deg)}to{transform:translateY(122dvh)rotate(1.6deg)}}@keyframes ui-fall-in{0%{transform:translateY(-115dvh)}76%{transform:translateY(6px)rotate(.4deg)}90%{transform:translateY(-3px)}to{transform:translateY(0)rotate(0)}}.modal-backdrop.results-viewer-backdrop{background:0 0;animation:none}.results-viewer-modal,.results-viewer-backdrop .how-to-modal{animation-duration:.9s;animation-timing-function:cubic-bezier(.32,.72,.24,1.02)}.results-viewer-backdrop.is-departing .how-to-modal,.modal-backdrop.is-departing .results-viewer-modal{animation:.47s cubic-bezier(.45,0,.8,.5) .11s both card-push-out}@keyframes card-push-out{0%{transform:translateY(0)rotate(0)}to{transform:translateY(130vh)rotate(1.6deg)}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes card-drop-in{0%{transform:translateY(-120vh)rotate(-2.4deg)}72%{transform:translateY(9px)rotate(.5deg)}86%{transform:translateY(-4px)rotate(-.2deg)}to{transform:translateY(0)rotate(0)}}@keyframes card-drop-out{0%{transform:translateY(0)rotate(0)}22%{transform:translateY(-14px)rotate(-1.2deg)}to{transform:translateY(130vh)rotate(3deg)}}.how-to-modal{border:2px solid oklch(31% .04 62/.78);border-bottom:8px solid var(--sand-edge-deep);background:radial-gradient(circle at 18% 16%, oklch(78% .15 70/.18), transparent 26%), radial-gradient(circle at 88% 22%, oklch(72% .12 240/.12), transparent 24%), var(--surface);border-radius:24px;flex-direction:column;width:min(100%,540px);max-height:min(100svh - 24px,max(72dvh,540px));padding:clamp(14px,3vw,22px);display:flex;position:relative;overflow:hidden;box-shadow:inset 0 2px oklch(100% 0 0/.78),0 26px 50px oklch(22% .035 62/.26)}.how-to-modal>h2,.how-to-modal>.primary-button{flex-shrink:0}.how-to-scroll{overscroll-behavior:contain;flex:auto;min-height:0;margin-inline:-2px;padding-inline:2px;overflow-y:auto}.results-viewer-backdrop{animation:results-viewer-fade .16s var(--ease-out-quint) both;place-items:center}.results-viewer-modal{overscroll-behavior:contain;width:min(100%,560px);max-height:calc(100svh - 24px);padding:46px 10px 10px;position:relative;overflow-y:auto}.results-viewer-modal .modal-close{z-index:4;top:10px;right:12px}.results-viewer-modal .completion-celebration,.results-viewer-modal .dead-end-celebration{width:100%}.next-puzzle{text-align:center;color:var(--ink-quiet);letter-spacing:.04em;text-transform:uppercase;margin:10px 0 0;font-size:clamp(.82rem,1.7dvh,1rem);font-weight:800}.next-puzzle strong{color:var(--ink-soft);font-variant-numeric:tabular-nums}.next-puzzle button{color:var(--leaf-fill);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:0;text-decoration:underline}.leaderboard{border-top:2px dashed oklch(79% .07 74/.56);margin-top:12px;padding-top:10px}.leaderboard-heading-row{justify-content:space-between;align-items:center;gap:10px;min-height:20px;display:flex}.leaderboard-title{margin:0}.leaderboard-status,.leaderboard-error,.leaderboard-empty{color:var(--ink-quiet);font-size:.72rem;font-weight:900}.leaderboard-status{color:var(--amber-edge);letter-spacing:.06em;text-transform:uppercase}.leaderboard-join{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin-top:8px;display:grid}.leaderboard-join input{box-sizing:border-box;min-width:0;min-height:42px;color:var(--ink);font:inherit;background:oklch(99.5% .014 88/.9);border:2px solid oklch(31% .04 62/.42);border-bottom:5px solid oklch(79% .07 74/.72);border-radius:999px;outline:none;padding:0 13px 2px;font-size:.92rem;font-weight:900}.is-keyboard-nav .leaderboard-join input:focus-visible{border-color:var(--focus);box-shadow:0 0 0 3px oklch(72% .12 240/.22)}.leaderboard-join button{min-height:42px;padding-inline:14px;font-size:.86rem}.leaderboard-join button:disabled{cursor:default;opacity:.48;transform:none}.leaderboard-error{color:var(--coral-edge);margin:7px 0 0}.leaderboard-error--network{justify-content:center;align-items:center;gap:10px;display:flex}.leaderboard-retry{border:2px solid var(--coral-edge);color:var(--coral-edge);font:inherit;cursor:pointer;background:0 0;border-bottom-width:3px;border-radius:999px;padding:2px 12px 3px;font-weight:800}.leaderboard-retry:active{border-bottom-width:2px;transform:translateY(1px)}.leaderboard-empty{margin:8px 0 0}.leaderboard-list{gap:6px;margin:8px 0 0;padding:0;list-style:none;display:grid}.leaderboard-row{background:oklch(99.5% .014 88/.66);border:2px solid oklch(31% .04 62/.16);border-bottom:4px solid oklch(79% .07 74/.58);border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;min-height:38px;padding:5px 8px 6px;display:grid}.leaderboard-row.is-you{border-color:oklch(58% .13 66/.35);border-bottom-color:var(--amber-edge);background:radial-gradient(circle at 18% 12%,oklch(100% 0 0/.5),#0000 38%),linear-gradient(oklch(98.5% .055 82),oklch(92.5% .09 76))}.leaderboard-rank{background:var(--surface);width:28px;height:26px;color:var(--ink-soft);font-family:var(--font-game);border:2px solid oklch(31% .04 62/.2);border-bottom:4px solid oklch(79% .07 74/.64);border-radius:8px;place-items:center;font-size:.88rem;font-weight:700;line-height:1;display:inline-grid}.leaderboard-main,.leaderboard-identity,.leaderboard-achievements{align-items:center;min-width:0;display:inline-flex}.leaderboard-main{gap:7px}.leaderboard-identity,.leaderboard-achievements{gap:6px}.leaderboard-identity{flex:0 auto}.leaderboard-achievements{flex:none}.leaderboard-name{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;font-size:.88rem;font-weight:900;overflow:hidden}.leaderboard-first-try-marker{border:1.5px solid var(--leaf-edge);color:var(--leaf-edge);font-family:var(--font-ui);letter-spacing:.02em;text-transform:uppercase;background:oklch(95% .045 145);border-radius:999px;flex:none;padding:1px 5px 2px;font-size:.5rem;font-weight:1000;line-height:1}.leaderboard-best-tag{border:1.5px solid var(--amber-edge);color:oklch(25% .05 62);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:oklch(91% .08 75);border-bottom-width:3px;border-radius:999px;padding:2px 7px 3px;font-size:.62rem;font-weight:1000;line-height:1}.leaderboard-trophy{color:oklch(28% .07 68);filter:drop-shadow(0 1px oklch(100% 0 0/.7));width:30px;height:25px;font-family:var(--font-game);font-variant-numeric:tabular-nums;flex:none;place-items:center;font-size:.56rem;font-weight:700;line-height:1;display:inline-grid;position:relative}.leaderboard-trophy svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.leaderboard-trophy-handle{fill:none;stroke:oklch(57% .14 70);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.leaderboard-trophy-cup{fill:oklch(82% .16 82);stroke:oklch(51% .13 67);stroke-width:2.4px;stroke-linejoin:round}.leaderboard-trophy-base{fill:oklch(70% .14 75);stroke:oklch(51% .13 67);stroke-width:2px;stroke-linejoin:round}.leaderboard-trophy>span{z-index:1;max-width:20px;margin-top:-5px;position:relative;overflow:hidden}.leaderboard-trophy-key{color:var(--ink-quiet);letter-spacing:.025em;text-transform:uppercase;justify-content:center;align-items:center;gap:4px;margin:7px 6px 0;font-size:.64rem;font-weight:900;line-height:1;display:flex}.leaderboard-trophy-key .leaderboard-trophy{width:25px;height:21px;font-size:.6rem}.leaderboard-edit{color:var(--ink-soft);font-family:var(--font-ui);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;white-space:nowrap;background:oklch(100% 0 0/.7);border:1.5px solid oklch(31% .04 62/.3);border-bottom-width:3px;border-radius:999px;flex:none;padding:3px 10px 4px;font-size:.66rem;font-weight:900;line-height:1}.leaderboard-cancel{color:var(--ink-quiet);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;padding:0 6px;font-size:.85rem;font-weight:800}.leaderboard-score{color:var(--ink);font-family:var(--font-game);font-variant-numeric:tabular-nums;justify-self:end;align-items:center;gap:5px;font-size:1rem;font-weight:700;line-height:1;display:inline-flex}.surge-teach{z-index:6;cursor:pointer;justify-content:center;align-items:center;padding:0 18px;display:flex;position:absolute;inset:0}.surge-teach-scrim{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:oklch(95% .028 84/.78);animation:.26s ease-out both surge-scrim-in;position:absolute;inset:0}.surge-teach-card{z-index:1;box-sizing:border-box;border:2px solid var(--violet-edge);border-bottom:6px solid var(--violet-edge);background:radial-gradient(circle at 14% 18%, oklch(100% 0 0/.7), transparent 40%), linear-gradient(180deg, oklch(97.5% .03 292), var(--violet-soft));color:oklch(34% .11 290);width:min(100%,420px);font-family:var(--font-ui);text-align:center;border-radius:18px;margin:0;padding:16px 20px 18px;font-size:clamp(.92rem,2dvh,1.08rem);font-weight:700;line-height:1.34;animation:.34s cubic-bezier(.24,1.15,.36,1) both surge-card-in;position:relative;box-shadow:0 18px 34px -10px oklch(42% .13 290/.44),0 8px 16px -6px oklch(42% .13 290/.34)}.surge-teach-card strong{color:var(--violet-edge);font-weight:1000}@keyframes surge-scrim-in{0%{opacity:0}to{opacity:1}}@keyframes surge-card-in{0%{opacity:0;transform:translateY(-10px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.surge-teach.is-leaving{pointer-events:none}.surge-teach.is-leaving .surge-teach-scrim{animation:.42s ease-in both surge-scrim-out}.surge-teach.is-leaving .surge-teach-card{animation:.54s cubic-bezier(.5,0,.85,.45) both surge-card-out}@keyframes surge-scrim-out{0%{opacity:1}to{opacity:0}}@keyframes surge-card-out{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:1;transform:translateY(120dvh)rotate(5deg)}}.about-modal{border:2px solid oklch(31% .04 62/.78);border-bottom:8px solid var(--sand-edge-deep);background:radial-gradient(circle at 18% 16%, oklch(78% .15 70/.18), transparent 26%), var(--surface);text-align:center;border-radius:24px;width:min(86%,360px);margin-top:clamp(82px,20svh,170px);padding:30px 22px 26px;position:relative;box-shadow:inset 0 2px oklch(100% 0 0/.78),0 26px 50px oklch(22% .035 62/.26)}.about-logo{font-family:var(--font-game);color:var(--ink);letter-spacing:.01em;margin-bottom:18px;font-size:clamp(1.5rem,6vw,2rem);font-weight:700}.about-credit{color:var(--ink);margin:0 0 10px;font-weight:800}.about-feedback{color:var(--ink-quiet,oklch(50% .03 62));margin:0;font-size:.92rem;line-height:1.5}.about-feedback a{color:var(--leaf-edge,#2e7d32);white-space:nowrap;font-weight:700;display:inline-block}.about-dictionary{color:var(--ink-quiet,oklch(55% .03 62));border-top:1px solid oklch(31% .04 62/.14);margin:14px 0 0;padding-top:12px;font-size:.8rem;line-height:1.5}.about-dictionary a{color:var(--leaf-edge,#2e7d32);font-weight:700}.restart-modal{border:2px solid oklch(31% .04 62/.78);border-bottom:8px solid var(--sand-edge-deep);background:radial-gradient(circle at 18% 16%, oklch(78% .15 70/.16), transparent 28%), var(--surface);text-align:left;border-radius:24px;width:min(86%,340px);margin-top:clamp(82px,18svh,150px);padding:clamp(18px,4vw,24px);position:relative;box-shadow:inset 0 2px oklch(100% 0 0/.78),0 26px 50px oklch(22% .035 62/.26)}.restart-modal h2{font-family:var(--font-game);letter-spacing:0;margin:0 34px 12px 0;font-size:clamp(1.45rem,5vw,2rem);font-weight:700;line-height:1}.restart-modal-copy{gap:8px;margin-bottom:18px;display:grid}.restart-modal-copy p{color:var(--ink-soft);margin:0;font-size:.98rem;font-weight:800;line-height:1.34}.restart-modal-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.restart-modal-actions .primary-button,.restart-modal-actions .secondary-button{font-size:clamp(1.02rem,2.4dvh,1.2rem)}.modal-close{border:2px solid oklch(31% .04 62/.58);border-bottom:5px solid var(--sand-edge);background:var(--surface);width:32px;height:32px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;place-items:center;font-size:1rem;font-weight:900;line-height:1;display:grid;position:absolute;top:10px;right:10px;box-shadow:inset 0 2px oklch(100% 0 0/.78)}.modal-close:hover{transform:translateY(-1px)}.modal-close:active{border-bottom-width:2px;transform:translateY(3px)}.how-to-modal h2{font-family:var(--font-game);letter-spacing:0;text-align:center;margin:2px 34px;font-size:min(clamp(1.55rem,5.2vw,2.9rem),clamp(1.55rem,3.8dvh,2.9rem));font-weight:700;line-height:1}.how-to-intro{justify-content:center;align-items:center;gap:clamp(14px,4vw,26px);margin:6px 0 12px;display:flex}.how-to-premise{max-width:11ch;color:var(--ink-soft);text-align:right;text-wrap:balance;margin:0;font-size:clamp(1.02rem,1.9dvh,1.4rem);font-weight:800;line-height:1.3}.how-to-demo{flex:none;width:124px;margin:0}.demo-board{--demo-loop:9.5s;--demo-tile:clamp(24px, 4.2dvh, 38px);--demo-gap:4px;width:calc((3 * var(--demo-tile)) + (2 * var(--demo-gap)));height:calc((3 * var(--demo-tile)) + (2 * var(--demo-gap)));border-radius:11px;margin:0 auto;position:relative}.demo-board-static{display:none}.demo-tile{--demo-tile-edge-size:3px;width:var(--demo-tile);height:var(--demo-tile);box-sizing:border-box;border:2px solid oklch(31% .04 62/.72);border-bottom:var(--demo-tile-edge-size) solid var(--sand-edge);background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.72), transparent 42%), var(--surface);color:var(--ink);font-family:var(--font-game);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap))));border-radius:6px;place-items:center;font-size:.98rem;font-weight:600;display:grid;position:absolute;top:0;left:0;box-shadow:inset 0 2px oklch(100% 0 0/.84),0 6px 13px oklch(31% .04 62/.12)}.demo-word{z-index:3;animation:demo-clear var(--demo-loop) var(--ease-out-quint) infinite}.demo-trace-one{animation-name:demo-trace-one}.demo-trace-two{animation-name:demo-trace-two}.demo-trace-three{animation-name:demo-trace-three}.demo-static{animation:demo-static-fade var(--demo-loop) linear infinite}.demo-fall{animation:demo-fall-one var(--demo-loop) var(--ease-out-quint) infinite}.demo-fall-two{animation-name:demo-fall-two}.demo-bun-fall-one{animation-name:demo-bun-fall-one}.demo-bun-fall-two{animation-name:demo-bun-fall-two}.demo-pivot{animation:demo-pivot-down var(--demo-loop) var(--ease-out-quint) infinite}.demo-pivot-up{animation-name:demo-pivot-up}.demo-label{z-index:4;border:2px solid var(--leaf-edge);border-bottom:4px solid var(--leaf-edge);background:var(--leaf-fill);color:var(--warm-white);text-transform:uppercase;border-radius:999px;padding:3px 7px 5px;font-size:.64rem;font-weight:900;position:absolute}.demo-label-trace{bottom:4px;left:4px}.demo-label-clear{bottom:4px;left:50%;transform:translate(-50%)}.demo-label-fall{top:4px;right:4px}.is-static-selected{border-color:var(--leaf-edge);border-bottom-color:var(--leaf-edge);background:var(--leaf-fill);color:var(--warm-white)}.demo-drop-arrow{border-right:4px solid var(--sky-edge);width:16px;height:44px;position:absolute;top:34px;right:18px}.demo-drop-arrow:after{content:"";border-right:4px solid var(--sky-edge);border-bottom:4px solid var(--sky-edge);width:12px;height:12px;position:absolute;bottom:-1px;right:-8px;transform:rotate(45deg)}.rules-list{gap:8px;margin:0 0 12px;padding:0;list-style:none;display:grid}.rules-list li{grid-template-columns:30px 1fr;align-items:start;gap:9px;display:grid}.rules-list li>span{border:2px solid oklch(31% .04 62/.62);border-bottom:4px solid var(--leaf-edge);background:var(--leaf-fill);width:26px;height:26px;color:var(--warm-white);font-family:var(--font-game);text-align:center;border-radius:999px;place-items:center;font-size:.82rem;font-weight:700;display:grid;box-shadow:inset 0 2px oklch(100% 0 0/.22),0 8px 14px oklch(31% .04 62/.1)}.rules-list li:nth-child(2)>span{border-bottom-color:var(--sky-edge);background:var(--sky);color:var(--ink)}.rules-list li:nth-child(3)>span{border-bottom-color:var(--violet-edge);background:var(--violet-soft);color:var(--violet-edge)}.rules-list li:nth-child(4)>span{border-bottom-color:var(--amber-edge);background:var(--amber-fill);color:var(--ink)}.rules-list strong{color:var(--ink);font-family:var(--font-game);font-size:clamp(1.05rem,2.3dvh,1.8rem);font-weight:600;line-height:1.02;display:block}.rules-list p{color:var(--ink-soft);margin:2px 0 0;font-size:clamp(.92rem,1.85dvh,1.3rem);font-weight:700;line-height:1.32}.how-to-modal .primary-button{width:100%;margin-top:clamp(12px,2vh,18px)}.is-score-flashing{animation:score-flash .46s var(--ease-out-quint)}@keyframes logo-settle{0%{opacity:0;transform:translateY(-.45em)}70%{opacity:1;transform:translateY(.06em)}to{opacity:1}}@keyframes tile-spill{0%{z-index:20;opacity:1;transform:var(--tile-transform) translate(var(--spill-x,0), var(--spill-y,-160px)) rotate(var(--spill-rotation,-8deg));animation-timing-function:cubic-bezier(.5,.03,.85,.6);box-shadow:inset 0 2px oklch(100% 0 0/.84),0 18px 26px oklch(30% .05 62/.32)}54%{z-index:20;opacity:1;transform:var(--tile-transform) translateY(3px) rotate(calc(var(--spill-rotation,-8deg) * .45)) scale(1.04, .94);animation-timing-function:cubic-bezier(.25,.9,.4,1);box-shadow:inset 0 2px oklch(100% 0 0/.84),0 4px 8px oklch(30% .05 62/.28)}68%{z-index:20;opacity:1;transform:var(--tile-transform) translateY(-9px) rotate(calc(var(--spill-rotation,-8deg) * -.24)) scale(.99, 1.02);animation-timing-function:cubic-bezier(.5,.05,.75,.7);box-shadow:inset 0 2px oklch(100% 0 0/.84),0 12px 16px oklch(30% .05 62/.24)}82%{z-index:20;opacity:1;transform:var(--tile-transform) translateY(1px) rotate(calc(var(--spill-rotation,-8deg) * .08)) scale(1.015, .985);animation-timing-function:cubic-bezier(.25,.9,.4,1)}92%{z-index:20;opacity:1;transform:var(--tile-transform) translateY(-1.5px) rotate(0deg) scale(1)}to{z-index:2;opacity:1;transform:var(--tile-transform) translateY(0) rotate(0deg) scale(1)}}@keyframes tile-spill-out{0%{transform:var(--tile-transform)}14%{transform:var(--tile-transform) translate(calc(var(--spill-x,0px) * .6), -12px) rotate(calc(var(--spill-rotation,-8deg) * .35))}30%{transform:var(--tile-transform) translate(var(--spill-x,0px), 3dvh) rotate(calc(var(--spill-rotation,-8deg) * .7))}50%{transform:var(--tile-transform) translate(calc(var(--spill-x,0px) * 2), 16dvh) rotate(var(--spill-rotation,-8deg))}70%{transform:var(--tile-transform) translate(calc(var(--spill-x,0px) * 3), 44dvh) rotate(calc(var(--spill-rotation,-8deg) * 1.4))}to{transform:var(--tile-transform) translate(calc(var(--spill-x,0px) * 4), 122dvh) rotate(calc(var(--spill-rotation,-8deg) * 1.8))}}@keyframes selected-pop{0%{transform:scale(.96)}58%{transform:scale(1.07)}to{transform:scale(1)}}@keyframes splash-tile{0%{transform:translate(0)rotateY(0)scale(1)}48%{transform:translate(var(--shove-x,0px), var(--shove-y,0px)) rotateY(14deg) scale(1.07)}to{transform:translate(0)rotateY(0)scale(1)}}@keyframes splash-perimeter{0%{opacity:0;transform:var(--tile-transform) scale(.86)}22%{opacity:.76;transform:var(--tile-transform) scale(1.03)}to{opacity:0;transform:var(--tile-transform) scale(1.14);box-shadow:0 0 0 12px oklch(65% .15 290/0),inset 0 0 18px oklch(100% 0 0/0)}}@keyframes splash-wave{0%{opacity:.52;transform:translate(-50%,-50%)scale(.32)}to{opacity:0;transform:translate(-50%,-50%)scale(5.4);box-shadow:0 0 0 24px oklch(65% .15 290/0),inset 0 0 36px oklch(84% .07 292/0)}}@keyframes completion-glow-sweep{0%{opacity:0;transform:translate(-82%)rotate(-4deg)}18%{opacity:1}to{opacity:0;transform:translate(-18%)rotate(-4deg)}}@keyframes dead-end-glow-sweep{0%{opacity:0;transform:translate(-84%)rotate(-4deg)}22%{opacity:1}to{opacity:0;transform:translate(-16%)rotate(-4deg)}}@keyframes dead-end-letter-drop{0%{opacity:0;transform:translateY(-34px)rotate(-5deg)scale(.96)}68%{opacity:1;transform:translateY(4px)rotate(1deg)scale(1)}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}@keyframes cleared-letter-assemble{0%{opacity:0;transform:translate(var(--scatter-x,0), var(--scatter-y,120px)) rotate(var(--scatter-r,90deg)) scale(.86)}18%{opacity:1}82%{transform:translate(0)rotate(0)scale(1.04)}to{opacity:1;transform:translate(0)rotate(0)scale(1)}}@keyframes completion-panel-rise{0%{opacity:0;transform:translateY(26px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes completion-bonus-reveal{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}@keyframes results-viewer-fade{0%{opacity:0}to{opacity:1}}@keyframes reduced-fade-in{0%{opacity:0}to{opacity:1}}@keyframes reduced-fade-out{0%,70%{opacity:.7}to{opacity:0}}@keyframes demo-trace-one{0%,6%,to{opacity:1;background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.72), transparent 42%), var(--surface);color:var(--ink);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}10%,31%{opacity:1;border-color:var(--leaf-edge);border-bottom-color:var(--leaf-edge);background:radial-gradient(circle at 32% 18%, oklch(100% 0 0/.22), transparent 40%), linear-gradient(180deg, var(--leaf-bright), var(--leaf-fill) 78%);color:var(--warm-white);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1.05)}35%,98.5%{opacity:0;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(.72)}}@keyframes demo-trace-two{0%,12%,to{opacity:1;background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.72), transparent 42%), var(--surface);color:var(--ink);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}16%,31%{opacity:1;border-color:var(--leaf-edge);border-bottom-color:var(--leaf-edge);background:radial-gradient(circle at 32% 18%, oklch(100% 0 0/.22), transparent 40%), linear-gradient(180deg, var(--leaf-bright), var(--leaf-fill) 78%);color:var(--warm-white);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1.05)}35%,98.5%{opacity:0;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(.72)}}@keyframes demo-trace-three{0%,18%,to{opacity:1;background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.72), transparent 42%), var(--surface);color:var(--ink);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}22%,31%{opacity:1;border-color:var(--leaf-edge);border-bottom-color:var(--leaf-edge);background:radial-gradient(circle at 32% 18%, oklch(100% 0 0/.22), transparent 40%), linear-gradient(180deg, var(--leaf-bright), var(--leaf-fill) 78%);color:var(--warm-white);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1.05)}35%,98.5%{opacity:0;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(.72)}}@keyframes demo-static-fade{0%,94%,to{opacity:1}96.5%,98.5%{opacity:0}}@keyframes demo-fall-one{0%,35%,to{opacity:1;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap))))}41%,94%{opacity:1;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc((var(--demo-row) + 1) * (var(--demo-tile) + var(--demo-gap))))}96.5%{opacity:0;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc((var(--demo-row) + 1) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}98.5%{opacity:0;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}}@keyframes demo-fall-two{0%,46%,to{transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap))))}55%,94%{transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc((var(--demo-row) + 2) * (var(--demo-tile) + var(--demo-gap))))}}@keyframes demo-bun-fall-one{0%,35%,to{opacity:1;border-color:oklch(31% .04 62/.72);border-bottom-color:var(--sand-edge);background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.72), transparent 42%), var(--surface);color:var(--ink);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}41%,70%{border-color:oklch(31% .04 62/.72);border-bottom-color:var(--sand-edge);background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.72), transparent 42%), var(--surface);color:var(--ink);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc((var(--demo-row) + 1) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}72%,94%{opacity:1;border-color:var(--leaf-edge);border-bottom-color:var(--leaf-edge);background:radial-gradient(circle at 32% 18%, oklch(100% 0 0/.22), transparent 40%), linear-gradient(180deg, var(--leaf-bright), var(--leaf-fill) 78%);color:var(--warm-white);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc((var(--demo-row) + 1) * (var(--demo-tile) + var(--demo-gap)))) scale(1.04)}96.5%{opacity:0;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc((var(--demo-row) + 1) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}98.5%{opacity:0;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}}@keyframes demo-bun-fall-two{0%,35%,to{opacity:1;border-color:oklch(31% .04 62/.72);border-bottom-color:var(--sand-edge);background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.72), transparent 42%), var(--surface);color:var(--ink);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}41%,74%{border-color:oklch(31% .04 62/.72);border-bottom-color:var(--sand-edge);background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.72), transparent 42%), var(--surface);color:var(--ink);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc((var(--demo-row) + 2) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}76%,94%{opacity:1;border-color:var(--leaf-edge);border-bottom-color:var(--leaf-edge);background:radial-gradient(circle at 32% 18%, oklch(100% 0 0/.22), transparent 40%), linear-gradient(180deg, var(--leaf-bright), var(--leaf-fill) 78%);color:var(--warm-white);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc((var(--demo-row) + 2) * (var(--demo-tile) + var(--demo-gap)))) scale(1.04)}96.5%{opacity:0;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc((var(--demo-row) + 2) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}98.5%{opacity:0;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}}@keyframes demo-pivot-down{0%,50%,to{z-index:3;border-color:oklch(31% .04 62/.72);border-bottom-color:var(--sand-edge);background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.72), transparent 42%), var(--surface);color:var(--ink);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}54%,60%{z-index:5;border-color:var(--sky-edge);border-bottom-color:var(--sky-edge);background:radial-gradient(circle at 32% 18%, oklch(100% 0 0/.28), transparent 40%), linear-gradient(180deg, oklch(77% .12 240), var(--sky) 78%);color:var(--warm-white);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1.05)}62%{z-index:3;border-color:oklch(31% .04 62/.72);border-bottom-color:var(--sand-edge);background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.72), transparent 42%), var(--surface);color:var(--ink);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}66%,78%{z-index:3;border-color:oklch(31% .04 62/.72);border-bottom-color:var(--sand-edge);background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.72), transparent 42%), var(--surface);color:var(--ink);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc((var(--demo-row) + 1) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}80%,94%{opacity:1;z-index:4;border-color:var(--leaf-edge);border-bottom-color:var(--leaf-edge);background:radial-gradient(circle at 32% 18%, oklch(100% 0 0/.22), transparent 40%), linear-gradient(180deg, var(--leaf-bright), var(--leaf-fill) 78%);color:var(--warm-white);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc((var(--demo-row) + 1) * (var(--demo-tile) + var(--demo-gap)))) scale(1.04)}96.5%{opacity:0;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc((var(--demo-row) + 1) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}98.5%{opacity:0;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}}@keyframes demo-pivot-up{0%,52%,to{z-index:3;border-color:oklch(31% .04 62/.72);border-bottom-color:var(--sand-edge);background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.72), transparent 42%), var(--surface);color:var(--ink);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}56%,60%{z-index:4;border-color:var(--sky-edge);border-bottom-color:var(--sky-edge);background:radial-gradient(circle at 32% 18%, oklch(100% 0 0/.28), transparent 40%), linear-gradient(180deg, oklch(77% .12 240), var(--sky) 78%);color:var(--warm-white);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1.05)}62%{z-index:3;border-color:oklch(31% .04 62/.72);border-bottom-color:var(--sand-edge);background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.72), transparent 42%), var(--surface);color:var(--ink);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1.02)}67%,94%{opacity:1;z-index:4;border-color:oklch(31% .04 62/.72);border-bottom-color:var(--sand-edge);background:radial-gradient(circle at 32% 20%, oklch(100% 0 0/.72), transparent 42%), var(--surface);color:var(--ink);transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc((var(--demo-row) - 1) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}96.5%{opacity:0;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc((var(--demo-row) - 1) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}98.5%{opacity:0;transform:translate(calc(var(--demo-col) * (var(--demo-tile) + var(--demo-gap))), calc(var(--demo-row) * (var(--demo-tile) + var(--demo-gap)))) scale(1)}}@keyframes score-chip-rise{0%{opacity:0;transform:translate(-50%,-40%)scale(.86)}18%{opacity:1;transform:translate(-50%,-62%)scale(1.05)}to{opacity:0;transform:translate(-50%,-128%)scale(.98)}}@keyframes score-flash{0%{color:var(--ink);transform:scale(1)}34%{color:var(--amber-edge);transform:scale(1.08)}to{color:var(--ink);transform:scale(1)}}@keyframes preview-splash-pop{0%{transform:scale(.88)}58%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes value-pop{0%{transform:scale(.68)}56%{transform:scale(1.28)}to{transform:scale(1)}}@keyframes board-shake{0%{transform:translate(0)}18%{transform:translate(-5px)rotate(-.3deg)}38%{transform:translate(4px)rotate(.2deg)}58%{transform:translate(-2px)rotate(-.12deg)}78%{transform:translate(1px)}to{transform:translate(0)}}@media (prefers-reduced-motion:no-preference){.selection-trail polyline{animation:.9s ease-in-out infinite alternate trail-breathe}}@keyframes trail-breathe{0%{stroke-opacity:.5}to{stroke-opacity:.74}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}.app-shell,.icon-button,.tool-button,.preview-bar,.preview-enter,.primary-button,.secondary-button,.modal-close{transition-duration:1ms!important}.logo-letter,.selection-trail polyline,.preview-score.is-splash-value,.tile,.tile-face,.tile-value,.splash-perimeter-cell,.splash-wave,.score-chip,.dead-end-glow-sweep,.dead-end-title-tile,.is-score-flashing,.board-shell.is-shaking .game-board{animation:none!important}.tile.is-clearing{opacity:0;animation:none!important}.modal-backdrop,.modal-backdrop.is-departing{animation:none!important}.how-to-modal,.results-viewer-modal{animation:.18s ease-out both reduced-fade-in!important}.modal-backdrop.is-departing .how-to-modal,.modal-backdrop.is-departing .results-viewer-modal{animation:.18s ease-out both reduced-fade-out!important}.game-board.is-exiting .tile{opacity:0;animation:none!important}.no-words-banner,.pivot-nudge,.surge-teach-scrim,.surge-teach-card{animation:.18s ease-out both reduced-fade-in!important}.surge-teach.is-leaving .surge-teach-scrim,.surge-teach.is-leaving .surge-teach-card{animation:.18s ease-out both reduced-fade-out!important}.leaderboard-list .leaderboard-row,.leaderboard-join,.leaderboard-empty{animation:.18s ease-out both reduced-fade-in!important}.app-message-logo.is-pulsing .logo-tile{animation:none!important}.no-words-banner.is-leaving{animation:.18s ease-out both reduced-fade-out!important}.app-shell.is-results-tint .play-area>:not(.board-shell),.app-shell.is-results-tint .bottom-action-bar,.app-shell.is-round-over .bottom-action-bar{opacity:0;animation:none!important}.app-shell.is-results-closing .play-area>:not(.board-shell),.app-shell.is-results-closing .bottom-action-bar{animation:.18s ease-out both reduced-fade-in!important}.completion-glow-sweep{display:none}.completion-celebration.is-celebrating .cleared-tile,.completion-celebration.is-celebrating .completion-panel--win,.completion-celebration.is-celebrating .completion-panel--win .completion-bonus,.dead-end-title-tile,.dead-end-panel,.dead-end-panel .completion-bonus{animation:.18s ease-out both reduced-fade-in!important;transform:none!important}.splash-wave,.score-chip{display:none}}@media (width<=720px){.modal-backdrop{place-items:center;padding-top:12px}.app-shell{padding-inline:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom));grid-template-rows:auto minmax(0,1fr) auto;gap:10px}.game-hud{gap:clamp(12px,3.4dvh,40px);margin-bottom:clamp(8px,1.8dvh,16px)}.hud-title-row{grid-template-columns:minmax(58px,1fr) minmax(0,auto) minmax(58px,1fr);align-items:center}.game-hud>.hud-actions{display:none}.hud-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(112px,1.12fr);width:100%;display:grid}.play-area>*{order:1}.play-area:before{order:0}.play-area>.preview-bar{order:2}.play-area:after{order:3}.bottom-action-bar{z-index:7;align-self:end}.icon-button,.tool-button{width:100%;min-height:clamp(44px,7.2dvh,70px);padding-inline:8px;font-size:clamp(.9rem,2.4dvh,1.3rem)}.hud-stat{min-width:58px}.hud-stat span{font-size:clamp(.78rem,1.7dvh,1.05rem)}.completion-stats{grid-template-columns:1fr}.completion-panel--win .completion-stats{grid-template-columns:1fr;gap:7px}.completion-panel--win .completion-stats div{padding:6px 7px 7px}.rules-list li{grid-template-columns:30px 1fr}.preview-bar{grid-template-columns:minmax(0,1fr) auto minmax(70px,auto);gap:7px}.preview-enter,.preview-enter-spacer{min-width:clamp(80px,20vw,118px)}}@media (width<=430px){.app-shell{width:100%;padding:8px 8px calc(10px + env(safe-area-inset-bottom));gap:8px}.game-hud{gap:8px;margin-bottom:clamp(7px,1.7dvh,13px)}.hud-title-row{grid-template-columns:minmax(48px,1fr) minmax(0,auto) minmax(48px,1fr);gap:6px}.hud-stat{min-width:48px}.hud-stat span{letter-spacing:.055em;font-size:min(clamp(.68rem,2.8vw,1rem),clamp(.68rem,1.6dvh,1rem))}.hud-stat strong{font-size:min(clamp(1.6rem,9vw,3.4rem),clamp(1.6rem,4.8dvh,3.4rem))}.shift-logo{font-size:min(clamp(1.3rem,7.6vw,2.8rem),clamp(1.3rem,4.4dvh,2.8rem))}.logo-tile{border-width:1.5px}.logo-badge{margin-left:.28em}.hud-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(98px,1.08fr);gap:6px}.icon-button,.tool-button{min-height:clamp(44px,7dvh,68px);padding-inline:5px;font-size:clamp(.82rem,2.3dvh,1.28rem)}.pivot-tool{gap:5px}.pivot-dots{gap:3px}.pivot-dots span{width:7px;height:7px}.play-area{gap:7px}.game-board{--board-size:min(540px, calc(100svw - 16px))}.preview-bar{grid-template-columns:minmax(0,1fr) auto minmax(60px,auto);gap:5px;height:clamp(52px,8dvh,78px);min-height:clamp(52px,8dvh,78px);padding:5px 12px 7px 30px}.preview-word{font-size:min(clamp(1.28rem,6vw,1.95rem),clamp(1.28rem,3.6dvh,1.95rem))}.preview-score{min-width:34px;font-size:.98rem}.preview-score:not(:empty){padding-inline:5px}.preview-enter,.preview-enter-spacer{min-width:clamp(78px,21vw,116px)}.preview-enter{min-height:clamp(40px,5.6dvh,54px);font-size:clamp(.95rem,2.3dvh,1.24rem)}.no-words-banner{padding:9px 10px 11px}.no-words-banner p{padding-inline:7px;font-size:.78rem}.completion-celebration{width:100%;padding-top:0}.completion-panel--win{border-radius:20px;padding:12px}.completion-panel--win .completion-scoreline{margin-bottom:7px}.completion-panel--win .completion-scoreline h2{font-size:clamp(3.2rem,16.5vw,4.25rem)}.completion-panel--win .score-value{transform:translateY(-1px)}.completion-panel--win .completion-pills>span{padding:3px 8px 4px;font-size:.62rem}.completion-panel--win dt{font-size:.68rem}.completion-panel--win .completion-stats--row>div{box-sizing:border-box;height:39px}.completion-panel--win dd{font-size:.9rem}.completion-panel--win .share-button{min-height:44px;margin-top:10px}.leaderboard{margin-top:10px;padding-top:8px}.leaderboard-join{gap:6px}.leaderboard-join input{min-height:40px;padding-inline:10px;font-size:16px}.leaderboard-join button{min-height:40px;padding-inline:11px;font-size:.78rem}.leaderboard-row{gap:6px;padding:5px 6px 6px}.leaderboard-rank{width:25px;height:24px;font-size:.82rem}.leaderboard-name{font-size:.82rem}.dead-end-celebration{width:100%;padding-top:0}.dead-end-word{gap:3px;min-height:42px}.dead-end-word-group{gap:3px}.dead-end-title-tile{min-width:clamp(24px,7.4vw,32px);height:clamp(29px,8.4vw,38px);font-size:clamp(.9rem,4vw,1.16rem)}.dead-end-actions{gap:8px}.secondary-button,.primary-button{min-height:44px;font-size:.86rem}.modal-backdrop{padding:8px}.how-to-modal{border-radius:20px;max-height:calc(100svh - 16px);padding:12px}.restart-modal{border-radius:20px;margin-top:clamp(56px,14svh,96px);padding:16px 12px 12px}.restart-modal-actions{grid-template-columns:1fr}.modal-close{width:30px;height:30px;top:8px;right:8px}.how-to-modal h2{margin-inline:32px;font-size:min(clamp(1.42rem,6vw,2.6rem),clamp(1.42rem,3.6dvh,2.6rem))}.how-to-intro{gap:10px;margin:5px 0 9px}.how-to-premise{max-width:10ch;font-size:min(clamp(.9rem,4vw,1.3rem),clamp(.9rem,1.9dvh,1.3rem));line-height:1.2}.how-to-demo{width:auto}.demo-board{--demo-tile:min(clamp(21px, 6vw, 34px), clamp(21px, 3.8dvh, 34px));--demo-gap:3px}.demo-tile{font-size:.86rem}.rules-list{gap:6px;margin-bottom:10px}.rules-list li{grid-template-columns:26px 1fr;gap:7px}.rules-list li>span{border-bottom-width:3px;width:24px;height:24px;font-size:.74rem}.rules-list strong{font-size:min(clamp(1.05rem,5vw,1.55rem),clamp(1.05rem,2.4dvh,1.55rem))}.rules-list p{font-size:min(clamp(.94rem,4.4vw,1.42rem),clamp(.94rem,2.1dvh,1.42rem));line-height:1.3}}@media (height<=700px){.how-to-modal{max-height:calc(100svh - 12px);padding-top:12px}.how-to-modal h2{font-size:clamp(1.35rem,3.2dvh,1.7rem)}.how-to-intro{gap:12px;margin:4px 0 8px}.rules-list{gap:5px;margin-bottom:8px}.rules-list strong{font-size:min(clamp(.98rem,4.4vw,1.2rem),clamp(.98rem,2.2dvh,1.2rem))}.rules-list p{font-size:min(clamp(.86rem,3.9vw,1.1rem),clamp(.86rem,1.95dvh,1.1rem));line-height:1.24}.how-to-modal .primary-button{min-height:46px}}@media (width<=350px){.stats-columns{grid-template-columns:1fr;gap:7px}.stats-section-label{margin-top:7px}}@media (width>=600px) and (width<=899px){.how-to-modal{width:min(100%,620px);max-height:calc(100svh - 24px);padding:clamp(13px,2.2dvh,18px)}.how-to-modal h2{font-size:clamp(1.55rem,3dvh,2rem)}.how-to-intro{gap:clamp(10px,2dvh,18px);margin-block:4px clamp(7px,1.3dvh,10px)}.how-to-demo{width:104px}.demo-board{--demo-tile:clamp(24px, 3.8dvh, 31px)}.rules-list{gap:clamp(6px,1.15dvh,9px);margin-bottom:clamp(7px,1.3dvh,10px)}.rules-list li{grid-template-columns:32px 1fr;gap:10px}.rules-list li>span{width:30px;height:30px;font-size:.86rem}.rules-list strong{font-size:clamp(1.12rem,2.25dvh,1.35rem)}.rules-list p{font-size:clamp(.92rem,1.8dvh,1.04rem);line-height:1.28}.how-to-premise{font-size:clamp(.98rem,2dvh,1.16rem)}.how-to-modal .primary-button{min-height:clamp(44px,6dvh,48px);margin-top:clamp(7px,1.2dvh,10px)}}@media (width>=900px){.app-shell{--desk-board:min(560px, calc(100dvh - 290px));border-inline:1px solid oklch(31% .04 62/.12);grid-template:"hud hud""play rail"minmax(0,1fr)/minmax(0,1fr) 280px;column-gap:clamp(24px,4vw,56px)}.game-hud{grid-area:hud;margin-bottom:clamp(12px,2.6dvh,30px)}.shift-logo{font-size:min(clamp(2.6rem,5.8dvh,4.6rem),4.6rem)}.game-hud .hud-stat,.game-hud>.hud-actions{display:none}.hud-title-row{grid-template-columns:1fr auto 1fr}.hud-title-row .title-block{grid-column:2}.hud-title-row .overflow-menu{grid-column:3;justify-self:end}.play-area{grid-area:play;justify-self:end;width:auto;min-width:0}.play-area>.preview-bar{width:var(--desk-board)}.game-board{--board-size:var(--desk-board)}.app-shell{grid-template-rows:auto auto;align-content:start}.play-area:before,.play-area:after{display:none}.desktop-rail{flex-direction:column;grid-area:rail;place-self:stretch start;align-items:stretch;gap:22px;width:100%;max-width:230px;padding-top:0;display:flex}.desktop-rail .rail-score>span{font-size:1.35rem}.desktop-rail .rail-score>.streak-badge{margin-top:5px;font-size:.78rem}.desktop-rail .rail-score strong{font-size:clamp(3.2rem,7.2dvh,5.2rem)}.desktop-rail .rail-score{text-align:left;justify-self:start}.desktop-rail .hud-actions.rail-actions{flex-direction:column;align-items:stretch;gap:12px;width:100%;display:flex}.desktop-rail .pivot-slot .pivot-tool{grid-row:1}.desktop-rail .pivot-nudge{box-sizing:border-box;grid-row:2;width:100%;max-width:none;margin-top:10px;position:relative;inset:auto}.desktop-rail .pivot-nudge:after{border-top-color:#0000;border-bottom-color:var(--sky-edge);inset:auto 26px 100% auto}.desktop-rail .icon-button,.desktop-rail .tool-button{width:100%;min-height:64px;font-size:1.22rem}.hud-title-row .overflow-menu{display:none}.desktop-rail .rail-menu{width:100%;margin-top:auto}.desktop-rail .rail-menu .icon-button{width:100%;min-height:64px;font-size:1.22rem}.how-to-modal{width:min(100%,620px);max-height:calc(100svh - 32px);padding:clamp(14px,2.4dvh,20px)}.how-to-modal h2{font-size:clamp(1.65rem,3.2dvh,2.2rem)}.how-to-intro{gap:clamp(12px,2.2dvh,20px);margin-block:clamp(4px,1dvh,8px) clamp(8px,1.5dvh,12px)}.how-to-demo{width:108px}.demo-board{--demo-tile:clamp(25px, 4dvh, 32px)}.rules-list{gap:clamp(7px,1.35dvh,11px);margin-bottom:clamp(8px,1.5dvh,12px)}.rules-list li{grid-template-columns:34px 1fr;gap:11px}.rules-list li>span{width:32px;height:32px;font-size:.92rem}.rules-list strong{font-size:clamp(1.18rem,2.4dvh,1.45rem)}.rules-list p{font-size:clamp(.96rem,1.9dvh,1.08rem);line-height:1.3}.how-to-premise{font-size:clamp(1rem,2.1dvh,1.22rem)}.how-to-modal .primary-button{min-height:clamp(44px,6dvh,50px);margin-top:clamp(8px,1.4dvh,12px)}.play-area .no-words-banner{display:none}.desktop-rail .no-words-banner{flex-direction:column;align-items:stretch;gap:6px;width:100%;padding:12px 14px 14px;display:flex}.desktop-rail .no-words-banner div{flex-direction:column;gap:2px;display:flex}.desktop-rail .rail-menu{position:relative}.desktop-rail .rail-menu .menu-popover{min-width:100%;position:absolute;inset:auto auto calc(100% + 10px) 0}.desktop-rail .rail-menu .menu-popover button{padding-block:12px;font-size:1.08rem}.desktop-rail .rail-score strong{width:fit-content}.completion-panel,.dead-end-panel{justify-self:center}}:where(button,a[href],input,select,textarea,[tabindex]):focus,.modal-close:focus{outline:none}.is-keyboard-nav :where(button,a[href],input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:3px}.pivot-slot{min-width:0;display:grid;position:relative}.pivot-slot .pivot-tool{width:100%}.pivot-nudge{z-index:9;border:2px solid var(--sky-edge);background:var(--warm-white);width:max-content;max-width:min(240px,100vw - 32px);color:var(--ink);font-family:var(--font-ui);text-align:center;white-space:normal;pointer-events:none;border-radius:14px;padding:8px 14px 9px;font-size:clamp(.85rem,1.8dvh,1rem);font-weight:800;line-height:1.2;animation:.26s cubic-bezier(.24,1.2,.36,1) both pivot-nudge-in;position:absolute;bottom:calc(100% + 10px);right:0;box-shadow:0 8px 18px oklch(42% .1 240/.22)}.pivot-nudge:after{content:"";border:7px solid #0000;border-top-color:var(--sky-edge);position:absolute;top:100%;right:26px}@keyframes pivot-nudge-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.leaderboard-summary{border:2px solid oklch(31% .04 62/.62);border-bottom:6px solid var(--sand-edge-deep);background:var(--warm-white);width:100%;min-height:46px;color:var(--ink);font-family:var(--font-ui);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;text-align:left;border-radius:16px;justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;font-size:clamp(.84rem,1.8dvh,1rem);font-weight:800;transition:transform .12s ease-out,border-bottom-width .12s ease-out;display:flex;box-shadow:inset 0 2px oklch(100% 0 0/.7),0 8px 16px oklch(38% .06 62/.14)}.leaderboard-summary:active{border-bottom-width:3px;transform:translateY(2px)}.leaderboard-summary.is-static{cursor:default}.leaderboard-summary.is-static:active{border-bottom-width:6px;transform:none}.leaderboard-chevron{color:var(--ink-soft);font-size:1.4rem;line-height:1}@media (width<=430px){.leaderboard-summary{letter-spacing:.02em;padding-inline:11px;font-size:.78rem}}.leaderboard-list .leaderboard-row{animation:.24s cubic-bezier(.24,1.1,.36,1) both leaderboard-row-in;animation-delay:calc(var(--row-i,0) * 45ms)}.leaderboard-join,.leaderboard-empty{animation:.24s cubic-bezier(.24,1.1,.36,1) both leaderboard-row-in}@keyframes leaderboard-row-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.app-shell.practice-shell{border-inline:0;grid-template:auto minmax(0,1fr)/minmax(0,1fr);gap:clamp(8px,1.7dvh,18px);width:min(100%,720px);overflow:auto}.practice-header{text-align:center;flex-direction:column;align-items:center;display:flex}.practice-logo{font-size:clamp(1.7rem,6vw,3.2rem)}.practice-step{color:var(--leaf-edge);letter-spacing:.12em;text-transform:uppercase;width:max-content;margin:0;padding:0;font-size:.72rem;font-weight:1000;line-height:1}.practice-module{box-sizing:border-box;background:oklch(99.8% .014 88/.5);border:1px solid oklch(31% .04 62/.16);border-radius:clamp(22px,4vw,32px);align-self:start;width:100%;min-height:0;padding:clamp(14px,2.5dvh,24px) clamp(10px,3vw,24px);overflow:auto;box-shadow:inset 0 1px oklch(100% 0 0/.8),0 18px 40px oklch(38% .06 62/.07)}.practice-stage{flex-direction:column;justify-content:flex-start;align-items:center;gap:clamp(10px,1.8dvh,18px);min-height:0;padding-top:0;display:flex}.practice-copy{text-align:center;justify-items:center;gap:5px;width:min(100%,540px);display:grid}.practice-copy h2,.practice-copy p{margin:0}.practice-copy h2{color:var(--ink);font-family:var(--font-game);font-size:clamp(1.35rem,4.6vw,2rem);font-weight:700;line-height:1.05}.practice-shell.is-surge .practice-copy{width:min(100%,620px)}.practice-shell.is-surge .practice-copy h2{font-size:clamp(1.55rem,4.8vw,2.15rem);line-height:1.15}.practice-shell.is-surge .practice-body{max-width:46ch;font-weight:650}.practice-shell.is-success .practice-copy h2{font-size:clamp(1.8rem,6vw,2.8rem)}.practice-body{color:oklch(38% .035 62);max-width:42ch;font-size:clamp(.86rem,2.6vw,1rem);font-weight:700;line-height:1.3}.practice-prompt{color:var(--ink);font-family:var(--font-game);font-size:clamp(1rem,3.4vw,1.25rem);font-weight:700;line-height:1.15;margin-top:4px!important}.practice-shell .board-shell{width:auto;margin-top:0}.practice-shell .game-board{--board-size:min(390px, calc(100svw - 42px), calc(100dvh - 350px));min-width:210px;min-height:210px}.practice-shell.is-surge .game-board{--board-size:min(360px, calc(100svw - 42px), calc(100dvh - 410px))}.practice-word-chip{border:2px solid var(--leaf-edge);border-bottom:5px solid var(--leaf-edge);background:var(--leaf-fill);width:min(100%,390px);min-height:44px;color:var(--warm-white);box-sizing:border-box;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:7px 14px 9px;display:flex}.practice-word-chip span{min-width:3ch;font-family:var(--font-game);letter-spacing:.06em;font-size:1.2rem;font-weight:700}.practice-word-chip em{text-transform:uppercase;font-size:.72rem;font-style:normal;font-weight:1000}.practice-shell .preview-bar{box-sizing:border-box;flex:none;width:min(100%,390px)}.practice-actions{justify-content:center;align-items:center;gap:10px;width:min(100%,390px);display:flex}.practice-button{border:2px solid oklch(31% .04 62/.72);border-bottom:6px solid var(--sand-edge);background:var(--surface);min-height:48px;color:var(--ink);box-shadow:inset 0 2px 0 oklch(100% 0 0/.75), 0 10px 20px var(--shadow-soft);font:900 clamp(.82rem, 2.8vw, .98rem)/1 var(--font-ui);cursor:pointer;border-radius:999px;flex:1 1 0;padding:0 16px 3px}.practice-button.is-primary{border-color:var(--leaf-edge);border-bottom-color:var(--leaf-edge);background:var(--leaf-fill);color:var(--warm-white)}.practice-button.is-quiet{box-shadow:none}.practice-button:active{border-bottom-width:3px;transform:translateY(3px)}.practice-swap-slot{flex:1 1 0}.practice-shell.is-surge .game-board,.practice-shell.is-success .game-board{animation:practice-board-glow .5s var(--ease-out-quint) both}@keyframes practice-board-glow{50%{filter:drop-shadow(0 12px 20px oklch(55% .14 290/.2))}}@media (height<=690px){.app-shell.practice-shell{padding-block:10px}.practice-shell .game-board{--board-size:min(280px, calc(100svw - 80px), calc(100dvh - 286px))}.practice-stage{gap:8px}}@media (width<=420px){.app-shell.practice-shell{padding-inline:12px}.practice-actions{gap:7px}.practice-button{padding-inline:10px}}@media (prefers-reduced-motion:reduce){.practice-shell.is-surge .game-board,.practice-shell.is-success .game-board{animation:none}}
