
:root{color-scheme:light;--bg:#eee6d2;--ink:#164c43;--card:#fff9ed;--line:#c5c8b5;--accent:#087f6e}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.5 system-ui,sans-serif}body.night{color-scheme:dark;--bg:#292e49;--ink:#f4f0ff;--card:#363954;--line:#696881;--accent:#74e6cf}main{max-width:1140px;margin:auto;padding:24px}header{display:flex;align-items:center;justify-content:space-between;gap:20px}h1{font-size:clamp(25px,4vw,36px);margin:4px 0}h2{margin:4px 0;font-size:24px}.eyebrow{font-size:13px;letter-spacing:.1em;text-transform:uppercase}.layout{display:grid;grid-template-columns:minmax(300px,1.25fr) minmax(280px,1fr);gap:28px;align-items:start}.boardwrap{position:sticky;top:14px}svg{width:100%;max-height:82vh;display:block}.card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 8px 22px #0000000b}button,a.nav{font:inherit;cursor:pointer;border:1px solid var(--line);border-radius:12px;padding:10px 15px;background:var(--card);color:var(--ink);text-decoration:none}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:disabled{opacity:.4;cursor:default}.controls{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}input{width:100%;accent-color:var(--accent)}.route{font-size:26px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}small{font-size:14px}p{margin:12px 0}footer{margin-top:24px;font-size:14px}.levelnav{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.status{min-height:52px}.help{opacity:.85}a{color:var(--accent)}@media(max-width:720px){main{padding:16px}.layout{display:block}.boardwrap{position:static}svg{max-height:65vh}.card{padding:18px}header{align-items:start}button{padding:10px 12px}}@media print{button,input,.levelnav{display:none}.layout{display:block}.boardwrap{position:static}svg{max-height:55vh}}

/* Shared Haven Games identity, kept separate from the game board itself. */
.haven-topbar{background:#113b42;color:#f8f5ec;border-bottom:2px solid #ddbd83}
.haven-topbar-inner{max-width:1140px;margin:0 auto;padding:13px 24px;display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.haven-topbar .haven-logo{font-weight:850;text-decoration:none;color:#f4e0b6;letter-spacing:.09em;font-size:14px}
.haven-topbar nav{display:flex;gap:15px;align-items:center;flex-wrap:wrap}
.haven-topbar nav a{text-decoration:none;color:#edf5ec;font-size:14px;font-weight:650}
.haven-topbar nav a[aria-current="page"]{color:#f3d99c;text-decoration:underline;text-underline-offset:5px}
.haven-topbar a:hover{color:#e3bd78}
.haven-topbar a:focus-visible{outline:2px solid #f3d99c;outline-offset:4px}
@media(max-width:720px){.haven-topbar-inner{padding:12px 16px;gap:10px}.haven-topbar nav{gap:12px}}
@media print{.haven-topbar{display:none}}
