@font-face{font-family:Sora;font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/sora-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/sora-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg:#f1f5f0;--text:#17322b;--muted:#4c645c;--line:#9fb5aa;--btn:#fff;--slot:#e3ebe5;--pill:#e3ebe5;--feature:#17322b;--on-feature:#f4ebd8;--feature-sub:#f2b77a;--tile:#f4ebd8;--tile-line:#cdbb8e;--tile-text:#17322b;--tile-shadow:0 3px 0 #cdbb8e;--word-tile:#fbf7ee;--accent:#2e7d6f;--accent-soft:#bfe3d9;--good:#23854a;--bad:#d2453a;--teal:#0f7f80;--orange:#c4572a;--panel:#2e7d6f;--on-panel:#fff;--cta:#f29e4c;--on-cta:#2a1a08;--modal:#fff;--track:#dce6df;--progress-text:#17322b;--progress-glow:#ffffffd9;--pattern:#2e7d6f1a;--scrim:#0f1f1b73;--accent-text:#24695d;--good-text:#1f7a40;--bad-text:#b3271d;--orange-text:#a8461c;--panel-text:#24695d;--teal-text:#0b6b6c;--gold-text:#7d5c07;--r-common-text:#5f646d;--r-uncommon-text:#1f6e30;--r-rare-text:#1864ab;--r-epic-text:#862e9c;--r-legendary-text:#a8400a;--shadow:0 1px 0 #17322b14, 0 3px 12px #17322b1a;--snap:cubic-bezier(.2, .9, .3, 1.12);--quick:cubic-bezier(.2, .8, .2, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1f1b;--text:#e8f0ec;--muted:#a7bdb4;--line:#4e6a62;--btn:#1a2e29;--slot:#1a2e29;--pill:#24403a;--feature:#f4ebd8;--on-feature:#17322b;--feature-sub:#8a4b12;--tile-shadow:0 3px 0 #a8976b;--word-tile:#e9e0cc;--accent:#6fd1be;--accent-soft:#2c5a50;--panel:#6fd1be;--on-panel:#08201b;--modal:#172a25;--track:#24403a;--progress-text:#e8f0ec;--progress-glow:#000000bf;--pattern:#6fd1be14;--scrim:#040c0a99;--accent-text:#6fd1be;--good-text:#5fd68a;--bad-text:#ff8a7e;--orange-text:#f2a06e;--panel-text:#6fd1be;--teal-text:#5ccfcf;--gold-text:#e7be4f;--r-common-text:#9aa0aa;--r-uncommon-text:#4fc764;--r-rare-text:#5aa9f0;--r-epic-text:#cc7ae0;--r-legendary-text:#ff8a3d;--shadow:0 1px 0 #0000004d, 0 4px 16px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1f1b;--text:#e8f0ec;--muted:#a7bdb4;--line:#4e6a62;--btn:#1a2e29;--slot:#1a2e29;--pill:#24403a;--feature:#f4ebd8;--on-feature:#17322b;--feature-sub:#8a4b12;--tile-shadow:0 3px 0 #a8976b;--word-tile:#e9e0cc;--accent:#6fd1be;--accent-soft:#2c5a50;--panel:#6fd1be;--on-panel:#08201b;--modal:#172a25;--track:#24403a;--progress-text:#e8f0ec;--progress-glow:#000000bf;--pattern:#6fd1be14;--scrim:#040c0a99;--accent-text:#6fd1be;--good-text:#5fd68a;--bad-text:#ff8a7e;--orange-text:#f2a06e;--panel-text:#6fd1be;--teal-text:#5ccfcf;--gold-text:#e7be4f;--r-common-text:#9aa0aa;--r-uncommon-text:#4fc764;--r-rare-text:#5aa9f0;--r-epic-text:#cc7ae0;--r-legendary-text:#ff8a3d;--shadow:0 1px 0 #0000004d, 0 4px 16px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;color:var(--text);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;font-family:Sora,system-ui,-apple-system,Segoe UI,sans-serif}html{background:var(--bg)}body:before{content:"";z-index:-1;pointer-events:none;background:repeating-radial-gradient(circle at 100% 0, transparent 0 22px, var(--pattern) 22px 23.5px);position:fixed;inset:0;-webkit-mask-image:radial-gradient(circle at 100% 0,#000 0,#0000 75vmax);mask-image:radial-gradient(circle at 100% 0,#000 0,#0000 75vmax)}button{font:inherit;color:inherit;touch-action:manipulation;cursor:pointer}#app{--t0:min(calc(100vw / 15.5), calc(100dvh / 10.6), 84px);--t:var(--t0);height:100%;padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));place-items:center;display:grid}.game{grid-template-columns:calc(var(--t) * 1.9) auto calc(var(--t) * 1.9);column-gap:calc(var(--t) * .5);row-gap:calc(var(--t) * .18);grid-template-rows:auto auto auto 1fr auto;grid-template-areas:"top top top""info info info""mods word upg""mods board upg""mods actions upg";place-items:center;display:grid}.top{align-items:center;gap:calc(var(--t) * .25);grid-area:top;width:100%;display:flex}.icon-btn{width:max(36px, calc(var(--t) * .62));height:max(36px, calc(var(--t) * .62));padding:calc(var(--t) * .12);border:1.5px solid color-mix(in srgb, var(--line) 45%, transparent);background:var(--btn);box-shadow:var(--shadow);transition:transform .14s var(--snap);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.progress{height:calc(var(--t) * .55);border:2px solid var(--line);background:var(--track);border-radius:999px;flex:1;place-items:center;display:grid;position:relative;overflow:hidden}.progress .fill{background:linear-gradient(90deg, var(--accent-soft), var(--accent));transition:width .4s;position:absolute;inset:0 auto 0 0}.progress .ghost{background:color-mix(in srgb, var(--accent) 22%, transparent);border-right:2px solid color-mix(in srgb, var(--accent) 45%, transparent);transition:width .2s,left .4s;position:absolute;top:0;bottom:0}.progress .ghost.valid{background:color-mix(in srgb, var(--accent) 40%, transparent);border-right-color:var(--accent)}.progress .ghost.clears{background:color-mix(in srgb, var(--cta) 60%, transparent);border-right:0}.progress span{font-weight:700;font-size:calc(var(--t) * .3);color:var(--progress-text);text-shadow:0 0 3px var(--progress-glow);position:relative}.need{min-width:calc(var(--t) * 1.4);font-weight:800;font-size:calc(var(--t) * .5);color:var(--good-text);text-align:right}.need sup{color:#18a0c9;font-size:.6em}.info{width:100%;font-size:calc(var(--t) * .22);color:var(--muted);grid-area:info;justify-content:space-between;align-items:center;gap:8px;display:flex}.pips{align-items:center;gap:3px;display:inline-flex}.pip{width:calc(var(--t) * .16);height:calc(var(--t) * .16);border:1.5px solid var(--panel-text);border-radius:50%}.pip.on{background:var(--panel-text)}.breakdown{text-align:right;min-width:8em}.breakdown.valid b{color:var(--good-text)}.breakdown.invalid{color:var(--bad-text)}.tile,.slot{width:var(--t);height:var(--t);border-radius:calc(var(--t) * .13);position:relative}.slot{background:var(--slot);border:2px solid color-mix(in srgb, var(--line) 35%, transparent)}.slot.empty{background:0 0;border-style:dashed}.tile{border:2px solid var(--tile-line);background:var(--tile);color:var(--tile-text);box-shadow:var(--tile-shadow);--accent-text:#24695d;--good-text:#0e7a1c;--bad-text:#b3271d;--orange-text:#a8461c;--teal-text:#0b6b6c;place-items:center;padding:0;transition:transform 80ms,opacity .15s;display:grid}.tile:active{box-shadow:none;transform:translateY(2px)}.tile .letter{font-weight:800;font-size:calc(var(--t) * .48);line-height:1}.tile.qu .letter{font-size:calc(var(--t) * .4)}.tile .points{top:calc(var(--t) * .05);right:calc(var(--t) * .09);font-size:calc(var(--t) * .17);position:absolute}.tile .vowel{bottom:calc(var(--t) * .02);right:calc(var(--t) * .09);font-size:calc(var(--t) * .16);color:#8a8a8a;position:absolute}.tile .points.boosted{color:var(--orange-text);font-weight:800}.tile.wild{background:repeating-linear-gradient(45deg, var(--tile), var(--tile) 6px, #efd9a6 6px, #efd9a6 12px)}.tile.used{opacity:.25;box-shadow:none}.word{--w:calc(var(--t) * .92);grid-area:word;grid-template-columns:repeat(10, var(--w));grid-auto-rows:var(--w);align-content:start;align-self:start;gap:calc(var(--w) * .1);min-height:calc(var(--w) * 2.1 + var(--w) * .16);padding:calc(var(--w) * .08);border-radius:12px;outline:2px solid #0000;transition:outline-color .15s;display:grid}.word .tile,.word .slot{width:var(--w);height:var(--w)}.word .tile .letter{font-size:calc(var(--w) * .48)}.word .tile .points,.word .tile .vowel{font-size:calc(var(--w) * .17);right:calc(var(--w) * .07)}.slot-bonus{top:calc(var(--w) * .04);left:calc(var(--w) * .08);font-size:calc(var(--w) * .18);color:var(--orange-text);font-weight:800;position:absolute}.word .tile .spread{top:calc(var(--w) * .23);right:calc(var(--w) * .07);font-size:calc(var(--w) * .15);color:var(--orange-text);font-weight:800;position:absolute}.slot .slot-bonus{font-size:calc(var(--w) * .3);top:50%;left:50%;transform:translate(-50%,-50%)}.word .tile{background:var(--word-tile);border-color:var(--line)}.word.valid{outline-color:var(--good)}.word.valid.clears{outline-color:var(--cta);animation:1.2s ease-in-out infinite alternate clears-glow;box-shadow:0 0 10px 3px #f29e4c8c,0 0 22px 6px #f29e4c40}@keyframes clears-glow{0%{box-shadow:0 0 8px 2px #f29e4c73,0 0 16px 4px #f29e4c2e}to{box-shadow:0 0 14px 5px #f29e4cb3,0 0 28px 10px #f29e4c4d}}html.no-motion .word.valid.clears{animation:none}.word.invalid{outline-color:color-mix(in srgb, var(--bad) 60%, transparent)}.word .slot.gap{border:2px dashed var(--accent,currentColor);opacity:.8}.word.shake{animation:.35s shake}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.board{--t:min(var(--t0), calc((100vw - 32px) / (var(--cols,4) * 1.04)));grid-area:board;grid-template-columns:repeat(var(--cols,4), var(--t));gap:calc(var(--t) * .04);display:grid}.modifiers,.upgrades{justify-content:safe center;align-self:stretch;gap:calc(var(--t) * .25);scrollbar-width:thin;flex-direction:column;max-height:100%;padding:4px;display:flex;overflow-y:auto}.modifiers{grid-area:mods}.upgrades{grid-area:upg}.perk-slot{width:calc(var(--t) * 1.8);height:calc(var(--t) * 1.6);border:3px solid color-mix(in srgb, var(--line) 30%, transparent);background:color-mix(in srgb, var(--btn) 60%, transparent);border-radius:12px}.perk-slot.upg{border-color:color-mix(in srgb, var(--panel) 35%, transparent)}.actions{gap:calc(var(--t) * .12);margin-top:calc(var(--t) * .15);grid-area:actions;display:flex}.act{width:calc(var(--t) * .95);height:calc(var(--t) * .95);padding:calc(var(--t) * .18);border:1.5px solid color-mix(in srgb, var(--line) 45%, transparent);border-radius:calc(var(--t) * .26);background:var(--btn);box-shadow:var(--shadow);transition:transform .12s var(--snap), background-color .16s ease, color .16s ease;place-items:center;font-weight:800;display:grid;position:relative}.act:active{transition-duration:60ms;transform:scale(.94)}.act:disabled{opacity:.4}.act.submit{width:calc(var(--t) * 2.1);font-size:calc(var(--t) * .36);border-radius:999px;padding:0}.act.submit[data-dim]{color:var(--muted)}.act.submit:not([data-dim]):not(:disabled){background:var(--cta);color:var(--on-cta);border-color:#0000}.act.sort{font-size:calc(var(--t) * .3)}.act.bag{border-radius:calc(var(--t) * .2) calc(var(--t) * .2) calc(var(--t) * .45) calc(var(--t) * .45);font-size:calc(var(--t) * .32)}.act svg{width:100%;height:100%}.act.refresh svg{transform:scaleX(-1)}.act.refresh.holding svg{animation:.5s linear forwards refresh-charge}@keyframes refresh-charge{to{transform:scaleX(-1)rotate(-180deg)}}.tile.holding{transition:transform .35s ease-out;transform:scale(.92)}.act.holding{box-shadow:none;transform:translateY(2px)}.key-hint{font-size:calc(var(--t) * .16);color:var(--muted);background:0 0;border:0;padding:0;position:absolute;bottom:2px;left:4px}.act.heart{box-shadow:none;cursor:default;background:0 0;border:0;padding:0}.act.heart:active{transform:none}.act.heart svg{fill:var(--bad);stroke:var(--line);stroke-width:1.2px;position:absolute;inset:0}.act.heart span{color:#fff;font-size:calc(var(--t) * .34);margin-top:-6%;position:relative}.badge{background:var(--panel);min-width:20px;height:20px;color:var(--on-panel);border-radius:10px;padding:0 5px;font-size:12px;line-height:20px;position:absolute;top:-6px;right:-6px}@media (aspect-ratio<=4/5){#app{--t0:min(calc((100vw - 24px) / 8.4), calc(100dvh / 12.2), 72px)}.game{grid-template:"top top""info info""mods upg""word word""board board""actions actions"/1fr 1fr;width:100%}.word{--w:min(calc(var(--t) * .92), calc((100vw - 40px) / 10.9))}.modifiers,.upgrades{gap:calc(var(--t) * .15);flex-direction:row;max-width:100%;overflow:auto hidden}.modifiers{justify-self:start}.upgrades{justify-self:end}.perk-slot{width:calc(var(--t) * 1.1);height:calc(var(--t) * .9);flex-shrink:0}.act{width:calc(var(--t) * .9);height:calc(var(--t) * .9)}.act.submit{width:calc(var(--t) * 1.9)}}.backdrop-title{opacity:.06;font-size:12vmin;font-weight:900}.overlay{background:var(--scrim);z-index:10;place-items:center;padding:16px;animation:.16s ease-out fade;display:grid;position:fixed;inset:0}.modal{background:var(--modal);text-align:center;width:min(420px,100%);max-height:calc(100dvh - 32px);animation:pop .24s var(--snap);border-radius:24px;padding:22px;overflow:auto;box-shadow:0 18px 50px #08181447}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.97)}}@keyframes fade{0%{opacity:0}}.modal h1{margin:0 0 4px;font-size:34px}.modal h2{margin:0 0 8px}.modal h3{margin:14px 0 4px;font-size:15px}.sub{color:var(--muted);margin:6px 0}.small{font-size:12px}.error{color:var(--bad-text)}.big{margin:4px 0;font-size:34px;font-weight:800}.big small{color:var(--muted);font-size:18px}.choices{gap:8px;margin:14px 0 6px;display:grid}.choice{border:1.5px solid color-mix(in srgb, var(--line) 45%, transparent);background:var(--btn);width:100%;box-shadow:var(--shadow);transition:transform .14s var(--snap), box-shadow .14s ease, background-color .14s ease;border-radius:18px;gap:2px;padding:12px 14px;display:grid}.choice:not(:disabled):active,.toggle:active,.segmented button:active,.icon-btn:active{transition-duration:60ms;transform:scale(.96)}@media (hover:hover){.choice:not(:disabled):hover{transform:translateY(-1px)}}.choice.primary{background:var(--panel);border-color:var(--panel);color:var(--on-panel)}.choice small{opacity:.75}.choice:disabled{opacity:.5}.link{color:var(--accent-text);background:0 0;border:0;padding:8px;text-decoration:underline}.help{text-align:left;padding-left:18px;line-height:1.45}.keys{font-size:14px;line-height:2}kbd{border:1px solid var(--line);background:var(--btn);border-radius:5px;padding:1px 6px;font-size:12px}.words{margin:10px 0;padding:0;list-style:none}.words li{border-bottom:1px solid color-mix(in srgb, var(--line) 20%, transparent);justify-content:space-between;padding:6px 4px;display:flex}.bag-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px;margin:12px 0;display:grid}.bag-cell{background:var(--tile);color:var(--tile-text);border:1.5px solid var(--tile-line);border-radius:8px;padding:6px 0;display:grid}.bag-cell span{font-weight:800}.bag-cell.none{opacity:.3}.keyboard{grid-template-columns:repeat(7,1fr);gap:6px;margin:12px 0;display:grid}.key{aspect-ratio:1;border:2px solid var(--tile-line);background:var(--tile);color:var(--tile-text);border-radius:8px;font-weight:800}.toast{color:#fff;z-index:20;pointer-events:none;border-radius:999px;padding:10px 18px;font-weight:800;animation:1.6s ease-out forwards rise;position:fixed;top:18%;left:50%;transform:translate(-50%)}.toast.good{background:var(--good)}.toast.bad{background:var(--bad)}@keyframes rise{0%{opacity:0;transform:translate(-50%,10px)}12%,75%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-10px)}}.version{right:max(8px, env(safe-area-inset-right));bottom:max(4px, env(safe-area-inset-bottom));color:var(--muted);background:var(--bg);font-variant-numeric:tabular-nums;pointer-events:none;z-index:30;border-radius:4px;padding:0 4px;font-size:11px;position:fixed}.links{flex-wrap:wrap;justify-content:center;gap:4px 12px;display:flex}.changelog{text-align:left;max-height:55dvh;overflow-y:auto}.release h3{margin:12px 0 4px}.release h3 small{color:var(--muted);font-weight:400}.release ul{margin:0;padding-left:18px;line-height:1.45}.no-motion *,.no-motion :before,.no-motion :after{transition:none!important;animation:none!important}.settings{text-align:left;gap:14px;margin:14px 0;display:grid}.setting{gap:6px;display:grid}.setting-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.setting small{color:var(--muted)}.segmented{background:var(--pill);border-radius:999px;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:3px;display:grid}.segmented button{min-height:36px;color:var(--text);font:inherit;transition:background-color .16s var(--quick), color .16s var(--quick), transform .14s var(--snap);background:0 0;border:0;border-radius:999px;padding:6px 10px;font-size:14px}.segmented button[aria-pressed=true]{background:var(--panel);color:var(--on-panel);font-weight:700}.toggle{border:2px solid var(--line);background:var(--btn);min-width:64px;color:var(--text);font:inherit;border-radius:999px;padding:6px 12px;font-weight:700}.toggle[aria-pressed=true]{background:var(--panel);border-color:var(--panel);color:var(--on-panel)}.switch{background:color-mix(in srgb, var(--muted) 75%, var(--slot));color:#0000;width:52px;height:32px;transition:background-color .18s var(--quick);border:0;border-radius:999px;flex-shrink:0;padding:0;font-size:0;position:relative}.switch:after{content:"";background:var(--btn);width:24px;height:24px;transition:transform .2s var(--snap), background-color .18s;border-radius:50%;position:absolute;top:4px;left:4px;box-shadow:0 1px 3px #00000040}.switch[aria-pressed=true]{background:var(--panel)}.switch[aria-pressed=true]:after{background:var(--on-panel);transform:translate(20px)}.setting input[type=range]{width:100%;accent-color:var(--accent)}.tile.stacked{z-index:1;box-shadow:2px 2px 0 -1px var(--tile), 2px 2px 0 1px var(--tile-line), 5px 5px 0 -1px var(--tile), 5px 5px 0 1px var(--tile-line)}.tile .stack{bottom:calc(var(--t) * .03);left:calc(var(--t) * .08);font-size:calc(var(--t) * .17);color:var(--accent-text);font-weight:800;position:absolute}.word .tile .stack{font-size:calc(var(--w) * .17)}.tile.multi .letter{font-size:calc(var(--t) * .4);letter-spacing:-.03em}.tile.m3 .letter{font-size:calc(var(--t) * .3)}.tile.m4 .letter,.tile.m5 .letter{font-size:calc(var(--t) * .24)}.word .tile.multi .letter{font-size:calc(var(--w) * .4)}.word .tile.m3 .letter{font-size:calc(var(--w) * .3)}.word .tile.m4 .letter,.word .tile.m5 .letter{font-size:calc(var(--w) * .24)}.modal.wide{width:min(720px,100%)}.modal h2 svg,.scale-btn svg{vertical-align:-.18em;width:1.1em;height:1.1em}.scale-btn .bp,.bp-count b,.run-xp .level-up{color:var(--good-text);font-weight:700}.xp-bar{border:2px solid var(--line);background:var(--slot);border-radius:6px;height:10px;overflow:hidden}.xp-bar div{background:var(--accent);height:100%}.scale-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;margin-top:10px;display:flex}.link:disabled{opacity:.4;text-decoration:none}.branches{text-align:left;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:4px 16px;display:grid}.branch h3{margin:12px 0 6px}.node{border-bottom:1px solid color-mix(in srgb, var(--line) 20%, transparent);grid-template-columns:1fr auto auto;align-items:center;gap:6px;padding:8px 0;display:grid}.node-text{gap:3px;min-width:0;display:grid}.node-text small{color:var(--muted)}.node-text em{opacity:.8;font-style:normal}.pips{gap:3px;display:flex}.pips i{background:var(--slot);border:1px solid color-mix(in srgb, var(--line) 50%, transparent);border-radius:3px;width:12px;height:6px}.pips i.on{background:var(--accent-text);border-color:var(--accent-text)}.step{border:2px solid var(--line);background:var(--btn);width:36px;height:36px;color:var(--text);border-radius:10px;font-size:20px;font-weight:700}.step:disabled{opacity:.3}.dev{border:2px dashed var(--muted);text-align:left;border-radius:12px;margin-top:8px;padding:12px}.dev-buttons{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.dev-term{grid-template-columns:44px 1fr auto;align-items:center;gap:6px;margin:4px 0;display:grid}.dev-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 12px;display:grid}.dev label{align-items:center;gap:6px;font-size:14px;display:flex}.dev input,.dev select{font:inherit;border:1px solid var(--line);background:var(--modal);color:var(--text);border-radius:6px;min-width:0;padding:4px 6px;font-size:14px}.dev input{width:80px}.modal.still{animation:none}[data-tiles=flat] .tile{box-shadow:none;border-color:#0000}[data-tiles=round] .tile{border-radius:50%}[data-tiles=outline] .tile{color:var(--text);border-color:var(--text);box-shadow:none;background:0 0}.board-spacer{width:var(--t);height:var(--t)}.dev-btn{font-size:calc(var(--t) * .2);letter-spacing:.04em;font-weight:800}.dev-btn.on{background:var(--panel);border-color:var(--panel);color:var(--on-panel)}.dev-panel{z-index:20;border:2px solid var(--line);background:var(--modal);width:min(320px,100vw - 16px);max-height:min(70dvh,560px);color:var(--text);border-radius:14px;position:fixed;overflow:auto;box-shadow:0 10px 40px #0000004d}.dev-panel .settings{margin:0;padding:10px 14px 14px}.dev-panel h3{margin:4px 0 0;font-size:15px}.dev-panel-head{background:var(--btn);border-bottom:2px solid var(--line);cursor:grab;touch-action:none;align-items:center;gap:8px;padding:8px 8px 8px 14px;display:flex;position:sticky;top:0}.dev-panel-head:active{cursor:grabbing}.dev-panel-head .sub{flex:1;margin:0}.dev-close{width:32px;height:32px;color:var(--text);background:0 0;border:0;border-radius:8px;font-size:22px;line-height:1}.dev-panel select{font:inherit;border:1px solid var(--line);background:var(--modal);color:var(--text);border-radius:6px;padding:4px 6px;font-size:14px}.stepper{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;display:grid}.stepper input{width:100%;accent-color:var(--accent)}:root{--r-common:#8a8f98;--r-uncommon:#2f9e44;--r-rare:#1c7ed6;--r-epic:#9c36b5;--r-legendary:#e8590c;--star:#d9a400}.orange{color:var(--orange-text)}.r-common{--rarity:var(--r-common);--rarity-text:var(--r-common-text)}.r-uncommon{--rarity:var(--r-uncommon);--rarity-text:var(--r-uncommon-text)}.r-rare{--rarity:var(--r-rare);--rarity-text:var(--r-rare-text)}.r-epic{--rarity:var(--r-epic);--rarity-text:var(--r-epic-text)}.r-legendary{--rarity:var(--r-legendary);--rarity-text:var(--r-legendary-text)}.rarity{color:var(--rarity-text,var(--muted));text-transform:capitalize;font-weight:700}.stars{color:var(--star);letter-spacing:-1px;font-size:.85em}.perk-slot.perk{border-color:var(--rarity);background:var(--modal);color:var(--text);font-size:calc(var(--t) * .2);box-shadow:var(--shadow);flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px;line-height:1.1;display:flex;overflow:hidden}.perk-slot.perk.active{outline:3px solid var(--accent);outline-offset:2px;background:var(--accent-soft);color:var(--tile-text)}.perk-name{font-size:1em}.perk-tag{font-size:1.15em;font-weight:800}.uses{gap:2px;display:flex}.uses i{width:calc(var(--t) * .14);height:calc(var(--t) * .08);background:var(--slot);border-radius:2px}.uses i.on{background:var(--panel-text)}.badge.free{background:var(--good)}.tile.target{outline:2px dashed var(--accent);outline-offset:1px}.tile.held{outline:3px solid var(--good);transform:translateY(-3px)}.target-hint{text-align:right;color:var(--text);flex:1}.target-hint small{color:var(--muted)}.target-hint .link{font-size:inherit;margin-left:6px}.offers{grid-template-columns:repeat(auto-fit,minmax(122px,1fr));gap:10px;margin:10px 0 14px;display:grid}.offer{border:3px solid var(--rarity,var(--line));background:var(--btn);color:var(--text);box-shadow:var(--shadow);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:12px 10px;display:flex;position:relative}.offer:hover{transform:translateY(-2px)}.offer b{font-size:1.1em}.offer p{margin:4px 0 0;font-size:.9em}.offer small{color:var(--muted)}.offer .full{color:var(--bad-text)}.offer .key-hint{font-size:11px;top:auto;bottom:4px;left:8px}.card-offer{border-style:dashed;border-color:var(--star)}.gift-offer{background:linear-gradient(180deg, color-mix(in srgb, #c2406a 12%, var(--modal)), var(--modal) 60%);border-color:#c2406a}.gift-offer .offer-kind{color:#c2406a}.offer-kind{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8em}.choices.row{grid-template-columns:1fr 1fr}.level-words summary{cursor:pointer;color:var(--muted)}.ink{color:var(--panel-text);font-weight:700}.swap-keys{grid-template-columns:repeat(6,1fr)}.swap-keys .key{place-items:center;font-size:1.3em;display:grid}.swap-keys .key small{color:var(--muted);font-size:.55em;font-weight:600}.swap-keys .key:disabled{opacity:.35}@media (aspect-ratio<=4/5){.perk-slot.perk{width:auto;height:auto;min-height:calc(var(--t) * .9);min-width:calc(var(--t) * 1.3);max-width:calc(var(--t) * 2.2);padding:3px 6px;font-size:10px}.offers{grid-template-columns:1fr;gap:8px}.offer{padding:8px 10px}.offer p{margin:0}.offer .key-hint,.offer-kind br,.target-hint small{display:none}}.sell-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:0 0 10px;display:flex}.sell-chip{border:2px solid var(--rarity,var(--line));background:var(--btn);color:var(--text);border-radius:999px;padding:4px 10px;font-size:.85em}.sell-chip small{color:var(--good-text);font-weight:700}.codex{text-align:left;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:8px;display:grid}.codex-entry{border:2px solid var(--rarity,var(--line));background:var(--btn);border-radius:12px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.codex-entry.locked{border-style:dashed}.codex-entry ul{gap:4px;margin:0;padding:0;font-size:.9em;list-style:none;display:grid}.codex-entry small{color:var(--muted)}.tile{touch-action:none}.tile.drag-ghost{z-index:30;pointer-events:none;opacity:.95;margin:0;position:fixed;transform:scale(1.12)rotate(-4deg);box-shadow:0 8px 18px #0000004d}.tile.drag-src{opacity:.35}.word .drop-over,.upgrades .perk.drop-over{outline:3px solid var(--accent);outline-offset:2px}.word.drop-over,.board.drop-over{outline:2px dashed var(--accent);outline-offset:6px;border-radius:8px}.tooltip{z-index:25;border:2px solid var(--rarity,var(--line));background:var(--modal);max-width:240px;color:var(--text);pointer-events:none;border-radius:12px;flex-direction:column;gap:3px;padding:10px 12px;font-size:14px;display:flex;position:fixed;box-shadow:0 8px 24px #00000038}.tooltip[hidden]{display:none}.tooltip p{margin:2px 0}.tooltip small{color:var(--muted)}.modal-top{z-index:2;background:var(--modal);text-align:left;margin:-22px -22px 0;padding:10px 12px 4px;position:sticky;top:-22px}.modal-back{border:2px solid var(--line);background:var(--btn);color:var(--text);border-radius:10px;padding:6px 12px;font-weight:700}.choice.polish .after{color:var(--good-text);font-weight:700}.teal{color:var(--teal-text)}.bad-text{color:var(--bad-text)}.perk-slot.perk.firing{border-color:var(--teal);box-shadow:0 0 0 3px color-mix(in srgb, var(--teal) 35%, transparent), var(--shadow)}.tile.special:after{font-size:calc(var(--t) * .16);line-height:1;position:absolute;bottom:1px;left:3px}.tile.k-golden,.swatch.k-golden{color:#4a3500;background:linear-gradient(145deg,#ffe58a,#e6b422 60%,#f6d36b);border-color:#a77d00}.tile.k-golden:after{content:"×";color:#6b4f00;font-weight:800}.tile.k-spreader,.swatch.k-spreader{background:radial-gradient(circle at 50% 50%, var(--tile) 55%, #f1b38a 100%);border-color:#d0753a}.tile.k-spreader:after{content:"✣";color:#c25a1c}.tile.k-dot .letter:after{content:"•";color:#c23a3a}.swatch.k-dot{background:var(--tile);box-shadow:inset 0 0 0 3px #c23a3a}.tile.k-bold .letter{-webkit-text-stroke:1.5px currentColor;font-weight:900}.tile.k-bold{border-width:3px;border-color:#2a2a2a}.swatch.k-bold{background:var(--tile);box-shadow:inset 0 0 0 3px #2a2a2a}.tile.k-diamond,.swatch.k-diamond{color:#0e2f5c;background:linear-gradient(145deg,#cfe6ff,#6aa7f0);border-color:#2c6cc4}.tile.k-diamond:after{content:"◆";color:#1d4f99}.tile.k-emerald,.swatch.k-emerald{color:#0b3b20;background:linear-gradient(145deg,#c9f2d6,#4fbf7a);border-color:#1f8a4c}.tile.k-emerald:after{content:"¼×4";color:#0f5e31;font-weight:700}.tile.k-bang,.tile.k-plus,.tile.k-comma,.tile.k-quote,.swatch.k-quote,.swatch.k-bang,.swatch.k-plus,.swatch.k-comma{color:#fff;background:#3b3355;border-color:#1c1730}.tile.k-bang .letter,.tile.k-plus .letter,.tile.k-comma .letter,.tile.k-quote .letter{font-size:calc(var(--t) * .56)}.bag-specials{flex-wrap:wrap;justify-content:center;gap:6px 10px;margin:0 0 10px;font-size:.85rem;display:flex}.bag-special{align-items:center;gap:5px;display:inline-flex}.swatch{border:1px solid var(--line);border-radius:4px;width:14px;height:14px;display:inline-block}.gold-text{color:var(--gold-text);font-weight:800}.peek-bar{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;text-align:center;border:2px solid var(--line);background:var(--modal);border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;width:max-content;max-width:calc(100vw - 32px);padding:10px 12px 10px 16px;font-size:.85rem;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #00000040}.peek-bar .choice{white-space:nowrap}.dev-row{border:1px dashed var(--line);border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;margin:10px 0 0;padding:8px;font-size:.8rem;display:flex}.dev-row span{letter-spacing:.04em;opacity:.7;font-weight:800}.overlay:has(.modal.start){background:0 0;animation:none}.modal.start{width:min(440px,100%);box-shadow:none;background:0 0;flex-direction:column;gap:16px;padding:4px 4px 8px;animation:none;display:flex}.modal.start:not(.still)>*{animation:rise-in .34s var(--snap) backwards}.modal.start:not(.still)>:nth-child(2){animation-delay:30ms}.modal.start:not(.still)>:nth-child(3){animation-delay:60ms}.modal.start:not(.still)>:nth-child(4){animation-delay:90ms}.modal.start:not(.still)>:nth-child(5){animation-delay:.12s}.modal.start:not(.still)>:nth-child(n+6){animation-delay:.15s}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}}.start-top{justify-content:space-between;display:flex}.flag{vertical-align:-.15em;width:1.5em;height:1em;box-shadow:0 0 0 1px color-mix(in srgb, var(--text) 18%, transparent);border-radius:3px;display:inline-block}.flag-btn .flag{width:24px;height:16px}.start-top .icon-btn{width:44px;height:44px;padding:10px}.logo{flex-direction:column;align-items:center;gap:6px;margin:0;display:flex}.logo-row{gap:5px;display:flex}.logo-tile{aspect-ratio:37/44;background:var(--tile);width:clamp(30px,9vw,40px);color:var(--tile-text);box-shadow:var(--tile-shadow);border-radius:11px;place-items:center;font-size:clamp(18px,5.4vw,24px);font-weight:700;line-height:1;display:grid;position:relative}.logo-tile small{opacity:.75;font-size:9px;font-weight:600;position:absolute;bottom:3px;right:4px}.logo-tile.re{background:var(--cta);width:clamp(26px,8vw,32px);color:var(--on-cta);border-radius:10px;font-size:clamp(15px,4.6vw,19px);box-shadow:0 3px #c9772d}.modal.start:not(.still) .logo-tile{animation:tile-drop .36s var(--snap) backwards}.logo-row+.logo-row .logo-tile:first-child{animation-delay:80ms}.logo-row+.logo-row .logo-tile:nth-child(2){animation-delay:.11s}.logo-row+.logo-row .logo-tile:nth-child(3){animation-delay:.14s}.logo-row+.logo-row .logo-tile:nth-child(4){animation-delay:.17s}.logo-row+.logo-row .logo-tile:nth-child(5){animation-delay:.2s}.logo-row+.logo-row .logo-tile:nth-child(6){animation-delay:.23s}.logo-row+.logo-row .logo-tile:nth-child(7){animation-delay:.26s}.logo-row+.logo-row .logo-tile:nth-child(8){animation-delay:.29s}@keyframes tile-drop{0%{opacity:0;transform:translateY(-14px)rotate(-4deg)}}.modal.start>.sub{margin:-4px 0 4px;font-size:14px}.difficulty-pick{background:var(--modal);box-shadow:var(--shadow);text-align:left;border:0;border-radius:22px;gap:10px;margin:0;padding:14px;display:grid}.difficulty-pick legend{float:left;color:var(--muted);padding:0;font-size:13px;font-weight:600}.radio-row{clear:both;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.radio-pill{background:var(--pill);cursor:pointer;min-height:44px;transition:background-color .16s var(--quick), color .16s var(--quick), transform .14s var(--snap);border-radius:999px;place-items:center;font-size:14px;display:grid;position:relative}.radio-pill input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.radio-pill:active{transform:scale(.95)}.radio-pill:has(input:checked){background:var(--panel);color:var(--on-panel);font-weight:700}.radio-pill:has(input:focus-visible){outline:3px solid var(--cta);outline-offset:2px}.diff-stats{color:var(--muted);margin:0;font-size:12px;line-height:1.6}.diff-stats b{color:var(--text)}.play-btn{background:var(--cta);min-height:62px;color:var(--on-cta);letter-spacing:.02em;box-shadow:0 6px 18px color-mix(in srgb, var(--cta) 35%, transparent);transition:transform .14s var(--snap), box-shadow .14s ease;border:0;border-radius:999px;font-size:20px;font-weight:700}.play-btn:not(:disabled):active{transition-duration:60ms;transform:scale(.97)}@media (hover:hover){.play-btn:not(:disabled):hover{box-shadow:0 9px 22px color-mix(in srgb, var(--cta) 45%, transparent);transform:translateY(-2px)}}.play-btn:disabled{background:var(--slot);color:var(--muted);box-shadow:none;font-size:15px}.start-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.start-tile{background:var(--modal);min-height:76px;box-shadow:var(--shadow);text-align:left;transition:transform .14s var(--snap);border:0;border-radius:18px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.start-tile b{font-size:14px}.start-tile small{color:var(--muted);font-size:12px}.start-tile:active{transition-duration:60ms;transform:scale(.96)}@media (hover:hover){.start-tile:hover{transform:translateY(-2px)}}.start-tile.featured{background:var(--feature);color:var(--on-feature)}.start-tile.featured small,.start-tile.featured .bp{color:var(--feature-sub)}.start-foot{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.link.quiet{padding:12px 0;font-weight:600;text-decoration:none}.modal-head{align-items:center;gap:12px;display:flex}.modal-head h2{margin:0}.modal-head .icon-btn{width:40px;height:40px;padding:9px}.settings-group h3{color:var(--muted);margin:0 4px 6px;font-size:12px;font-weight:600}.settings-card{background:var(--bg);border-radius:18px;gap:4px;padding:4px 14px;display:grid}.settings-card>*{padding:8px 0}.settings-card>*+*{border-top:1px solid color-mix(in srgb, var(--line) 40%, transparent)}.settings-card .setting-row>span:first-child small{color:var(--muted);font-size:12px;display:block}.settings-card .segmented{flex-shrink:0}.settings-card .segmented button{white-space:nowrap;font-size:13px}.muted{color:var(--muted)}.settings-card>.disclosure{width:100%;min-height:44px;color:inherit;text-align:left;background:0 0;border-width:1px 0 0}.keys-setting{gap:6px;display:grid}:focus-visible{outline:3px solid var(--cta);outline-offset:2px}.test-picker{border:2px dashed var(--line);border-radius:12px;margin:10px 0;padding:10px}.test-picker h3{margin-top:0}.test-quality{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:6px;display:flex}.snapshot{font-size:calc(var(--t) * .28);border:1px solid var(--line);color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;flex-shrink:1;align-items:center;gap:4px;min-width:0;max-width:45%;padding:2px 6px;font-family:inherit;display:inline-flex;overflow:hidden}.snapshot .mini{gap:1px;min-width:0;display:inline-flex;overflow:hidden}.snapshot .mini i{border:1px solid var(--tile-line);background:var(--tile);min-width:1.25em;height:1.35em;color:var(--tile-text);border-radius:3px;place-items:center;padding:0 1px;font-size:.85em;font-style:normal;font-weight:800;display:inline-grid}.snapshot b{color:var(--good-text)}.gift-explain{color:var(--muted);margin-top:2px;display:block}.word .slot.gift-slot{border-style:dashed;border-color:#e0a800;box-shadow:0 0 0 2px #e0a80059}.word .tile.gift-slot{box-shadow:0 0 0 3px #e0a800,0 0 10px 2px #e0a8008c}.gift-mark{top:calc(var(--w) * -.22);font-size:calc(var(--w) * .3);pointer-events:none;line-height:1;position:absolute;left:50%;transform:translate(-50%)}.dev-panel .state-link{width:100%;font:inherit;border:1px solid var(--line);color:inherit;background:0 0;border-radius:6px;padding:.35rem .5rem;font-size:.75rem}.keys-setting .setting-row span{font-weight:400}.key-bind{border:2px solid var(--line);background:var(--btn);border-radius:8px;min-width:7.5em;padding:4px 10px;font-size:.9rem}.key-bind.listening{border-color:var(--accent-text);color:var(--accent-text);font-weight:700}.key-bind kbd,.snapshot .snap-key{font:inherit;font-weight:700}.key-bind kbd{box-shadow:none;background:0 0;border:0;padding:0}.snapshot .snap-key{border:1px solid var(--line);color:var(--muted);border-radius:4px;margin-left:2px;padding:0 4px;font-size:.7em}.slot.milestone-ghost{background:var(--tile);border-color:var(--tile-line);opacity:var(--fade)}.offer-wrap{flex-direction:column;gap:2px;display:flex}.offer-wrap>.offer{flex:1}.link.banish{align-self:center;font-size:13px}.tune-table{margin:8px 0 12px;overflow-x:auto}.tune-table table{border-collapse:collapse;width:100%}.tune-table th,.tune-table td{text-align:left;padding:4px 6px;font-size:14px}.tune-table input{width:72px}.tune-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin-bottom:12px;display:grid}.tune-item{border:2px solid var(--rarity,var(--line));border-radius:10px;flex-direction:column;gap:4px;padding:8px;display:flex}.tune-name{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tune-name select{margin-left:auto}.tune-item textarea{width:100%;font:inherit;resize:vertical;font-size:13px}.tune-table .changed,.tune-item .changed{outline:2px solid var(--accent);outline-offset:1px}
