/* WorldLens V3: one blurred view behind an open, quiet reading surface. */
:root { --v3-gutter:clamp(24px,3vw,64px); }
#v3-scroll { --home-header-height:76px; }
#landing-header { position:sticky; top:0; z-index:45; height:var(--home-header-height); margin-bottom:calc(-1 * var(--home-header-height)); grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); opacity:1; transition:opacity 1.1s cubic-bezier(.22,.61,.36,1) .12s; }
#v3-scroll>#landing-header { padding-inline:var(--v3-gutter); }
#v3-scroll[data-surface="camera"]>#landing-header { display:none; }
#v3-stage #landing { padding-top:var(--home-header-height); }
#landing-header[data-scroll-phase="between"] { opacity:0; pointer-events:none; transition:opacity .18s ease-out; }
#landing-header[data-scroll-hidden="true"] { opacity:0; pointer-events:none; transition:opacity .35s ease-out; }
#landing-header[data-scroll-phase="collections"] { background:linear-gradient(#10141499,#10141455 70%,transparent); }
#landing-header[data-scroll-phase="collections"] #v3-home-link { display:none; }
#landing-header .landing-title { margin:0; white-space:nowrap; }
#landing-header .landing-live-pill { white-space:nowrap; }
#v3-home { padding-top:calc(var(--home-header-height) + 20px); }
#v3-home>.v3-chips { margin-top:0; }
@media(max-width:380px) {
 #v3-scroll #landing-header { gap:6px; }
 #v3-scroll #landing-header:not([data-scroll-phase="collections"]) { padding-inline:12px; }
 #landing-header .landing-header-left { gap:10px; }
 #landing-header .landing-header-right { gap:6px; }
 #landing-header .landing-title { font-size:14px; letter-spacing:.03em; }
 #landing-header .landing-live-pill { gap:4px; }
}
@media(prefers-reduced-motion:reduce) { #landing-header,#landing-header[data-scroll-phase],#landing-header[data-scroll-hidden] { transition:none; } }
.camera-live { display:inline-flex; align-items:center; gap:6px; flex-shrink:0; white-space:nowrap; color:#d0d3d2; font:500 10px/1.3 var(--font); letter-spacing:.06em; text-transform:uppercase; }
.camera-live-dot { width:5px; height:5px; flex-shrink:0; border-radius:50%; background:#4ade80; animation:camera-live-breathe 4s ease-in-out infinite; }
@keyframes camera-live-breathe { 0%,100% { opacity:.9; } 50% { opacity:.5; } }
#app[data-view="map"] #camera-live { display:inline-flex; }
.preview-title-row { display:flex; align-items:center; gap:10px; min-width:0; }
.preview-title-row h2 { min-width:0; }
.preview-live { font-size:9px; letter-spacing:.04em; }
#app.hidden .camera-live-dot { animation-play-state:paused; }
@media(max-width:680px) { .camera-live { font-size:9px; letter-spacing:.035em; gap:5px; }.preview-title-row { gap:7px; } }
@media(prefers-reduced-motion:reduce) { .camera-live-dot { animation:none; } }
#app #explore-toggle.landing-nav-link { display:inline-flex; align-items:center; min-height:32px; height:auto; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; animation:none; font:600 .6rem var(--font); letter-spacing:.08em; text-transform:uppercase; color:#ffffffbf; }
#app #explore-toggle:is(:hover,:focus-visible,[aria-expanded="true"]) { color:#fff; background:transparent; box-shadow:none; text-shadow:0 0 10px #ffffff55; }
#explore-toggle .explore-chevron { display:none; }
#app #top-right #camera-live { margin:0; font:600 .6rem var(--font); letter-spacing:.08em; }
#app :is(#top-time,#preview-time) { display:inline-block; font:500 13px/1.4 var(--font); color:#d0d3d2; font-variant-numeric:tabular-nums; letter-spacing:.025em; }
#preview-time { flex-shrink:0; white-space:nowrap; }
#app #preview-time[hidden] { display:none; }
#camera-navigation { display:none; }
#app[data-view="camera"] #camera-navigation { display:flex; align-items:center; gap:22px; flex-shrink:0; }
#app[data-view="camera"] #top-bar { height:var(--home-header-height); padding-inline:var(--v3-gutter); pointer-events:none; }
#app[data-view="camera"] #top-bar> :is(#camera-navigation,#top-right) { pointer-events:auto; }
#app[data-view="camera"] #top-location { position:absolute; min-width:0; overflow:hidden; white-space:nowrap; }
#app[data-view="camera"] #top-city { min-width:0; overflow:hidden; text-overflow:ellipsis; color:#f5f5f3; font:700 14px/1.35 var(--font); letter-spacing:.015em; }
#app #top-flag { display:none; }
#app[data-view="camera"] #top-country { color:#ffffffb8; font:500 12px/1.35 var(--font); }
#app[data-view="camera"] #top-sep { color:#ffffff80; }
#app[data-view="camera"] :is(#top-flag,#top-sep,#top-country) { flex-shrink:0; }
#app[data-view="camera"] #top-location #camera-live { margin-left:6px; }
#app[data-view="camera"] #top-location :is(#top-sep,#top-country) { display:inline; }
@media(max-width:680px) { #app[data-view="camera"] #top-bar { padding-inline:18px; }#app[data-view="camera"] #top-country { max-width:34%; overflow:hidden; text-overflow:ellipsis; } }
@keyframes explore-invitation { 0%,100% { border-color:#ffffff50; box-shadow:0 0 0 0 #ffffff00; background:#151818b3; } 50% { border-color:#fff; box-shadow:0 0 20px 4px #ffffff30; background:#485252cc; } }
.explore-reels { display:inline-flex; }
.explore-reel-space { white-space:pre; }
/* Match the neighbouring navigation text's natural line box. */
.explore-reel { position:relative; display:inline-block; height:1lh; line-height:normal; overflow:hidden; }
.explore-reel-base { visibility:hidden; }
.explore-reel-track { position:absolute; top:0; left:0; width:100%; animation:explore-reel-turn 3s cubic-bezier(.18,.75,.22,1) var(--reel-delay) infinite; }
.explore-reel-track>span { display:block; height:1lh; line-height:normal; text-align:center; }
@keyframes explore-reel-turn { 0%,24% { transform:translateY(0); } 36%,100% { transform:translateY(-75%); } }
#app #explore-toggle:is(:hover,:focus-visible,[aria-expanded="true"]) .explore-reel-track { animation:none; transform:none; }
#app.hidden #explore-toggle,#app.hidden .explore-reel-track { animation-play-state:paused; }
@media(max-width:680px) { #app :is(#top-time,#preview-time) { font-size:12px; } }
@media(prefers-reduced-motion:reduce) { #app #explore-toggle,#app .explore-reel-track { animation:none; transform:none; } }
.v3-preview-unavailable { position:absolute; inset:0; display:grid; place-items:center; padding:20px; color:#ffffff80; font:400 12px/1.5 var(--font); text-align:center; }
.landing-header-left .landing-nav-link { font:600 .6rem var(--font); letter-spacing:.08em; text-transform:uppercase; text-decoration:none; color:#ffffffbf; min-height:32px; }
.bottom-back-btn { text-transform:uppercase; }
#landing-header :is(.landing-live-pill,.landing-lang-btn) { font:600 .6rem var(--font); letter-spacing:.08em; text-transform:uppercase; color:#ffffffbf; min-height:32px; }
#landing-header .landing-lang-btn { border:0; border-radius:0; padding:0; min-width:24px; background:transparent; }
.landing-header-left .landing-nav-link,#landing-header .landing-lang-btn,#map-nav-brand { transition:color .2s ease,text-shadow .2s ease; }
.landing-header-left .landing-nav-link:is(:hover,:focus-visible),#landing-header .landing-lang-btn:is(:hover,:focus-visible),#map-nav-brand:is(:hover,:focus-visible) { color:#fff; text-shadow:0 0 10px #ffffff55; }
#landing-header :is(.landing-nav-link,.landing-lang-btn):focus-visible { outline:1px solid #e4e8e5; outline-offset:4px; }
#landing-sub { font-size:10px; font-weight:400; color:#a1a3a3; letter-spacing:.06em; text-shadow:0 1px 8px #0005; }
#landing-count { font:400 9px/1.4 var(--font); color:#a1a3a3; letter-spacing:.06em; text-transform:uppercase; text-align:center; text-shadow:0 1px 8px #0005; }
#landing-map-btn { position:relative; top:clamp(20px,4.7dvh,42px); margin-top:0; min-width:64px; min-height:44px; padding:8px 12px; font:600 11px/1.4 var(--font); color:#ffffffbf; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; text-shadow:none; }
#landing-map-btn:is(:hover,:focus-visible) { color:#fff; text-shadow:0 0 10px #ffffff55; }
#landing-map-btn:focus-visible { outline:1px solid #e4e8e5; outline-offset:1px; border-radius:20px; }
#landing-map-btn .explore-reel-track { animation:none; transform:none; }
#landing-map-btn.is-rolling .explore-reel-track { animation:home-map-reel-turn 500ms cubic-bezier(.18,.75,.22,1) var(--reel-delay) both; }
@keyframes home-map-reel-turn { from { transform:translateY(0); } to { transform:translateY(-75%); } }
#landing-map-btn:is(:hover,:focus-visible) .explore-reel-track { animation:none; transform:none; }
@media(prefers-reduced-motion:reduce) { #landing-map-btn.is-rolling .explore-reel-track { animation:none; transform:none; } }
@media(max-height:480px) { #landing-map-btn { top:0; } }
#v3-home-down { font:700 14px var(--serif); color:#f1eeea; gap:8px; white-space:nowrap; text-shadow:0 1px 8px #0007; transition:color .2s ease,text-shadow .2s ease; }
#v3-home-down:is(:hover,:focus-visible) { color:#fff; text-shadow:0 0 10px #ffffff55; }
#v3-home-down .v3-scroll-cue { display:grid; place-items:center; width:34px; height:34px; border:0; background:transparent; color:#fff; --cue-rest-opacity:.94; animation:collections-descent 3s ease-in-out infinite; }
#v3-home-down:hover .v3-scroll-cue,#v3-home-down:focus-visible .v3-scroll-cue { animation:none; transform:translateY(3px); }
@keyframes collections-descent { 0%,65%,100% { transform:translateY(0); opacity:var(--cue-rest-opacity,.7); } 32% { transform:translateY(3px); opacity:1; } }
@media(prefers-reduced-motion:reduce) { #v3-home-down .v3-scroll-cue,#v3-camera-down .v3-scroll-cue { animation:none; transform:none; } }
#v3-atmosphere { position:fixed; inset:0; overflow:hidden; pointer-events:none; z-index:0; background:#0a0a0a; transform-origin:0 0; }
#v3-atmosphere #landing-bg { position:absolute; inset:0; }
.v3-atmosphere-still { position:absolute; inset:-28px; z-index:1; transition:opacity .5s ease; }
.v3-atmosphere-still img,.v3-atmosphere-frame { width:100%; height:100%; object-fit:cover; filter:blur(24px) brightness(.5) saturate(1.1); transform:scale(1.05); }
.v3-atmosphere-still::after { content:''; position:absolute; inset:0; background:#0003; }
.v3-atmosphere-veil { position:absolute; inset:0; z-index:2; background:rgba(0,0,0,.22); opacity:0; transition:opacity .5s ease; }
.v3-reading .v3-atmosphere-veil { opacity:1; }
#v3-atmosphere[data-surface="home"] .v3-atmosphere-still { opacity:0; }
.v3-reading #v3-atmosphere[data-surface="home"] .v3-atmosphere-still { opacity:1; }
#v3-atmosphere:not([data-surface="home"]) #landing-bg { visibility:hidden; }
#v3-atmosphere[data-surface="map"] { visibility:hidden; }
#v3-scroll { position:relative; z-index:1; height:100dvh; overflow-x:hidden; overflow-y:auto; scroll-snap-type:y proximity; overscroll-behavior-y:contain; scrollbar-color:#ffffff30 transparent; }
#v3-stage { height:100dvh; position:relative; scroll-snap-align:start; }
#v3-stage #landing,#v3-stage #app { position:absolute; }
#v3-scroll[data-surface="map"] { overflow-y:scroll; scrollbar-color:transparent transparent; }
#v3-scroll[data-surface="map"]>.v3-below,#v3-scroll[data-surface="map"]>#v3-footer { display:none; }
.v3-below { scroll-snap-align:start; background:transparent; color:#f1eeea; min-height:100dvh; padding:64px var(--v3-gutter); }
.v3-below a { color:inherit; text-decoration:none; }
.v3-below button,.v3-footer button,.v3-page button { cursor:pointer; }
.v3-eyebrow { color:#ffffff80; font:600 12px/1.5 var(--font); text-transform:uppercase; letter-spacing:.12em; }
.v3-intro { display:flex; justify-content:space-between; gap:32px; align-items:flex-end; margin-bottom:34px; }
.v3-intro h1,.v3-intro h2 { font:700 clamp(28px,2.4vw,36px)/1.15 var(--serif); letter-spacing:-.02em; margin:0; }
.v3-pill { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 22px; min-height:42px; border:1px solid #ffffff65; border-radius:30px; background:transparent; color:#eeeae4; font:700 15px var(--serif); cursor:pointer; text-decoration:none; }
.v3-pill:hover { border-color:#ffffffbb; background:#ffffff08; }
.v3-pill[aria-pressed="true"] { color:#e6cf9c; border-color:#806e47; background:#b6984f14; }
.v3-muted { color:#ffffffb3; font:14px/1.7 var(--font); }
.v3-chips { display:flex; gap:8px 25px; flex-wrap:wrap; margin:35px 0 35px; padding:0 0 24px; border-bottom:1px solid #ffffff24; }
@media(min-width:1600px) { .v3-chips { justify-content:space-between; } }
.v3-chips button { padding:8px 0; border:0; border-bottom:1px solid transparent; background:transparent; border-radius:0; color:#ffffffbf; font:700 14px var(--serif); }
.v3-chips button:hover,.v3-chips button[aria-pressed="true"] { color:#fff; border-bottom-color:#ffffffa6; }
.v3-row { margin-bottom:60px; min-width:0; }
.v3-row-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:17px; }
.v3-row-heading h2,.v3-row-heading h3 { font:700 24px/1.2 var(--serif); letter-spacing:-.01em; }
.v3-gallery-heading { flex-wrap:wrap; row-gap:10px; }
.v3-back-collections { display:inline-flex; align-items:center; gap:10px; min-height:44px; margin-left:auto; padding:7px 0; border:0; border-bottom:1px solid #ffffff70; background:transparent; color:#e6e2dc; font:700 20px/1.2 var(--serif); cursor:pointer; }
.v3-back-collections>span { font:16px var(--font); }
.v3-back-collections:hover { color:#fff; border-color:#fff; }
.v3-row-actions { display:flex; align-items:center; gap:9px; }
.v3-text-button { border:0; background:transparent; color:#ffffffbf; font:500 14px var(--font); cursor:pointer; padding:8px 0; white-space:nowrap; }
.v3-text-button:hover { color:#fff; }
.v3-arrow { display:grid; place-items:center; width:40px; height:40px; border:0; border-radius:0; background:transparent; color:#d4d1cb; cursor:pointer; }
.v3-arrow svg { width:12px; height:12px; fill:currentColor; }
.v3-arrow:hover,.v3-arrow:focus-visible { color:#fff; }
.v3-rail { display:grid; grid-auto-flow:column; grid-auto-columns:clamp(250px,16vw,320px); gap:16px; overflow-x:auto; scroll-snap-type:x proximity; overscroll-behavior-x:contain; scrollbar-width:none; padding-bottom:3px; }
.v3-rail::-webkit-scrollbar { display:none; }
.v3-card { display:block; min-width:0; scroll-snap-align:start; cursor:pointer; }
.v3-card:focus-visible { outline:1px solid #c3c3c3; outline-offset:5px; border-radius:2px; }
.v3-card-picture { position:relative; aspect-ratio:16/9; border-radius:2px; overflow:hidden; background:#141819; isolation:isolate; }
.v3-card-picture img,.v3-card-picture>svg { width:100%; height:100%; display:block; object-fit:cover; transition:transform .5s ease; }
.v3-card:hover .v3-card-picture img { transform:scale(1.035); }
.v3-card-picture::after { content:''; position:absolute; inset:55% 0 0; background:linear-gradient(transparent,#06060655); pointer-events:none; }
.v3-card-picture .v3-card-golden { position:absolute; top:10px; right:10px; padding:5px 8px; border-radius:18px; background:#141414bd; color:#e4ca91; font:500 12px var(--font); }
.v3-card h3,.v3-card h4 { font:700 16px/1.35 var(--serif); color:#f1eeea; margin:11px 0 5px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.v3-card p { font:13px/1.5 var(--font); color:#ffffffb3; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v3-empty { padding:20px 0; color:#ffffffb3; border:0; font:15px/1.7 var(--font); }
.v3-search { width:min(100%,360px); min-height:42px; border:1px solid #ffffff40; border-radius:24px; background:transparent; color:#e4e4e4; padding:12px 18px; font:14px var(--font); }
.v3-search::placeholder { color:#ffffff80; }
.v3-gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr)); gap:32px 20px; margin:0 0 30px; }
.v3-gallery-tools { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:35px; }
/* Collection carousels and grids share the same card sizes at each available width. */
#v3-home { container:collections / inline-size; }
#v3-home :is(.v3-rail,.v3-gallery) { --collection-columns:1; --collection-gap:20px; column-gap:var(--collection-gap); }
#v3-home .v3-rail { grid-auto-columns:calc((100% + var(--collection-gap)) / var(--collection-columns) - var(--collection-gap)); scroll-snap-type:x mandatory; }
#v3-home .v3-gallery { grid-template-columns:repeat(var(--collection-columns),minmax(0,1fr)); }
@container collections (min-width:520px) { #v3-home :is(.v3-rail,.v3-gallery) { --collection-columns:2; } }
@container collections (min-width:790px) { #v3-home :is(.v3-rail,.v3-gallery) { --collection-columns:3; } }
@container collections (min-width:1060px) { #v3-home :is(.v3-rail,.v3-gallery) { --collection-columns:4; } }
@container collections (min-width:1330px) { #v3-home :is(.v3-rail,.v3-gallery) { --collection-columns:5; } }
@container collections (min-width:1600px) { #v3-home :is(.v3-rail,.v3-gallery) { --collection-columns:6; } }
@container collections (min-width:1870px) { #v3-home :is(.v3-rail,.v3-gallery) { --collection-columns:7; } }
@container collections (min-width:2140px) { #v3-home :is(.v3-rail,.v3-gallery) { --collection-columns:8; } }
@container collections (min-width:2410px) { #v3-home :is(.v3-rail,.v3-gallery) { --collection-columns:9; } }
@container collections (min-width:2680px) { #v3-home :is(.v3-rail,.v3-gallery) { --collection-columns:10; } }
.v3-down { position:absolute; z-index:12; left:50%; bottom:20px; transform:translateX(-50%); border:0; color:#aaaaaa; background:transparent; font:10px var(--font); letter-spacing:.04em; display:flex; flex-direction:column; align-items:center; gap:7px; cursor:pointer; padding:10px; }
.v3-down span:last-child { font-size:17px; line-height:10px; }
#v3-camera-down { bottom:3px; }
#v3-camera-down,#v3-camera-up { min-height:44px; padding:2px 12px; gap:5px; color:#c9c8c3; font:600 10px/14px var(--font); letter-spacing:0; white-space:nowrap; }
#v3-camera-down .v3-scroll-cue,#v3-camera-up .v3-scroll-cue { display:grid; place-items:center; width:22px; height:22px; border:0; background:transparent; color:#fff; --cue-rest-opacity:.94; animation:collections-descent 3s ease-in-out infinite; }
#v3-camera-down svg,#v3-camera-up svg { display:block; width:12px; height:10px; }
#v3-camera-down:is(:hover,:focus-visible),#v3-camera-up:is(:hover,:focus-visible) { color:#fff; }
#v3-camera-down:is(:hover,:focus-visible) .v3-scroll-cue { animation:none; transform:translateY(2px); }
#v3-camera { position:relative; padding-top:64px; }
#v3-camera-up { position:absolute; top:8px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; border:0; background:transparent; cursor:pointer; }
#v3-camera-up .v3-scroll-cue { animation-name:collections-ascent; }
#v3-camera-up:is(:hover,:focus-visible) .v3-scroll-cue { animation:none; transform:translateY(-2px); }
#v3-camera-up:focus-visible { outline:1px solid #ffffff99; outline-offset:3px; border-radius:3px; }
@keyframes collections-ascent { 0%,65%,100% { transform:translateY(0); opacity:var(--cue-rest-opacity,.7); } 32% { transform:translateY(-3px); opacity:1; } }
@media(prefers-reduced-motion:reduce) { #v3-camera-up .v3-scroll-cue { animation:none; transform:none; } }
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip-path:inset(50%); white-space:nowrap; border:0!important; }
#app[data-view="map"] #v3-camera-down { display:none; }
.v3-section-top { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:28px; }
.v3-section-top p { font:600 12px var(--font); color:#ffffffb3; }
.v3-detail-grid { display:grid; grid-template-columns:1.12fr 1fr; gap:clamp(36px,4vw,80px); align-items:start; }
.v3-detail-grid>* { min-width:0; }
.v3-place-heading { font:700 clamp(36px,3.3vw,56px)/1.12 var(--serif); letter-spacing:-.02em; margin:0 0 14px; text-wrap:balance; overflow-wrap:anywhere; }
.v3-editorial { margin-top:32px; }
.v3-editorial h2 { font:700 28px/1.25 var(--serif); margin:0 0 16px; }
.v3-editorial p { color:#ffffffcf; font:16px/1.75 var(--font); margin-bottom:16px; max-width:64ch; }
.v3-editorial details { margin-bottom:25px; }
.v3-editorial summary { color:#b2b2b2; cursor:pointer; font:14px var(--font); margin:14px 0; }
.v3-source { font:13px/1.6 var(--font); color:#ffffff90!important; text-decoration:underline!important; text-underline-offset:4px; }
.v3-location-panel { background:transparent; border:0; border-left:1px solid #ffffff24; padding:0 0 0 clamp(24px,2.5vw,40px); border-radius:0; }
.v3-season { margin-top:30px; }
.v3-detail-grid>article>.v3-season { padding-top:24px; border-top:1px solid #ffffff24; }
.v3-season h2 { font:700 28px/1.25 var(--serif); margin-bottom:14px; }
.v3-season>p { color:#ffffffcf; font:16px/1.75 var(--font); }
.v3-mini-map { width:100%; height:clamp(240px,17vw,330px); border-radius:2px; overflow:hidden; background:#15191b; position:relative; margin:0; opacity:.95; }
.v3-map-actions { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:18px; }
.v3-map-cta { flex-shrink:0; min-height:48px; padding:12px 25px; font-size:15px; animation:map-invitation 4.5s cubic-bezier(.45,0,.55,1) infinite; }
.v3-map-cta:is(:hover,:focus-visible) { animation:none; background:#ffffff20; border-color:#fff; }
.v3-local-clock { text-align:right; white-space:nowrap; }
.v3-local-clock dt { color:#ffffffb3; font:13px/1.5 var(--font); margin-bottom:4px; }
.v3-local-clock dd { color:#eae8e0; font:500 17px/1.5 var(--font); }
@keyframes map-invitation {
 0%,100% { color:#eeeae4; border-color:#ffffff80; background-color:#ffffff08; box-shadow:0 0 0 0 #ffffff00; }
 50% { color:#fff; border-color:#fff; background-color:#ffffff30; box-shadow:0 0 14px 4px #ffffff26; }
}
.v3-mini-map .leaflet-control-attribution { font-size:8px; background:#121212d9; color:#929292; max-width:100%; }
.v3-mini-map .leaflet-control-attribution a { color:#a8a8a8; }
.v3-mini-map .leaflet-control-zoom a { background:#171717; color:#c8c8c8; border-color:#444444; }
.v3-mini-map .leaflet-bar { border:1px solid #3d3d3d; }
.v3-mini-fallback { width:100%; height:100%; display:block; }
.v3-nearby { margin:40px 0 0; padding:32px 0 0; border-top:1px solid #ffffff24; }
.v3-more { margin:36px 0 0; padding-top:32px; border-top:1px solid #ffffff24; }
.v3-footer { position:relative; padding:56px var(--v3-gutter) 28px; background:transparent; color:#ffffff99; border-top:1px solid #ffffff24; }
.v3-footer-columns { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:45px; }
.v3-footer-brand { font:700 32px var(--serif); color:#d9d9d9; text-decoration:none; }
.v3-footer p { font:15px/1.6 var(--font); max-width:340px; margin:15px 0; }
.v3-footer h3 { font:600 14px var(--font); letter-spacing:.05em; text-transform:uppercase; margin:5px 0 19px; color:#b8b8b8; }
.v3-footer ul { list-style:none; display:grid; gap:12px; }
.v3-footer a:not(.v3-footer-brand),.v3-footer button { color:#ffffffb3; text-decoration:none; font:14px var(--font); border:0; background:transparent; padding:0; text-align:left; }
.v3-footer a:hover,.v3-footer button:hover { color:#dbdbdb; }
.v3-footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:25px; flex-wrap:wrap; border-top:1px solid #ffffff24; margin-top:46px; padding-top:25px; font:10px var(--font); }
.v3-footer-bottom nav { display:flex; gap:21px; flex-wrap:wrap; }
.v3-footer-bottom nav a { font-size:14px!important; }
.v3-footer-bottom p { max-width:none; margin:0; font-size:13px; }
/* Institutional pages share the same restrained type and spacing. */
html.v3-document-root { height:auto; overflow:auto; }
.v3-footer-columns nav { display:flex; flex-direction:column; gap:13px; }
.v3-footer-columns nav h3 { margin-bottom:6px; }
.v3-footer-brand>a { font:700 32px var(--serif)!important; color:#e7e5df!important; }
.v3-destination-sources { margin-top:12px; font:13px/1.7 var(--font); color:#ffffff80; }
.v3-destination-sources summary { cursor:pointer; }
.v3-destination-sources a { display:block; margin-top:6px; }
.v3-below [hidden],.v3-footer [hidden] { display:none!important; }
#v3-rows { margin-top:0; }
#v3-scroll:focus-visible { outline:none; }
body.v3-document { overflow:auto; height:auto; color:#dedede; }
.v3-document>header,.v3-document>main,.v3-document>footer { position:relative; z-index:1; }
.v3-document-header { margin:auto; height:76px; padding:22px var(--v3-gutter); display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:20px; }
.v3-document-header>.v3-document-brand { font:400 1.05rem var(--serif); letter-spacing:.06em; color:#fff; text-decoration:none; text-align:center; white-space:nowrap; }
.v3-document-navigation { display:flex; align-items:center; gap:20px; }
.v3-document-navigation a,.v3-document-header select { font:600 .6rem var(--font); letter-spacing:.08em; color:#ffffffbf; text-transform:uppercase; text-decoration:none; }
.v3-document-navigation a { display:inline-flex; align-items:center; min-height:32px; }
.v3-document-language { justify-self:end; }
.v3-document-header select { appearance:none; min-height:32px; min-width:24px; padding:0; border:0; border-radius:0; background:transparent; cursor:pointer; text-align:center; }
.v3-document-header :is(a,select),.v3-document-sections a { transition:color .2s ease,text-shadow .2s ease; }
.v3-document-header :is(a,select):is(:hover,:focus-visible),.v3-document-sections a:is(:hover,:focus-visible) { color:#fff; text-shadow:0 0 10px #ffffff55; }
.v3-document-header :is(a,select):focus-visible,.v3-document-sections a:focus-visible { outline:1px solid #e4e8e5; outline-offset:4px; }
.v3-document-header select option { background:#171717; }
.v3-page { max-width:880px; margin:42px auto 85px; padding:0 30px; min-height:60vh; }
.v3-document-sections { display:flex; flex-wrap:wrap; gap:8px 24px; padding-bottom:16px; margin-bottom:38px; border-bottom:1px solid #ffffff24; }
.v3-document-sections a { font:600 10px/1.5 var(--font); letter-spacing:.06em; text-transform:uppercase; text-decoration:none; color:#ffffffbf; padding:7px 0; border-bottom:1px solid transparent; }
.v3-document-sections a[aria-current="page"] { color:#fff; border-bottom-color:#fff; }
.v3-page h1 { font:700 clamp(25px,2.4vw,34px)/1.25 var(--serif); letter-spacing:-.01em; margin:12px 0 24px; color:#f1eeea; }
.v3-page .v3-page-intro { font:400 17px/1.7 var(--serif); color:#e2e0da; margin-bottom:35px; }
.v3-page h2 { font:700 21px/1.35 var(--serif); color:#f1eeea; margin:32px 0 14px; }
.v3-page p,.v3-page li { font:14px/1.8 var(--font); color:#ffffffc7; margin:0 0 14px; }
.v3-page .v3-eyebrow { font:600 10px/1.5 var(--font); letter-spacing:.12em; color:#ffffffa6; }
.v3-page ul { padding-left:19px; }
.v3-page a { color:#c7c7c7; text-underline-offset:4px; }
.v3-page-notice { border:0; border-left:1px solid #c6b88c; border-radius:0; background:transparent; padding:0 0 0 20px; color:#d6cba9!important; margin-bottom:28px!important; }
.v3-page-updated { display:block; font:12px/1.6 var(--font); color:#ffffff9c; margin:0 0 20px; }
.v3-page-action a,.v3-page-email { color:#f4f2ee; overflow-wrap:anywhere; }
.v3-page-download { display:inline-block; max-width:100%; border:1px solid #ffffff55; border-radius:24px; background:#ffffff08; color:#f4f2ee; padding:12px 20px; font:600 12px/1.5 var(--font); text-align:left; }
.v3-page-download:hover { background:#ffffff14; border-color:#ffffffa6; }
.v3-page :is(a,button,summary):focus-visible { outline:2px solid #e4e8e5; outline-offset:4px; }
.v3-page-contact { margin-top:40px; padding-top:4px; border-top:1px solid #ffffff24; }
.v3-page .v3-page-email-note { font-size:12px; color:#ffffff99; }
.v3-page-facts { display:grid; grid-template-columns:auto 1fr; gap:8px 20px; font:14px/1.8 var(--font); }
.v3-page-facts dd { margin:0; overflow-wrap:anywhere; }
.v3-page-references { margin-top:32px; border-top:1px solid #ffffff24; padding-top:18px; font:13px/1.8 var(--font); }
.v3-page-references summary { cursor:pointer; margin-bottom:14px; }
.v3-page-references a { overflow-wrap:anywhere; }
@media(max-width:900px) { .v3-detail-grid { grid-template-columns:1fr; gap:50px; }.v3-location-panel { padding:35px 0 0; border-left:0; border-top:1px solid #ffffff24; }.v3-nearby { padding-left:0; }.v3-footer-columns { grid-template-columns:1.3fr 1fr; gap:32px; }.v3-intro { align-items:flex-start; flex-direction:column; gap:18px; } }
@media(max-width:600px) {
 #v3-scroll { --home-header-height:72px; --v3-gutter:20px; }
 #landing-header { padding:20px 18px; gap:12px; }.landing-header-left { gap:14px; }.landing-header-right { gap:10px; }.landing-title { font-size:.95rem; }
 .v3-back-collections { font-size:18px; }
 .v3-below { padding:40px 20px; }.v3-row { margin-bottom:42px; }.v3-row-heading h2 { font-size:22px; }.v3-rail { grid-auto-columns:84%; gap:16px; }.v3-row-actions { gap:8px; }.v3-arrow { display:none; }
 .v3-chips { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; gap:20px; margin:25px 0 28px; padding-bottom:16px; }.v3-chips button { flex-shrink:0; padding:9px 0; }.v3-gallery { gap:28px 16px; }
 .v3-section-top { margin-bottom:26px; align-items:center; }.v3-section-top p { max-width:55%; line-height:1.7; }.v3-location-panel { padding:30px 0 0; }.v3-mini-map { height:215px; }.v3-nearby,.v3-more { margin:32px 0 0; padding-top:26px; }
 .v3-map-actions { flex-wrap:wrap; gap:16px; }.v3-map-cta { font-size:15px; padding:12px 18px; }.v3-local-clock { margin-left:auto; }
 .v3-footer { padding:45px 20px 28px; }.v3-footer-columns { grid-template-columns:1fr 1fr; gap:32px 24px; }.v3-footer-columns>div:first-child { grid-column:1/-1; }.v3-footer-bottom nav { gap:17px; }.v3-page { margin:24px auto 65px; padding:0 20px; }.v3-document-header { padding:20px 18px; gap:8px; }.v3-document-navigation { gap:14px; }.v3-document-header>.v3-document-brand { font-size:.95rem; }.v3-document-sections { gap:5px 16px; margin-bottom:28px; }.v3-page .v3-page-intro { font-size:16px; }
 #v3-home-down { bottom:44px; }
}
/* Only the menu adapts to the available gutter; the player stays untouched. */
#explore-menu { position:fixed; top:var(--explore-top,49px); right:var(--explore-right,44px); width:var(--explore-width,220px); max-height:calc(100dvh - var(--explore-top,49px) - 24px); padding:6px; border-radius:12px; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#ffffff40 transparent; }
#explore-menu button { min-height:32px; padding:7px 8px; font-size:12px; line-height:1.4; }
#explore-menu .explore-options { margin-top:8px; border-top:1px solid #ffffff20; }
#explore-menu summary { display:flex; justify-content:space-between; align-items:center; min-height:38px; padding:10px; color:#b4bdc0; font:12px var(--font); cursor:pointer; list-style:none; }
#explore-menu summary::-webkit-details-marker { display:none; }
#explore-menu summary::after { content:'▾'; }
#explore-menu details[open]>summary::after { content:'▴'; }
#explore-menu summary:hover { color:#fff; }
#explore-menu summary:focus-visible { outline:1px solid #c1d9e4; outline-offset:-2px; }
@media(max-width:680px) { #explore-menu button { min-height:40px; } }
/* Keep the picture, category, Next and destination cue on one centre line. */
#app[data-view="camera"] #cam-frame-wrap { bottom:120px!important; }
#app[data-view="camera"] #bottom-bar { height:120px; }
#bottom-bar .next-action { position:absolute; left:50%; transform:translateX(-50%); bottom:10px; gap:8px; }
#bottom-bar .next-action .camera-actions { display:flex; justify-content:center; }
#bottom-bar #open-cam-btn { min-width:150px; height:40px; padding:8px 24px; }
.camera-action svg { width:18px; height:18px; fill:currentColor; stroke:none; }
.camera-action[aria-pressed="true"] svg { fill:currentColor; }
#app[data-view="camera"] #bottom-bar .next-action { bottom:56px; gap:10px; }
#main-save.camera-favorite { position:absolute; z-index:4; top:12px; right:12px; width:40px; height:40px; border:0; border-radius:6px; background:transparent; color:#fff; backdrop-filter:none; box-shadow:none; }
#main-save.camera-favorite svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; filter:drop-shadow(0 1px 2px #0009); }
#main-save.camera-favorite:hover { color:#fff; opacity:.85; }
#main-save.camera-favorite[aria-pressed="true"] { color:#fff; }
#main-save.camera-favorite[aria-pressed="true"] svg { fill:currentColor; }
#main-save.camera-favorite:focus-visible { outline:2px solid #fff; outline-offset:3px; }
#main-reduce.camera-reduce { position:absolute; z-index:4; top:12px; right:56px; width:40px; height:40px; border:0; border-radius:0; background:transparent; color:#fff; backdrop-filter:none; box-shadow:none; }
#main-reduce.camera-reduce svg { width:22px; height:22px; fill:currentColor; stroke:none; filter:drop-shadow(0 1px 2px #0009); }
#main-reduce.camera-reduce:hover { opacity:.8; }
#main-reduce.camera-reduce:focus-visible { outline:2px solid #fff; outline-offset:1px; }
#app[data-view="map"] #main-reduce { display:none; }
#app[data-preview="true"] .preview-footer .camera-actions { width:auto; margin:0 0 0 auto; }
#preview-next { min-width:96px; }
#preview-theme { color:#fff; font:600 12px/16px var(--font); }
#app[data-view="camera"] #bottom-bar .bottom-back-btn { position:absolute; left:24px; bottom:70px; transform:translateY(50%); }
#bottom-bar .bottom-back-btn { display:inline-flex; align-items:center; justify-content:center; min-width:90px; height:37px; padding:0 17px; border:1px solid rgba(255,255,255,.16); border-radius:30px; background:rgba(10,10,10,.45); backdrop-filter:blur(12px); color:#fff; font:.65rem var(--font); letter-spacing:0; }
#bottom-bar .bottom-back-btn:hover { background:rgba(255,255,255,.13); border-color:rgba(255,255,255,.3); }
#bottom-bar .bottom-back-btn:focus-visible { outline:1px solid #b8d9e5; outline-offset:3px; }
#bottom-bar #previous-camera { text-transform:none; }
#bottom-bar #previous-camera:disabled { opacity:.35; cursor:default; background:rgba(10,10,10,.45); border-color:rgba(255,255,255,.16); }
#camera-facts { position:absolute; z-index:6; color:#ffffffb8; font:400 14px/1.65 var(--font); text-align:left; overflow-wrap:break-word; }
#camera-facts[hidden] { display:none; }
#camera-facts p { margin:0 0 1.3em; }
#camera-facts strong { font-weight:700; }
#camera-facts p:last-child { margin-bottom:0; }
#app:not([data-view="camera"]) #camera-facts { display:none; }
@media(max-width:680px) { #camera-facts { font-size:13px; line-height:1.55; } }
#app[data-view="camera"] #view-mode-switch { position:absolute; right:24px; bottom:70px; transform:translateY(50%); }
#journey-label { color:#fff; font-size:12px; font-weight:700; line-height:14px; }
#golden-status,#map-selected-solar { display:none; }
@media(max-width:680px) {
 #bottom-bar .bottom-back-btn { height:52px; }
 #bottom-bar #open-cam-btn { min-width:144px; }
 #bottom-bar .next-action { bottom:62px; }
 #app[data-view="camera"] #cam-frame-wrap { bottom:174px!important; }
 #app[data-view="camera"] #bottom-bar { height:174px; }
 #app[data-view="camera"] #bottom-bar .next-action { bottom:110px; }
 #app[data-view="camera"] #v3-camera-down { bottom:58px; }
 #main-save.camera-favorite { top:8px; right:8px; width:44px; height:44px; }
 #main-reduce.camera-reduce { top:8px; right:56px; width:44px; height:44px; }
 #app[data-view="camera"] #bottom-bar .bottom-back-btn { left:16px; bottom:27px; }
 #app[data-view="camera"] #view-mode-switch { right:16px; bottom:27px; }
}
/* Shared sans-serif controls; the quiet beat stays inside a fine, stable outline. */
#app #open-cam-btn,#app #preview-next { font:600 12px/15px var(--font); letter-spacing:.01em; border:1px solid #ffffff38; background:#ffffff03; color:#e8eae8; box-shadow:none; animation:next-breath 4s ease-in-out infinite; }
#app #preview-next { animation:preview-next-beat 2.8s ease-in-out infinite; }
#app[data-view="map"] #open-cam-btn { border-width:2px; border-color:#ffffff59; animation-name:map-next-breath; }
#app #open-cam-btn:is(:hover,:focus-visible),#app #preview-next:is(:hover,:focus-visible) { animation:none; border-color:#ffffff65; background:#ffffff0c; }
#app[data-view="map"] #open-cam-btn:is(:hover,:focus-visible) { border-color:#ffffffb3; background:#ffffff16; box-shadow:0 0 14px #ffffff20; }
#app #open-cam-btn:focus-visible,#app #preview-next:focus-visible { outline:2px solid #e4e8e5; outline-offset:3px; }
@keyframes next-breath {
 0%,100% { background-color:#ffffff03; }
 50% { background-color:#ffffff0c; }
}
@keyframes map-next-breath {
 0%,100% { border-color:#ffffff59; background-color:#ffffff05; box-shadow:0 0 0 #ffffff00; }
 50% { border-color:#ffffffb3; background-color:#ffffff16; box-shadow:0 0 14px #ffffff2b; }
}
@keyframes preview-next-beat {
 0%,100% { color:#d8dad8; border-color:#ffffff38; background-color:#ffffff03; }
 50% { color:#fff; border-color:#ffffffa3; background-color:#ffffff0a; }
}
@media(prefers-reduced-motion:reduce) { #app #open-cam-btn,#app[data-view="map"] #open-cam-btn,#app #preview-next,.v3-map-cta,#v3-camera-down .v3-scroll-cue { animation:none; } }
@media(prefers-reduced-motion:reduce) { #v3-scroll { scroll-behavior:auto; }.v3-card-picture img,.v3-atmosphere-veil,.v3-atmosphere-still { transition:none; } }
/* Keep the active restriction and its reset beside Filters, even with the panel closed. */
#app[data-view="map"] .map-view { z-index:auto; }
.map-canvas { isolation:isolate; z-index:0; }
.map-filter-actions { display:flex; align-items:center; gap:12px; flex:none; }
.map-toolbar:has(#map-filter-panel:not([hidden])) { z-index:26; }
#map-filters-toggle[data-active="true"] { color:#efdfbf; border-color:#a28e65; background:#26251fee; font-weight:700; }
#map-clear-filters { min-height:38px; border:0; background:transparent; color:#e3ded3; font:700 11px var(--font); white-space:nowrap; cursor:pointer; text-decoration-color:#ffffff55; text-shadow:0 1px 5px #0008; }
#map-clear-filters:hover { color:#fff; text-decoration-color:#fff; }
#map-clear-filters:focus-visible { outline:1px solid #e2d3b5; outline-offset:3px; }
@media(max-width:680px) {
 .map-toolbar { flex-wrap:wrap; }
 .map-search-wrap { flex:1 0 100%; width:100%; }
 #map-filter-panel { top:96px; max-width:100%; }
 .map-results,.map-tile-notice { top:108px; }
}
/* Keep every welcome player behind the original soft, blurred atmosphere. */
#v3-atmosphere #landing-cam-wrap { filter:blur(20px) brightness(.5) saturate(1.1); transform:scale(1.05); pointer-events:none; }
#v3-atmosphere #landing-cam-wrap iframe { filter:none; transform:none; }
#v3-atmosphere #landing-cam-wrap :is(video,img) { object-fit:cover!important; }
