@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");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:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-wght-normal-BbzFLZTg.woff2)format("woff2-variations");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:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-ext-400-normal-C2zvOubV.woff2)format("woff2"),url(/assets/dm-mono-latin-ext-400-normal-1aZr6b2b.woff)format("woff");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-400-normal-4GdczIuU.woff2)format("woff2"),url(/assets/dm-mono-latin-400-normal--0xN8mdc.woff)format("woff");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:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-mono-latin-ext-500-normal-BtRyHRi6.woff2)format("woff2"),url(/assets/dm-mono-latin-ext-500-normal-Dw3M13d8.woff)format("woff");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-mono-latin-500-normal-DRMDZjhP.woff2)format("woff2"),url(/assets/dm-mono-latin-500-normal-CN8Miw6E.woff)format("woff");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}:root{--bg:#e4e8f3;--surface:#fff;--surface-2:#eff2fa;--ink:#171a36;--ink-2:#555b80;--line:#c6cde2;--accent:#ffc933;--accent-soft:#fff0bf;--accent-ink:#2a1f00;--accent-edge:#171a36;--star:#9a6700;--key-bg:#fff;--key-border:#171a36;--key-edge:#171a36;--good:#0e8f62;--good-bg:#d9f3e7;--bad:#d2364a;--bad-bg:#fbe0e4;--focus:#3554f5;--font-display:"Bricolage Grotesque Variable","Avenir Next","Segoe UI",system-ui,sans-serif;--font-body:"Instrument Sans Variable","Segoe UI",system-ui,-apple-system,sans-serif;--font-mono:"DM Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;--spring:cubic-bezier(.3,1.5,.5,1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1126;--surface:#1a1d3c;--surface-2:#242850;--ink:#f0f1ff;--ink-2:#a3a9d0;--line:#363b6c;--accent:#ffc933;--accent-soft:#4b3c0f;--accent-ink:#2a1f00;--accent-edge:#8a6100;--star:#ffc933;--key-bg:#272b58;--key-border:#4a5090;--key-edge:#070817;--good:#3dd69a;--good-bg:#11372b;--bad:#ff7888;--bad-bg:#44161e;--focus:#93a5ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1126;--surface:#1a1d3c;--surface-2:#242850;--ink:#f0f1ff;--ink-2:#a3a9d0;--line:#363b6c;--accent:#ffc933;--accent-soft:#4b3c0f;--accent-ink:#2a1f00;--accent-edge:#8a6100;--star:#ffc933;--key-bg:#272b58;--key-border:#4a5090;--key-edge:#070817;--good:#3dd69a;--good-bg:#11372b;--bad:#ff7888;--bad-bg:#44161e;--focus:#93a5ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.45}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border:0;padding:0}button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}p,h1,h2,h3,ol,ul{margin:0}.em{vertical-align:-.12em;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;width:1em;height:1em;font-style:normal;display:inline-block}span.em{width:auto;height:auto;line-height:1}.app{flex-direction:column;gap:14px;max-width:1160px;min-height:100%;margin-inline:auto;padding-block:12px 28px;padding-inline:16px;display:flex}#fx{pointer-events:none;z-index:60;width:100%;height:100%;position:fixed;inset:0}.fly{pointer-events:none;z-index:55;will-change:transform;width:1em;height:1em;position:fixed;top:0;left:0}@keyframes pop{0%{transform:scale(.4)rotate(-20deg)}to{transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes shake{20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes glow{0%{background:var(--accent)}to{background:var(--surface-2)}}@keyframes land{0%{transform:scale(1.07,.88)}45%{transform:scale(.95,1.08)}to{transform:none}}@keyframes fusePop{0%{opacity:0;transform:scale(0)rotate(-40deg)}55%{opacity:1;transform:scale(1.32)rotate(10deg)}to{opacity:1;transform:none}}@keyframes ring{0%{opacity:.95;transform:scale(.7)}to{opacity:0;transform:scale(1.8)}}@keyframes hopIn{0%{transform:scale(0)}60%{transform:scale(1.55)}to{transform:none}}@keyframes grumble{0%,84%,to{transform:none}88%{transform:rotate(-10deg)}92%{transform:rotate(10deg)}96%{transform:rotate(-5deg)}}@keyframes bob{0%{transform:translateY(1px)rotate(-5deg)}to{transform:translateY(-4px)rotate(5deg)}}@keyframes breathe{50%{border-color:var(--ink-2);background:var(--accent-soft)}}@keyframes pulse{50%{opacity:.2}}@keyframes cheer{0%{transform:none}35%{transform:translateY(-14px)rotate(-6deg)}70%{transform:translateY(0)rotate(4deg)}to{transform:none}}@keyframes starPop{0%{opacity:0;transform:scale(0)rotate(-90deg)}60%{opacity:1;transform:scale(1.5)rotate(15deg)}to{opacity:1;transform:none}}@keyframes bump{40%{transform:scale(1.25)}}@keyframes write{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes float{50%{transform:translateY(-5px)rotate(6deg)}}@keyframes bounce{0%,to{transform:translateY(0)scale(1.05,.95)}50%{transform:translateY(-16px)scale(.95,1.05)}}@keyframes flame{50%{transform:scale(1.15)rotate(-6deg)}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes peekIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}@keyframes ping{0%{box-shadow:0 4px 0 var(--key-edge),0 0 0 0 var(--accent)}to{box-shadow:0 4px 0 var(--key-edge),0 0 0 14px transparent}}@keyframes cellIn{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}@keyframes nudge{50%{box-shadow:0 4px 0 var(--accent-edge),0 0 0 7px color-mix(in srgb,var(--accent) 40%,transparent)}}@keyframes rewind{0%{opacity:.35;transform:scale(.97)rotate(-1.5deg)}to{opacity:1;transform:none}}.label{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);font-size:12px;font-weight:600}.key{background:var(--key-bg);border:2px solid var(--key-border);box-shadow:0 4px 0 var(--key-edge);border-radius:14px;transition:transform 60ms,box-shadow 60ms,background-color .12s}.key:active:not(:disabled){box-shadow:0 1px 0 var(--key-edge);transform:translateY(3px)}.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-edge);box-shadow:0 4px 0 var(--accent-edge);font-family:var(--font-display);min-height:52px;padding:0 22px;font-size:19px;font-weight:700}.primary:active:not(:disabled){box-shadow:0 1px 0 var(--accent-edge)}.second{min-height:44px;padding:0 14px;font-size:15px;font-weight:600}.ghost{color:var(--ink-2);border-radius:12px;min-height:44px;padding:0 10px;font-weight:600;transition:color .12s,transform .1s}.ghost:hover:not(:disabled){color:var(--ink)}.ghost:active:not(:disabled){transform:scale(.94)}.ghost:disabled{opacity:.4;cursor:default}.stars{color:var(--star);letter-spacing:1px;white-space:nowrap}.pips{vertical-align:middle;gap:3px;display:inline-flex}.pips i{background:var(--line);border-radius:50%;width:7px;height:7px}.pips i.on{background:var(--ink-2)}.actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.actions .primary{flex:1}.moves{font:13px var(--font-mono);color:var(--ink-2);margin-left:auto;display:inline-block}.moves.bump{animation:bump .3s var(--spring)}.icon{justify-content:center;align-items:center;gap:6px;min-width:44px;display:inline-flex}.nb{align-items:center;gap:6px;display:none;position:relative}.nb .em{font-size:18px}.nb .dot{background:var(--bad);border:2px solid var(--surface);border-radius:50%;width:13px;height:13px;position:absolute;top:-5px;right:-5px}.nb.ping{animation:.9s ease-out 2 ping}.status{min-height:2.9em;color:var(--ink-2);font-size:15px}.status.swap{animation:.28s ease-out rise}.status b{color:var(--ink);font-weight:600}.kbd{color:var(--ink-2);font-size:13px;display:none}.fine{color:var(--ink-2);font-size:14px}.fine b{color:var(--ink);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500}.drag-ghost{z-index:50;pointer-events:none;filter:drop-shadow(0 8px 6px #00000047);will-change:transform;width:52px;height:52px;margin:-38px 0 0 -28px;position:fixed;top:0;left:0}[data-drag]{touch-action:none}.lifted{opacity:.25}.over{outline:3px solid var(--focus);outline-offset:2px}.top{justify-content:space-between;align-items:center;gap:8px;min-height:40px;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.04em;white-space:nowrap;font-size:20px;font-weight:800}.app[data-screen=home] .brand{visibility:hidden}.brand .o,.wordmark .o{vertical-align:-.02em;margin-inline:.03em .05em;font-size:.74em}.o.pop{animation:.45s cubic-bezier(.3,1.6,.5,1) pop}.hud{align-items:center;gap:2px;display:flex}.chip{font-family:var(--font-mono);font-variant-numeric:tabular-nums;background:var(--surface);border:1.5px solid var(--line);white-space:nowrap;border-radius:999px;margin-right:4px;padding:5px 10px;font-size:14px}.chip .em{animation:1.2s ease-in-out infinite flame}.ico{align-items:center;gap:6px;display:inline-flex}.ico .em{font-size:20px}@media (max-width:560px){.ico .t{display:none}}.home{flex:1;align-content:start;gap:22px;padding-block:4px;display:grid}.wordmark{font-family:var(--font-display);white-space:nowrap;letter-spacing:-.055em;padding-bottom:.14em;font-size:clamp(40px,14vw,120px);font-weight:800;line-height:.84}.lede{color:var(--ink-2);max-width:36ch;margin-top:8px;font-size:17px}.hero .primary{min-width:min(100%,280px);margin-top:18px}.side{gap:22px;min-width:0;display:grid}.side.enter>*{animation:.4s ease-out both rise}.side.enter>:nth-child(2){animation-delay:70ms}.side.enter>:nth-child(3){animation-delay:.14s}.today{background:var(--surface);border:1.5px solid var(--line);border-radius:20px;gap:10px;padding:14px;display:grid}.guest{background:var(--accent-soft);border-radius:14px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px;display:grid}.guest>.em{font-size:40px;animation:3s ease-in-out infinite float}.guest b{font-family:var(--font-display);font-size:17px;line-height:1.2;display:block}.guest p{font-size:14px;line-height:1.35}.dayboards{gap:8px;padding:0;list-style:none;display:grid}.dayb{text-align:left;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:56px;padding:10px 14px;display:grid}.dayb .nm{display:grid}.dayb b{font-family:var(--font-display);font-size:18px;line-height:1.15}.dayb .meta{color:var(--ink-2);font-size:13px}.dayb .res{font:13px var(--font-mono);color:var(--ink-2)}.dayb .res.stars{color:var(--star);font-size:18px}.dayb.done{background:var(--good-bg)}.share{background:var(--surface-2);border-radius:14px;justify-items:start;gap:8px;padding:12px;display:grid}.sharegrid{letter-spacing:1px;font-size:24px;line-height:1.2}.sharegrid i{animation:starPop .45s var(--spring) both;animation-delay:calc(var(--i)*70ms + .2s);font-style:normal;display:inline-block}.share pre{background:var(--surface);border:1.5px solid var(--line);font:14px/1.5 var(--font-mono);white-space:pre-wrap;-webkit-user-select:all;user-select:all;border-radius:10px;width:100%;margin:0;padding:10px}.extras{gap:14px;display:grid}.row{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.laws{gap:8px;padding:0;list-style:none;display:grid}.laws li{background:var(--surface);border:1.5px solid var(--line);border-radius:14px;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px;display:grid}.laws .demo{white-space:nowrap;font-size:20px;font-family:var(--font-display);color:var(--ink-2);font-weight:700}.laws b{font-family:var(--font-display);font-size:16px;line-height:1.2;display:block}.laws span.t{color:var(--ink-2);font-size:14px;line-height:1.3}.loader{color:var(--ink-2);text-align:center;justify-items:center;gap:10px;padding:28px 12px;display:grid}.loader .em{font-size:40px;animation:.7s ease-in-out infinite bounce}.play{grid-template-columns:minmax(0,1fr);align-content:start;gap:12px;display:grid}.main{grid-template-columns:minmax(0,1fr);gap:8px;min-width:0;display:grid}.rail{display:none}.howto{color:var(--ink-2);margin-top:14px;font-size:14px}.lvlist{gap:2px;margin-top:10px;padding:0;list-style:none;display:grid}.lvrow{width:100%;color:var(--ink-2);text-align:left;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;padding:8px 10px;font-size:15px;font-weight:500;display:grid}.lvrow:hover{color:var(--ink)}.lvrow.now{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--line);color:var(--ink);font-weight:600}.lvrow .stars{font-size:13px}.rail .guest{grid-template-columns:auto minmax(0,1fr);margin-top:14px;padding:8px 10px}.rail .guest>.em{font-size:30px}.rail .guest b{font-size:15px}.rail .guest p{font-size:13px}.strip{scrollbar-width:none;align-items:center;gap:6px;padding:2px 2px 6px;display:flex;overflow-x:auto}.strip::-webkit-scrollbar{display:none}.strip .label{white-space:nowrap;margin-right:4px}.lv{border:1.5px solid var(--line);background:var(--surface);border-radius:12px;flex:none;align-content:center;place-items:center;gap:3px;min-width:64px;height:46px;padding:0 10px;display:grid}.lv b{font-size:13px;font-weight:600;line-height:1}.lv .stars{letter-spacing:0;font-size:9px;line-height:1}.lv.now{background:var(--ink);color:var(--bg);border-color:var(--ink)}.lv.now .stars{color:var(--accent)}.stage{background:var(--surface);border:1.5px solid var(--line);border-radius:20px;align-content:start;gap:14px;min-width:0;padding:14px;display:grid}.stage.enter{animation:.32s ease-out rise}.stage.enter .board>*{animation:cellIn .32s var(--spring) both;animation-delay:calc(var(--j)*28ms + 50ms)}.stage.enter .piece{animation:.3s ease-out both rise;animation-delay:calc(var(--j)*45ms + .2s)}.stage.rewind .board,.stage.rewind .tray{animation:.28s ease-out rewind}.lv-head{gap:4px;display:grid}.prompt{font-family:var(--font-display);text-wrap:balance;flex-wrap:wrap;align-items:center;gap:10px;font-size:clamp(22px,5.4vw,28px);font-weight:700;line-height:1.1;display:flex}.note{color:var(--ink-2);max-width:62ch;font-size:14px}.verdict{background:var(--good-bg);animation:land .4s var(--spring);border-radius:16px;gap:6px;padding:12px 14px;display:grid}.v-top{font-family:var(--font-display);color:var(--good);justify-content:space-between;align-items:baseline;gap:12px;font-size:20px;font-weight:700;display:flex}.v-top .stars{font-size:24px}.v-top .stars i{animation:starPop .5s var(--spring) both;animation-delay:calc(var(--i)*.2s + .45s);font-style:normal;display:inline-block}.v-top .stars i.off{opacity:.35}.verdict p{font-size:15px;line-height:1.4}.verdict .share{background:var(--surface);margin-top:4px}.verdict+.actions .primary{animation:1.4s ease-in-out 1.6s infinite nudge}.conv{gap:18px;display:grid}.field{align-content:start;gap:12px;min-width:0;display:grid}.boardwrap{min-width:0}.board{grid-template-columns:repeat(var(--cols),minmax(0,84px));justify-content:center;gap:8px;padding-top:8px;display:grid}.cell{aspect-ratio:1;background:var(--surface-2);border:2px dashed var(--line);border-radius:16px;place-items:center;display:grid;position:relative;container-type:inline-size}.cell .em{font-size:30px;font-size:54cqi}.cell.target{animation:1.6s ease-in-out infinite breathe}.cell.has{border-style:solid;border-color:var(--key-border);background:var(--key-bg);box-shadow:0 3px 0 var(--key-edge)}.cell.fusion{background:var(--accent-soft)}.cell.fixed{background:var(--surface-2);border-color:var(--line);box-shadow:none;cursor:default}.cell.fixed.fusion{background:var(--accent-soft)}.cell.wall{background:0 0;border:0}.cell.wall .em{opacity:.6}.cell.sad{border-color:var(--bad);box-shadow:0 3px 0 var(--bad)}.cell.fixed.sad{box-shadow:none}.cell.sel{background:var(--accent)}.cell.sel>.em:first-child,.piece.sel .em{animation:.5s ease-in-out infinite alternate bob}.cell.land{animation:.32s .15s land}.cell.rage{animation:.4s .2s shake}.cell.land.rage{animation:.32s .15s land,.4s .5s shake}.cell.shake{animation:.35s shake}.cell.fusing>.em:first-child{animation:.5s .18s both fusePop}.cell.fusing:after,.cell.calm:after,.cell.rage:after{content:"";border:3px solid var(--accent);pointer-events:none;border-radius:19px;animation:.6s .2s both ring;position:absolute;inset:-3px}.cell.calm:after{border-color:var(--good)}.cell.rage:after{border-color:var(--bad)}.cell.culprit:before,.cell.doomed:before{content:"";border:2px dashed var(--bad);pointer-events:none;border-radius:22px;animation:1s ease-in-out infinite pulse;position:absolute;inset:-7px}.icon.hot{color:var(--bad);animation:bump .6s var(--spring) 2}.mood{position:absolute;top:-7px;right:-7px;font-size:18px!important}.cell.sad .mood{animation:3.2s infinite grumble}.cell.calm .mood,.cell.rage .mood,.cell.land .mood,.cell.fusing .mood{animation:.45s .3s both hopIn}.won .cell.has{animation:cheer .6s ease-in-out calc(var(--i)*70ms + .15s)}.pin{background:var(--ink-2);border-radius:50%;width:7px;height:7px;position:absolute;top:6px;left:6px}.tray{border:1.5px dashed var(--line);border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;min-height:76px;padding:8px;display:flex}.tray .hint{color:var(--ink-2);font-size:14px}.piece{place-items:center;width:56px;height:56px;display:grid}.piece .em{font-size:30px}.piece.fusion{background:var(--accent-soft)}.piece.sel{background:var(--accent);border-color:var(--accent-edge);box-shadow:0 4px 0 var(--accent-edge)}.piece.back{animation:.3s .15s land}.cast{gap:6px;margin-top:8px;padding:0;list-style:none;display:grid}.cast li{background:var(--surface-2);border:1.5px solid #0000;border-radius:12px;grid-template-columns:30px minmax(0,1fr);gap:8px;padding:8px 10px;transition:background-color .25s,border-color .2s;display:grid}.cast li.on{border-color:var(--ink)}.cast li.sad{background:var(--bad-bg)}.cast li.new{animation:1.6s ease-out glow}.cast li.new p.k,.cast li.new p.y{animation:.9s steps(34,end) .15s both write}.cast li.guestrow{background:var(--accent-soft)}.cast li.guestrow.sad{background:var(--bad-bg)}.cast .em{font-size:24px}.cast b{font-size:14px;font-weight:600}.cast b small{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);margin-left:6px;font-size:11px;font-weight:600}.cast p{color:var(--ink-2);padding-left:16px;font-size:13px;line-height:1.35;position:relative}.cast p:before{content:"?";font-weight:700;font-family:var(--font-display);position:absolute;left:1px}.cast p.k:before{content:"·";left:3px}.cast p.y:before{content:"✓";color:var(--good);left:0}.cast p.n{color:var(--ink)}.cast p.n:before{content:"✗";color:var(--bad);left:0}.cast p.secret{font-style:italic}.plain{color:var(--ink-2);margin-top:8px;font-size:13px}.recs{flex-wrap:wrap;gap:6px;margin-top:8px;padding:0;list-style:none;display:flex}.recs li{font-family:var(--font-display);background:var(--surface-2);color:var(--ink-2);white-space:nowrap;border-radius:12px;padding:6px 10px;font-size:15px;font-weight:700}.recs li.got{color:var(--ink)}.recs li.new{animation:1.6s ease-out glow}.recs .em{vertical-align:-3px;font-size:20px}.who>*+.label{margin-top:16px}.scrim{z-index:70;background:#0a0c1e80;animation:.2s ease-out fade;position:fixed;inset:0}.sheet{z-index:71;background:var(--surface);border:1.5px solid var(--line);max-width:600px;max-height:min(80%,660px);padding:10px 16px calc(14px + env(safe-area-inset-bottom,0px));border-bottom:0;border-radius:22px 22px 0 0;flex-direction:column;gap:10px;margin-inline:auto;animation:.34s cubic-bezier(.2,.9,.3,1.04) sheetUp;display:flex;position:fixed;bottom:0;left:0;right:0}.sheet:before{content:"";background:var(--line);border-radius:2px;flex:none;align-self:center;width:40px;height:4px}.sheet-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.sheet .who{overscroll-behavior:contain;flex:1;min-height:0;padding-bottom:4px;overflow:auto}.sheet .cast{margin-top:0}.peek{z-index:65;pointer-events:none;filter:drop-shadow(0 10px 14px #0a0c1e4d);width:min(290px,100vw - 16px);animation:peekIn .2s var(--spring);position:fixed;top:0;left:0}.peek .cast{margin:0}.peek .cast li{background:var(--surface);border:2px solid var(--key-border)}.peek .cast li.guestrow{background:var(--accent-soft)}.peek .cast li.sad{background:var(--bad-bg)}.book{align-content:start;gap:22px;animation:.32s ease-out rise;display:grid}.book h2{font-family:var(--font-display);letter-spacing:-.04em;font-size:clamp(34px,9vw,56px);font-weight:800;line-height:1}.book .cast{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.book .cast li{background:var(--surface)}.book .cast li.guestrow{background:var(--accent-soft)}.book .cast li.unk{opacity:.55;text-align:center;font-family:var(--font-display);color:var(--ink-2);grid-template-columns:minmax(0,1fr);font-weight:700}.book .recs li{background:var(--surface)}@media (max-width:899px){.app[data-screen=play]{gap:8px;height:100%;min-height:0;padding-block:8px 10px}.app[data-screen=play] #bookBtn{display:none}.play{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.main{flex-direction:column;flex:1;gap:6px;min-height:0;display:flex}.stage{flex-direction:column;flex:1;gap:8px;min-height:0;padding:10px;display:flex}.lv-head{display:none}.conv{flex-direction:column;flex:1;min-height:0;display:flex}.field{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.boardwrap{flex:1 1 0;place-items:center;min-height:132px;display:grid;container-type:size}.board{--cell:min(84px,calc((100cqw - (var(--cols) - 1)*8px)/var(--cols)),calc((100cqh - (var(--rows) - 1)*8px - 12px)/var(--rows)));grid-template-columns:repeat(var(--cols),var(--cell));grid-auto-rows:var(--cell);padding-top:0}.cell{aspect-ratio:auto}.tray{min-height:calc(var(--trows)*46px + (var(--trows) - 1)*6px + 15px);grid-template-columns:repeat(auto-fit,minmax(40px,46px));justify-content:center;gap:6px;padding:6px;display:grid}.tray .hint{text-align:center;grid-column:1/-1}.piece{aspect-ratio:1;width:100%;height:auto}.piece .em{font-size:26px}.stage.done .tray{display:none}.status{min-height:4.2em;font-size:14px;line-height:1.4}.conv>.who,.icon .t{display:none}.nb{display:inline-flex}.moves{justify-items:end;font-size:12px;line-height:1.25;display:grid}.moves .sep{display:none}.actions{flex-wrap:nowrap}.actions .primary{min-width:0;padding-inline:14px}.verdict{padding:10px 12px}.verdict .share{padding:10px}.verdict .share .fine{display:none}.sharegrid{font-size:22px}}@media (min-width:700px){.stage{padding:22px 24px}}@media (min-width:900px){.app{gap:20px;padding-block:20px 36px}.brand{font-size:24px}.home{grid-template-columns:minmax(0,.95fr) minmax(0,1fr);align-items:start;gap:64px}.hero{top:calc(env(safe-area-inset-top,0px) + 24px);padding-top:24px;position:sticky}.lede{font-size:19px}.play{grid-template-columns:230px minmax(0,1fr);align-items:start;gap:32px}.rail{top:calc(env(safe-area-inset-top,0px) + 16px);padding-top:6px;display:block;position:sticky}.strip{display:none}.conv{grid-template-columns:minmax(0,1fr) minmax(0,300px);align-items:start;gap:28px}.board{grid-template-columns:repeat(var(--cols),minmax(0,92px))}}@media (hover:hover) and (pointer:fine){.kbd{display:block}.key:hover:not(:disabled):not(:active){box-shadow:0 5px 0 var(--key-edge);transform:translateY(-1px)}.primary:hover:not(:disabled):not(:active),.sel.key:hover:not(:active){box-shadow:0 5px 0 var(--accent-edge)}.cell.has:not(.fixed):not(.sel):hover>.em:first-child{transition:transform .15s var(--spring);transform:scale(1.08)rotate(-4deg)}.piece:hover:not(.sel) .em{transition:transform .15s var(--spring);transform:scale(1.1)rotate(-6deg)}.cell.target:hover{background:var(--accent);border-color:var(--accent-edge);animation:none}.dayb:hover .pips i.on{background:var(--ink)}}@media (max-width:899px){.kbd{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}.settings{gap:2px;display:flex}.settings .ghost{font:600 13px var(--font-body);justify-content:center;align-items:center;min-width:44px;display:inline-flex}.settings svg{width:20px;height:20px}.foot{color:var(--ink-2);text-align:center;padding-top:8px;font-size:13px}.foot a{color:inherit}.app[data-screen=play] .foot{display:none}.notice{background:var(--surface-2);color:var(--ink-2);border-radius:14px;padding:12px 14px;font-size:15px}.cell .think{background:var(--surface-2);border:2px solid var(--line);border-radius:50%;width:18px;height:18px;animation:1s ease-in-out infinite pulse;position:absolute;top:-7px;right:-7px}.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}#ts{z-index:80;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.brand .dk,.wordmark .dk{color:var(--star)}.toast{left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:90;background:var(--surface);border:1.5px solid var(--line);border-radius:16px;align-items:center;gap:10px;width:max-content;max-width:calc(100vw - 32px);padding:10px 12px 10px 16px;animation:.3s ease-out rise;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #0a0c1e33}
