@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/press-start-2p-regular.ttf") format("truetype")}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#203f35;color:#173e33;font-family:'Press Start 2P',monospace}main{position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none;image-rendering:pixelated}.camp-sign{position:absolute;left:max(16px,env(safe-area-inset-left));top:max(16px,env(safe-area-inset-top));width:clamp(190px,27vw,355px);pointer-events:none;filter:drop-shadow(0 3px 2px #173e3344)}.camp-sign svg{display:block;width:100%;height:auto;image-rendering:pixelated}#hint{position:absolute;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);margin:0;width:max-content;max-width:90%;text-align:center;font-size:10px;line-height:1.8;color:#fff6dc;text-shadow:0 1px 4px #102b22;background:#173e3380;padding:6px 12px;border-radius:3px;pointer-events:none}#mapHotspots{position:absolute;inset:0;pointer-events:none}.map-hotspot{position:absolute;pointer-events:none;border:0;padding:0;background:transparent;color:transparent}.map-hotspot:focus-visible{outline:4px solid #fff1a8;outline-offset:5px}.detail-panel{position:fixed;z-index:5;right:max(24px,env(safe-area-inset-right));top:max(24px,env(safe-area-inset-top));width:min(360px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;padding:26px;background:#f5f0d4;border:3px solid #243f29;box-shadow:4px 4px 0 #243f29,0 12px 50px #173e3340;scrollbar-color:#9ca77e #f5f0d4;animation:arrive .14s ease-out}.detail-panel[hidden]{display:none}.close-details{position:sticky;top:0;float:right;margin:-10px -10px 0 8px;width:44px;height:44px;display:grid;place-items:center;border:0;background:#e8e4c7;color:#173e33;font:22px/1 'Press Start 2P',monospace;cursor:pointer}.close-details:hover{background:#dce5ac}.close-details:focus-visible{outline:3px solid #9d6b29;outline-offset:3px}.eyebrow{font-size:8px;letter-spacing:0;margin:0 0 14px;line-height:1.8;color:#63734d;padding-right:30px}h1{font-size:19px;line-height:1.5;margin:0 0 18px;font-weight:400;outline:none}h2{font-size:12px;line-height:1.6;margin:24px 0 9px}p{font-size:11px;line-height:1.8;margin:0 0 14px}.place-summary{font-size:10px;padding-bottom:18px;border-bottom:1px solid #bac3a3;color:#526341}.big-note{font-size:13px;line-height:1.7;margin-bottom:12px}.room-list{margin:0}.room-list>div{display:grid;grid-template-columns:1fr;gap:5px;padding:12px 0;border-bottom:1px solid #d6d8bb}.room-list dt{font-size:9px;line-height:1.6;color:#65744f}.room-list dd{margin:0;font-size:11px;line-height:1.7}.room-list dd span{display:block;font-size:9px;margin-top:5px;color:#65744f}.amenities{padding:0;list-style:none;margin:0}.amenities li{font-size:11px;line-height:1.8;padding:12px 0 12px 22px;position:relative;border-bottom:1px solid #d6d8bb}.amenities li:before{content:'';position:absolute;left:0;top:17px;width:7px;height:7px;background:#78904a}.amenities li:last-child{border-bottom:0}#detailContent>*:last-child{margin-bottom:0}@keyframes arrive{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.detail-panel{animation:none}}@media(max-width:650px){#hint{font-size:8px}.camp-sign{width:205px;left:12px;top:max(12px,env(safe-area-inset-top))}.detail-panel{top:auto;bottom:max(12px,env(safe-area-inset-bottom));left:12px;right:12px;width:auto;max-height:64dvh;padding:22px;box-shadow:3px 3px 0 #243f29,0 -10px 50px #173e3320}h1{font-size:16px;margin-bottom:16px}.room-list>div{padding:10px 0}.room-list dd{font-size:10px}.big-note{font-size:12px}}.camp-menu{position:absolute;z-index:2;left:max(16px,env(safe-area-inset-left));top:max(16px,env(safe-area-inset-top));width:clamp(190px,27vw,355px)}
.camp-menu .camp-sign{position:static;width:100%;filter:drop-shadow(0 3px 2px #173e3344)}
.quick-nav{display:grid;gap:7px;margin-top:10px}
.quick-nav button{width:100%;min-height:37px;padding:9px 11px;border:3px solid #243f29;background:#f5f0d4;box-shadow:3px 3px 0 #243f29;color:#173e33;font:9px/1.5 'Press Start 2P',monospace;text-align:center;cursor:pointer}
.quick-nav button:hover,.quick-nav button[aria-expanded="true"]{background:#e4e8af}
.quick-nav button:focus-visible{outline:3px solid #fff1a8;outline-offset:4px}
@media(max-width:650px){.camp-menu{width:205px;left:12px;top:max(12px,env(safe-area-inset-top))}.quick-nav{gap:5px;margin-top:7px}.quick-nav button{min-height:32px;padding:7px 5px;font-size:8px;line-height:1.6}}
/* Keep the pixel type on signage and headings; use readable body copy. */
html,body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
h1,h2,.eyebrow{font-family:'Press Start 2P',monospace}
#hint{font-size:14px;line-height:1.45}
.detail-panel p{font-size:16px;line-height:1.55}
.detail-panel .place-summary{font-size:15px}
.detail-panel .big-note{font-size:18px;line-height:1.45}
.room-list dt{font-size:13px;line-height:1.45}
.room-list dd{font-size:17px;line-height:1.5;font-weight:600}
.room-list dd span{font-size:14px;line-height:1.5;font-weight:400}
.amenities li{font-size:16px;line-height:1.45}
.amenities li:before{top:20px}
@media(max-width:650px){#hint{font-size:12px}.detail-panel p{font-size:15px}.detail-panel .big-note{font-size:17px}.room-list dd{font-size:16px}}
.camp-sign svg text{font-family:'Press Start 2P',monospace;font-weight:400}
.plan-day,.meal-block{padding-bottom:12px;border-bottom:1px solid #bac3a3}
.plan-day:last-child,.meal-block:last-child{border-bottom:0}
.plan-day h2,.meal-block h2{margin-top:25px}
.detail-panel a{color:#2d5a42;text-decoration-thickness:2px;text-underline-offset:3px;font-weight:700}
.detail-panel a:hover{color:#80662d}
.detail-panel h3{font:400 9px/1.6 'Press Start 2P',monospace;margin:18px 0 8px}
.signup-team{background:#ebe8ca;border:2px solid #9da880;padding:12px;margin:12px 0}
.signup-count{float:right;font:600 12px/1.5 system-ui,sans-serif;color:#526341}
.signup-names{margin:0 0 12px;padding-left:22px;font-size:15px;line-height:1.5}
.signup-names li{padding:2px 0}
.signup-form label{display:block;font-size:13px;font-weight:600;line-height:1.5}
.signup-form input{display:block;width:100%;min-height:40px;margin:5px 0 9px;padding:8px;border:2px solid #627358;border-radius:0;background:#fffdf0;color:#173e33;font:16px/1.3 system-ui,sans-serif}
.signup-form button{width:100%;min-height:38px;border:2px solid #243f29;background:#dce5ac;color:#173e33;font:400 8px/1.4 'Press Start 2P',monospace;cursor:pointer}
.signup-form button:hover{background:#c6d892}
.signup-form button:disabled{opacity:.6;cursor:wait}
.signup-form input:focus-visible,.signup-form button:focus-visible,.detail-panel a:focus-visible{outline:3px solid #9d6b29;outline-offset:2px}
.detail-panel .signup-message{font-size:13px;line-height:1.4;margin:7px 0 0;color:#526341}
.signup-form[hidden]{display:none}
