:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#183e32;background:#f6f4ec;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;font-weight:650;min-height:44px;border:1px solid #cbd5c8;border-radius:12px;background:#fffef8;color:#214d3d;padding:10px 14px;cursor:pointer;touch-action:manipulation}button:hover{background:#eaf0e5}button:focus-visible,a:focus-visible{outline:3px solid #b77a25;outline-offset:3px}button:disabled{opacity:.45;cursor:default}[hidden]{display:none!important}.shell{max-width:620px;margin:auto;padding:20px 16px 32px}header{display:flex;justify-content:space-between;align-items:center;gap:10px}.brand{color:#183e32;font-size:24px;font-weight:800;text-decoration:none}.tag,.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:750;color:#66765e}.intro{text-align:center;padding:30px 0 20px}.intro h1{font-family:Georgia,serif;font-size:42px;font-weight:500;margin:8px 0}.intro p{margin:0;color:#68705f}.panel{background:#fffef8;border:1px solid #dce1d3;border-radius:22px;padding:24px;margin:12px 0;text-align:center;box-shadow:0 8px 30px #183e3206}.panel h2{font-family:Georgia,serif;font-size:25px;font-weight:500}.panel p{line-height:1.6}.panel button{margin:4px}.hero{font-family:monospace;white-space:pre;line-height:1;font-size:45px;letter-spacing:4px;color:#56836b;background:#edf2e6;width:180px;padding:20px 0;border-radius:24px;margin:auto}.primary{background:#244f3e;color:white;border-color:#244f3e}.primary:hover{background:#173e2e}.muted{font-size:12px;color:#68725f;line-height:1.5}.play-top,.stats,.toolbar,.pager,.section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.play-top{font-size:13px}.play-top button{padding:9px 11px}.stats{font-size:12px;color:#66765e;margin:18px 3px 10px}.board{display:grid;gap:3px;border:6px solid #dce5d7;border-radius:16px;padding:4px;background:#dce5d7;max-width:540px;margin:auto;aspect-ratio:1}.tile{position:relative;aspect-ratio:1;padding:0;min-height:0;min-width:0;border:0;border-radius:6px;background:#fffef8;overflow:hidden}.tile svg{display:block;width:100%;height:100%;stroke:#a1ada0;fill:#a1ada0;stroke-width:9;stroke-linecap:round}.tile.live svg{stroke:#38735b;fill:#38735b}.tile.source svg circle{fill:#c68a39;stroke:#fff3cb;stroke-width:3}.tile.locked{box-shadow:inset 0 0 0 2px #aa7a30}.tile .lock-mark{position:absolute;right:3px;bottom:1px;font-size:10px;color:#805915;font-weight:bold}.hint{text-align:center;font-size:13px;min-height:20px;color:#5b6b59}.toolbar button{flex:1;padding:10px 6px;font-size:13px}.toolbar [aria-pressed=true],.sizes [aria-pressed=true]{background:#e5ecd9;border-color:#71936a}.success{background:#edf3e4}.levels{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.levels button{margin:0;font-size:13px;padding:9px 4px}.levels .done{background:#e4eedc}.pager{font-size:12px}.pager button{font-size:12px}.section-head h2{margin:0}ol{text-align:left;padding-left:22px;line-height:1.7}li{margin:10px 0}footer{text-align:center;color:#7b8171;font-size:11px;line-height:1.6;margin-top:28px}footer a{color:inherit}.error{padding:20px;text-align:center;background:#fff0de;border-radius:15px}@media(max-width:360px){.shell{padding:14px 10px}.tag{font-size:8px;letter-spacing:.8px}.intro{padding:22px 0 15px}.intro h1{font-size:36px}.panel{padding:18px}.board{gap:2px;border-width:4px;padding:2px}.play-top{font-size:12px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s}}

.tile:disabled{opacity:1;cursor:default}
.camp-scene{width:230px;max-width:100%;height:115px}.intro h1{font-size:40px}.intro p{font-size:14px}.play-top #level{line-height:1.5;text-align:center}.view-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:#52674d}.view-controls button{font-size:12px;padding:9px 12px}.scroll-note{margin:9px 2px;line-height:1.5}.board-scroll{overflow:auto;max-height:min(68vh,566px);position:relative;border:2px solid #c5d3bc;border-radius:12px;background:#dce5d7;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:auto;touch-action:pan-x pan-y;margin:auto}.board-scroll:focus-visible{outline:3px solid #b77a25;outline-offset:3px}.tents-board{display:grid;width:max-content;position:relative;background:#dce5d7;gap:2px;padding:2px}.cell{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:5px;background:#fffef8;position:relative;display:grid;place-items:center}.cell:hover{background:#eaf0e5}.cell:disabled{opacity:1;cursor:default}.cell svg{height:35px;width:35px;display:block}.cell.tree{background:#e3ecdc}.cell.grass{background:#eff3e9}.cell.grass .grass-mark{color:#617753;font-size:30px;line-height:1}.cell.bad{box-shadow:inset 0 0 0 2px #b74732}.conflict-mark{position:absolute;right:2px;top:0;font-size:12px;color:#9a3022;font-weight:900}.clue{display:flex;align-items:center;justify-content:center;flex-direction:column;line-height:1.1;font-size:16px;font-weight:750;color:#385537;background:#e7eddf;z-index:2}.clue small{font-size:9px;font-weight:650;margin-top:2px}.clue.column{position:sticky;top:0}.clue.row{position:sticky;left:0}.clue.corner{position:sticky;top:0;left:0;z-index:4;font-size:13px}.clue.met{background:#d0e3c5;color:#244c24}.clue.excess{background:#f5d7cc;color:#8b251a}.hint{min-height:40px;line-height:1.5;margin:12px 0 8px}.hint.problem{color:#963d2b}.legend{display:flex;justify-content:center;gap:16px;font-size:11px;color:#5b6b59;margin:6px 0 15px}.overview{background:#e8eedf;border:1px solid #c5d3bc;border-radius:12px;padding:8px;text-align:center}.overview p{font-size:12px;margin:4px 0 8px;color:#4e6447}.overview svg{display:block;width:100%;height:auto;margin:auto;max-height:580px}.difficulty{margin-top:5px}.sizes button{min-width:84px}.levels{grid-template-columns:repeat(4,1fr)}.levels button{min-height:48px}.stats{margin-top:14px}.toolbar{justify-content:center}.toolbar button{max-width:200px}.tents-board .cell:focus-visible{outline-offset:-3px;z-index:1}.panel p{font-size:14px}.section-head h2{font-size:23px}.play-top button{flex-shrink:0}@media(max-width:360px){.intro h1{font-size:35px}.view-controls{gap:5px}.panel{padding:15px}.play-top{gap:5px}.play-top button{font-size:12px;padding:9px}.tag{font-size:8px}.board-scroll{max-height:64vh}}

.board-scroll{scroll-padding:40px 4px 4px 38px}.cell{scroll-margin:3px}

.pager{flex-wrap:wrap;justify-content:center;gap:6px}.pager button{padding:9px 10px}.levels .current{outline:2px solid #a5772c;outline-offset:1px}
