/* Cinema layer: the photograph is the page. Chrome wakes on movement and sleeps again. */
@font-face{font-family:Newsreader;src:url('/assets/fonts/newsreader-latin-opsz-normal.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:Newsreader;src:url('/assets/fonts/newsreader-latin-opsz-italic.woff2') format('woff2');font-weight:200 800;font-style:italic;font-display:swap}
:root{--ink:#0b2023;--paper:#f4f4e9;--soft:#b9c9c4;--focus:#dce9cf;--base:124px;--serif:Newsreader,Georgia,serif;--label:Inter,Arial,sans-serif;
 /* one motion system: three speeds, one ease */
 --ease:cubic-bezier(.2,.7,.2,1);--ease-io:cubic-bezier(.7,0,.2,1);--t1:.25s;--t2:.6s;--t3:1.2s;
 /* readable label system: never below 12px over photographs */
 --lab-size:11px;--lab-track:.1em}
html,body{height:100%;overflow:hidden}body{background:#07191c;color:var(--paper)}button{color:inherit}[hidden]{display:none!important}
.icon{filter:invert(1)}
.series,.header-button,.menu button,.scene-actions button,.chapter-meta,#scene-count,.eyebrow,.hint,#restore-interface,#watch-stop,.chapter-label,.mm-label,.mm-card,.jcard-meta{font-family:var(--label);text-transform:uppercase;letter-spacing:var(--lab-track);font-weight:500}
/* opening curtain */
.curtain{position:fixed;inset:0;z-index:100;background:#050f11;display:grid;place-items:center;pointer-events:none;animation:curtain 1.2s var(--ease) forwards}.curtain span{font-family:var(--serif);font-size:clamp(24px,3vw,36px);letter-spacing:-.02em;animation:curtain-name 1.2s ease forwards}
@keyframes curtain{0%,45%{opacity:1}100%{opacity:0;visibility:hidden}}@keyframes curtain-name{0%{opacity:0;transform:translateY(8px)}30%,45%{opacity:1;transform:none}100%{opacity:0}}
/* header: name always, the rest on wake. The band behind it is real shade, not a hint of one. */
.site-head{position:fixed;z-index:30;top:0;left:0;right:0;height:84px;padding:0 40px 12px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;transition:opacity var(--t2)}
/* the band behind the header only exists while the header has something to say; at rest only the name keeps a small shade */
.site-head::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#050f11e0,#050f1188 55%,transparent);opacity:0;transition:opacity var(--t2)}.awake .site-head::before{opacity:1}
.site-head::after{content:'';position:absolute;inset:0 0 auto 0;height:128px;z-index:-1;background:linear-gradient(#050f11b0,#050f11a0 14px,#050f1182 34px,#050f1158 56px,#050f1034 80px,#050f1016 102px,transparent);pointer-events:none}
.at-home .site-head::before,.at-home .site-head::after{display:none}.site-head>*{pointer-events:auto}
.identity{text-decoration:none;font-family:var(--serif);font-size:17px;letter-spacing:-.01em;opacity:.95;transition:opacity var(--t2)}.head-right{display:flex;gap:28px;align-items:center;opacity:0;transition:opacity var(--t2)}
.series{font-size:var(--lab-size);color:var(--soft)}.header-button{border:0;background:none;font-size:var(--lab-size);min-height:44px;padding:0 4px}.header-button:hover,.menu button:hover,.scene-actions button:hover{color:#fff}
.awake .head-right,.awake .identity{opacity:1}
/* menu */
.menu{position:fixed;z-index:40;top:66px;right:32px;min-width:230px;padding:10px 0;background:#07191c;border:1px solid #ffffff24;display:flex;flex-direction:column;animation:rise-in var(--t1) var(--ease)}.menu[hidden]{display:none}.menu hr{border:0;border-top:1px solid #ffffff1c;margin:6px 18px}
.menu button{background:none;border:0;text-align:left;font-size:var(--lab-size);min-height:44px;padding:0 18px;display:flex;justify-content:space-between;align-items:center;color:#e3ebe7}#saved-count{font-size:11px;color:var(--soft)}
.menu #map-toggle[aria-pressed=true] .mt::after{content:"On";font-size:11px;color:var(--soft)}
@keyframes rise-in{from{opacity:0;transform:translateY(-6px)}}
/* scene */
main{position:fixed;inset:0}.scene{position:absolute;inset:0;background:#07191c;overflow:hidden;touch-action:pan-y}
.image-plane{position:absolute;inset:0;transform:translate3d(calc(var(--px,0)*-14px),calc(var(--py,0)*-9px),0) scale(1.03);transition:transform .9s var(--ease)}#push{position:absolute;inset:0}
#push>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;will-change:transform,clip-path}.scene.is-fit #push>img{object-fit:contain}
#scene-outgoing{z-index:0;pointer-events:none}#scene-image{z-index:1}#push>canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;transition:opacity .2s linear}
.scene::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 44% 30% at 14% 78%,#050f11dc,#050f11c4 22%,#050f1196 46%,#050f1160 66%,#050f112a 84%,transparent),radial-gradient(ellipse 25% 24% at 93% 88%,#050f11c8,#050f11a0 40%,#050f1160 70%,transparent),linear-gradient(180deg,#05131830,transparent 18%)}
/* shade follows the words: at rest only the title has a small pool of shade; the fuller shade arrives with the controls */
/* the title carries its own pool of shade, so it follows the title at any size and position */
.caption h1{position:relative;width:fit-content}.caption h1::before{content:'';position:absolute;z-index:-1;inset:-1.5em -3em -1.2em -1.8em;background:radial-gradient(closest-side,#050f11c8,#050f1170 55%,transparent);pointer-events:none}
.scene[data-tone=bright] .caption h1::before{background:radial-gradient(closest-side,#050f11ee,#050f11a0 55%,transparent)}
.scene::after{z-index:2;opacity:0;transition:opacity .7s var(--ease)}body.awake .scene::after,.scene:has(.caption.stage)::after,.carded .scene::after{opacity:1}
#scene-ambient{position:absolute;inset:-6%;width:112%;height:112%;object-fit:cover;filter:blur(40px) brightness(.3) saturate(1.15);opacity:0;transition:opacity .8s;pointer-events:none}.scene.is-fit #scene-ambient{opacity:1}
.scene[data-tone=bright]::after{background:radial-gradient(ellipse 46% 32% at 14% 78%,#050f11d8,#050f11c4 22%,#050f119c 46%,#050f1160 66%,#050f1228 84%,transparent),radial-gradient(ellipse 25% 24% at 93% 88%,#050f11e0,#050f11c0 40%,#050f1190 70%,transparent),linear-gradient(180deg,#05131870,transparent 18%)}
body[data-top=bright] .site-head::after{background:linear-gradient(#050f11f0,#050f11e0 14px,#050f11bc 34px,#050f1190 56px,#050f1160 80px,#050f1030 104px,transparent)}
body[data-top=bright] .site-head::before{background:linear-gradient(#050f11f2,#050f11b0 60%,transparent)}
/* caption: arrives large, settles small, hides when idle. Never catches clicks meant for the photograph. */
.caption{position:absolute;z-index:5;left:40px;right:40px;bottom:var(--base);max-width:780px;pointer-events:none;transition:opacity var(--t2)}
.eyebrow{font-size:var(--lab-size);color:#f4f7f1;opacity:0;transition:opacity var(--t2);text-shadow:0 0 10px #000,0 1px 3px #000c}.stage .eyebrow,.awake .eyebrow{opacity:1}
.caption h1{margin:10px 0 0;font-family:var(--serif);font-weight:380;line-height:.96;letter-spacing:-.025em;font-size:clamp(24px,2.1vw,32px);text-wrap:balance;max-width:14em;transition:font-size 1.5s var(--ease);text-shadow:0 2px 28px #0007}
.caption.stage h1{font-size:clamp(40px,5vw,76px);font-weight:340}.caption.stage.long h1{font-size:clamp(34px,4vw,60px)}
.holding .caption,.holding #markers,.holding .minimap,.holding .scene-actions,.holding .scene-nav,.holding .chapter-footer,.holding .head-right{opacity:0!important;transition:none!important}
.caption h1 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}.caption h1 .w>span{display:inline-block}.caption.no-t h1{transition:none}
.caption.reveal h1 .w>span{animation:word 1.15s var(--ease) both;animation-delay:calc(var(--d,0s) + var(--i)*85ms)}
@keyframes word{from{transform:translateY(112%)}}
.caption p,.scene-actions{opacity:0;transition:opacity var(--t2)}
.caption p{font-family:var(--serif);font-size:15px;line-height:1.5;max-width:34em;margin:10px 0 0;color:#f2f4ec;text-shadow:0 1px 12px #000b}
.caption p em{font-style:italic;color:#e8eee4}
/* note words soften in, one after another */
.caption.reveal p .nw{display:inline-block;animation:nw 1s var(--ease) both;animation-delay:calc(var(--d,0s) + .45s + var(--i)*22ms)}
@keyframes nw{from{opacity:0;filter:blur(6px);transform:translateY(.25em)}}
.stage #photo-note,.awake .caption p,.awake .scene-actions{opacity:1}
.hint{font-size:var(--lab-size)!important;color:#e3ebe7!important;opacity:0;display:inline-block;background:#050f11c0;padding:5px 9px;margin-top:12px!important}.hint.on{opacity:1;transition:opacity 1.2s 2.2s}.awake .hint{opacity:0!important;transition:opacity .3s}
.scene-actions{display:flex;flex-wrap:wrap;align-items:center;gap:0 26px;margin-top:12px;width:max-content;max-width:100%}.scene-actions button{border:0;background:none;font-size:var(--lab-size);min-height:44px;padding:0;display:flex;gap:10px;align-items:center;pointer-events:none;text-shadow:0 1px 8px #000a}.awake .scene-actions button{pointer-events:auto}.scene-actions .author-link{font-family:var(--serif);font-style:italic;text-transform:none;letter-spacing:0;font-size:15px;font-weight:400}.author-link[hidden]{display:none}
.scene-actions .info{width:30px;height:30px;min-height:30px;justify-content:center;border:1px solid #ffffff80;border-radius:50%;font-family:var(--serif);font-style:italic;text-transform:none;letter-spacing:0;font-size:16px;margin:7px 0}
.detail-links{display:none}
.scene-nav{position:absolute;z-index:5;right:40px;bottom:calc(var(--base) + 4px);display:flex;align-items:center;gap:16px;opacity:0;pointer-events:none;transition:opacity var(--t2)}.awake .scene-nav{opacity:1;pointer-events:auto}
.scene-nav button{width:44px;height:44px;display:grid;place-items:center;background:#050f1133;border:1px solid #ffffff70;border-radius:50%;transition:background .2s}.scene-nav button:hover{background:#ffffff26}.scene-nav button:disabled{opacity:.25}#scene-count{font-size:var(--lab-size);min-width:52px;text-align:center;text-shadow:0 1px 8px #000a}
/* journey card: shown when a journey is entered from home */
.jcard{position:absolute;z-index:7;left:40px;right:40px;bottom:var(--base);max-width:900px;pointer-events:none;opacity:0;transition:opacity var(--t2)}
.carded .scene::after{background:radial-gradient(ellipse 70% 62% at 20% 80%,#050f11e6,transparent 72%),linear-gradient(180deg,#05131860,transparent 25%,transparent 35%,#06191bf2 85%)}.carded .jcard{opacity:1}.carded .caption,.carded .scene-nav,.carded #markers{opacity:0}
.jcard-meta{font-size:var(--lab-size);color:#f4f7f1;text-shadow:0 0 10px #000,0 1px 3px #000c}
.jcard h2{font-family:var(--serif);font-weight:340;font-style:italic;font-size:clamp(34px,4.4vw,66px);letter-spacing:-.035em;line-height:.95;margin:0 0 14px;text-shadow:0 2px 30px #0008}.jcard-meta{display:block;margin-bottom:12px}
.jcard p{font-family:var(--serif);font-size:16px;line-height:1.45;max-width:30em;margin:0;color:#f2f4ec;text-shadow:0 1px 12px #000b}
.carded .jcard h2,.carded .jcard p,.carded .jcard-meta{animation:jc 1.1s var(--ease) both}.carded .jcard p{animation-delay:.25s}.carded .jcard-meta{animation-delay:.1s}
@keyframes jc{from{opacity:0;transform:translateY(18px);filter:blur(6px)}}
/* markers: arrive a few seconds after the photograph */
#markers{position:absolute;inset:0;overflow:hidden;z-index:3;pointer-events:none}
.marker{position:absolute;width:44px;height:44px;transform:translate(-50%,-50%);padding:0;border:0;background:none;font:500 11px var(--label);pointer-events:none;display:grid;place-items:center;opacity:0;transition:opacity 1.4s var(--ease)}.details-on .marker{opacity:1;pointer-events:auto}.details-on .marker.clash{opacity:.3}.details-on .marker.clash:hover,.details-on .marker.clash:focus-visible{opacity:1}.marker:focus-visible{opacity:1;outline:none}.marker:focus-visible::before{box-shadow:0 0 0 3px #dce9cf}.marker:nth-child(2){transition-delay:.25s}.marker:nth-child(3){transition-delay:.5s}.marker:nth-child(4){transition-delay:.75s}.marker:nth-child(n+5){transition-delay:1s}.marker::before{content:"";position:absolute;inset:6px;border:1px solid #ffffffc0;background:#102727a0;border-radius:50%;z-index:-1;box-shadow:0 0 0 5px #e4efeb16;animation:pulse 2.8s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 10px #e4efeb00}}
.marker:hover,.marker[aria-expanded=true]{color:#102323}.marker:hover::before,.marker[aria-expanded=true]::before{background:#f4f4e9}.marker span{position:absolute;left:calc(100% + 6px);top:50%;transform:translateY(-50%);width:max-content;max-width:200px;background:#07191c;padding:8px 11px;color:#fff;font:500 12px var(--label);opacity:0;pointer-events:none;transition:opacity .2s}.marker:hover span,.marker:focus-visible span{opacity:1}
/* discovery panel */
.discovery{position:absolute;z-index:8;top:88px;right:32px;width:330px;max-height:calc(100% - 114px);overflow:auto;background:#f0f1e6;color:#122729;box-shadow:0 15px 55px #0005;animation:rise-in var(--t1) var(--ease)}
.detail-top{padding:15px 18px;display:flex;align-items:center;justify-content:space-between}.detail-top .eyebrow{color:#41544d;opacity:1;max-width:250px;line-height:1.6;text-shadow:none}.detail-top button{background:none;border:0;width:44px;height:44px;display:grid;place-items:center;margin:-10px -10px -10px 0}.detail-top .icon{filter:none;width:17px;height:17px}
.detail-crop{height:180px;background-color:#cad4d0;background-repeat:no-repeat}.detail-crop[hidden]{display:none}.detail-copy{padding:19px 21px 23px}.detail-copy h2{font-family:var(--serif);font-size:22px;line-height:1.15;font-weight:400;letter-spacing:-.02em;margin:0 0 12px}.detail-copy p{font-family:var(--serif);font-size:15px;line-height:1.55;margin:0 0 18px;color:#2f433d}.detail-copy button{display:flex;gap:28px;align-items:center;color:#152e2e;background:none;border:0;padding:0;font:500 12px var(--label);letter-spacing:.06em;min-height:40px}.detail-copy button:hover{text-decoration:underline}
/* filmstrip: only when the pointer goes to the bottom edge (or on touch wake) */
.chapter-footer{position:fixed;z-index:20;left:0;right:0;bottom:0;height:112px;padding:0 40px 16px;display:flex;gap:32px;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity .5s;background:linear-gradient(transparent,#050f11e0 60%)}.rail-on .chapter-footer{opacity:1;pointer-events:auto}
.chapter-label{display:flex;flex-direction:column;gap:6px;flex-shrink:0;width:120px;font-size:var(--lab-size);padding-bottom:22px}.chapter-label small{display:none}
.chapter-rail{display:grid;grid-template-columns:repeat(var(--chapter-count,8),minmax(0,1fr));gap:10px;flex:1;min-width:0;max-width:1100px}
.chapter{background:none;padding:0;border:0;min-width:0;text-align:left;min-height:44px}.chapter-thumb{height:46px;overflow:hidden;position:relative;background:#152f32}.chapter img{width:100%;height:100%;object-fit:cover;opacity:.55;transition:opacity .25s}.chapter img[data-whole=true]{object-fit:contain}.chapter:hover img,.chapter[aria-current=true] img{opacity:1}.chapter[aria-current=true] .chapter-thumb::after{content:"";position:absolute;inset:0;border:1px solid #e6ebd1}
.chapter-meta{margin-top:7px;display:flex;gap:6px;align-items:center;white-space:nowrap;overflow:hidden;min-width:0;font-size:11px;letter-spacing:.06em}.chapter-meta b{font-weight:500;color:#c3d3cc}.chapter-meta span{color:#d5e1dc;overflow:hidden;text-overflow:ellipsis}.chapter[aria-current=true] .chapter-meta span{color:#fff}
/* states */
.load-status{position:fixed;top:88px;left:50%;transform:translateX(-50%);z-index:50;max-width:calc(100vw - 40px);background:#07191c;color:var(--paper);padding:11px 18px;font-size:13px;line-height:1.6;border:1px solid #ffffff33}.load-status button{background:none;color:inherit;border:0;text-decoration:underline;padding:10px 0;margin-left:15px;min-height:44px}
#restore-interface,#watch-stop{position:fixed;right:24px;top:20px;z-index:60;background:#07191c;border:1px solid #ffffff55;color:var(--paper);padding:0 16px;min-height:44px;font-size:var(--lab-size);opacity:0;transition:opacity .5s}.awake #restore-interface,.awake #watch-stop,#restore-interface:focus-visible,#watch-stop:focus-visible{opacity:1}
.watching #markers,.watching .minimap,.clean-view .minimap,.clean-view .site-head,.clean-view .chapter-footer,.clean-view .caption,.clean-view .scene-nav,.clean-view #markers,.clean-view .discovery,.clean-view .scene::after,.watching .site-head,.watching .chapter-footer,.watching .scene-nav,.watching .scene-actions,.watching #photo-note,.watching .eyebrow{opacity:0!important;pointer-events:none!important}
.watching .site-head *,.clean-view .site-head *,.watching .scene-actions *,.watching .marker,.clean-view .marker{pointer-events:none!important}
.clean-view .image-plane,.watching .image-plane{transform:none}.clean-view #scene-image{object-fit:contain!important}
#watch-bar{position:fixed;left:0;bottom:0;height:2px;width:100%;background:#e6ebd1;transform-origin:left;z-index:60;animation:watch var(--watch,7s) linear forwards}@keyframes watch{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* end card */
.ending{padding:35px;border:1px solid #adc5b344;background:#0b2023;color:var(--paper);width:480px;max-width:calc(100vw - 36px)}.ending::backdrop{background:#050f12cc}.ending h2{font-family:var(--serif);font-weight:380;font-style:italic;font-size:30px;letter-spacing:-.03em;margin:20px 0}.ending p{font-family:var(--serif);font-size:15px;color:#d9e3dc;line-height:1.55;max-width:360px;margin-bottom:22px}.ending>div{display:flex;flex-direction:column;align-items:start;gap:8px}.ending>div button{border:0;background:none;color:var(--paper);padding:11px 0;min-height:44px;font:500 13px var(--label);letter-spacing:.06em}.ending>div button span{margin-left:25px}.ending #ending-close,#about-close{position:absolute;right:12px;top:12px;width:44px;height:44px;display:grid;place-items:center;border:0;background:none}.ending #ending-close .icon{width:18px;height:18px}.ending .eyebrow{opacity:1;text-shadow:none}
/* minimap: grows in size (not scale) so the map and its words stay crisp */
.minimap{position:absolute;z-index:6;right:40px;bottom:calc(var(--base) + 76px);width:210px;height:140px;opacity:0;transition:opacity .9s var(--ease),width var(--t2) var(--ease),height var(--t2) var(--ease);pointer-events:none}
.minimap::before{content:'';position:absolute;inset:-30px;background:radial-gradient(ellipse at center,#051318c0,transparent 70%);opacity:0;transition:opacity .5s;pointer-events:none}
.details-on .minimap{opacity:1;pointer-events:auto}.minimap .mapsvg,.minimap .mm-dot{transition:opacity var(--t2)}.details-on .minimap:not(:hover):not(.open):not(:focus-within) .mapsvg,.details-on .minimap:not(:hover):not(.open):not(:focus-within) .mm-dot{opacity:.6}.map-pinned .minimap .mapsvg,.map-pinned .minimap .mm-dot{opacity:1!important}.details-on .minimap.none{opacity:0;pointer-events:none}
.map-pinned.details-on .minimap{opacity:1;width:300px;height:200px}.map-pinned .minimap::before,.minimap:hover::before,.minimap.open::before{opacity:1}
.details-on .minimap:hover,.details-on .minimap:focus-within,.details-on .minimap.open{opacity:1;width:min(440px,calc(100vw - 44px));height:min(290px,calc((100vw - 44px)*.66))}
.minimap .mapsvg{-webkit-mask-image:radial-gradient(closest-side,#000 62%,transparent);mask-image:radial-gradient(closest-side,#000 62%,transparent)}
.mm-label{position:absolute;right:0;top:calc(100% + 8px);font-size:11px;white-space:nowrap;color:#eafff9;pointer-events:none;background:#050f11e6;padding:4px 8px}.mm-label:empty{display:none}
.mm-card{position:absolute;z-index:4;width:150px;transform:translate(-50%,calc(-100% - 14px));background:#07191c;border:1px solid #ffffff2e;pointer-events:none;opacity:0;transition:opacity .15s;letter-spacing:.06em}.mm-card.on{opacity:1}.mm-card img{width:100%;height:92px;object-fit:cover;display:block}.mm-card b,.mm-card small{display:block;padding:6px 8px 0;font-size:11px;font-weight:500;line-height:1.35;color:#eafff9;text-transform:none;letter-spacing:0;font-family:var(--serif)}.mm-card small{padding:2px 8px 8px;color:#a9cfc5;font:500 10px var(--label);letter-spacing:.06em;text-transform:uppercase}
/* shared map drawing (home map and minimap) */
.mapsvg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.mapsvg .land{fill:#bdf3e414;stroke:#c9fff0;stroke-opacity:.6;stroke-width:.8px;vector-effect:non-scaling-stroke;fill-rule:evenodd}
.mapsvg .lakes{fill:#050f11;stroke:#c9fff0;stroke-opacity:.4;stroke-width:.6px;vector-effect:non-scaling-stroke}
.mapsvg .borders{fill:none;stroke:#c9fff0;stroke-opacity:.3;stroke-width:.7px;vector-effect:non-scaling-stroke}
.mapsvg .states{fill:none;stroke:#c9fff0;stroke-opacity:.11;stroke-width:.6px;vector-effect:non-scaling-stroke}
.mapsvg .route{fill:none;stroke:#f2d9a6;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:.9;stroke-dasharray:1;stroke-dashoffset:1}
.mapsvg.draw .route{animation:route 2.4s var(--ease) forwards;animation-delay:calc(.3s + var(--i,0)*.35s)}
@keyframes route{to{stroke-dashoffset:0}}
.mm-dot,.mdot{position:absolute;transform:translate(-50%,-50%);padding:0;border:0;background:none;border-radius:50%}.mm-dot{width:20px;height:20px}.mm-dot[hidden]{display:none}.mm-dot::before{content:'';position:absolute;left:50%;top:50%;width:5px;height:5px;margin:-2.5px;border-radius:50%;background:#d9fff5;box-shadow:0 0 5px 1px #8fe8d0}
.mm-dot.here::before{width:8px;height:8px;margin:-4px;background:#fff;box-shadow:0 0 8px 3px #b6fff0,0 0 18px 7px #6fd8c0aa;animation:glow 2.6s ease-in-out infinite}.mm-dot:hover::before,.mm-dot:focus-visible::before{background:#fff;box-shadow:0 0 8px 3px #b6fff0}
@keyframes glow{50%{box-shadow:0 0 5px 2px #b6fff0aa,0 0 12px 4px #6fd8c066}}
/* home → photograph: the open strip becomes the photograph */
::view-transition-group(hero){animation-duration:.95s;animation-timing-function:var(--ease-io)}
::view-transition-old(hero),::view-transition-new(hero){height:100%;object-fit:cover;overflow:clip}
::view-transition-old(root),::view-transition-new(root){animation-duration:.55s}
@media(max-width:850px){.caption,.scene-actions{max-width:100%}.site-head{padding:0 20px 8px;height:70px}.caption,.jcard{left:22px;right:22px;bottom:112px}.scene-nav{right:22px;bottom:116px}.chapter-footer{padding:0 0 12px;display:block;height:104px}.chapter-label{display:none}.chapter-rail{display:flex;overflow-x:auto;scrollbar-width:none;padding:0 22px;max-width:none;gap:10px}.chapter-rail::-webkit-scrollbar{display:none}.chapter{flex:0 0 92px}.menu{right:12px;left:12px}.discovery{right:16px;left:16px;top:74px;width:auto}.caption.stage h1{font-size:clamp(32px,9vw,44px)}.caption h1{max-width:100%;font-size:26px}.caption p{font-size:14px}.jcard p{font-size:14px}.jcard h2{font-size:34px}.series{display:none}
 .minimap{right:22px;top:80px;bottom:auto;width:150px;height:100px}.mm-label{top:calc(100% + 6px);bottom:auto}.mm-card{transform:translate(-50%,16px)}.scene-actions{gap:0 18px}
 .map-pinned.details-on .minimap{width:190px;height:126px}.details-on .minimap.open{width:calc(100vw - 44px);height:240px}}
@media(max-width:700px){.scene::after{opacity:1}.scene-nav{display:none}.scene::after,.scene.is-fit::after{background:linear-gradient(180deg,#05131850,transparent 20%,transparent 54%,#06191b66 66%,#06191bc0 80%,#06191be0)}.scene.scene[data-tone=bright]::after{background:linear-gradient(180deg,#05131860,transparent 20%,transparent 48%,#06191b8c 62%,#06191bd6 78%,#06191bea)}}
@media(max-height:560px) and (min-width:701px){.caption.stage h1{font-size:clamp(30px,5vw,48px)}.caption p{display:none}.stage #photo-note{display:none}:root{--base:96px}}
@media(prefers-reduced-motion:reduce){.curtain{display:none}.caption h1 .w>span,.caption p .nw,.carded .jcard *{animation:none!important}.image-plane{transform:none!important}.mm-dot.here::before{animation:none}.mapsvg .route{stroke-dashoffset:0;animation:none}}

/* travel moment */
.travel{position:fixed;inset:0;z-index:15;background:#050f11f4;opacity:0;pointer-events:none;transition:opacity .38s var(--ease)}.travel.on{opacity:1;pointer-events:auto}
.tv-stage{position:absolute;inset:7% 6% 22%}.tv-stage .mapsvg{-webkit-mask-image:radial-gradient(closest-side,#000 70%,transparent);mask-image:radial-gradient(closest-side,#000 70%,transparent)}
.tv-stage .mapsvg .land{fill:#bdf3e40f;stroke-opacity:.45}.tv-line{fill:none;stroke:#f2d9a6;stroke-width:2px;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;filter:drop-shadow(0 0 6px #f2d9a688)}
.tv-dot,.tv-mover{position:absolute;width:10px;height:10px;margin:-5px;border-radius:50%}.tv-from{background:#cfe9e2;box-shadow:0 0 8px 2px #8fe8d088}.tv-to{border:1px solid #f2d9a6;width:14px;height:14px;margin:-7px;transition:all .5s var(--ease)}
.arrived .tv-to{background:#fff;box-shadow:0 0 18px 8px #f2d9a6aa,0 0 50px 20px #f2d9a644;width:16px;height:16px;margin:-8px}
.tv-mover{background:#fff8e6;box-shadow:0 0 14px 5px #f2d9a6,0 0 40px 14px #f2d9a655}.arrived .tv-mover{opacity:0}
.tv-meta,.tv-name{position:absolute;left:0;right:0;text-align:center;margin:0;opacity:0;transform:translateY(10px);transition:opacity .6s var(--ease),transform .8s var(--ease)}.arrived .tv-meta,.arrived .tv-name{opacity:1;transform:none}
.tv-meta{bottom:calc(10% + 52px);font:500 11px var(--label);letter-spacing:.14em;text-transform:uppercase;color:#f2d9a6}
.tv-name{bottom:10%;font:italic 340 clamp(26px,2.8vw,40px)/1 var(--serif);letter-spacing:-.03em;color:#f6f7f1}
/* journey path on maps */
.mapsvg .jpath{fill:none;stroke:#f2d9a6;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;opacity:.95}
.mapsvg .jpath.draw{animation:route 2s var(--ease) .2s forwards}
.mm-dot span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:600 9px var(--label);color:#062224;opacity:0}.mm-dot::before{width:13px!important;height:13px!important;margin:-6.5px!important;background:#d9fff5}.mm-dot span{opacity:1}
.mm-dot.here::before{width:17px!important;height:17px!important;margin:-8.5px!important}
@media(prefers-reduced-motion:reduce){.mapsvg .jpath{stroke-dashoffset:0;animation:none}}

/* dark ink on near-white photographs */
.scene[data-ink=dark] .caption,.scene[data-ink=dark] .scene-nav,.scene[data-ink=dark] #scene-count{color:#0b2023}
.scene[data-ink=dark] .caption h1,.scene[data-ink=dark] .caption p,.scene[data-ink=dark] .eyebrow,.scene[data-ink=dark] .scene-actions button,.scene[data-ink=dark] #scene-count{text-shadow:none;color:#0b2023}
.scene[data-ink=dark] .caption p em{color:#23403b}
.scene[data-ink=dark] .caption h1::before{background:radial-gradient(closest-side,#f6f7f2b0,transparent)}
.scene[data-ink=dark]::after{background:radial-gradient(ellipse 70% 62% at 12% 92%,#f6f7f2d8,#f6f7f290 45%,transparent 72%),radial-gradient(ellipse 34% 30% at 96% 94%,#f6f7f2b0,transparent 70%)}
.scene[data-ink=dark] .scene-actions .info,.scene[data-ink=dark] .scene-nav button{border-color:#0b202399}.scene[data-ink=dark] .scene-nav .icon{filter:none}
.scene[data-ink=dark] .hint{background:#f6f7f2d0;color:#0b2023!important}
@media(max-width:700px){.scene.scene.scene[data-ink=dark]::after{background:linear-gradient(180deg,transparent 30%,#f6f7f2c0 55%,#f6f7f2ee 80%)}}
/* when the whole photograph is pale, the header and the corner map turn dark too */
body[data-topink=dark]:not(.at-home) .site-head::after,body[data-topink=dark]:not(.at-home) .site-head::before{background:linear-gradient(#f6f7f2c8,#f6f7f270 50%,transparent)}
body[data-topink=dark]:not(.at-home) .identity,body[data-topink=dark]:not(.at-home) .header-button,body[data-topink=dark]:not(.at-home) .series{color:#0b2023}
.scene[data-ink=dark] .scene-nav button{background:#f6f7f270}
.scene[data-ink=dark] .minimap .mapsvg .land{fill:#0b20230c;stroke:#0b2023;stroke-opacity:.5}.scene[data-ink=dark] .minimap .mapsvg .lakes{fill:#f6f7f2;stroke:#0b2023;stroke-opacity:.35}.scene[data-ink=dark] .minimap .mapsvg .states,.scene[data-ink=dark] .minimap .mapsvg .borders{stroke:#0b2023}
.scene[data-ink=dark] .minimap .mapsvg .jpath{stroke:#a0702a}.scene[data-ink=dark] .minimap .mapsvg{filter:none}.scene[data-ink=dark] .mm-dot::before{background:#0b2023;box-shadow:none}.scene[data-ink=dark] .mm-dot span{color:#f6f7f2}
.scene[data-ink=dark] .minimap::before{background:radial-gradient(ellipse at center,#f6f7f2d8,transparent 70%)}
.scene[data-ink=dark] #scene-count{background:#f6f7f2d8;padding:5px 8px}.scene[data-ink=dark] .scene-nav button{background:#f6f7f2c0}
