:root{--bg:#eef1f5;--surface:#fff;--surface-2:#f5f7fa;--surface-3:#e7ebf0;--ink:#17202a;--ink-2:#56626f;--ink-3:#8793a0;--line:#d6dde5;--accent:#1d5fa8;--accent-press:#144677;--accent-soft:#dbe8f6;--good:#2c8a3c;--good-press:#1f6a2c;--good-soft:#dff1e1;--bad:#c8372d;--bad-press:#99271f;--bad-soft:#f8e0dd;--gold:#b88a12;--gold-soft:#f6ecc9;--flame:#e0612b;--mat:#e3e9ef;--mat-line:#c9d3dd;--mana-w:#f5edc8;--mana-u:#3e8ed0;--mana-b:#3b3331;--mana-r:#d9533a;--mana-g:#3e9152;--mana-c:#b9b5ae;--mana-ink-light:#1b1b1b;--frame-w:#e9e0c0;--frame-u:#9cc3e6;--frame-b:#a79e99;--frame-r:#e69a7e;--frame-g:#92c49a;--frame-m:#dcc06c;--frame-c:#c3c6cb;--frame-land:#cdbd9f;--card-inner:#fbfaf6;--card-ink:#1c1b19;--font-display:"Signika", "Trebuchet MS", system-ui, sans-serif;--font-body:"Source Serif 4", Georgia, "Times New Roman", serif;--font-ui:"Signika", system-ui, -apple-system, "Segoe UI", sans-serif;--radius:14px;--radius-sm:9px;--shadow:0 1px 2px #141e2d14, 0 4px 14px #141e2d0f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f141a;--surface:#18212a;--surface-2:#1e2833;--surface-3:#27323e;--ink:#e6ebf0;--ink-2:#a0adba;--ink-3:#6f7c89;--line:#2d3a47;--accent:#5b9de2;--accent-press:#3a72ad;--accent-soft:#1d3550;--good:#4cb35e;--good-press:#33843f;--good-soft:#1b3522;--bad:#ef6155;--bad-press:#b3413a;--bad-soft:#3f1f1d;--gold:#e3b94a;--gold-soft:#3a3120;--flame:#ff8350;--mat:#141b22;--mat-line:#2a3642;--frame-w:#b8ae8e;--frame-u:#5f8fba;--frame-b:#6f6662;--frame-r:#b56a52;--frame-g:#5d9166;--frame-m:#a88f45;--frame-c:#8a8e94;--frame-land:#948669;--card-inner:#f3f1ea;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f141a;--surface:#18212a;--surface-2:#1e2833;--surface-3:#27323e;--ink:#e6ebf0;--ink-2:#a0adba;--ink-3:#6f7c89;--line:#2d3a47;--accent:#5b9de2;--accent-press:#3a72ad;--accent-soft:#1d3550;--good:#4cb35e;--good-press:#33843f;--good-soft:#1b3522;--bad:#ef6155;--bad-press:#b3413a;--bad-soft:#3f1f1d;--gold:#e3b94a;--gold-soft:#3a3120;--flame:#ff8350;--mat:#141b22;--mat-line:#2a3642;--frame-w:#b8ae8e;--frame-u:#5f8fba;--frame-b:#6f6662;--frame-r:#b56a52;--frame-g:#5d9166;--frame-m:#a88f45;--frame-c:#8a8e94;--frame-land:#948669;--card-inner:#f3f1ea;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.45}button{font:inherit;color:inherit}a{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0}.num{font-variant-numeric:tabular-nums}.muted{color:var(--ink-2)}.small{font-size:.85rem}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-size:.72rem;font-weight:600}.btn{--b:var(--accent);--bp:var(--accent-press);--bt:#fff;appearance:none;background:var(--b);color:var(--bt);font-family:var(--font-display);letter-spacing:.02em;box-shadow:0 4px 0 var(--bp);cursor:pointer;text-transform:uppercase;border:0;border-radius:12px;justify-content:center;align-items:center;gap:.45rem;min-height:44px;padding:.7rem 1.2rem;font-size:1rem;font-weight:600;transition:transform 60ms,box-shadow 60ms,filter .15s;display:inline-flex}.btn:hover{filter:brightness(1.06)}.btn:active{box-shadow:0 1px 0 var(--bp);transform:translateY(3px)}.btn.good{--b:var(--good);--bp:var(--good-press)}.btn.bad{--b:var(--bad);--bp:var(--bad-press)}.btn.ghost{--b:var(--surface);--bp:var(--line);--bt:var(--ink);border:2px solid var(--line)}.btn.gold{--b:var(--gold);--bp:#8a6708}.btn:disabled,.btn.good:disabled,.btn.bad:disabled,.btn.gold:disabled,.btn.ghost:disabled{--b:var(--surface-3);--bp:var(--line);--bt:var(--ink-3);cursor:not-allowed;filter:none}.btn.small{min-height:34px;box-shadow:0 3px 0 var(--bp);border-radius:10px;padding:.4rem .75rem;font-size:.8rem}.btn.wide{width:100%}.linkbtn{color:var(--accent);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:.25rem;font-weight:600;text-decoration:underline}.shell{grid-template-columns:220px minmax(0,1fr) 300px;min-height:100%;display:grid}.sidenav{border-right:2px solid var(--line);background:var(--surface);flex-direction:column;gap:.25rem;height:100vh;padding:1.2rem .8rem;display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);align-items:center;gap:.55rem;padding:.2rem .6rem 1.2rem;font-size:1.25rem;font-weight:700;line-height:1.05;display:flex}.brand small{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);font-size:.7rem;font-weight:600;display:block}.brand-mark{flex:none;width:38px;height:38px}.navlink{color:var(--ink);letter-spacing:.03em;text-transform:uppercase;border:2px solid #0000;border-radius:12px;align-items:center;gap:.75rem;padding:.65rem .8rem;font-size:.85rem;font-weight:600;text-decoration:none;display:flex}.navlink:hover{background:var(--surface-2)}.navlink.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.navlink .ico{text-align:center;width:1.6rem;font-size:1.3rem}.navlink .badge{background:var(--flame);color:#fff;border-radius:999px;margin-left:auto;padding:.05rem .45rem;font-size:.72rem}.main{min-width:0;padding:1.5rem 1.5rem 5rem}.rail{flex-direction:column;gap:1rem;height:100vh;padding:1.2rem 1.2rem 1.2rem 0;display:flex;position:sticky;top:0;overflow-y:auto}.topbar,.bottomnav{display:none}.panel{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius);padding:1rem}.panel h3{margin-bottom:.6rem;font-size:1.05rem}.stats-row{font-weight:700;font-family:var(--font-display);justify-content:space-between;gap:1rem;display:flex}.stat{align-items:center;gap:.35rem;font-size:1.05rem;display:flex}.stat.flame{color:var(--flame)}.stat.heart{color:var(--bad)}.stat.xp{color:var(--gold)}.stat.off{color:var(--ink-3);filter:grayscale()}.bar{background:var(--surface-3);border-radius:999px;height:14px;overflow:hidden}.bar>span{background:var(--gold);border-radius:999px;height:100%;transition:width .4s;display:block;position:relative}.bar.good>span{background:var(--good)}.bar.accent>span{background:var(--accent)}.quick{gap:.6rem;display:grid}.quick a{color:var(--ink);border:2px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:.7rem;padding:.6rem;text-decoration:none;display:flex}.quick a:hover{border-color:var(--accent)}.quick .qi{font-size:1.5rem}.quick b{font-family:var(--font-display);display:block}@media (width<=1100px){.shell{grid-template-columns:200px minmax(0,1fr)}.rail{display:none}}@media (width<=760px){.shell{grid-template-columns:minmax(0,1fr)}.sidenav{display:none}.main{padding:.75rem 16px 6rem}.topbar{top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);border-bottom:2px solid var(--line);justify-content:space-between;align-items:center;padding:.6rem 16px;display:flex;position:sticky}.bottomnav{z-index:30;background:var(--surface);border-top:2px solid var(--line);padding:.35rem .25rem calc(.35rem + env(safe-area-inset-bottom,0px));justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.bottomnav a{color:var(--ink-2);letter-spacing:.04em;text-transform:uppercase;border-radius:10px;flex-direction:column;align-items:center;padding:.25rem .5rem;font-size:.65rem;font-weight:600;text-decoration:none;display:flex;position:relative}.bottomnav a span:first-child{font-size:1.35rem}.bottomnav a.active{color:var(--accent);background:var(--accent-soft)}}.path{flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;display:flex}.unit-banner{border-radius:var(--radius);color:#fff;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;display:flex;position:relative;overflow:hidden;box-shadow:0 4px #0000002e}.unit-banner h2{font-size:1.3rem}.unit-banner p{opacity:.92;margin:.15rem 0 0;font-size:.92rem}.unit-banner .eyebrow{color:#ffffffd9}.unit-banner .unit-count{font-family:var(--font-display);white-space:nowrap;background:#0000002e;border-radius:10px;padding:.35rem .6rem;font-size:.9rem;font-weight:700}.nodes{flex-direction:column;align-items:center;gap:1.1rem;padding:1.4rem 0 .4rem;display:flex}.node-wrap{flex-direction:column;align-items:center;display:flex;position:relative}.node{cursor:pointer;background:var(--node,var(--accent));width:76px;height:70px;box-shadow:0 7px 0 var(--node-press,var(--accent-press));border:0;border-radius:50%;place-items:center;font-size:1.9rem;transition:transform 80ms,box-shadow 80ms;display:grid;position:relative}.node:active{box-shadow:0 2px 0 var(--node-press,var(--accent-press));transform:translateY(5px)}.node.locked{--node:var(--surface-3);--node-press:var(--line);filter:grayscale();opacity:.75;cursor:not-allowed}.node.done{--node:var(--gold);--node-press:#8a6708}.node-ring{border:4px solid var(--node,var(--accent));opacity:.35;pointer-events:none;border-radius:50%;position:absolute;inset:-9px}.node-stars{gap:1px;min-height:1.1rem;margin-top:.55rem;font-size:.8rem;display:flex}.node-stars .off{filter:grayscale();opacity:.35}.node-label{color:var(--ink-2);text-align:center;max-width:150px;font-size:.8rem;font-weight:600;line-height:1.2}.start-tip{background:var(--surface);border:2px solid var(--line);color:var(--accent);font-weight:700;font-family:var(--font-display);white-space:nowrap;letter-spacing:.06em;border-radius:10px;padding:.3rem .75rem;font-size:.85rem;animation:1.4s ease-in-out infinite bob;position:absolute;top:-44px}.start-tip:after{content:"";background:var(--surface);border-right:2px solid var(--line);border-bottom:2px solid var(--line);width:12px;height:12px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}@keyframes bob{50%{transform:translateY(-5px)}}.popover{z-index:15;background:var(--surface);border:2px solid var(--line);border-radius:var(--radius);width:min(300px,86vw);box-shadow:var(--shadow);gap:.6rem;margin-top:.8rem;padding:1rem;display:grid;position:absolute;top:100%}.popover h3{font-size:1.1rem}.mana{width:1.15em;height:1.15em;font-family:var(--font-display);vertical-align:-.12em;color:#fff;background:var(--mana-c);border-radius:50%;place-items:center;margin:0 .04em;font-size:.8em;font-weight:700;line-height:1;display:inline-grid;box-shadow:inset 0 -1px #00000040}.mana.W{background:var(--mana-w);color:var(--mana-ink-light)}.mana.U{background:var(--mana-u)}.mana.B{background:var(--mana-b)}.mana.R{background:var(--mana-r)}.mana.G{background:var(--mana-g)}.mana.C,.mana.N,.mana.X,.mana.T{background:var(--mana-c);color:#1b1b1b}.cost{white-space:nowrap}.card{--frame:var(--frame-c);background:var(--frame);width:210px;color:var(--card-ink);font-family:var(--font-ui);border-radius:12px;flex-direction:column;flex:none;gap:5px;padding:7px;display:flex;box-shadow:0 2px 6px #00000040}.card .c-title{background:var(--card-inner);font-family:var(--font-display);border-radius:7px;justify-content:space-between;align-items:center;gap:4px;padding:3px 7px;font-size:.86rem;font-weight:700;line-height:1.2;display:flex}.card .c-title .cost{font-size:.95rem}.card .c-art{background:radial-gradient(circle at 50% 35%, #ffffff8c, #0000001f), var(--frame);border:2px solid #0000001f;border-radius:6px;place-items:center;height:96px;font-size:3rem;display:grid}.card .c-type{background:var(--card-inner);border-radius:6px;justify-content:space-between;padding:2px 7px;font-size:.74rem;font-weight:600;display:flex}.card .c-text{background:var(--card-inner);font-family:var(--font-body);white-space:pre-line;border-radius:6px;min-height:62px;padding:6px 8px;font-size:.82rem;line-height:1.3}.card .c-text i{color:#555}.card .c-pt{background:var(--card-inner);font-family:var(--font-display);border:2px solid #00000026;border-radius:7px;align-self:flex-end;margin-top:-14px;padding:1px 8px;font-weight:700}.frame-W{--frame:var(--frame-w)}.frame-U{--frame:var(--frame-u)}.frame-B{--frame:var(--frame-b)}.frame-R{--frame:var(--frame-r)}.frame-G{--frame:var(--frame-g)}.frame-M{--frame:var(--frame-m)}.frame-C{--frame:var(--frame-c)}.frame-L{--frame:var(--frame-land)}.card.sm{border-radius:9px;gap:3px;width:118px;padding:4px}.card.sm .c-title{border-radius:5px;padding:2px 4px;font-size:.66rem}.card.sm .c-title .cost{font-size:.7rem}.card.sm .c-art{height:46px;font-size:1.7rem}.card.sm .c-type{padding:1px 4px;font-size:.58rem}.card.sm .c-text{min-height:40px;padding:3px 4px;font-size:.6rem;line-height:1.2}.card.sm .c-pt{margin-top:-10px;padding:0 5px;font-size:.72rem}.cardrow{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.cardref{white-space:nowrap;background:color-mix(in srgb, var(--frame) 38%, transparent);box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--frame) 75%, var(--ink));cursor:help;border-radius:4px;padding:0 .2em;font-weight:700}.cardref:before{content:"";background:var(--frame);border:1px solid color-mix(in srgb, var(--frame) 45%, var(--ink));vertical-align:-.04em;border-radius:2px;width:.5em;height:.7em;margin-right:.25em;display:inline-block}.cardref[role=button]{cursor:pointer}.cardref:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.card-pop{z-index:200;pointer-events:none;filter:drop-shadow(0 8px 18px #00000047);animation:.12s ease-out card-pop;position:fixed}@keyframes card-pop{0%{opacity:0;transform:scale(.96)}}.board{background:var(--mat);border:2px solid var(--mat-line);border-radius:var(--radius);-webkit-user-select:none;user-select:none;flex-direction:column;gap:.5rem;padding:.6rem;display:flex;position:relative}.board.static{pointer-events:auto}.pbar{flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.85rem;display:flex}.pbar .who{font-family:var(--font-display);font-size:.95rem;font-weight:700}.life{background:var(--surface);border:2px solid var(--line);font-family:var(--font-display);cursor:default;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .7rem .15rem .5rem;font-size:1.1rem;font-weight:700;transition:transform .2s;display:inline-flex}.life.target{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft);cursor:crosshair}.life.flash{animation:.6s lifeflash}@keyframes lifeflash{30%{background:var(--bad-soft);transform:scale(1.18)}}.zone-info{color:var(--ink-2);gap:.6rem;display:inline-flex}.bf{flex-direction:column;gap:.45rem;min-height:60px;display:flex}.bf-row{flex-wrap:wrap;align-items:flex-end;gap:.45rem;min-height:34px;display:flex}.bf.opp .bf-row.creatures{align-items:flex-start}.divider{border-top:2px dashed var(--mat-line);margin:.5rem 0;position:relative}.tile{background:var(--frame);cursor:pointer;width:78px;color:var(--card-ink);text-align:left;font-family:var(--font-ui);border:0;border-radius:9px;padding:3px;transition:transform .18s,box-shadow .18s,opacity .18s;position:relative;box-shadow:0 1px 3px #00000040}.tile .t-name{background:var(--card-inner);white-space:nowrap;text-overflow:ellipsis;font-size:.6rem;font-weight:700;font-family:var(--font-display);border-radius:5px;padding:1px 4px;overflow:hidden}.tile .t-art{background:radial-gradient(circle at 50% 35%, #ffffff80, #0000001f), var(--frame);border-radius:5px;place-items:center;height:48px;margin:2px 0;font-size:1.7rem;display:grid}.tile .t-kw{background:var(--card-inner);border-radius:4px;min-height:.8rem;padding:1px 3px;font-size:.55rem;font-weight:600;line-height:1.1}.tile .t-pt{background:var(--card-inner);font-family:var(--font-display);border:2px solid #0000004d;border-radius:7px;padding:0 5px;font-size:.8rem;font-weight:700;position:absolute;bottom:-7px;right:-5px}.tile .t-pt .up{color:var(--good-press)}.tile .t-pt .down{color:var(--bad)}.tile .t-dmg{background:var(--bad);color:#fff;border-radius:999px;padding:0 5px;font-size:.7rem;font-weight:700;position:absolute;bottom:-7px;left:-6px}.tile .t-badge{background:var(--surface);border:1.5px solid var(--line);border-radius:999px;padding:0 3px;font-size:.8rem;line-height:1.3;position:absolute;top:18px;left:4px}.tile .t-counter{background:var(--good);color:#fff;border-radius:999px;padding:0 5px;font-size:.65rem;font-weight:700;position:absolute;top:-8px;right:-6px}.tile.tapped{opacity:.62;transform:rotate(10deg)}.tile.attacking{box-shadow:0 0 0 3px var(--bad), 0 6px 10px #00000040;transform:translateY(-14px)}.bf.opp .tile.attacking{transform:translateY(14px)}.tile.attacking.tapped{transform:translateY(-14px)rotate(10deg)}.bf.opp .tile.attacking.tapped{transform:translateY(14px)rotate(10deg)}.tile.selected{box-shadow:0 0 0 3px var(--accent), 0 6px 10px #00000040}.tile.targetable{box-shadow:0 0 0 3px var(--bad);cursor:crosshair;animation:1s ease-in-out infinite pulse}.tile.stacktarget{outline:3px dashed var(--gold);outline-offset:3px}.tile.canact{box-shadow:0 0 0 2px var(--good)}.tile.blocking{box-shadow:0 0 0 3px var(--accent)}@keyframes pulse{50%{box-shadow:0 0 0 5px var(--bad-soft), 0 0 0 3px var(--bad)}}.tile .t-group{background:var(--accent);color:#fff;white-space:nowrap;border-radius:999px;padding:0 6px;font-size:.65rem;font-weight:700;position:absolute;top:-9px;left:50%;transform:translate(-50%)}.land{--frame:var(--frame-land);background:var(--frame);color:var(--card-ink);cursor:pointer;font-size:.68rem;font-weight:700;font-family:var(--font-ui);border:2px solid #00000026;border-radius:999px;align-items:center;gap:3px;max-width:150px;padding:2px 8px 2px 3px;transition:opacity .15s,transform .15s;display:inline-flex}.land .l-art{font-size:.95rem}.land.tapped{opacity:.45;text-decoration:line-through;transform:rotate(-4deg)}.land.canact{border-color:var(--good)}.hand{scrollbar-width:thin;gap:.4rem;padding:.5rem .2rem .3rem;display:flex;overflow-x:auto}.hand .card{cursor:pointer;transition:transform .15s}.hand .card:hover{transform:translateY(-4px)}.hand .card.playable{box-shadow:0 0 0 3px var(--good), 0 2px 6px #00000040}.hand .card.dim{opacity:.75}.hand.opp .facedown{background:repeating-linear-gradient(45deg,#5a3a26,#5a3a26 4px,#6d4a33 4px 8px);border:2px solid #3c2618;border-radius:6px;flex:none;width:42px;height:58px}.midbar{flex-wrap:wrap;align-items:stretch;gap:.5rem;display:flex}.phase{letter-spacing:.05em;text-transform:uppercase;flex-wrap:wrap;gap:2px;font-size:.66rem;font-weight:700;display:flex}.phase span{background:var(--surface);color:var(--ink-3);border:1.5px solid var(--line);border-radius:6px;padding:.18rem .45rem}.phase span.on{background:var(--accent);color:#fff;border-color:var(--accent)}.stack{background:var(--surface);border:2px solid var(--gold);border-radius:10px;flex-direction:column;gap:.25rem;padding:.4rem .6rem;font-size:.82rem;display:flex}.stack .s-item{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:.4rem;padding:.15rem .35rem;display:flex}.stack .s-item.targetable{box-shadow:0 0 0 2px var(--bad)}.actionbar{background:var(--surface);border:2px solid var(--line);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.6rem .7rem;display:flex}.actionbar .msg{flex:220px;min-width:0;font-size:.9rem}.actionbar .btns{flex-wrap:wrap;gap:.5rem;display:flex}.pool{align-items:center;gap:2px;font-size:.8rem;display:inline-flex}.log{color:var(--ink-2);background:var(--surface);border:1.5px solid var(--line);border-radius:10px;flex-direction:column;gap:1px;max-height:128px;padding:.4rem .6rem;font-size:.78rem;display:flex;overflow-y:auto}.log .opp{color:var(--bad)}.log .you{color:var(--accent)}.log .game{color:var(--ink-3);font-style:italic}.goalchip{background:var(--gold-soft);color:var(--ink);border:2px solid var(--gold);font-weight:700;font-family:var(--font-display);border-radius:10px;align-items:center;gap:.4rem;padding:.35rem .7rem;font-size:.95rem;display:inline-flex}.result{font-weight:700;font-family:var(--font-display);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.7rem .9rem;display:flex}.result.success{background:var(--good-soft);color:var(--good);border:2px solid var(--good)}.result.fail{background:var(--bad-soft);color:var(--bad);border:2px solid var(--bad)}.overlay{z-index:60;background:#0a0f148c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:2px solid var(--line);border-radius:18px;gap:.8rem;width:min(420px,100%);max-height:90vh;padding:1.2rem;display:grid;overflow-y:auto}.modal h2{font-size:1.3rem}.choice-list{gap:.5rem;display:grid}.player{flex-direction:column;gap:1rem;max-width:760px;min-height:calc(100vh - 3rem);margin:0 auto;display:flex}.player-top{align-items:center;gap:.9rem;display:flex}.player-top .bar{flex:1;height:16px}.player-top .bar>span{background:var(--good)}.xbtn{color:var(--ink-3);cursor:pointer;background:0 0;border:0;padding:.2rem .4rem;font-size:1.5rem;line-height:1}.prompt{font-family:var(--font-display);font-size:1.35rem;font-weight:600;line-height:1.3}.teach{background:var(--surface);border:2px solid var(--line);border-radius:18px;gap:1rem;padding:1.4rem;display:grid}.teach h2{font-size:1.5rem}.prose{font-family:var(--font-body);max-width:65ch;font-size:1.08rem;line-height:1.6}.prose p{margin:0 0 .8rem}.prose p:last-child{margin-bottom:0}.prose ul{margin:0 0 .8rem;padding-left:1.2rem}.prose li{margin-bottom:.3rem}.prose strong{font-weight:700}.options{gap:.6rem;display:grid}.option{text-align:left;border:2px solid var(--line);background:var(--surface);cursor:pointer;box-shadow:0 3px 0 var(--line);font-size:1rem;line-height:1.35;font-family:var(--font-ui);border-radius:14px;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;transition:transform 50ms;display:flex}.option:active{box-shadow:0 1px 0 var(--line);transform:translateY(2px)}.option .key{border:2px solid var(--line);width:1.6rem;height:1.6rem;color:var(--ink-2);border-radius:7px;flex:none;place-items:center;font-size:.8rem;font-weight:700;display:grid}.option.sel{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 3px 0 var(--accent)}.option.sel .key{border-color:var(--accent);color:var(--accent)}.option.right{border-color:var(--good);background:var(--good-soft);box-shadow:0 3px 0 var(--good)}.option.wrong{border-color:var(--bad);background:var(--bad-soft);box-shadow:0 3px 0 var(--bad)}.option:disabled{cursor:default}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip{border:2px solid var(--line);background:var(--surface);cursor:pointer;box-shadow:0 3px 0 var(--line);text-align:left;font-size:.95rem;font-family:var(--font-ui);border-radius:12px;padding:.5rem .8rem}.chip.sel{border-color:var(--accent);background:var(--accent-soft)}.chip.used{visibility:hidden}.chip.right{border-color:var(--good);background:var(--good-soft)}.chip.wrong{border-color:var(--bad);background:var(--bad-soft)}.slots{border-bottom:2px solid var(--line);flex-direction:column;gap:.45rem;min-height:3rem;padding-bottom:.7rem;display:flex}.slots .chip{align-items:center;gap:.6rem;display:flex}.slots .n{color:var(--ink-3);font-weight:700;font-family:var(--font-display)}.match-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:.5rem;display:grid}.match-col{align-content:start;gap:.5rem;display:grid}.match-col .chip{width:100%}.chip.matched{opacity:.35;cursor:default;box-shadow:none}.buckets{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem;display:grid}.bucket{border:2px dashed var(--line);cursor:pointer;background:var(--surface-2);border-radius:14px;flex-direction:column;gap:.4rem;min-height:110px;padding:.6rem;display:flex}.bucket h4{font-family:var(--font-display);color:var(--ink-2);margin:0;font-size:.9rem}.bucket.hot{border-color:var(--accent);background:var(--accent-soft)}.numin{align-items:center;gap:.6rem;display:flex}.numin input{font:inherit;font-family:var(--font-display);border:2px solid var(--line);background:var(--surface);width:8rem;color:var(--ink);border-radius:12px;padding:.4rem .7rem;font-size:1.6rem;font-weight:700}.numin input:focus{border-color:var(--accent);outline:none}.stepper{gap:.4rem;display:flex}.context{background:var(--surface-2);border-left:4px solid var(--accent);border-radius:8px;padding:.6rem .8rem;font-size:.95rem}.checkbar{background:linear-gradient(to top, var(--bg) 70%, transparent);z-index:5;justify-content:flex-end;gap:.6rem;margin-top:auto;padding:.9rem 0 1rem;display:flex;position:sticky;bottom:0}.feedback{z-index:6;border-radius:18px 18px 0 0;gap:.6rem;margin-top:auto;padding:1rem 1.1rem 1.1rem;animation:.22s ease-out rise;display:grid;position:sticky;bottom:0}@keyframes rise{0%{opacity:0;transform:translateY(30px)}}.feedback.good{background:var(--good-soft);border-top:3px solid var(--good)}.feedback.bad{background:var(--bad-soft);border-top:3px solid var(--bad)}.feedback h3{font-size:1.3rem}.feedback.good h3{color:var(--good)}.feedback.bad h3{color:var(--bad)}.feedback .prose{font-size:1rem}.feedback .row{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;display:flex}.results{text-align:center;justify-items:center;gap:1.2rem;padding-top:2rem;display:grid}.results h1{color:var(--gold);font-size:2rem}.tiles3{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;width:min(460px,100%);display:grid}.tile3{border:2px solid var(--c);background:var(--surface);border-radius:14px;overflow:hidden}.tile3 .t3h{background:var(--c);color:#fff;letter-spacing:.08em;text-transform:uppercase;padding:.25rem;font-size:.72rem;font-weight:700}.tile3 .t3v{font-family:var(--font-display);color:var(--c);padding:.6rem .3rem;font-size:1.4rem;font-weight:700}.takeaways{text-align:left;width:min(560px,100%)}.hand-row{flex-wrap:wrap;justify-content:center;gap:.35rem;padding:.3rem .1rem .5rem;display:flex}.chiprow{flex-wrap:wrap;gap:.4rem;display:flex}.cardchip{background:var(--frame);color:var(--card-ink);border:2px solid #00000026;border-radius:8px;align-items:center;gap:.35rem;padding:.3rem .55rem;font-size:.85rem;display:inline-flex}.cardchip.is-land{border-style:dashed}.big-choices{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.page{gap:1.2rem;max-width:860px;margin:0 auto;display:grid}.page-head h1{font-size:1.8rem}.page-head p{color:var(--ink-2);max-width:60ch;margin:.3rem 0 0}.grid2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.modecard{background:var(--surface);border:2px solid var(--line);border-radius:16px;align-content:start;gap:.6rem;padding:1.1rem;display:grid}.modecard .mc-ico{font-size:2rem}.modecard h3{font-size:1.2rem}.modecard p{color:var(--ink-2);margin:0;font-size:.95rem}.rating{font-family:var(--font-display);color:var(--accent);font-size:2.2rem;font-weight:700}.theme-chips{flex-wrap:wrap;gap:.4rem;display:flex}.theme-chip{border:2px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;padding:.25rem .7rem;font-size:.82rem;font-weight:600}.theme-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.ladder{gap:1rem;display:grid}.tier{border-left:4px solid var(--tier);gap:.4rem;padding-left:.8rem;display:grid}.tier-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.tier-head b{font-family:var(--font-display);color:var(--tier);font-size:1.05rem}.tier-bar{background:var(--surface-3);border-radius:999px;height:6px;overflow:hidden}.tier-bar>span{background:var(--tier);height:100%;display:block}.tier-list{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.35rem;display:grid}.tier-item{border:1.5px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:10px;align-items:center;gap:.5rem;min-width:0;padding:.35rem .6rem;text-decoration:none;display:flex}.tier-item:hover{border-color:var(--tier)}.tier-item .tier-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.9rem;font-weight:600;overflow:hidden}.tier-item.solved{border-color:var(--good);background:var(--good-soft)}.tier-item.next{border-color:var(--tier);box-shadow:0 0 0 2px var(--tier)}.gloss-list{gap:.5rem;display:grid}.gloss-item{background:var(--surface);border:2px solid var(--line);border-radius:12px;gap:.2rem;padding:.7rem .9rem;display:grid}.gloss-item b{font-family:var(--font-display);font-size:1.05rem}.gloss-item .def{font-family:var(--font-body)}.pill{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:.05rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}.pill.good{background:var(--good-soft);color:var(--good)}.pill.dim{background:var(--surface-3);color:var(--ink-2)}.pill.gold{background:var(--gold-soft);color:var(--gold)}.search{font:inherit;border:2px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:12px;padding:.7rem .9rem}.ach-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem;display:grid}.ach{border:2px solid var(--line);background:var(--surface);border-radius:14px;gap:.2rem;padding:.8rem;display:grid}.ach .ai{font-size:1.8rem}.ach.locked{filter:grayscale();opacity:.55}.ach b{font-family:var(--font-display)}.settings-row{border-bottom:1.5px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 0;display:flex}.settings-row:last-child{border-bottom:0}.toggle{background:var(--surface-3);cursor:pointer;border:0;border-radius:999px;flex:none;width:50px;height:28px;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:left .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.toggle.on{background:var(--good)}.toggle.on:after{left:25px}.rush-top{font-family:var(--font-display);justify-content:space-between;align-items:center;font-size:1.2rem;font-weight:700;display:flex}.timer{color:var(--accent);font-size:1.6rem}.timer.low{color:var(--bad)}.strikes{letter-spacing:.2em}.heatmap{grid-template-columns:repeat(14,1fr);gap:3px;display:grid}.heatmap span{aspect-ratio:1;background:var(--surface-3);border-radius:3px;max-width:100%}.heatmap span.l1{background:color-mix(in srgb, var(--good) 35%, var(--surface-3))}.heatmap span.l2{background:color-mix(in srgb, var(--good) 65%, var(--surface-3))}.heatmap span.l3{background:var(--good)}.toast{z-index:80;background:var(--surface);border:2px solid var(--gold);box-shadow:var(--shadow);border-radius:14px;align-items:center;gap:.7rem;max-width:calc(100vw - 32px);padding:.7rem 1rem;animation:.25s ease-out rise;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.confetti{pointer-events:none;z-index:70;position:fixed;inset:0}.source-link{font-size:.85rem}.hr{border:0;border-top:2px solid var(--line);margin:.3rem 0}@media (width<=520px){.prompt{font-size:1.15rem}.card{width:180px}.tile{width:66px}.tile .t-art{height:40px;font-size:1.4rem}.card.sm{width:100px}.teach{padding:1rem}.match-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}.big-choices{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
