:root{--bg: #0f1115;--bg-elevated: #171a21;--surface: #1f2430;--surface-strong: #262c3a;--border: #2e3342;--border-strong: #3a4152;--text: #e6e8ee;--text-muted: #9aa3b2;--text-dim: #828b9b;--digit-solved: #f2f4f9;--candidate: #a6afc0;--accent: #7aa2f7;--accent-soft: #7aa2f722;--accent-strong: #8ebaff;--accent-alt: #f7a27a;--accent-alt-soft: #f7a27a22;--accent-alt-strong: #ffb68e;--select: #e0af68;--select-soft: #e0af6822;--select-strong: #f0c27a;--shared: #a78bfa;--shared-soft: #a78bfa22;--danger: #f07178;--success: #9ece6a;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 14px;--ease-out: cubic-bezier(.2, .7, .2, 1);--dur-fast: .12s;--dur-med: .22s;--wah: 0;--chroma-rest: .72;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-digit: "Atkinson Hyperlegible", "Inter", system-ui, sans-serif;--font-display: "Archivo Narrow", "Saira Condensed", "Arial Narrow", sans-serif;--grid-max: min(100vw, 100vmin);--cage-dash: 2px}@media(min-width:640px){:root{--grid-max: min(72vmin, 560px)}}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);color:var(--text);background:var(--bg);line-height:1.4;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}button:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.board app-grid{filter:saturate(var(--chroma-rest, .72));transition:filter var(--dur-med) var(--ease-out)}.board.is-casting app-grid{animation:board-wah 1.1s var(--ease-out) forwards}@keyframes board-wah{0%{filter:saturate(var(--chroma-rest, .72)) brightness(1)}22%{filter:saturate(1) brightness(1.1)}to{filter:saturate(var(--chroma-rest, .72)) brightness(1)}}.board.is-casting{--sw: 1}.board.is-casting[data-cast-tier="1"]{--sw: 1.15}.board.is-casting[data-cast-tier="2"]{--sw: 1.35}.board.is-casting[data-cast-tier="3"]{--sw: 1.6}.board.is-casting app-cell[data-cast=premise],.board.is-casting app-cell[data-cast=target]{position:relative;z-index:2;animation:cell-swell 1.1s var(--ease-out) forwards}.board.is-casting app-cell[data-cast=target]{--sw-boost: 1.35}@keyframes cell-swell{0%{transform:scale(1);filter:none}24%{transform:scale(calc(1 + .06 * var(--sw, 1) * var(--sw-boost, 1)));filter:brightness(1.35) saturate(1.5)}to{transform:scale(1);filter:none}}.board.is-casting app-cell[data-cast=solved]{position:relative;z-index:3;animation:cell-bloom 1.1s var(--ease-out) forwards}@keyframes cell-bloom{0%{transform:scale(1);box-shadow:0 0 0 0 transparent}22%{transform:scale(calc(1 + .09 * var(--sw, 1)));box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--success) 80%,transparent),0 0 22px 4px color-mix(in oklab,var(--success) 45%,transparent)}to{transform:scale(1);box-shadow:0 0 0 0 transparent}}.board.is-casting[data-cast-tier="3"] app-grid{animation:board-wah-hi 1.1s var(--ease-out) forwards}@keyframes board-wah-hi{0%{filter:saturate(var(--chroma-rest, .72)) brightness(1)}22%{filter:saturate(1.15) brightness(1.15) drop-shadow(1px 0 0 color-mix(in oklab,var(--accent) 55%,transparent)) drop-shadow(-1px 0 0 color-mix(in oklab,var(--accent-alt) 55%,transparent))}to{filter:saturate(var(--chroma-rest, .72)) brightness(1)}}.board.is-casting app-cell .cast-flight{position:absolute;inset:0;padding:18% 4% 4% 14%;display:grid;grid-template-columns:repeat(var(--cand-grid, 3),1fr);grid-template-rows:repeat(var(--cand-grid, 3),1fr);place-items:center;pointer-events:none;z-index:4;grid-template-areas:"d1 d2 d3" "d4 d5 d6" "d7 d8 d9"}.board.is-casting app-cell .cast-flight .cast-fly{color:var(--danger, #f07178);font-family:var(--font-digit);line-height:1;animation:cand-flight .9s var(--ease-out) forwards}@keyframes cand-flight{0%{opacity:.9;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-140%) scale(.6)}}.board--no-fx app-cell .cast-flight{display:none}.board--no-fx app-grid{filter:saturate(1);transition:none}.board--no-fx.is-casting app-grid{animation:none;filter:saturate(1)}.board--no-fx app-cell[data-cast]{animation:none;transform:none;box-shadow:none}@media(prefers-reduced-motion:reduce){.board app-grid{filter:saturate(1);transition:none}.board.is-casting app-grid{animation:none;filter:saturate(1)}.board.is-casting app-cell[data-cast]{animation:none;transform:none;box-shadow:none}.board.is-casting app-cell .cast-flight{display:none}}.board-row{position:relative}.method-stamp-layer{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:5}.method-stamp{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;font-weight:700;font-size:clamp(1.4rem,6vw,2.4rem);color:var(--select-strong);padding:.1em .55em;border-radius:999px;background:color-mix(in oklab,var(--surface) 78%,transparent);-webkit-backdrop-filter:blur(6px) saturate(1.2);backdrop-filter:blur(6px) saturate(1.2);box-shadow:0 0 0 1px color-mix(in oklab,var(--select-strong) 42%,transparent),0 8px 30px color-mix(in oklab,var(--bg) 70%,transparent),0 0 28px color-mix(in oklab,var(--select-strong) 45%,transparent);text-shadow:0 1px 3px color-mix(in oklab,var(--bg) 85%,transparent);animation:method-stamp-in 1.1s var(--ease-out) forwards}@keyframes method-stamp-in{0%{opacity:0;transform:scale(.7)}18%{opacity:1;transform:scale(1.08)}30%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.method-stamp{animation:none;opacity:1;transform:none}}.settings-fx{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 22px 0}.settings-fx .sfx-toggle.is-on{background:color-mix(in oklab,var(--success) 20%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--success) 70%,transparent)}.sfx-hint{padding-inline:22px;margin-top:4px}
