@font-face{font-family:Pixel;src:url('../../fonts/silkscreen.ttf') format('truetype');font-display:swap}@font-face{font-family:Body;src:url('../../fonts/dm-sans.ttf') format('truetype');font-display:swap}
:root{--ink:#213e4d;--cream:#f6f1da;--teal:#397c79;--gold:#efc56f;--orange:#c87855;--shadow:#152c3c;--body:Body,system-ui,sans-serif;--pixel:Pixel,monospace;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;color:var(--ink);background:#213e4d;font-family:var(--body);overscroll-behavior-y:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:0}button:disabled{cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #eea050;outline-offset:5px}a{color:inherit;text-underline-offset:4px}button:hover:not(:disabled){filter:brightness(1.08)}[hidden]{display:none!important}#game-frame{position:fixed;inset:0;z-index:-1;background:#c4d9d1;overflow:hidden}#game{width:100%;height:100%;image-rendering:pixelated;display:block}.screen-edge{position:absolute;inset:0;border:8px solid #213e4d;pointer-events:none;box-shadow:inset 0 0 0 2px #f6f1da3d}.hud{position:fixed;top:28px;left:3.5%;right:3.5%;z-index:50;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.hud>*{pointer-events:auto}.identity{display:flex;align-items:center;gap:12px;font:11px var(--pixel);text-align:left;background:var(--cream);border:3px solid var(--ink);padding:10px 13px;box-shadow:3px 3px 0 #213e4d40}.identity small{display:block;font-size:6px;margin-top:6px;letter-spacing:.7px}.mini-mountain{font:29px var(--pixel);line-height:1;display:block}.hud-actions{display:flex;gap:7px}.hud-actions button{position:relative;min-width:43px;height:43px;padding:7px 10px;border:3px solid var(--ink);background:var(--cream);box-shadow:3px 3px 0 #213e4d40;font:20px var(--body)}.hud-actions .wide-label{font:8px var(--pixel);vertical-align:3px}.mute-mark{position:absolute;right:5px;bottom:5px;width:5px;height:5px;background:#c05f45}.hud-actions [aria-pressed=true] .mute-mark{display:none}#title-screen{position:fixed;left:8%;top:22%;z-index:3;transition:opacity .3s,translate .6s;max-width:600px}.title-ticket{display:inline-block;background:var(--cream);border:2px solid var(--ink);padding:9px 13px;font:8px var(--pixel);box-shadow:3px 3px 0 #213e4d30;transform:rotate(-3deg)}.title-ticket span{color:#af5e41;margin-right:8px}.title-overline{font:13px var(--pixel);letter-spacing:5px;margin:29px 0 9px;color:var(--cream);text-shadow:2px 2px 0 var(--ink)}h1{font:clamp(46px,6.3vw,91px)/.93 var(--pixel);letter-spacing:-5px;margin:0;color:var(--cream);text-shadow:4px 0 var(--ink),-4px 0 var(--ink),0 -4px var(--ink),0 4px var(--ink),6px 8px 0 #213e4d66}h1>span{display:block;color:var(--gold)}.title-description{font:17px/1.5 var(--body);color:var(--ink);margin:23px 0 25px}.game-button{display:inline-flex;align-items:center;justify-content:center;gap:21px;border:3px solid var(--ink);background:var(--orange);color:var(--cream);padding:18px 22px;font:11px/1.5 var(--pixel);box-shadow:0 6px 0 #8d4e3d,3px 9px 0 #213e4d35;transition:translate .12s,box-shadow .12s}.game-button:active{translate:0 4px;box-shadow:0 2px 0 #8d4e3d}.button-symbol{font-size:14px}.text-button{display:block;background:none;text-decoration:underline;text-underline-offset:5px;font-size:12px;margin:20px 0;padding:0}.title-instructions{display:flex;gap:12px;align-items:center;font:8px/1.8 var(--pixel);margin-top:30px}.title-instructions small{font-size:6px}.keycap{background:var(--cream);border:2px solid var(--ink);font-size:21px;padding:3px 9px;box-shadow:2px 2px 0 #213e4d30}.title-exit #title-screen{opacity:0;translate:-45px 0;pointer-events:none}#scroll-space{height:100svh}body.running #scroll-space{height:calc(100svh + 10800px)}#about{position:fixed;z-index:10;left:50%;top:50%;translate:-50% -50%;width:min(620px,66vw);text-align:center;color:#243f49;will-change:transform,opacity}.chapter-label{font:8px/1.8 var(--pixel);letter-spacing:1px}#about h2{font:clamp(23px,3vw,39px)/1.3 var(--pixel);margin:20px 0}#about>p:not(.chapter-label):not(.about-hint){max-width:510px;margin:0 auto;font-size:16px;line-height:1.65}.profile-bits{display:flex;justify-content:center;gap:28px;margin:23px 0 27px;font:8px var(--pixel)}.game-button.small{font-size:8px;padding:13px 17px;box-shadow:0 4px 0 #8d4e3d}.about-hint{font:6px var(--pixel);margin:18px 0 0}#route-hud{position:fixed;z-index:12;left:3.5%;top:112px;width:204px;background:var(--cream);border:3px solid var(--ink);padding:11px 12px;box-shadow:3px 3px 0 #213e4d20}.chapter-chip{display:flex;align-items:center;gap:10px;font:8px var(--pixel)}#chapter-number{display:grid;place-items:center;width:24px;height:24px;background:var(--ink);color:var(--gold);font-size:9px}.route-meter{height:5px;background:#bed2c5;margin:12px 0}.route-meter i{display:block;height:100%;width:0;background:var(--orange)}#route-hud p{font:5px var(--pixel);margin:8px 0 0}.route-dot{margin:0 4px;color:var(--orange)}#travel-hint{position:fixed;z-index:11;left:50%;bottom:85px;translate:-50%;text-align:center;font:9px var(--pixel);color:var(--ink);background:#f6f1daeb;padding:12px 18px;border:2px solid #213e4d50;pointer-events:none}#travel-hint>span{font-size:15px;margin-right:8px}#travel-hint small{display:block;font:5px var(--pixel);margin-top:8px}#room{position:fixed;z-index:25;right:4%;top:50%;translate:0 -47%;width:400px;max-height:75svh;border:4px solid var(--ink);box-shadow:6px 7px 0 #213e4d50;background:#f3e5bd;display:flex;flex-direction:column;animation:room-in .35s cubic-bezier(.2,.8,.3,1)}@keyframes room-in{from{opacity:0;transform:translate(26px,8px)}to{opacity:1;transform:translate(0,0)}}.room-ceiling{position:relative;flex:0 0 126px;overflow:hidden;border-bottom:4px solid var(--ink)}#room-art{display:block;width:100%;height:100%;image-rendering:pixelated}.room-ceiling>button{position:absolute;right:9px;top:9px;background:var(--cream);border:2px solid var(--ink);width:27px;height:27px;font-size:20px;line-height:1}.room-ceiling>span{position:absolute;bottom:8px;left:12px;background:var(--ink);color:var(--cream);padding:6px 8px;font:7px var(--pixel)}.room-body{overflow:auto;padding:23px 24px 15px;scrollbar-width:thin;overscroll-behavior:contain;min-height:0}.room-body h2{font:22px/1.35 var(--pixel);margin:6px 0 13px}.room-body .room-intro{font:13px/1.6 var(--body);margin:0 0 20px;color:#52665e}.content-entry{padding:17px 0;border-top:2px dashed #a49d7940}.content-entry h3{font-size:15px;line-height:1.4;margin:8px 0}.content-entry p{font-size:12px;line-height:1.65;margin:7px 0}.entry-date{font:6px/1.7 var(--pixel);color:#586c66}.entry-tag{display:inline-block;background:#213e4d0a;border:1px solid #213e4d30;padding:5px 6px;font:6px var(--pixel);margin:6px 3px 0 0}.entry-link{display:inline-block;font-size:11px;font-weight:bold;margin-top:12px}.room-continue{flex-shrink:0;display:flex;justify-content:space-between;background:var(--ink);color:var(--cream);padding:15px 20px;font:8px var(--pixel)}#room[data-theme=igloo]{background:#e0eff0;border-color:#304b61}.room-body .room-eyebrow{font:6px var(--pixel);color:#826849;margin:0 0 9px}#room[data-theme=gondola]{background:#e6e9c9}#room[data-theme=caravan]{background:#f3dac2}#trail-map{position:fixed;z-index:80;top:90px;right:3.5%;width:330px;padding:23px;background:var(--cream);border:4px solid var(--ink);box-shadow:6px 6px 0 #213e4d55}.map-heading{display:flex;align-items:center;justify-content:space-between}.map-heading button,.dialog-heading button{background:transparent;font:25px var(--body);padding:0 5px}#trail-map h2{font:18px/1.4 var(--pixel);margin:14px 0}#map-art{width:100%;height:85px;image-rendering:pixelated;background:#d2e0d2;border:2px solid var(--ink)}#map-links{display:flex;flex-direction:column;margin-top:15px}#map-links button{display:flex;align-items:center;gap:13px;background:transparent;border-top:1px dashed #213e4d44;padding:13px 5px;text-align:left;font:10px var(--pixel)}#map-links button span{font-size:7px;color:#8d6946}#map-links button:hover{background:#efc56f66}#trail-map>p{font:6px var(--pixel);margin:17px 0 0}dialog{width:min(730px,92vw);max-height:87svh;color:var(--ink);background:var(--cream);border:4px solid var(--ink);padding:30px;box-shadow:8px 8px 0 #0005}dialog::backdrop{background:#152d43df}.dialog-heading{display:flex;justify-content:space-between;align-items:center}dialog h2{font:24px var(--pixel)}dialog>p{font-size:14px;line-height:1.6}#plain-content section{margin-top:25px;border-top:3px solid var(--ink);padding-top:15px}#plain-content h2{font-size:18px}.skip-link{position:fixed;z-index:100;top:-100px;left:20px;background:var(--cream);padding:15px}.skip-link:focus{top:15px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.noscript{position:fixed;z-index:100;inset:15%;background:var(--cream);padding:30px}.noscript h1{font-size:28px;color:var(--ink);text-shadow:none}body[data-theme=night] .title-description,body[data-theme=night] .title-instructions,body[data-theme=night] .text-button{color:var(--cream)}body[data-theme=night] .keycap{color:var(--ink)}
@media(min-width:1600px){#title-screen{top:25%}#room{width:440px}}
@media(max-height:760px) and (min-width:701px){#title-screen{top:19%}.title-overline{margin-top:20px}h1{font-size:64px}.title-description{margin:17px 0;font-size:15px}.game-button{padding:14px 19px}.title-instructions{margin-top:20px}#room{max-height:72svh}.room-ceiling{flex-basis:90px}.room-body{padding:17px 20px}.room-body h2{font-size:19px}#about h2{margin:12px 0}.profile-bits{margin:16px 0}}
@media(max-width:700px){.screen-edge{border-width:5px}.hud{top:18px;left:5%;right:5%}.identity{font-size:8px;padding:8px;gap:7px;border-width:2px}.identity small{display:none}.mini-mountain{font-size:20px}.hud-actions{gap:5px}.hud-actions button{border-width:2px;min-width:33px;height:34px;font-size:18px;padding:4px 6px}.wide-label{display:none}#title-screen{left:9%;top:17%;max-width:88%}.title-ticket{font-size:6px;padding:7px 10px}.title-overline{font-size:10px;margin:22px 0 9px;letter-spacing:4px}h1{font-size:clamp(49px,12vw,70px);letter-spacing:-3px;text-shadow:3px 0 var(--ink),-3px 0 var(--ink),0 -3px var(--ink),0 3px var(--ink),4px 6px 0 #213e4d55}.title-description{font-size:14px;margin:20px 0}.game-button{font-size:9px;padding:15px 18px;gap:16px}.text-button{font-size:11px;margin-top:18px}.title-instructions{font-size:7px;margin-top:24px}.title-instructions small{font-size:5px}#about{width:80vw;top:47%}#about .chapter-label{font-size:5px;letter-spacing:.3px}#about h2{font-size:24px;margin:17px 0}#about>p:not(.chapter-label):not(.about-hint){font-size:13px;line-height:1.65}.profile-bits{font-size:6px;gap:15px;margin:19px 0}.game-button.small{font-size:7px;padding:12px}.about-hint{font-size:5px}#route-hud{left:5%;top:73px;width:151px;padding:8px;border-width:2px}.chapter-chip{font-size:6px;gap:8px}#chapter-number{width:19px;height:19px;font-size:7px}.route-meter{margin:8px 0;height:4px}#route-hud p{font-size:4px}.route-dot{margin:0 2px}#travel-hint{bottom:70px;width:205px;font-size:7px;padding:9px 13px}#travel-hint small{font-size:4px}#room{left:6%;right:6%;width:auto;top:auto;bottom:59px;translate:0;max-height:49svh;border-width:3px}.room-ceiling{flex-basis:74px;border-bottom-width:3px}.room-ceiling>span{font-size:6px;padding:5px}.room-body{padding:16px 18px 12px}.room-body h2{font-size:17px}.room-body .room-intro{font-size:12px;margin-bottom:13px}.content-entry{padding:13px 0}.content-entry h3{font-size:14px}.room-continue{font-size:7px;padding:12px 15px}#trail-map{width:min(330px,90vw);right:5%;top:65px;padding:18px;border-width:3px}#trail-map h2{font-size:16px}#map-art{height:65px}#map-links button{font-size:9px;padding:12px 5px}dialog{padding:22px}dialog h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

@media(max-width:700px){#about{width:68vw}#about h2{font-size:21px}#about>p:not(.chapter-label):not(.about-hint){font-size:12px}.profile-bits{font-size:5px;gap:10px}.title-instructions{max-width:190px}}
/* Keep game chrome readable at native browser size, including small displays. */
.title-ticket{font-size:9px}.identity small{font-size:7px}.chapter-label{font-size:9px}.profile-bits{font-size:9px}.about-hint{font-size:8px}.room-body .room-eyebrow{font-size:8px}.entry-date{font-size:8px}.entry-tag{font-size:8px}.room-ceiling>span{font-size:8px}.room-continue{font-size:9px}.chapter-chip{font-size:9px}#route-hud{width:220px}#route-hud p{font-size:7px}#trail-map>p{font-size:8px}.title-instructions{font-size:9px}.title-instructions small{font-size:7px}#travel-hint small{font-size:7px}
@media(max-width:700px){.title-ticket{font-size:8px}.title-instructions{font-size:8px;max-width:230px}.title-instructions small{font-size:6px}#route-hud{width:165px}.chapter-chip{font-size:7px}#route-hud p{font-size:6px}.room-ceiling>span{font-size:7px}.room-continue{font-size:8px}.profile-bits{font-size:6px}.about-hint{font-size:6px}.chapter-label,#about .chapter-label{font-size:6px}#travel-hint small{font-size:5px}}

/* The lens breathes underneath a stationary reading layer. */
#about{top:58%;width:min(580px,58vw);will-change:opacity;transform:none}
#about .chapter-label{font-size:8px;margin:0 0 10px}
#about h2{font-size:clamp(23px,2.6vw,36px);margin:10px 0 14px;line-height:1.2}
#about>p:not(.chapter-label):not(.about-hint){font-size:15px;line-height:1.55;max-width:500px}
#about .profile-bits{font-size:8px;margin:16px 0 18px;gap:22px}
#about .game-button.small{padding:12px 18px;font-size:8px}
#about .about-hint{margin:13px 0 0;font-size:7px}
@media(max-width:700px){
 #about{top:54.5%;width:78vw;max-width:420px}
 #about .chapter-label{font-size:6px;letter-spacing:.2px;margin-bottom:10px}
 #about h2{font-size:22px;margin:10px 0 12px}
 #about>p:not(.chapter-label):not(.about-hint){font-size:13px;line-height:1.55}
 #about .profile-bits{font-size:6px;gap:12px;margin:14px 0 17px}
 #about .game-button.small{font-size:7px;padding:11px 12px}
 #about .about-hint{font-size:6px;margin-top:12px}
}
@media(max-height:650px) and (min-width:701px){
 #about{top:59%;width:55vw}
 #about .chapter-label{font-size:7px;margin-bottom:5px}
 #about h2{font-size:24px;margin:6px 0 8px}
 #about>p:not(.chapter-label):not(.about-hint){font-size:13px;line-height:1.4}
 #about .profile-bits{margin:10px 0 12px;font-size:7px}
 #about .game-button.small{padding:9px 15px;font-size:7px}
 #about .about-hint{margin-top:10px;font-size:6px}
}

@media(max-width:700px) and (max-height:660px){
 #about{top:52.5%;width:80vw}
 #about .chapter-label{font-size:5px;margin-bottom:6px}
 #about h2{font-size:20px;margin:6px 0 8px}
 #about>p:not(.chapter-label):not(.about-hint){font-size:12px;line-height:1.4}
 #about .profile-bits{font-size:5px;margin:10px 0 12px}
 #about .game-button.small{padding:9px 11px;font-size:6px}
 #about .about-hint{font-size:5px;margin-top:9px}
}
@media(max-height:450px) and (min-width:701px){
 #about{top:56%;width:61vw}
 #about .chapter-label{font-size:6px;margin:0 0 5px}
 #about h2{font-size:22px;margin:5px 0 6px}
 #about>p:not(.chapter-label):not(.about-hint){font-size:12px;line-height:1.35}
 #about .profile-bits{font-size:6px;margin:6px 0}
 #about .game-button.small{padding:6px 12px;font-size:6px}
 #about .about-hint{display:none}
}

/* Panels sit opposite their clearing, with materials matched to each stop. */
@media(min-width:701px){#room[data-side=left]{left:4%;right:auto}}
#room[data-theme=chalet]{background:#eee0bf;border-color:#614c3b}.room-ceiling{background:#213e4d}
#room[data-theme=chalet] .room-ceiling{border-bottom-color:#865940}
#room[data-theme=igloo]{background:#e0eff0;border-color:#527489;box-shadow:6px 7px 0 #34586766}
#room[data-theme=igloo] .room-ceiling{border-bottom-color:#8db7c4}
#room[data-theme=gondola]{background:#f1e4c8;border-color:#ad674a}
#room[data-theme=gondola] .room-ceiling{border-bottom-color:#efc56f}
#room[data-theme=caravan]{background:#f3e5ce;border-color:#ad674a}
#room[data-theme=caravan] .room-ceiling{border-bottom-color:#c87855}

/* Quiet trail navigation: only a small chevron is painted; the hit area is 44px. */
.section-indicator{position:fixed;left:50%;translate:-50% 0;z-index:46;display:grid;place-items:center;width:44px;height:44px;padding:12px;border:0;background:none;box-shadow:none;color:#345867;opacity:.7;transition:opacity .18s,transform .18s}
.section-indicator svg{width:20px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:miter;filter:drop-shadow(0 1px 0 #f4f1db80)}
.section-indicator-up{top:max(10px,env(safe-area-inset-top));--nudge:-2px}
.section-indicator-down{bottom:max(9px,env(safe-area-inset-bottom));--nudge:2px}
.section-indicator:hover:not(:disabled),.section-indicator:focus-visible{opacity:1;filter:none;transform:translateY(var(--nudge))}
.section-indicator:focus-visible{outline:2px dashed currentColor;outline-offset:-5px}
body[data-theme=night] .section-indicator{color:#f4f1db;opacity:.8}
body[data-theme=night] .section-indicator svg{filter:drop-shadow(0 1px 0 #213e4d)}
@media(max-width:700px){.section-indicator-up{top:max(56px,calc(env(safe-area-inset-top) + 44px))}}
@media(min-width:701px) and (max-width:1000px){.section-indicator-up{top:88px}}
@media(max-width:700px){#route-hud{top:108px}}
