:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;color:#e9eee0;background:#10292c;--gold:#efc179;--muted:#a1bab7;--edge:#355052}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 15% 12%,#26444780,transparent 65%);min-height:100vh}main{max-width:1210px;margin:auto;padding:30px 42px}header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:30px;border-bottom:1px solid var(--edge)}a{color:var(--gold)}.brand{text-decoration:none;letter-spacing:.16em;font-size:14px;font-weight:700}.edition,.eyebrow{font-size:10px;letter-spacing:.2em;color:var(--gold);font-weight:700}.edition{color:var(--muted)}.intro{padding:40px 0 28px}.intro h1{font:normal clamp(36px,4.2vw,58px)/1.07 Georgia,serif;letter-spacing:-.025em;margin:15px 0}.lede{color:var(--muted);line-height:1.7;font-size:15px}.layout{display:grid;grid-template-columns:minmax(0,710px) minmax(240px,300px);gap:38px}.play{padding:24px;border:1px solid #45605b;background:#153336;border-radius:18px;box-shadow:0 24px 80px #00151760}.boardtop{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:20px}h2{font:normal 25px/1.2 Georgia,serif;margin:8px 0}.pill{font-size:12px;border:1px solid #54706b;border-radius:24px;padding:8px 13px;color:var(--gold);white-space:nowrap}.boardframe{padding:18px;background:linear-gradient(#0d242855,#0d242888),url('isles.webp') center/cover;border-radius:10px;border:1px solid #48605a}#board{display:grid;grid-template-columns:repeat(var(--n),1fr);aspect-ratio:1;gap:3px;padding:3px;border:1px solid #91a59166;background:#163e4260;touch-action:manipulation;border-radius:5px}.cell{padding:0;border:1px solid #71909166;background:#244f52db;min-width:0;min-height:0;position:relative;aspect-ratio:1;border-radius:3px;font:600 clamp(16px,2.5vw,25px) Georgia,serif;color:#fce1a6;box-shadow:inset 0 1px 0 #96b6ad14;transition:background .16s,transform .16s;cursor:pointer}.cell:hover{border-color:#ffe3a6}.cell:focus-visible{outline:3px solid #fff3c0;outline-offset:0;z-index:2}.cell.land{background:linear-gradient(#d8e4bd55,#839d7844),url('island.webp') center/cover;color:#102a25;text-shadow:0 1px 4px #fff}.cell.fog{background:#0c2a34df;color:#6f969a}.cell.fog:after{content:'≈';font:normal 21px Georgia,serif;opacity:.6}.cell.clue:before{content:'✦';position:absolute;font:10px system-ui;top:4px;right:5px;color:#5e4a1b}.cell.lit{box-shadow:inset 0 0 0 2px #f4ca7c}.cell.error{border:2px solid #ff9c84}.stats{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px;padding:15px 0 0}#message{min-height:38px;line-height:1.5;font-size:13px;color:#d1dfd3;margin:14px 0}.tools{display:flex;gap:8px}.tools button{flex:1;padding:12px 6px}.tools .selected{background:var(--gold);color:#15302e;border-color:var(--gold)}button,select{font:inherit}button{border:1px solid #49625e;background:#203f40;color:#dfebde;border-radius:7px;padding:10px 14px;cursor:pointer}button:hover{filter:brightness(1.15)}button:disabled{opacity:.35;cursor:default}kbd{font:10px ui-monospace,monospace;opacity:.65;margin-left:5px}.actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.actions button{font-size:12px;flex:1;white-space:nowrap;padding:10px 8px}#check{color:var(--gold)}aside{padding-top:10px}.how{border-top:1px solid #668071;padding-top:15px}.how h2{font-size:31px;margin:14px 0 20px}.how ol{padding-left:22px;display:grid;gap:18px;color:var(--muted);font-size:13px;line-height:1.6}.how li::marker{color:var(--gold)}.how strong{display:block;color:#e6e9dc;font-weight:500}.keyboard{font-size:11px;line-height:1.7;color:#a0b5b0;border-top:1px solid var(--edge);padding-top:15px}.journey{margin-top:26px}.journey label{font-size:10px;letter-spacing:.16em;color:var(--gold)}select{display:block;width:100%;padding:12px;background:#183839;color:#e9eee0;border:1px solid #49625e;border-radius:7px;margin-top:10px;font-size:13px}.journey p,.artnote{font-size:11px;color:var(--muted);line-height:1.7}.artnote{margin-top:25px;color:#d5b57b}footer{margin-top:35px;padding:20px 0;border-top:1px solid var(--edge);color:var(--muted);font-size:11px;line-height:1.7;display:flex;justify-content:space-between;gap:20px}footer details{max-width:480px}summary{cursor:pointer}#victory{margin-top:20px;padding:20px;background:#d9dcb8;color:#183934;border-radius:9px;text-align:center}#victory strong{font:24px Georgia,serif}#victory p{font-size:12px}#victory button{background:#204744;color:#f4e1b7} [hidden]{display:none!important}@media(min-width:950px){.intro{background:linear-gradient(90deg,#10292c 10%,#10292c22 60%),url('isles.webp') right 40%/660px auto no-repeat;border-radius:0 0 16px 16px;margin-bottom:25px}.intro .lede{margin-bottom:0}}@media(max-width:760px){main{padding:20px 16px}.edition{font-size:8px;letter-spacing:.1em}.layout{grid-template-columns:1fr;gap:24px}.intro{padding:28px 0 18px}.intro h1{font-size:42px}.play{padding:17px}.boardframe{padding:10px}.how h2 br{display:none}.how ol{grid-template-columns:1fr 1fr;gap:14px 24px}.artnote{display:none}footer{display:block}footer details{margin-top:12px}.cell{font-size:clamp(17px,5vw,24px)}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Compact game framing keeps controls near the board. */
@media(min-width:761px){main{max-width:1100px;padding-top:22px}.intro{padding:24px 0 22px;margin-bottom:20px}.intro h1{font-size:44px}.intro .lede{font-size:13px}.layout{grid-template-columns:minmax(0,620px) minmax(240px,280px);gap:30px}.boardframe{max-width:480px;margin:0 auto;padding:12px}.play{padding:20px}.boardtop{margin-bottom:14px}.how h2{font-size:28px}}
.cell.clue{color:#fff4cb;text-shadow:0 2px 4px #0b2524,0 0 4px #0b2524}.cell.clue:before{color:#fff4cb}
