@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(./atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(./atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-400-normal-BbWidj28.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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(./atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(./atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-700-normal-BK6Glc0m.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,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f6fa;--surface:#ffffffd6;--surface-solid:#fff;--ink:#151a26;--muted:#5b6477;--line:#151a261f;--accent:#0072b2;--accent-edge:#004f7c;--accent-ink:#fff;--accent-soft:#0072b21a;--danger:#b34700;--danger-soft:#b3470014;--key-face:#fff;--key-edge:#c9d3e3;--shadow:0 1px 2px #151a260f, 0 12px 40px #151a261f}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1117;--surface:#141923d6;--surface-solid:#151a24;--ink:#e8ecf5;--muted:#9aa4b8;--line:#c9d2ec24;--accent:#56b4e9;--accent-edge:#2a7fae;--accent-ink:#0d1117;--accent-soft:#56b4e924;--danger:#e0701f;--danger-soft:#e0701f1f;--key-face:#1b2230;--key-edge:#06080c;--shadow:0 1px 2px #0006, 0 16px 48px #00000073}:root{--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--dur-press:.14s;--dur-panel:.24s;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;--font-display:"Atkinson Hyperlegible", var(--font-ui);font-family:var(--font-ui);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.45}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);height:100%;margin:0;overflow:hidden}#game{outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}#overlay{background:color-mix(in srgb, var(--bg) 55%, transparent);place-items:safe center;padding:24px 16px 64px;display:grid;position:fixed;inset:0;overflow-y:auto}#overlay[hidden]{display:none}#overlay[data-screen=landing]{pointer-events:none;background:0 0}#overlay[data-screen=landing] .navbar{pointer-events:auto}#overlay[data-screen=setup]{background:color-mix(in srgb, var(--bg) 62%, transparent)}.panel{background:var(--surface);-webkit-backdrop-filter:blur(20px)saturate(1.4);backdrop-filter:blur(20px)saturate(1.4);border:1px solid var(--line);width:min(560px,100%);box-shadow:var(--shadow);transition:opacity var(--dur-panel) var(--ease-out), transform var(--dur-panel) var(--ease-out);border-radius:20px;padding:28px}@starting-style{.panel{opacity:0;transform:translateY(8px)scale(.98)}}.panel.small{width:min(400px,100%)}.panel.wide{width:min(960px,100%)}h1,h2,h3{margin:0;line-height:1.15}h2.title{font-family:var(--font-display);letter-spacing:-.01em;margin-bottom:8px;font-size:1.9rem}h3{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:20px 0 8px;font-size:.75rem;font-weight:700}p{margin:0 0 12px}.note{color:var(--muted);margin:6px 0 0;font-size:.85rem}.note:empty{display:none}.big{font-size:1.1rem}.warning{border-left:3px solid var(--danger);background:var(--danger-soft);border-radius:8px;padding:8px 12px}.banner{color:var(--accent-ink);background:var(--accent);border-radius:999px;margin-bottom:12px;padding:3px 12px;font-weight:700;display:inline-block}.navbar{background:var(--surface);-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);border-bottom:1px solid var(--line);height:64px;animation:fade .3s var(--ease-out) backwards;justify-content:space-between;align-items:center;gap:16px;padding:0 max(16px,3vw);display:flex;position:fixed;top:0;left:0;right:0}.brand{color:var(--ink);border-radius:10px;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{width:32px;height:32px}.brand-mark .mark-edge{fill:var(--accent-edge)}.brand-mark .mark-face{fill:var(--accent)}.brand-mark .mark-glyph{fill:var(--accent-ink)}.brand-name{font:700 1.25rem/1 var(--font-display);letter-spacing:-.02em}.nav-actions{align-items:center;gap:10px;display:flex}.icon-button{border:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:40px;height:40px;color:var(--ink);cursor:pointer;transition:transform var(--dur-press) var(--ease-out);border-radius:12px;place-items:center;padding:0;font-size:1rem;display:grid}.icon-button:active{transform:scale(.94)}.icon-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.setup{width:min(680px,100%)}.setup-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.setup-head .title{margin:0;font-size:1.6rem}.character-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.character-card{border:1px solid var(--line);background:var(--surface-solid);cursor:pointer;transition:border-color var(--dur-press) ease, background-color var(--dur-press) ease;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:8px 6px 10px;display:flex;position:relative}.character-card input{opacity:0;pointer-events:none;position:absolute}.character-card canvas{transition:transform .2s var(--ease-out);display:block}.character-card:has(input:checked){border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.character-card:has(input:checked) canvas{transform:translateY(-3px)}.character-name{font-size:.9rem;font-weight:700}.character-card:has(input:checked) .character-name:after{content:" ✓";color:var(--accent)}fieldset{border:none;min-width:0;margin:16px 0 0;padding:0}legend{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;padding:0;font-size:.75rem;font-weight:700}.deck-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}@media (width>=640px){.setup .deck-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=440px){.deck-grid,.character-row{grid-template-columns:repeat(2,minmax(0,1fr))}.deck-grid{grid-template-columns:1fr}}.deck-card{border:1px solid var(--line);background:var(--surface-solid);cursor:pointer;transition:border-color var(--dur-press) ease, background-color var(--dur-press) ease;border-radius:14px;align-items:center;gap:12px;padding:8px 12px;display:flex;position:relative}.deck-card:has(input:checked){border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.deck-card:has(input:checked) .deck-name:after{content:" ✓";color:var(--accent)}.deck-card input,.segmented input{opacity:0;pointer-events:none;position:absolute}.deck-glyph{background:var(--key-face);border:1px solid var(--line);width:40px;height:38px;box-shadow:0 3px 0 var(--key-edge);font:700 .95rem/1 var(--font-display);color:var(--ink);border-radius:9px;flex:none;place-items:center;display:grid}.deck-card:has(input:checked) .deck-glyph{background:var(--accent);color:var(--accent-ink);box-shadow:0 3px 0 var(--accent-edge);border-color:#0000}.deck-text{flex-direction:column;min-width:0;display:flex}.deck-name{font-weight:700}.deck-info{color:var(--muted);font-size:.78rem}.segmented-track{background:var(--line);border-radius:12px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.segmented label{cursor:pointer;color:var(--muted);transition:background-color var(--dur-press) ease, color var(--dur-press) ease;border-radius:9px;padding:6px 14px;font-size:.9rem;font-weight:600;position:relative}.segmented label:has(input:checked){background:var(--surface-solid);color:var(--ink);box-shadow:0 1px 3px #0000001f}.segmented label:has(input:disabled){opacity:.45;cursor:not-allowed}.settings{border-top:1px solid var(--line);margin-top:18px;padding-top:12px}.settings summary{cursor:pointer;color:var(--muted);align-items:center;gap:6px;font-weight:600;list-style:none;display:flex}.settings summary::-webkit-details-marker{display:none}.settings summary:before{content:"›";transition:transform .2s var(--ease-out);display:inline-block}.settings[open] summary:before{transform:rotate(90deg)}.settings-body{gap:12px;padding-top:8px;display:grid}.settings-body .segmented{margin:0}.setting-row{justify-content:space-between;align-items:center;gap:12px;display:flex}input[role=switch]{appearance:none;background:var(--line);cursor:pointer;border-radius:999px;width:44px;height:26px;margin:0;transition:background-color .2s;position:relative}input[role=switch]:after{content:"";width:20px;height:20px;transition:transform .2s var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}input[role=switch]:checked{background:var(--accent)}input[role=switch]:checked:after{transform:translate(18px)}select{font:inherit;color:var(--ink);background:var(--surface-solid);border:1px solid var(--line);border-radius:9px;padding:5px 8px}.setup-foot{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-top:20px;display:flex}.meta{gap:20px;margin:0;display:flex}.meta dt{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:700}.meta dd{font:700 1.1rem/1.3 var(--font-display);font-variant-numeric:tabular-nums;margin:0}button{font:inherit;color:inherit}.key{border:1px solid var(--line);background:var(--key-face);min-height:40px;color:var(--ink);cursor:pointer;box-shadow:0 3px 0 var(--key-edge);transition:transform var(--dur-press) var(--ease-out), box-shadow var(--dur-press) var(--ease-out);border-radius:11px;align-items:center;gap:10px;padding:8px 18px;font-weight:600;display:inline-flex}.key:active{box-shadow:0 1px 0 var(--key-edge);transform:translateY(2px)scale(.98)}.key.primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 3px 0 var(--accent-edge);border-color:#0000}.key.primary:active{box-shadow:0 1px 0 var(--accent-edge)}.key.primary kbd{background:color-mix(in srgb, var(--accent-ink) 18%, transparent);color:inherit;box-shadow:none;border-color:#0000}.key.danger{color:var(--danger);margin-right:auto}@media (hover:hover) and (pointer:fine){.key:hover,.deck-card:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--line))}}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}label:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:24px;display:flex}kbd{font:700 .85rem/1.2 var(--font-display);border:1px solid var(--line);background:var(--key-face);box-shadow:0 2px 0 var(--key-edge);color:var(--ink);white-space:nowrap;border-radius:7px;padding:3px 8px;display:inline-block}.shortcut-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.shortcut-list li{background:var(--surface-solid);border:1px solid var(--line);animation:rise .26s var(--ease-out) backwards;animation-delay:calc(var(--i,0) * 40ms + 80ms);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;padding:8px 12px;display:flex}.shortcut-list .note{width:100%}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.stat-row{flex-wrap:wrap;gap:10px;margin:16px 0;display:flex}.stat{background:var(--surface-solid);border:1px solid var(--line);border-radius:14px;flex-direction:column;flex:110px;padding:12px 14px;display:flex}.stat-value{font:700 1.6rem/1.2 var(--font-display);font-variant-numeric:tabular-nums}.stat-label{color:var(--muted);font-size:.8rem}.tabs{flex-wrap:wrap;gap:6px;margin:12px 0 4px;display:flex}.tabs label{border:1px solid var(--line);cursor:pointer;background:var(--surface-solid);border-radius:999px;padding:6px 14px;font-size:.9rem;font-weight:600;position:relative}.tabs input{opacity:0;pointer-events:none;position:absolute}.tabs label:has(input:checked){background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.scores{color:var(--muted)}.table-wrap{border:1px solid var(--line);background:var(--surface-solid);border-radius:14px;max-height:46vh;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:9px 12px}th{z-index:1;background:var(--surface-solid);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;position:sticky;top:0}td.num{text-align:right;font-variant-numeric:tabular-nums}tr.view-only td{color:var(--muted)}.mastery{white-space:nowrap;align-items:center;gap:8px;display:flex}.bar{background:var(--line);border-radius:3px;width:72px;height:6px;display:inline-block;overflow:hidden}.fill{background:var(--accent);border-radius:3px;height:100%;display:block}.fill.mastered{background:#009e73}#site-footer{position:fixed;bottom:16px;right:20px}#site-footer[hidden]{display:none}.credit{--name:#a35f00;color:var(--muted);cursor:pointer;font:600 .85rem/1.4 ui-monospace,SF Mono,Cascadia Code,Menlo,Consolas,monospace;text-decoration:none;position:relative}:root[data-theme=dark] .credit{--name:#f0b429}.credit-name{color:var(--name);text-decoration:underline;-webkit-text-decoration-color:var(--name);text-decoration-color:var(--name);text-underline-offset:4px;font-weight:700;text-decoration-thickness:2px;transition:text-decoration-thickness .15s,text-underline-offset .15s}.credit-url{background:var(--ink);color:var(--bg);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s var(--ease-out), transform .15s var(--ease-out);border-radius:8px;padding:4px 8px;font-size:.75rem;position:absolute;bottom:calc(100% + 8px);right:0;transform:translateY(4px)}.credit:hover,.credit:focus-visible{color:var(--ink)}.credit:hover .credit-name,.credit:focus-visible .credit-name{text-underline-offset:5px;text-decoration-thickness:3px}.credit:hover .credit-url,.credit:focus-visible .credit-url{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.panel{transition:opacity var(--dur-panel) ease}@starting-style{.panel{transform:none}}.shortcut-list li{animation-name:fade}.key:active{transform:none}}:root[data-motion=reduce] .panel{transition:opacity var(--dur-panel) ease}@starting-style{:root[data-motion=reduce] .panel{transform:none}}:root[data-motion=reduce] .shortcut-list li{animation-name:fade}:root[data-motion=reduce] .key:active{transform:none}@keyframes fade{0%{opacity:0}}@media (prefers-reduced-transparency:reduce){.panel,.icon-button{background:var(--surface-solid);-webkit-backdrop-filter:none;backdrop-filter:none}}@media (width<=600px){.panel{border-radius:16px;padding:20px 16px}}
