/* The transport is enclosed by the frame, directly beneath the map. */
.route-player{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;outline:none;}
.route-player:focus-visible{outline:2px solid #dfc28a;outline-offset:5px;}
.route-player .picture{flex:1;min-height:0;}
#journeyControls{position:relative;inset:auto;display:flex;flex:none;flex-direction:column;align-items:stretch;gap:9px;width:100%;padding:12px 17px 8px;margin:12px 0 0;background:linear-gradient(120deg,#3a1622ee,#240e19f2);border:1px solid #d0ae6a55;border-radius:8px;color:#f5e5c7;box-shadow:0 5px 18px #28091633;backdrop-filter:none;font:500 11px/1.4 'DM Sans',sans-serif;}
#journeyControls[hidden]{display:none;}
.journey-progress-row{display:flex;align-items:center;gap:13px;min-width:0;}
.journey-stop{flex:none;min-width:48px;font:400 18px/1 'Londrina Solid',sans-serif;color:#e8cd97;letter-spacing:1px;font-variant-numeric:tabular-nums;}
#journeyTime{flex:none;font:500 10px/1.4 'DM Sans',sans-serif;white-space:nowrap;font-variant-numeric:tabular-nums;color:#e4ceae;min-width:75px;text-align:right;}
#journeySeek{appearance:none;-webkit-appearance:none;flex:1;min-width:0;width:auto;height:22px;margin:0;padding:0;border:0;background:transparent;cursor:pointer;--progress:0%;}
#journeySeek::-webkit-slider-runnable-track{height:4px;border-radius:8px;background:linear-gradient(to right,#dfbd7c var(--progress),#f3e2bc33 var(--progress));}
#journeySeek::-moz-range-track{height:4px;border-radius:8px;background:#f3e2bc33;}#journeySeek::-moz-range-progress{height:4px;background:#dfbd7c;}
#journeySeek::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:12px;height:12px;margin-top:-4px;border-radius:50%;background:#f4d69a;border:2px solid #fff1d2;box-shadow:0 1px 4px #0005;}
#journeySeek::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:#f4d69a;border:2px solid #fff1d2;}
.journey-toolbar{display:flex;align-items:center;gap:14px;min-width:0;}
.journey-transport,.journey-options{display:flex;align-items:center;gap:5px;flex:none;}
#journeyControls button{display:grid;place-items:center;flex:none;width:36px;height:36px;min-width:0;padding:8px;border:1px solid transparent;border-radius:50%;background:transparent;color:#ecd6af;cursor:pointer;}
#journeyControls button:hover{background:#fff1cc12;border-color:#d8b98244;}
#journeyControls button:focus-visible,#journeyChapter:focus-visible,#journeySeek:focus-visible{outline:2px solid #efcf8e;outline-offset:3px;}
#journeyControls button svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
#journeyControls .journey-play-toggle{width:42px;height:42px;padding:10px;background:#e4c285;color:#42162a;border-color:#f6e3b6;box-shadow:0 2px 8px #0002;}
#journeyControls .journey-play-toggle:hover{background:#f0d39c;}
#journeyControls button[aria-pressed=true]{color:#f6e4ba;border-color:#dfbd7c88;background:#d3b37519;}
#journeyChapter{display:block;flex:1;min-width:0;width:auto;max-width:300px;margin:0 auto;padding:9px 27px 9px 10px;border:1px solid #e1be7940;border-radius:4px;background:#ffffff06 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ead3a8' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 9px center/12px no-repeat;color:#f0dbb7;appearance:none;-webkit-appearance:none;font:400 16px/1.2 'Londrina Solid',sans-serif;text-overflow:ellipsis;}
#journeyChapter option{background:#30141e;color:#f0dbb7;font:400 13px 'DM Sans',sans-serif;}
.journey-attribution{align-self:flex-end;font:400 8px/1.3 'DM Sans',sans-serif;text-decoration:none;color:#cbb798;opacity:.85;}
.journey-attribution:hover{opacity:1;}
.route-player:fullscreen,.route-player:-webkit-full-screen,.route-player.is-expanded{display:flex;position:fixed;inset:0;z-index:9999;box-sizing:border-box;width:100vw;height:100dvh;max-width:none;padding:18px 22px;background:#100b10;gap:0;overflow:hidden;}
.route-player:fullscreen .picture,.route-player:-webkit-full-screen .picture,.route-player.is-expanded .picture{filter:none;box-shadow:none;min-height:0;}
.route-player:fullscreen .hanging-hook,.route-player.is-expanded .hanging-hook{display:none;}
.route-player:fullscreen .frame-outer,.route-player:fullscreen .frame-carved,.route-player:fullscreen .frame-bevel,.route-player:fullscreen .frame-liner,.route-player.is-expanded .frame-outer,.route-player.is-expanded .frame-carved,.route-player.is-expanded .frame-bevel,.route-player.is-expanded .frame-liner{padding:0;border:0;background:none;box-shadow:none;height:100%;min-height:0;}
.route-player:fullscreen .screen,.route-player.is-expanded .screen{height:100%;aspect-ratio:auto;background:#100b10;box-shadow:none;}
.route-player:fullscreen #journeyControls,.route-player.is-expanded #journeyControls{width:min(1100px,100%);align-self:center;margin-top:9px;}
html.route-player-expanded,html.route-player-expanded body{overflow:hidden!important;}
@media(max-width:650px){
 .route-player{display:block;flex:none;min-height:0;}
 #journeyControls{padding:9px 10px 7px;margin-top:13px;gap:5px;border-radius:6px;}
 .journey-progress-row{gap:8px;}.journey-stop{font-size:15px;min-width:42px;}#journeyTime{font-size:9px;min-width:64px;}
 .journey-toolbar{gap:6px;flex-wrap:wrap;justify-content:space-between;}
 .journey-transport,.journey-options{gap:2px;}#journeyControls button{width:35px;height:40px;padding:8px;}#journeyControls .journey-play-toggle{width:40px;height:40px;}
 #journeyChapter{order:3;flex-basis:100%;max-width:none;width:100%;font-size:16px;padding-top:8px;padding-bottom:8px;}
 .journey-attribution{font-size:7px;margin-top:2px;}
 .route-player:fullscreen,.route-player:-webkit-full-screen,.route-player.is-expanded{display:flex;padding:10px;}
 .route-player:fullscreen .picture,.route-player.is-expanded .picture{height:auto!important;flex:1;}
 .route-player:fullscreen #journeyControls,.route-player.is-expanded #journeyControls{flex:none;}
}
@media(prefers-reduced-motion:reduce){#journeyControls *{scroll-behavior:auto;}}

/* A compact transport bar; the image keeps its complete composition. */
#routePlayer .native-map-film{object-fit:cover;background:#101716;}
@media(min-width:651px){
 #journeyControls{display:grid;grid-template-columns:auto minmax(140px,200px) minmax(90px,1fr) 76px auto;gap:0 12px;padding:7px 13px 16px;min-height:67px;}
 #journeyControls .journey-progress-row,#journeyControls .journey-toolbar{display:contents;}
 .journey-stop{display:none;}.journey-transport{grid-column:1;grid-row:1;}#journeyChapter{grid-column:2;grid-row:1;width:100%;max-width:none;}
 #journeySeek{grid-column:3;grid-row:1;width:100%;align-self:center;}#journeyTime{grid-column:4;grid-row:1;align-self:center;}.journey-options{grid-column:5;grid-row:1;}
 .journey-attribution{position:absolute;right:14px;bottom:4px;}
 body:has(#routePanel:not([hidden]) #routePlayer.has-started) .christmas-countdown{display:none;}
 body:has(#routePanel:not([hidden]) #routePlayer.has-started) .introduction{padding:4px 0 7px;}
 body:has(#routePanel:not([hidden]) #routePlayer.has-started) .introduction h1{font-size:30px;}
 #routePanel .invitation-replay{padding:5px 12px;margin:7px auto 2px;font-size:10px;}
}
#routePanel #routePlayer:is(:fullscreen,.is-expanded) .screen{height:100%;aspect-ratio:auto;}
#routePanel #routePlayer:is(:fullscreen,.is-expanded) :is(.frame-outer,.frame-carved,.frame-bevel,.frame-liner){height:100%;}
@media(min-width:651px) and (max-width:900px){#journeyControls{grid-template-columns:auto minmax(130px,180px) minmax(50px,1fr) 64px auto;gap:0 6px;}#journeyControls button{width:30px;padding:6px;}.journey-transport,.journey-options{gap:1px;}}

.journey-pub-sign{position:absolute;z-index:3;width:min(440px,calc(100% - 24px));height:106px;display:flex;align-items:center;gap:15px;padding:10px;background:linear-gradient(115deg,#183d30,#102c24);border:1px solid #d8b771;border-radius:5px;box-shadow:0 5px 20px #0006,inset 0 0 0 4px #0b241c;pointer-events:none;will-change:opacity;}
.journey-pub-sign[hidden]{display:none;}
.journey-pub-sign::before{content:'';position:absolute;left:var(--stem-x,50%);width:1px;height:13px;background:#d8b771;box-shadow:1px 0 #082017;}
.journey-pub-sign[data-placement=below]::before{bottom:100%;}.journey-pub-sign[data-placement=above]::before{top:100%;}
.journey-pub-sign img{width:84px;height:84px;flex:none;object-fit:cover;border-radius:2px;border:1px solid #d8b77155;}
.pub-sign-copy{flex:1;min-width:0;text-align:left;}.pub-sign-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;}
#pubSignStop{color:#d9bd88;font:400 14px/1.1 'Londrina Solid',sans-serif;letter-spacing:1.2px;}
#pubSignTime{padding:3px 10px;border-radius:14px;background:#e3c68b;color:#1c3c2c;font:400 19px/1 'Londrina Solid',sans-serif;white-space:nowrap;}
#pubSignName{display:block;margin:5px 0 4px;color:#fff2d4;font:400 29px/1 'Londrina Solid',sans-serif;white-space:nowrap;}
.pub-sign-edition{display:block;color:#c4ac83;font:500 7px/1 'DM Sans',sans-serif;letter-spacing:1.5px;}
@media(max-height:800px) and (min-width:651px){.journey-pub-sign{height:94px;width:390px;gap:12px;padding:9px;}.journey-pub-sign img{width:74px;height:74px;}#pubSignName{font-size:26px;}}
@media(max-width:650px){.journey-pub-sign{height:76px;width:min(310px,calc(100% - 16px));padding:7px;gap:10px;}.journey-pub-sign img{width:60px;height:60px;}#pubSignName{font-size:21px;margin:4px 0;}#pubSignStop{font-size:11px;letter-spacing:.8px;}#pubSignTime{font-size:16px;padding:3px 8px;}.pub-sign-edition{font-size:5.5px;letter-spacing:1px;}}

.journey-attribution a{color:inherit;text-decoration:none;} .journey-attribution a:hover{text-decoration:underline;}
#routeAudio::cue{color:#fff3dc;background:#26101ddd;font-family:'DM Sans',sans-serif;}

.journey-santa-actor{position:absolute;z-index:2;pointer-events:none;isolation:isolate;}
.journey-santa-actor[hidden]{display:none;}.journey-santa-actor canvas{position:relative;display:block;width:100%;height:100%;}
.actor-ground-shadow{position:absolute;left:37%;bottom:10%;width:28%;height:4%;border-radius:50%;background:#0b171850;}

.journey-pub-sign[data-placement=right]::before{left:auto;right:100%;top:var(--stem-y,50%);width:var(--stem-length,28px);height:1px;}
.journey-pub-sign[data-placement=left]::before{left:100%;top:var(--stem-y,50%);width:var(--stem-length,28px);height:1px;}
@media(max-width:650px){#routePanel .screen{aspect-ratio:4/3;}}

.journey-pub-sign[data-placement=below]::before{height:var(--stem-height,13px);}

/* Keep fullscreen available on phones despite the legacy wall stylesheet. */
#journeyControls #exploreJourney{display:inline-grid;}

/* The gold frame encloses both the film and its bottom transport rail. */
#routePanel .frame-liner{display:flex;flex-direction:column;}
#routePanel .screen{flex:1;min-height:0;height:auto;}
#journeyControls{width:100%;margin:0;border:0;border-top:1px solid #d8b66c66;border-radius:0;box-shadow:inset 0 1px #f5dfaa0a;background:linear-gradient(120deg,#30131d,#1e1018);}
#routePlayer:is(:fullscreen,.is-expanded) #journeyControls{width:100%;margin:0;align-self:stretch;}
#routePanel #routePlayer:is(:fullscreen,.is-expanded) .screen{height:auto;flex:1;}
@media(max-width:650px){#routePanel .screen{flex:none;aspect-ratio:4/3;}#journeyControls{margin:0;}#routePanel #routePlayer:is(:fullscreen,.is-expanded) .screen{flex:1;aspect-ratio:auto;}}

.cesium-map{position:absolute;inset:0;background:#18251f;}
.cesium-map .cesium-viewer,.cesium-map .cesium-viewer-cesiumWidgetContainer,.cesium-map .cesium-widget,.cesium-map canvas{width:100%;height:100%;}
.cesium-map .cesium-viewer-bottom{left:6px;bottom:3px;max-width:calc(100% - 12px);font-size:9px;background:#17211caa;color:#fff;}
.cesium-map .cesium-credit-logoContainer img{max-height:18px;}.cesium-map .cesium-credit-textContainer{font-size:9px;}
#screen{background:#18251f url('native-route-poster-hd-v2.jpg') center/cover;}
#journeyCaption{position:absolute;z-index:5;bottom:12px;left:50%;transform:translateX(-50%);width:min(630px,calc(100% - 26px));margin:0;padding:7px 12px;text-align:center;background:#20121be8;color:#fff0d6;font:500 15px/1.4 'DM Sans',sans-serif;pointer-events:none;border-radius:3px;}
.scene-preview-label{position:absolute;z-index:6;left:12px;top:10px;padding:5px 9px;background:#401923e8;color:#f4ddae;font:11px 'DM Sans',sans-serif;}
@media(max-width:650px){#journeyCaption{font-size:11px;bottom:20px;}.cesium-map .cesium-viewer-bottom{font-size:7px;}}

/* Keep the complete recorded composition, including its data credits. */
#routePlayer video.native-map-film{display:block;object-fit:contain;background:#101716;}
#routeAudio::cue{font-family:"DM Sans",sans-serif;color:#fff;background:#101716dd;}

/* Fill the available desktop wall rather than shrinking to the film ratio. */
@media(min-width:651px){
 #routePanel .gallery{max-width:none;padding-top:16px;}
 #routePlayer .picture{flex:1;min-height:0;width:100%;height:auto;margin:0;}
 #routePlayer .screen{aspect-ratio:auto;flex:1;}
 #journeyControls{grid-template-columns:auto minmax(100px,1fr) 78px auto;gap:0 15px;padding:7px 13px 5px;}
 #journeySeek{grid-column:2;}#journeyTime{grid-column:3;}.journey-options{grid-column:4;}
 #journeyCredit{grid-column:1/-1;grid-row:2;}
}
#journeyControls button svg,#journeyControls button svg *{pointer-events:none;}
#routePlayer .journey-attribution{position:static;flex:none;background:#20121a;padding:7px 13px;display:flex;align-items:center;gap:12px;align-self:stretch;justify-content:flex-end;width:100%;padding-top:5px;border-top:1px solid #dec58d15;font:400 8px/1.5 'DM Sans',sans-serif;color:#c4b49a;opacity:1;}
#journeyCredit img{width:auto;height:16px;flex:none;}
#routePlayer video.native-map-film{object-fit:cover;}
@media(max-width:650px){#journeyControls{gap:6px;}#journeyCredit{justify-content:flex-start!important;gap:8px!important;font-size:7px!important;}#journeyCredit img{height:16px;}}

#routePlayer:is(:fullscreen,.is-expanded) video.native-map-film{object-fit:contain;}

/* Older captures have baked credit rails; their attribution now lives below the picture. */
#routePlayer.legacy-film .screen{background:#101716;}
#routePlayer.legacy-film video.native-map-film{height:120%;bottom:auto;object-fit:cover;}
#routePlayer.legacy-film:is(:fullscreen,.is-expanded) video.native-map-film{inset:auto 0;top:50%;width:100%;height:auto;transform:translateY(-50%);clip-path:inset(0 0 16% 0);object-fit:contain;}

.route-overview{position:absolute;z-index:6;top:12px;left:12px;width:clamp(130px,19%,230px);overflow:hidden;border:1px solid #d8bb7c99;border-radius:7px;background:#10352de8;box-shadow:0 4px 16px #0005;pointer-events:auto;backdrop-filter:blur(8px);}
.route-overview-title{display:block;padding:8px 8px 0;color:#f0dfb7;font:600 8px/1.2 'DM Sans',sans-serif;letter-spacing:1.2px;text-align:center;}
.route-overview svg{display:block;width:100%;height:auto;}
@media(max-width:650px){.route-overview{top:8px;left:8px;width:106px;border-radius:5px;}.route-overview-title{font-size:6px;letter-spacing:.5px;padding:5px 4px 0;}}

.route-overview-title{white-space:nowrap;}

.route-overview-open{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer}.route-overview-open:hover{background:#e7ce9810}.route-overview-open:focus-visible{outline:3px solid #f4dfaa;outline-offset:-3px}

.route-overview-open{text-decoration:none;}
