/* Five chapters of the same night landscape; the Lumi blue stays constant. */
#journey{--world-accent:#ffda64;--world-sky-top:#102344;--world-sky-bottom:#283a56;--world-hill-back:#1e3a59;--world-hill-front:#152d48;--world-panel:#25334e;transition:background-color .6s}
#journey[data-world="1"]{--world-accent:#99e4ce;--world-sky-top:#102d40;--world-sky-bottom:#24565d;--world-hill-back:#245363;--world-hill-front:#163c4b;--world-panel:#193e4d}
#journey[data-world="2"]{--world-accent:#c4adf3;--world-sky-top:#252346;--world-sky-bottom:#51446c;--world-hill-back:#403b67;--world-hill-front:#292b50;--world-panel:#353051}
#journey[data-world="3"]{--world-accent:#ffbf9d;--world-sky-top:#2d2947;--world-sky-bottom:#745267;--world-hill-back:#55425e;--world-hill-front:#342f4b;--world-panel:#43344c}
#journey[data-world="4"]{--world-accent:#9bcaff;--world-sky-top:#143555;--world-sky-bottom:#39647a;--world-hill-back:#305c70;--world-hill-front:#1c3c53;--world-panel:#263f5b}
.journey-stage{background:linear-gradient(125deg,#152c4a,var(--world-panel));border-color:color-mix(in srgb,var(--world-accent) 50%,#365276);grid-template-columns:1fr 1.1fr;padding:24px;gap:20px 34px;min-height:400px;transition:background .6s,border-color .6s}
.journey-stage #journey-detail{padding:12px 20px 0 0}.journey-stage #journey-detail h3{color:var(--world-accent);transition:color .4s}.journey-stage #journey-detail .eyebrow{color:#d2e2f7}.journey-stage #journey-next{margin:0 20px 22px 0;border-color:var(--world-accent);background:#14365e}.journey-stage #journey-next:hover{background:var(--world-accent);color:#0c223e}.journey-stage .journey-visual.journey-world{height:350px;max-width:none;width:100%;border-radius:24px;overflow:hidden;border:1px solid #9cbce02b;grid-row:1/3;position:relative;isolation:isolate;margin:0}
.world-landscape{position:absolute;inset:0;width:100%;height:100%;z-index:0}.world-landscape path,.world-landscape rect{transition:fill .7s,stroke .7s}.world-layer{opacity:0;translate:0 12px;transition:opacity .7s ease,translate .7s ease;transform-box:fill-box}.world-layer.is-revealed{opacity:1;translate:0 0}.world-layer[data-unlock="2"]{transition-delay:.1s}.world-layer[data-unlock="3"]{transition-delay:.18s}.world-layer[data-unlock="4"]{transition-delay:.26s}.journey-world .journey-mascot{position:absolute;inset:auto auto 48px 5%;width:76%;height:78%;max-height:280px;object-fit:contain;margin:0;z-index:2;filter:drop-shadow(0 10px 12px #07152e40)}.journey-world[data-world="4"] .journey-mascot{left:2%;width:78%}.world-caption{position:absolute;left:18px;bottom:16px;right:18px;z-index:3;font:800 14px/1.4 Nunito;color:var(--world-accent);text-align:center;letter-spacing:.02em}.world-frame-spark{position:absolute;right:18px;top:16px;font-size:22px;color:var(--world-accent);z-index:3}.world-arrive .journey-mascot{animation:world-character-in .7s cubic-bezier(.2,.7,.2,1)}.world-firefly,.lamp-aura{animation:world-firefly 3.5s ease-in-out infinite}.world-firefly.later{animation-delay:-1.8s}.journey-world:not(.art-visible) .world-firefly,.journey-world:not(.art-visible) .lamp-aura{animation-play-state:paused}
.journey-rail.light-map .rail-number{overflow:visible}.journey-rail.light-map .rail-number>span:last-child{position:absolute;right:-5px;bottom:-2px;z-index:3;width:25px;height:25px;display:grid;place-items:center;font-size:11px;border-radius:50%;background:#10294d;border:1px solid #7f99bd;color:#dae7fc}.journey-rail.light-map .stop-portrait{position:relative;width:76px;height:76px;object-fit:contain;z-index:2;opacity:.65;filter:saturate(.65);transform:translateY(-4px);transition:opacity .4s,filter .4s,translate .4s}.journey-rail.light-map .light-visited .stop-portrait{opacity:1;filter:none}.journey-rail.light-map .light-visited .rail-number{background:color-mix(in srgb,var(--stop-color) 16%,#102849);border-color:var(--stop-color)}.journey-rail.light-map .light-visited .light-core{background:color-mix(in srgb,var(--stop-color) 24%,#173454);border-color:var(--stop-color);box-shadow:0 0 24px color-mix(in srgb,var(--stop-color) 35%,transparent)}.journey-rail.light-map .light-current .light-core{animation:world-node-glow 3s ease-in-out infinite}.journey-rail.light-map .light-current strong{color:var(--stop-color)}.journey-rail.light-map .light-current .rail-number{box-shadow:0 0 0 7px color-mix(in srgb,var(--stop-color) 9%,transparent),0 0 0 15px color-mix(in srgb,var(--stop-color) 4%,transparent)}.journey-rail.light-map .light-visited .rail-number>span:last-child{background:var(--stop-color);color:#0b2140;border-color:var(--stop-color)}.journey-rail.light-map .light-current .stop-portrait{translate:0 -3px}.trail-lit{filter:drop-shadow(0 0 4px #b1d2ff66)}
.world-caption{width:fit-content;max-width:calc(100% - 36px);margin-inline:auto;background:#08172de6;border:1px solid #abc7e526;border-radius:20px;padding:5px 12px}.journey-stage{scroll-margin-top:12px}
@keyframes world-character-in{from{opacity:.2;translate:-12px 8px;scale:.96}to{opacity:1;translate:0;scale:1}}@keyframes world-firefly{50%{opacity:.4}}@keyframes world-node-glow{50%{box-shadow:0 0 35px color-mix(in srgb,var(--stop-color) 50%,transparent)}}
@media(max-width:800px){.journey-stage{grid-template-columns:1fr;gap:20px;padding:18px;min-height:0}.journey-stage .journey-visual.journey-world{grid-row:auto;height:310px}.journey-stage #journey-detail{padding:0 6px}.journey-stage #journey-next{margin:0 0 6px;width:100%}.journey-world .journey-mascot{width:78%;height:77%;left:2%;bottom:45px}.world-caption{font-size:13px;bottom:14px}.journey-rail.light-map .stop-portrait{width:68px;height:68px;max-width:none}.journey-rail.light-map .rail-number>span:last-child{right:-5px;bottom:0}.journey-rail.light-map .light-current .rail-number{box-shadow:none}.journey-rail.light-map .light-current .light-core{outline-color:var(--stop-color)}.journey-rail.light-map .light-visited .rail-number{background:transparent;border-color:transparent}}
@media(max-width:380px){.journey-stage .journey-visual.journey-world{height:260px}.journey-stage{padding:14px;border-radius:24px}.world-caption{font-size:12px;left:10px;right:10px}.journey-stage #journey-next{font-size:13px;padding-inline:12px}}
@media(prefers-reduced-motion:reduce){.world-layer{transition:none;translate:none}.world-arrive .journey-mascot{animation:none!important}}html[data-motion=off] .world-layer{transition:none;translate:none}
