.journey-player{display:grid;grid-template-rows:minmax(280px,1fr) auto;height:calc(100dvh - 104px);min-height:420px;margin:8px 24px 12px;border-radius:18px;overflow:hidden;background:#f8f8f2;box-shadow:0 6px 26px #263d4210}
.journey-map-stage{position:relative;min-height:0;isolation:isolate}.journey-map.world-map{position:absolute!important;inset:0;height:100%;min-height:0;border-radius:0}.journey-title{position:absolute;z-index:1;top:14px;left:14px;max-width:calc(100% - 84px);padding:8px 12px;border-radius:10px;background:#fffffff0;font-size:14px;letter-spacing:-.02em;line-height:1.3;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.journey-map .world-map-tools{right:12px;top:110px;bottom:auto}.journey-map .world-route-navigation{display:none}
.journey-controls{position:relative;background:var(--surface,#fafbf7);border-top:1px solid #4b60491c;padding:8px 16px;color:var(--ink,#283b32)}.journey-now{display:flex;align-items:center;gap:10px;min-height:24px;font-size:12px}.journey-stop-number{font:10px 'Geist Mono',monospace;color:#6c786f;white-space:nowrap}.journey-current-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.journey-distance{font:11px 'Geist Mono',monospace;white-space:nowrap;color:#5a7067}.journey-transport{display:flex;align-items:center;gap:4px}.journey-transport .v-btn{flex-shrink:0}.journey-seek{flex:1;min-width:35px;min-height:44px;margin:0 10px;padding:0;accent-color:#6b5b99;border:0;background:transparent}.journey-time{font:10px 'Geist Mono',monospace;white-space:nowrap;margin-right:12px}.journey-route-status{display:flex;align-items:center;gap:8px;font-size:12px;color:#705d42}.journey-route-status span{flex:1}.journey-details{max-height:30dvh;overflow:auto;border-top:1px solid #64715b22;margin-top:8px;padding:14px 4px;animation:journey-detail-in .18s ease-out}.journey-details h2{font-size:20px;margin:0 0 10px}.journey-details p{font-size:14px;max-width:68ch;white-space:pre-wrap}.journey-details .journey-source{font-size:12px;color:#657064;margin-top:12px}
@keyframes journey-detail-in{from{opacity:0;transform:translateY(7px) scale(.97)}to{opacity:1;transform:none}}
[data-theme='dark'] .journey-controls{background:#24302d;color:#eef1e7}[data-theme='dark'] .journey-title{background:#25342f;color:#f0f1e6}
@media(max-width:700px){.journey-player{margin:4px 8px 6px;height:calc(100dvh - 116px);border-radius:12px}.journey-controls{padding:7px 8px}.journey-time{display:none}.journey-seek{margin:0 4px}.journey-title{font-size:12px;max-width:calc(100% - 80px)}}
@media(prefers-reduced-motion:reduce){.journey-details{animation:none}}
[data-reduce-motion='true'] .journey-details{animation:none}

/* Keep account state clear of the player's icon controls. */
body:has(.journey-player) .account-save-state{bottom:112px;right:42px}
@media(max-width:700px){body:has(.journey-player) .account-save-state{bottom:112px;right:20px}}
.journey-facts ul{margin:12px 0 0;padding-left:18px;font-size:13px}.journey-facts li{margin:4px 0}.journey-facts small{color:#705d42}
.journey-chapters{display:flex;align-items:center;gap:4px;overflow:auto}.journey-chapters button{position:relative;flex:1;min-width:20px;height:24px;border:0;background:transparent;display:grid;place-items:center}.journey-chapters button::before{content:'';position:absolute;left:0;right:0;height:2px;background:#7d8b824f}.journey-chapters button span{position:relative;display:block;width:8px;height:8px;border:1px solid #766c91;border-radius:50%;background:#fbfaf5}.journey-chapters .past span,.journey-chapters .current span{background:#6b5b99}.journey-chapters .current span{width:12px;height:12px;box-shadow:0 0 0 3px #6b5b9926}.journey-detail-tabs{display:flex;gap:6px;margin:0 0 12px}.journey-detail-tabs button{min-height:44px;border:1px solid #677a6a40;border-radius:8px;padding:0 12px;background:transparent;color:inherit;text-transform:capitalize}.journey-detail-tabs button[aria-pressed='true']{background:#7764aa22}.journey-details h3{font-size:16px;margin-bottom:8px}
body:has(.journey-player) .account-save-state{bottom:136px}
.journey-shadow-timeline{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:6px 0;border-bottom:1px solid var(--border);font-size:12px}
.journey-shadow-timeline input{width:auto;flex:1;min-width:72px;margin:0}
.journey-shadow-timeline p{flex-basis:100%;font-size:11px;color:var(--ink-muted)}

.journey-player{grid-template-areas:"map" "controls"}
.journey-map-stage{grid-area:map}
.journey-controls{grid-area:controls}
.journey-player.details-open{grid-template-columns:minmax(0,1fr) minmax(255px,340px);grid-template-areas:"map details" "controls controls"}
.journey-details{grid-area:details;min-height:0;max-height:none;margin:0;padding:12px 16px;border:0;border-left:1px solid var(--border);background:var(--surface);color:var(--ink)}
.journey-details-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.journey-details-heading h2{margin:0}
@media(max-width:700px){
 .journey-player.details-open{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(155px,1fr) auto auto;grid-template-areas:"map" "details" "controls"}
 .journey-details{max-height:34dvh;border-left:0;border-top:1px solid var(--border)}
}
.journey-source-links{list-style:none;padding:0;display:grid;gap:6px}
.journey-source-links a{text-underline-offset:3px}
.journey-period{font-size:10px;font-weight:600;text-transform:capitalize;padding:2px 7px;border-radius:10px;background:#7764aa22;white-space:nowrap}
.journey-suggestion{margin-top:14px;padding:8px 10px;border-left:2px solid var(--prototype-accent);background:#7764aa12}
.journey-suggestion strong{font-size:11px}

/* Cinematic playback: caption cards, credits, buildings legend and recording. Text stays on the map stage, never over the controls. */
.journey-caption{position:absolute;z-index:2;pointer-events:none;color:#1f2f29;background:#fffef8f2;border-radius:12px;box-shadow:0 6px 24px #122a3026}
.journey-caption strong{display:block;letter-spacing:-.02em;line-height:1.2}.journey-caption p{margin:6px 0 0;line-height:1.45;white-space:normal}
.journey-caption.is-place{left:16px;bottom:24px;max-width:min(420px,calc(100% - 104px));padding:10px 14px}.journey-caption.is-place strong{font-size:17px}.journey-caption.is-place p{font-size:13px}
.journey-caption.is-title{inset:0;margin:auto;width:min(560px,calc(100% - 32px));height:fit-content;padding:22px 26px;text-align:center}.journey-caption.is-title strong{font-size:30px}.journey-caption.is-title p{font-size:15px;max-width:46ch;margin:10px auto 0}
.journey-caption-enter-active,.journey-caption-leave-active{transition:opacity .6s ease,translate .6s ease}.journey-caption-enter-from,.journey-caption-leave-to{opacity:0;translate:0 8px}
.journey-caption.is-still,.journey-caption.is-still.journey-caption-enter-active,.journey-caption.is-still.journey-caption-leave-active{transition:none}
.journey-credits{position:absolute;z-index:4;inset:0;margin:auto;width:min(460px,calc(100% - 32px));height:fit-content;max-height:calc(100% - 32px);overflow:auto;padding:18px 22px;border-radius:12px;background:#fffef8f7;color:#1f2f29;box-shadow:0 6px 24px #122a3026;text-align:center;animation:journey-detail-in .4s ease-out}
.journey-credits h2{font-size:13px;letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;color:#5d6b63}.journey-credits ul,.journey-credit-list{list-style:none;margin:0;padding:0}.journey-credits li{font-size:13px;line-height:1.5;margin:3px 0}.journey-credit-list li{font-size:13px;margin:4px 0}
.journey-credits.is-still{animation:none}
.journey-player .journey-building-legend{top:56px;left:14px;bottom:auto;width:230px;max-height:calc(100% - 170px)}
.journey-recording{display:flex;align-items:center;gap:8px;font-size:12px;color:#5a5070;min-height:32px}.journey-recording span{flex:1}.journey-recording-save{font-weight:600;color:#5b4796;text-decoration:underline;white-space:nowrap}
.journey-transport .is-recording{color:#c0392b}
[data-theme='dark'] .journey-caption,[data-theme='dark'] .journey-credits,[data-appearance='dark'] .journey-caption,[data-appearance='dark'] .journey-credits{background:#25342ff2;color:#f0f1e6}[data-appearance='dark'] .journey-credits h2{color:#c6cdbf}[data-appearance='dark'] .journey-recording{color:#d6cdea}[data-appearance='dark'] .journey-recording-save{color:#c9b9f2}
@media(max-width:700px){
 .journey-caption.is-place{left:10px;bottom:14px;max-width:calc(100% - 84px);padding:8px 11px}.journey-caption.is-place strong{font-size:15px}.journey-caption.is-place p{font-size:12px}
 .journey-caption.is-title{inset:auto 10px 108px 10px;margin:0;width:auto;padding:14px 16px}.journey-caption.is-title strong{font-size:22px}.journey-caption.is-title p{font-size:13px}
 .journey-player .journey-building-legend{top:48px;left:10px;width:min(210px,calc(100% - 70px));max-height:32%}
}
@media(prefers-reduced-motion:reduce){.journey-caption,.journey-caption-enter-active,.journey-caption-leave-active{transition:none}.journey-credits{animation:none}}
[data-reduce-motion='true'] .journey-caption,[data-reduce-motion='true'] .journey-caption-enter-active,[data-reduce-motion='true'] .journey-caption-leave-active{transition:none}[data-reduce-motion='true'] .journey-credits{animation:none}
