:root{--bg: #051019;--panel: #0a1c2b;--ink: #e9f4fb;--muted: #8fb3c9;--board-edge: rgba(120, 200, 255, .16);--grid: rgba(140, 210, 255, .2);--cellbg: #0e2436;--water: #1978c8;--water-hi: #46a7e8;--accent: #38bdf8;--sel: #0ea5e9;--good: #4ade80;--bad: #f87171;--hintc: #fbbf24}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(1100px 640px at 50% -8%,#0d2c44 0%,var(--bg) 60%);color:var(--ink);font:15px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}main{max-width:680px;margin:0 auto;padding:32px 20px 48px;text-align:center}h1{margin:0;font-size:34px;letter-spacing:.5px}h1 span{color:var(--accent);text-shadow:0 0 18px rgba(56,189,248,.45)}.sub{margin:6px auto 20px;max-width:560px;color:var(--muted)}#wrap{display:flex;justify-content:center}#board{background:var(--panel);border-radius:14px;border:1px solid var(--board-edge);box-shadow:0 20px 60px #00000080;padding:12px;transition:filter .35s ease;touch-action:manipulation}#board.won{filter:drop-shadow(0 0 12px rgba(74,222,128,.45))}.cell{fill:var(--cellbg);stroke:var(--grid);stroke-width:1;cursor:pointer;transition:fill .15s ease}.cell.water{fill:var(--water)}.cell.water:hover{fill:var(--water-hi)}.cell.bad{fill:#7f1d2b;stroke:#b91c1c}.cell.hinted{stroke:var(--hintc);stroke-width:3}.wall{stroke:#7dd3fc;stroke-width:3.5;stroke-linecap:round;pointer-events:none;opacity:.85}.frame{fill:none;stroke:#7dd3fc;stroke-width:4;pointer-events:none;opacity:.85}.mark{fill:#8fb3c9bf;text-anchor:middle;dominant-baseline:central;pointer-events:none;font-family:ui-sans-serif,system-ui,sans-serif;font-weight:700}.clue{fill:var(--muted);font-weight:700;text-anchor:middle;dominant-baseline:central;pointer-events:none;font-family:ui-sans-serif,system-ui,sans-serif}.clue.ok{fill:var(--good)}.clue.bad{fill:var(--bad)}.hud{margin:18px auto 4px;color:var(--muted);font-size:13px;min-height:20px}#status.win{color:var(--good);font-weight:700;text-shadow:0 0 14px rgba(74,222,128,.5)}#status.bad{color:var(--bad)}.controls{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:12px}select,.controls button{font:inherit;border-radius:9px;border:1px solid rgba(120,200,255,.25);background:var(--panel);color:var(--ink);padding:7px 13px;cursor:pointer}.controls button:hover{border-color:var(--accent)}#solve{border-color:var(--sel);color:var(--accent)}label{color:var(--muted);font-size:13px}label select{margin-left:6px}.note{margin:26px auto 0;max-width:600px;color:var(--muted);font-size:13px;text-align:left}.note strong,.note em{color:var(--ink)}
