.mission-enabled #map-stops,.mission-enabled #position,.mission-enabled #position-ring,.mission-enabled #position-glow,.mission-enabled #travelled{display:none}.mission-enabled #trail{opacity:.14}.mission-enabled #trail-shadow{opacity:.12}.mission-enabled #chapter-photo{display:none}.mission-enabled .map-key{display:none}.mission-enabled .story{top:23%}.mission-enabled .compass{right:3%}.mission-enabled .travel-controls{right:3%}.mission-hud{position:absolute;right:9%;bottom:155px;width:290px;padding:16px 18px;background:#0d1812d9;border-left:2px solid #ff890a;backdrop-filter:blur(8px)}.mission-eyebrow{font-size:7px;letter-spacing:1.5px;color:#a6b29b}.mission-hud strong{font-size:21px;display:block;margin:9px 0 13px;font-weight:500}.mission-legend{display:flex;gap:20px;font-size:7px;letter-spacing:1.5px;color:#96a38b}.mission-legend span:before{content:'';width:12px;height:2px;display:inline-block;vertical-align:middle;margin-right:7px;background:var(--orange)}.mission-legend .radio-key:before{background:#d5e7aa}.mission-legend .air-key:before{background:#7dc5c1}#play-journey{font-size:10px;color:#dfe7cd;background:none;border:0;border-bottom:1px solid #aebc8f55;padding:8px 0;margin-top:10px}.scene-label{font-size:12px;letter-spacing:1.2px;fill:#c7d6b7}#access-bed{fill:none;stroke:#0e160e;stroke-width:16}#access-track{fill:none;stroke:#bdb58b;stroke-width:6;stroke-dasharray:2 8;stroke-linecap:round}#access-done{fill:none;stroke:#ff890a;stroke-width:4;stroke-linecap:round}.beam-aura{fill:none;stroke:#d4ef9d;stroke-width:28;opacity:.07}#radio-beam{fill:none;stroke:#d4ef9d;stroke-width:3;stroke-dasharray:10 6;animation:beam-flow 2s linear infinite}#flight-guide{fill:none;stroke:#7dc5c1;stroke-width:2;stroke-dasharray:5 11}#flight-done{fill:none;stroke:#7dc5c1;stroke-width:3}#survey-footprint path{stroke:#7dc5c1;stroke-width:1.5;fill:#7dc5c112}.mast-wave{fill:none;stroke:#cbe3a4;stroke-width:2.5}.mission-enabled #elevations{opacity:.6}.mission-enabled .header-note{font-size:8px}.scene-comparison{font-size:9px;color:#9ba78d;border-bottom:1px solid #758b6140;padding:7px 0;white-space:nowrap}.mission-enabled .map-shade{background:linear-gradient(90deg,#111912 0%,#111912ec 23%,#11191270 44%,transparent 65%),linear-gradient(0deg,#111912eb,transparent 20%)}@keyframes beam-flow{to{stroke-dashoffset:-64}}@media(max-width:900px){.mission-hud{right:10%;width:220px;bottom:153px}.mission-enabled .story{max-width:45vw}.scene-comparison{font-size:8px}.header-actions{gap:15px}}@media(max-width:600px){.mission-enabled .story{top:115px;max-width:86vw}.mission-hud{right:23%;bottom:158px;width:205px;padding:9px 12px}.mission-hud strong{font-size:16px;margin:6px 0 7px}.mission-eyebrow{font-size:6px;letter-spacing:1px}.mission-legend{font-size:6px;gap:14px}#play-journey{margin-top:4px;padding:6px 0;font-size:9px}.scene-comparison{position:fixed;right:6%;top:77px;font-size:8px}.mission-enabled .map-shade{background:linear-gradient(180deg,#111912f2 0%,#111912ce 32%,#11191210 65%,#111912ee 93%),linear-gradient(90deg,#111912b8,transparent 70%)}.mission-enabled .compass{display:none}}@media(max-width:600px) and (max-height:740px){.mission-enabled .story{top:105px}.mission-hud{bottom:128px;right:22%;padding:7px 10px}.mission-hud strong{font-size:14px;margin:3px 0}.mission-eyebrow,.mission-legend{display:none}.mission-enabled .story h1{font-size:36px}.mission-enabled #chapter-intro{font-size:14px!important}.mission-enabled #chapter-body{font-size:11px}.mission-enabled #chapter-actions{margin-top:13px}}@media(prefers-reduced-motion:reduce){#radio-beam{animation:none}}
@media(min-width:601px){.mission-hud{top:125px;bottom:auto;right:5%;width:245px}.mission-hud strong{font-size:19px}.mission-hud .mission-eyebrow{font-size:6px}}
@media(max-width:600px) and (max-height:620px){.mission-enabled #chapter-body{display:none}.mission-hud{bottom:120px}.mission-enabled .header-actions{gap:12px}}
#radio-beam{animation:beam-flow 7s linear infinite;opacity:.65}#radio-completed{fill:none;stroke:#ff890a;stroke-width:4;opacity:.65}.building-outlines path{stroke:#c0d4bd;stroke-width:2.3;fill:#9dbc9412}.building-outlines .site-lanes{fill:none;stroke:#a4bda27a;stroke-dasharray:8 6}.survey-boundary{fill:#7dc5c107;stroke:#7dc5c15c;stroke-width:1.5;stroke-dasharray:8 10}#landing-pad circle{fill:#112019;stroke:#91b6a2;stroke-width:2}#landing-pad path{fill:none;stroke:#91b6a2;stroke-width:3}#onward-guide{fill:none;stroke:#d6c995;stroke-width:2;stroke-dasharray:4 10}#onward-done{fill:none;stroke:#ff890a;stroke-width:3}@media(prefers-reduced-motion:reduce){#radio-beam{animation:none}.ambient-pulse{display:none}}
@media(min-width:601px){.mission-hud{top:112px;padding:10px 16px;width:228px}.mission-hud .mission-eyebrow{display:none}.mission-hud strong{font-size:18px;margin:4px 0 8px}.mission-hud .mission-legend{font-size:6px}#play-journey{margin-top:5px;padding:6px 0}}
@media(min-width:1000px){.mission-hud{top:auto;bottom:145px;left:7%;right:auto;width:min(440px,36vw);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px}.mission-hud .mission-legend{display:none}.mission-hud strong{font-size:16px;margin:0}.mission-hud #play-journey{margin:0;white-space:nowrap}}
/* Inline reading follows the same progress as the route; no timed text animations. */
.mission-enabled .journey-story{top:150px;bottom:218px;width:440px;max-width:39vw;contain:layout style}
.story-panel{position:absolute;inset:0 auto auto 0;width:100%;visibility:hidden;opacity:0;will-change:opacity,transform}
.story-panel h1,.story-panel h2{font-size:clamp(29px,3vw,46px);line-height:1.08;letter-spacing:-1.5px;font-weight:500;margin:23px 0}
.story-panel.story-opener h1,.story-panel.story-opener h2{font-size:clamp(38px,4.2vw,65px);letter-spacing:-2.5px}
.story-copy{font-size:16px;line-height:1.75;color:var(--muted)}.story-copy p{margin:0 0 16px}.story-copy .story-lead{font-size:19px;color:var(--text);line-height:1.55}.story-copy ul{padding-left:20px;margin:0 0 14px}.story-copy li::marker{color:var(--orange)}.story-copy .certs{gap:8px}.story-copy .certs a{font-size:11px;padding:9px}.story-copy .primary{margin:10px 20px 0 0}.story-copy .tool-list a{font-size:13px}
.story-visual{--visual-position:center;position:relative;width:100%;height:230px;margin-top:16px;overflow:visible;border-left:2px solid transparent;background:transparent;opacity:0;transform:translateY(12px) scale(.985);transition:opacity .65s ease,transform .65s ease}
.story-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#17241980,#ff890a1c 52%,#11191285),linear-gradient(0deg,#111912b8,transparent 60%);pointer-events:none;transition:opacity .45s ease}
.story-visual img{width:100%;height:100%;display:block;object-fit:cover;object-position:var(--visual-position);filter:none;transform:scale(1);transition:filter .45s ease,transform .65s ease}
.story-panel.is-active .story-visual{opacity:.42;transform:none;clip-path:none}
.story-panel.is-active .story-visual:hover{opacity:1}.story-panel.is-active .story-visual:hover:after{opacity:0}.story-panel.is-active .story-visual:hover img{object-fit:cover;filter:none;transform:scale(1)}
.story-reading{display:flex;align-items:center;gap:9px;margin-top:24px;color:#97a589;font-size:8px;letter-spacing:1.4px}.story-dot{width:5px;height:5px;border-radius:50%;background:var(--orange)}.reading-line{width:45px;height:1px;background:#92a38240}.reading-line i{display:block;height:1px;background:var(--orange);transform-origin:left}.route-waypoint circle{fill:#111912;stroke:#ffad4d;stroke-width:2}.route-waypoint text{fill:#e9ecd4;font-size:12px;letter-spacing:.2px;stroke:none}.waypoint-label-background{fill:#111912;fill-opacity:.9;stroke:#b2c19933;stroke-width:1}.route-waypoint.active circle{fill:#ff890a}.route-waypoint.active text{fill:#ffd49c}
.story-waypoint-number{display:inline-block;min-width:2.5ch}
.story-panel[data-subject=contact] .story-reading{display:none}
.direct-contact{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;margin-top:14px;padding-top:14px;border-top:1px solid #a7b89435}.contact-identity{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.contact-identity strong{color:var(--text);font-size:17px;font-weight:550}.contact-identity span{font-size:11px;line-height:1.5}.contact-identity .text-link{margin-top:5px}.telegram-contact{display:flex;align-items:center;gap:10px}.telegram-contact img{width:82px;height:82px;background:#fff;padding:4px;filter:saturate(.55)}.telegram-contact span{display:flex;flex-direction:column;font-size:9px;line-height:1.45;max-width:85px}.telegram-contact b{color:var(--orange);font-size:8px;letter-spacing:1.4px}
@media(min-width:1000px){.mission-enabled .mission-hud{bottom:150px}}
@media(max-width:999px) and (min-width:601px){.mission-enabled .journey-story{top:180px;max-width:47vw}.story-copy{font-size:14px;line-height:1.65}.story-panel h1,.story-panel h2{font-size:32px}.story-panel.story-opener h1,.story-panel.story-opener h2{font-size:43px}}
@media(max-width:600px){.mission-enabled .journey-story{top:118px;bottom:290px;width:86%;max-width:none}.story-panel{max-width:340px}.story-panel h1,.story-panel h2{font-size:29px;margin:18px 0;letter-spacing:-1px}.story-panel.story-opener h1,.story-panel.story-opener h2{font-size:40px;letter-spacing:-1.7px}.story-copy{font-size:14px;line-height:1.65}.story-copy .story-lead{font-size:17px}.story-copy p{margin-bottom:12px}.story-reading{margin-top:17px;font-size:7px}.mission-enabled .mission-hud{right:auto;left:7%;bottom:160px;width:205px}.route-waypoint text{font-size:15px}}
@media(max-width:600px){.direct-contact{gap:10px;margin-top:8px;padding-top:8px}.contact-identity strong{font-size:14px}.contact-identity span{font-size:9px}.telegram-contact img{width:64px;height:64px}.telegram-contact span{font-size:8px;max-width:70px}}
@media(max-height:740px){.mission-enabled .journey-story{top:128px}.story-panel h1,.story-panel h2{margin:17px 0;font-size:30px}.story-panel.story-opener h1,.story-panel.story-opener h2{font-size:43px}.story-copy{font-size:14px;line-height:1.6}.story-copy .story-lead{font-size:17px}.story-reading{margin-top:16px}}
@media(max-height:740px) and (max-width:600px){.mission-enabled .journey-story{top:110px}.story-panel h1,.story-panel h2{font-size:25px;margin:13px 0}.story-panel.story-opener h1,.story-panel.story-opener h2{font-size:34px}.story-copy{font-size:12px;line-height:1.6}.story-copy .story-lead{font-size:14px}.story-reading{margin-top:12px}.mission-enabled .mission-hud{bottom:130px;padding:6px 10px}}
@media(prefers-reduced-motion:reduce){.story-panel{will-change:auto}}

/* The tracker pulse remains alive while the scroll-controlled position is still. */
.tracking-reticle{pointer-events:none}.tracker-disc{fill:#101c12;fill-opacity:.66}.tracker-ring{fill:none;stroke:#ffab3c;stroke-width:2}.tracker-crosshair{fill:none;stroke:#ffe0a3;stroke-width:2}.tracker-brackets{fill:none;stroke:#ff890a;stroke-width:2.4}.tracker-centre{fill:#ffe8b4}.tracker-pulse{fill:none;stroke:#ff890a;stroke-width:2;transform-origin:0 0;animation:tracker-ping 2.8s ease-out infinite}.tracker-pulse-delayed{animation-delay:-1.4s}@keyframes tracker-ping{0%{transform:scale(.7);opacity:0}15%{opacity:.7}100%{transform:scale(1.85);opacity:0}}@media(prefers-reduced-motion:reduce){.tracker-pulse{animation:none;opacity:.2;transform:scale(1.35)}.tracker-pulse-delayed{display:none}}

.route-waypoint{transition:opacity .45s ease-out}@media(prefers-reduced-motion:reduce){.route-waypoint{transition:none}}

#relocation-track{fill:none;stroke:#bdb58b;stroke-width:3;stroke-dasharray:3 9;stroke-linecap:round;opacity:.22}

html{-webkit-text-size-adjust:100%}
/* A stable Safari viewport keeps browser chrome changes out of the route clock. */
@media(max-width:600px){
  .stage{height:100svh;min-height:0}
  header{height:72px;padding:env(safe-area-inset-top) 5% 0;align-items:center}
  .brand{gap:10px;font-size:11px;letter-spacing:1.7px}.brand img{width:32px;height:32px}.brand small{font-size:6px;letter-spacing:2.2px;margin-top:3px}
  .header-actions{gap:12px}.map-toggle,.contact-link{font-size:9px;padding:9px 0}.contact-link span{margin-left:6px}
  .scene-comparison{display:none}
  .mission-enabled .journey-story{top:92px;bottom:280px;width:88%;left:6%;max-width:none}
  .story-panel{max-width:100%}.story-panel h1,.story-panel h2{font-size:26px;margin:13px 0 12px;line-height:1.04}
  .story-panel.story-opener h1,.story-panel.story-opener h2{font-size:36px;line-height:1.02}
  .story-copy{font-size:13px;line-height:1.48}.story-copy .story-lead{font-size:15px;line-height:1.45}.story-copy p{margin-bottom:8px}
  .story-copy ul{padding-left:18px;margin:0 0 5px}.story-copy li{margin:0}
  .story-visual{height:92px;margin-top:10px}
  .story-reading{margin-top:10px}
  .mission-enabled .mission-hud{left:6%;right:auto;bottom:135px;width:195px;padding:8px 11px}
  .mission-hud strong{font-size:15px;margin:4px 0 5px}.mission-eyebrow{font-size:5px}.mission-legend{font-size:5px;gap:10px}#play-journey{font-size:8px;padding:5px 0}
  .route-status{left:6%;right:6%;bottom:108px}
  #route-menu{left:6%;right:6%;bottom:max(10px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px 12px}
  #route-menu button{font-size:9px;line-height:1.2;padding:10px 0;text-align:left}
  .travel-controls{right:4%;bottom:137px}
  .route-waypoint text{font-size:11px}
}

@media(max-width:600px) and (max-height:700px){
  .mission-enabled .journey-story{top:82px;bottom:245px}
  .story-panel h1,.story-panel h2{font-size:23px;margin:9px 0}.story-panel.story-opener h1,.story-panel.story-opener h2{font-size:31px}
  .story-copy{font-size:11px;line-height:1.42}.story-copy .story-lead{font-size:13px}.story-reading{margin-top:7px}
  .mission-enabled .mission-hud{bottom:116px}.route-status{bottom:93px}.travel-controls{bottom:118px}
}

/* Expand above the preview without moving the reading panel or route controls. */
.story-visual img{position:absolute;left:0;bottom:0;transition:width .7s cubic-bezier(.22,1,.36,1),height .7s cubic-bezier(.22,1,.36,1),filter .65s ease,transform .7s ease,opacity .35s ease}
.story-panel.is-active .story-visual:hover{overflow:visible;clip-path:none;z-index:2}
.story-panel.is-active .story-visual:hover img{width:var(--expanded-width,100%);max-width:none;height:var(--expanded-height,100%);object-fit:cover;background:transparent}
.journey-story:has(.story-panel.is-active .story-visual){z-index:3}
@media(prefers-reduced-motion:reduce){.story-visual img{transition:none}}

.contact-identity{min-width:0}.contact-email{font-size:11px;line-height:1.5;overflow-wrap:anywhere;color:var(--orange);margin-top:5px}.contact-email:hover{text-decoration:underline}.telegram-contact small{font-size:inherit;margin-top:4px}.telegram-contact:hover b,.telegram-contact:focus-visible b{color:var(--text)}
.story-panel[data-subject=contact] .story-copy>p:not(.story-lead){display:none}

/* Survey sheet: the map keeps the exact aspect ratio of its contour coverage. */
.overview-detail{padding:24px 5% 30px}.overview-detail h2{margin:0 0 20px;font-size:36px}
.survey-sheet{max-width:520px;margin:auto;border:1px solid #9ca98b;background:#172319;color:#bac6ac}
.survey-top,.survey-footer{display:flex;justify-content:space-between;padding:12px 14px;font-size:8px;letter-spacing:1.4px}
.survey-frame{position:relative;padding:22px 18px 22px 28px;border-block:1px solid #9ca98b66}
.survey-plot{position:relative;border:1px solid #9ca98b;aspect-ratio:22/32}
.survey-plot .overview-map{display:block;width:100%;height:100%;border:0;background:#243322}
.grid-eastings{position:absolute;top:5px;left:28px;right:18px;display:flex;justify-content:space-between;font:8px monospace;color:#a9b89b}
.grid-bottom{top:auto;bottom:5px}.grid-northings{position:absolute;top:22px;bottom:22px;left:6px;display:flex;flex-direction:column;justify-content:space-between;font:8px monospace;color:#a9b89b}
.map-pois{position:absolute;inset:0}.map-poi{position:absolute;transform:translate(-50%,-100%);border:0;background:none;padding:0;display:flex;align-items:center;justify-content:center;width:30px;height:40px;z-index:1}
.poi-pin{display:grid;place-items:center;width:27px;height:27px;border:1px solid #ffd299;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#ff890a;color:#152015;font-size:9px;font-weight:700;box-shadow:0 3px 10px #0007}
.poi-name{position:absolute;left:34px;top:5px;white-space:nowrap;background:#111912ed;padding:5px 7px;border:1px solid #adbc9755;color:#e6ebd9;font-size:11px}
.map-poi.label-left .poi-name{left:auto;right:34px}.map-poi:hover .poi-name,.map-poi:focus-visible .poi-name{color:#ffad48;border-color:#ff890a}.map-poi:hover,.map-poi:focus-visible{z-index:2}
.survey-notes{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:14px;font-size:10px;line-height:1.7}.survey-notes>div{display:flex;flex-direction:column}.survey-notes b{font-size:9px;letter-spacing:2px;color:#ffad48;margin-bottom:6px}.survey-notes i{display:inline-block;width:20px;border-top:2px solid #ff890a;margin-right:5px;vertical-align:middle}.survey-notes .key-radio{border-color:#d4ef9d;border-top-style:dashed}.survey-notes .key-air{border-color:#7dc5c1}.north-symbol{font-size:20px}.survey-footer{border-top:1px solid #9ca98b66;font-size:7px;line-height:1.6}
@media(max-width:600px){.overview-detail{padding:20px 3%}.overview-detail h2{font-size:30px}.poi-name{font-size:9px;padding:4px}.map-poi{width:24px;height:32px}.poi-pin{width:22px;height:22px;font-size:8px}.poi-name{left:25px}.map-poi.label-left .poi-name{right:25px}.survey-notes{font-size:9px;gap:8px;padding:10px}.survey-top{font-size:7px;letter-spacing:.7px}}
@media(min-width:601px){.survey-sheet{display:grid;grid-template-columns:minmax(0,1fr) 165px;max-width:min(100%,calc((88svh - 190px)*.6875 + 213px))}.survey-top,.survey-footer{grid-column:1/-1}.survey-notes{grid-column:2;grid-row:2;display:flex;flex-direction:column;justify-content:space-between;border-block:1px solid #9ca98b66;border-left:1px solid #9ca98b66}.survey-frame{grid-column:1;grid-row:2}.poi-name{font-size:10px}.map-poi{width:24px;height:32px}.poi-pin{width:22px;height:22px;font-size:8px}.poi-name{left:26px}.map-poi.label-left .poi-name{right:26px}}

/* A blurred rounded rectangle gives the inner and outer feather one smooth curve. */
.story-visual img{border-radius:24px;-webkit-mask-image:url('assets/photo-feather.svg');mask-image:url('assets/photo-feather.svg');-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-composite:source-over;mask-composite:add;mask-mode:alpha}
.story-visual:after{display:none}
.story-panel.is-active .story-visual{z-index:2}

.telegram-contact img{width:104px;height:104px;padding:0;filter:none;flex-shrink:0}
@media(max-width:600px){.telegram-contact img{width:88px;height:88px}}

.overview-detail .map-accessible-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.north-symbol{color:var(--orange)}
.poi-summary{position:absolute;top:calc(100% + 5px);left:0;width:min(175px,45vw);padding:10px 12px;white-space:normal;text-align:left;font-size:11px;font-weight:400;line-height:1.5;color:var(--text);background:#111912f5;border:1px solid #a7b89466;box-shadow:0 8px 20px #0006;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease,visibility .18s;pointer-events:none}
.label-left .poi-summary{left:auto;right:0}
.map-poi:hover .poi-summary,.map-poi:focus-visible .poi-summary{opacity:1;visibility:visible;transform:none}
.map-poi:hover,.map-poi:focus-visible{z-index:5}
@media(prefers-reduced-motion:reduce){.poi-summary{transition:none}}
.map-poi[data-overview-stop="0"] .poi-summary,.map-poi[data-overview-stop="1"] .poi-summary{top:auto;bottom:calc(100% + 5px)}

.data-view-link{color:var(--muted,#a7b894);font-size:11px;text-decoration:none;border-bottom:1px solid #a7b89455;padding:5px 0;white-space:nowrap}.data-view-link:hover,.data-view-link:focus-visible{color:var(--orange)}
@media(max-width:600px){.header-actions{flex-wrap:wrap;justify-content:flex-end;gap:5px 14px}.data-view-link{font-size:10px;flex-basis:100%;text-align:right;border:0}}

.story-visual img:not([data-ready]){opacity:0}

/* Compass rose above the legend, with the legend anchored to the map's foot. */
.survey-north{align-items:center;color:var(--orange);gap:4px;padding:5px 0 18px}
.north-rose{display:block;width:100px;height:116px;flex-shrink:0}
.survey-north .north-symbol{font-size:12px;letter-spacing:3px;font-weight:600}
.survey-key{margin-top:auto}
@media(max-width:600px){
  .survey-sheet{display:grid;grid-template-columns:minmax(0,1fr)}
  .survey-top{grid-row:1}.survey-frame{grid-row:3}
  .survey-notes{display:contents}
  .survey-notes>.survey-north{grid-row:2;flex-direction:row;justify-content:center;gap:12px;padding:8px 12px;border-top:1px solid #9ca98b66}
  .north-rose{width:48px;height:56px}
  .survey-key{grid-row:4;padding:14px;font-size:10px;line-height:1.7}
}

/* Reading window: service heading and waypoint counter stay fixed. */
.story-scroll-mode .reader-kicker{position:absolute;inset:0 0 auto;margin:0;min-height:18px}
.story-scroll-window{position:absolute;inset:36px 0 34px;overflow:clip;overscroll-behavior:auto;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 8px,#000 calc(100% - 8px),transparent);mask-image:linear-gradient(to bottom,transparent,#000 8px,#000 calc(100% - 8px),transparent)}
.story-scroll-mode .story-panel>.chapter-kicker,.story-scroll-mode .story-panel>.story-reading{display:none}
.story-scroll-mode .story-panel{max-width:100%;will-change:transform;opacity:1}
.story-scroll-mode .story-panel h1,.story-scroll-mode .story-panel h2{margin-top:12px}
.story-scroll-mode .reader-footer{position:absolute;inset:auto 0 0;margin:0;height:20px}
.story-scroll-mode .story-panel.is-active .story-visual:hover img{width:100%;height:100%}
.reader-photo-overlay{position:fixed;z-index:30;pointer-events:none;transition:top .7s cubic-bezier(.22,1,.36,1),width .7s cubic-bezier(.22,1,.36,1),height .7s cubic-bezier(.22,1,.36,1),opacity .5s ease}
.reader-photo-overlay img{display:block;width:100%;height:100%;object-fit:cover;border-radius:24px;-webkit-mask:url('assets/photo-feather.svg') center/100% 100% no-repeat;mask:url('assets/photo-feather.svg') center/100% 100% no-repeat}
@media(max-width:600px){.mission-enabled .journey-story.story-scroll-mode{bottom:235px}.story-scroll-window{top:30px;bottom:28px}.story-scroll-mode .reader-footer{font-size:8px}}
@media(max-width:600px) and (max-height:700px){.mission-enabled .journey-story.story-scroll-mode{bottom:205px}}
@media(prefers-reduced-motion:reduce){.reader-photo-overlay{transition:none}}

/* Touch gestures on photos belong to the page, not the desktop hover preview. */
@media(hover:none),(pointer:coarse){
  .story-visual{pointer-events:auto;touch-action:pan-y}
  .story-visual img{pointer-events:none;-webkit-user-drag:none;user-select:none}
}
/* Keep the entire phone route sheet inside Safari's smallest visible viewport. */
@media(max-width:600px){
  dialog:has(.survey-sheet){width:calc(100% - 16px);height:calc(100svh - 16px);max-height:calc(100svh - 16px);max-width:none;overflow:hidden}
  dialog:has(.survey-sheet) .close{position:absolute;top:4px;right:4px;margin:0;width:32px;height:32px}
  dialog:has(.survey-sheet) #dialog-content{height:100%}
  .overview-detail{height:100%;padding:6px}
  .survey-sheet{height:100%;grid-template-rows:28px 40px minmax(0,1fr) 65px}
  .survey-top{padding:8px;font-size:6px;letter-spacing:.5px;padding-right:36px}
  .survey-top span:last-child{display:none}
  .survey-notes>.survey-north{padding:0;gap:7px}
  .north-rose{width:30px;height:36px}
  .survey-north .north-symbol{font-size:10px;letter-spacing:2px}
  .survey-frame{height:100%;min-height:0;width:min(100%,calc((100svh - 203px)*.6875 + 36px));justify-self:center;padding:16px 12px 16px 24px}
  .survey-plot{height:100%;aspect-ratio:auto}
  .grid-eastings{left:24px;right:12px;font-size:6px;top:3px}.grid-bottom{top:auto;bottom:3px}
  .grid-northings{top:16px;bottom:16px;font-size:6px}
  .survey-notes>.survey-key{display:grid;grid-template-columns:1fr 1fr;gap:2px 8px;margin:0;padding:6px 10px;font-size:8px;line-height:1.4}
  .survey-key b{grid-column:1/-1;margin:0;font-size:7px}
  .poi-name{font-size:8px;padding:4px 3px}
  .poi-summary{display:none}
}

/* Expand the visible composition without changing route or reading distances. */
.viewport-reference{position:fixed;width:0;height:100svh;visibility:hidden;pointer-events:none}
@media(max-width:600px){
  #journey{--browser-room:calc(100dvh - 100svh)}
  .stage{height:100dvh}
  .map-view{bottom:auto;height:100lvh}
}

.service-crest{display:flex;align-items:center;gap:22px;margin-top:22px}.service-crest img{width:90px;height:153px;object-fit:contain;opacity:.85}.service-crest small{font-size:9px;line-height:1.8;color:var(--muted)}.service-crest a{text-decoration:underline;text-underline-offset:3px}@media(max-width:600px){.service-crest{gap:16px;margin-top:12px}.service-crest img{width:65px;height:110px}.service-crest small{font-size:8px}}

/* The qualifications photo uses its full frame inside the scrolling reader. */
.story-visual.story-visual-natural{width:100%;height:auto;aspect-ratio:524/337;border:0}
.story-visual-natural img{object-fit:contain;object-position:center}

/* Only the overlay is painted while a photo expands or returns to its preview. */
.story-visual.photo-expanded img{visibility:hidden}

/* A full text-column preview, with expansion handled by the shared viewer. */
.story-visual{border:0;cursor:zoom-in;touch-action:pan-y}
.story-visual:focus-visible{outline:1px solid var(--orange);outline-offset:5px}
.photo-viewer-enabled .story-panel.is-active .story-visual:hover{opacity:.42}
.photo-viewer-enabled .story-panel.is-active .story-visual:hover img{width:100%;height:100%}
.story-visual img{pointer-events:none;-webkit-user-drag:none;user-select:none}
.photo-backdrop{position:fixed;inset:0;z-index:29;background:#08110cdd;transition:opacity .5s ease}
.photo-backdrop.is-closing{opacity:0;pointer-events:none}
.photo-dismiss{position:absolute;right:16px;top:max(16px,env(safe-area-inset-top));border:1px solid #a7b89488;border-radius:50%;width:42px;height:42px;background:#111912;color:var(--text);font-size:27px}
@media(prefers-reduced-motion:reduce){.photo-backdrop{transition:none}}
