:root{color-scheme:dark;font-family:Georgia,'Times New Roman',serif;color:#fff5db;background:#153b38}*{box-sizing:border-box}body{margin:0;height:100svh;overflow:hidden}button{font:inherit;cursor:pointer}header{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:#103531;border-bottom:1px solid #e3be7040;position:relative;z-index:2}.brand{font-size:26px;letter-spacing:.025em}.edition{font-family:system-ui,sans-serif;font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-left:13px;color:#d3bf8d}.help{border:1px solid #a99b6c70;border-radius:50%;width:36px;height:36px;color:#f4deb0;background:transparent;font-size:20px}main{height:calc(100svh - 68px);position:relative;background:#153b38}.viewport{height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-color:#8eab78 #173e39;display:grid;align-items:center}.map{position:relative;width:min(100%,calc((100svh - 68px) * 1.5));margin:auto;isolation:isolate;box-shadow:0 20px 100px #061e1d90;flex-shrink:0}.map>img{width:100%;height:auto;display:block;user-select:none}.landmark{position:absolute;transform:translate(-50%,-50%);border:2px solid transparent;border-radius:45%;background:transparent;min-width:44px;min-height:44px;transition:background .2s,border-color .2s,box-shadow .2s}.landmark:hover,.landmark:focus-visible{border-color:#ffefb8;background:#fff5c411;box-shadow:0 0 0 5px #103c3930,0 0 25px #fff0a530;outline:none}.landmark:first-child:after{content:'';position:absolute;bottom:-8px;left:50%;width:12px;height:12px;border-radius:50%;background:#ffe19a;border:2px solid #345140;box-shadow:0 0 0 5px #ffe19a35}.map-tools{position:absolute;bottom:24px;right:26px;display:flex;border:1px solid #d6c58c70;border-radius:30px;overflow:hidden;background:#113b35e8;box-shadow:0 5px 20px #10282260}.map-tools button{height:48px;width:50px;border:0;color:#f8e4b3;background:transparent;font-family:system-ui;font-size:24px}.map-tools button+button{border-left:1px solid #d6c58c30}button:hover{filter:brightness(1.15)}button:focus-visible{outline:3px solid #ffe19a;outline-offset:3px}.hint{position:absolute;bottom:22px;left:26px;font:14px system-ui;letter-spacing:.04em;background:#113b35e8;padding:13px 20px;margin:0;border:1px solid #d6c58c60;border-radius:30px;color:#f8e4b3;pointer-events:none}dialog{padding:0;border:1px solid #ccb67890;border-radius:22px;background:#143d37;color:#fff0cb;width:min(480px,calc(100% - 32px));box-shadow:0 30px 120px #071c19aa;overflow:hidden}dialog::backdrop{background:#062521ad;backdrop-filter:blur(7px)}.close{position:absolute;right:14px;top:12px;z-index:2;width:40px;height:40px;border-radius:50%;background:#123830d9;border:1px solid #eed69c60;color:#fff2cc;font-size:28px}.scene-art{height:210px;background-image:url('assets/memory-map.png');background-repeat:no-repeat;background-size:650%;border-bottom:1px solid #e2c78250}.dialog-copy{padding:30px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font:12px system-ui;color:#dbbf7a;margin:0 0 12px}h1{font-weight:normal;font-size:32px;line-height:1.12;margin:0 0 16px}.dialog-copy>p:not(.eyebrow){font:16px/1.6 system-ui;color:#d4dfce;margin:0 0 22px}.return{background:#efcf86;color:#173c32;border:0;border-radius:25px;padding:13px 24px;font:600 16px system-ui}#instructions .dialog-copy{padding-top:48px}@media(max-width:650px){header{height:58px;padding:0 18px}.brand{font-size:23px}.edition{font-size:11px;margin-left:8px}main{height:calc(100svh - 58px)}.map{width:100%;min-width:680px}.viewport{align-items:start;padding-bottom:85px}.map-tools{bottom:18px;right:16px}.hint{left:16px;bottom:18px;padding:14px;font-size:12px}.map-tools button{width:44px;height:44px}.dialog-copy{padding:25px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
:where(.trail){position:absolute;inset:0;pointer-events:none}.footstep{position:absolute;width:9px;height:12px;opacity:.65}.footstep:before,.footstep:after{content:'';position:absolute;width:3px;height:6px;border-radius:50%;background:#72572b;box-shadow:0 0 2px #ffe4a8}.footstep:before{left:0;top:0}.footstep:after{right:0;bottom:0}
.map-section-nav{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:6px;padding:5px;background:#113b35eb;border:1px solid #d6c58c70;border-radius:24px;white-space:nowrap}.map-section-nav button{border:0;background:transparent;color:#f8e4b3;min-height:40px;padding:8px 13px;border-radius:20px;font:13px system-ui}.map-section-nav button[aria-pressed=true]{background:#efcf86;color:#173c32}.map-section-label{font:12px system-ui;color:#dfcea4;padding:0 7px}.landmark[hidden],.trail[hidden]{display:none}.map.section-enter{animation:queens-pan .45s ease-out}@keyframes queens-pan{from{opacity:.45;transform:translateX(7%)}to{opacity:1;transform:translateX(0)}}@media(max-width:650px){.map-section-nav{top:8px;gap:2px;padding:3px}.map-section-nav button{font-size:11px;padding:7px 10px;min-height:36px}.map-section-label{font-size:10px;padding:0 4px}}@media(prefers-reduced-motion:reduce){.map.section-enter{animation:none}}
.map-section-nav .map-step{min-width:34px;padding:7px}.map-section-nav button:disabled{opacity:.3;cursor:default}.map-section-nav button:focus-visible{outline:2px solid #ffe4a0;outline-offset:2px}@media(max-width:650px){.map-section-nav .map-step{padding:5px;min-width:28px}.map-section-nav .map-tab{min-width:31px;padding:6px}.map-section-nav{max-width:calc(100% - 14px)}}
/* Map III: smaller artwork, unchanged generous invisible landmark hit areas. */
#map[data-section="3"] .hat-stop svg{width:60%;height:60%}
#map[data-section="3"] .store-stop svg{width:62.25%;height:62.25%}
