:root{--bg: #0d1117;--panel: #232b35;--ink: #e6edf3;--muted: #8b949e;--line: #30363d;--accent: #f0b429;--white: #e8eef4;--black: #05080d;--cell: 46px;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 ui-sans-serif,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif}main{max-width:860px;margin:0 auto;padding:2.5rem 1.25rem 4rem}header h1{font-size:2.5rem;margin:0 0 .5rem;letter-spacing:-.02em}header h1 span{color:var(--accent)}.sub{color:var(--muted);margin:0 0 2rem;max-width:62ch}.sub strong{color:var(--ink);font-weight:600}#wrap{display:flex;justify-content:center}#board{display:grid;gap:0;background:var(--line);border:2px solid var(--line);border-radius:4px;-webkit-user-select:none;user-select:none}.cell{width:var(--cell);height:var(--cell);background:var(--panel);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;font-variant-numeric:tabular-nums;transition:background 90ms linear}.cell.white{background:var(--white)}.cell.black{background:var(--black)}.cell.clue{background:var(--white);color:#0d1117;font-weight:700;font-size:1.05rem;cursor:default;box-shadow:inset 0 0 0 2px var(--accent)}.cell.flash{animation:flash .7s ease-out}@keyframes flash{0%{box-shadow:inset 0 0 0 3px var(--accent)}to{box-shadow:inset 0 0 0 3px transparent}}.cell.clue.flash{animation:none}.hud{text-align:center;min-height:1.8rem;margin:1rem 0 .5rem;color:var(--muted)}.hud .win{color:#4ade80;font-weight:600}.hud .err{color:#f87171}.controls{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:center;margin-bottom:2.5rem}label{color:var(--muted);display:flex;align-items:center;gap:.4rem;font-size:.9rem}select,button{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:.4rem .7rem;font:inherit;font-size:.9rem;cursor:pointer}button:hover,select:hover{border-color:var(--accent)}button:active{transform:translateY(1px)}.notes,footer{border-top:1px solid var(--line);padding-top:1.5rem;color:var(--muted);max-width:68ch}.notes h2{color:var(--ink);font-size:1.1rem;margin:1.5rem 0 .75rem}.notes h2:first-child{margin-top:0}.notes strong{color:var(--accent);font-weight:600}.notes code{background:var(--panel);padding:.1rem .35rem;border-radius:4px;font-size:.9em}footer{margin-top:2rem;font-size:.85rem}@media (max-width: 640px){:root{--cell: 34px}header h1{font-size:2rem}}
