/* Full-window route, rendered outside the scaled lesson. */
#course-map{position:fixed;inset:var(--menu-top,72px) 0 0;z-index:60;--menu-base:#27264A;--menu-primary:#5E54B8;--menu-accent:#E77962;--menu-paper:#F6F3FA;background:var(--menu-paper);color:#27264A;container-type:size}.map-open .course-header{background:var(--paper)}
.journey-panel{height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;padding:12px 28px 12px;gap:6px;position:relative;isolation:isolate;background:var(--menu-paper)}
/* Soften only the animated backdrop; scene art and road retain their color. */
.journey-panel::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;opacity:.8;background:linear-gradient(135deg,#E7E3F5 0%,#C5BEE6 22%,#938CCF 42%,#B1A9DD 64%,#D7D2EE 85%,#B8B0E0 100%);background-size:220% 220%;animation:journey-cool-drift 12s ease-in-out infinite alternate}
.journey-panel::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(to left,#FBFAFFCC 0%,#FBFAFFCC 42%,#FBFAFF66 67%,#FBFAFF00 100%);opacity:0;transition:opacity .3s ease}
.journey-panel[data-view=scene]::after,.journey-panel[data-view=index]::after{opacity:1}
@keyframes journey-cool-drift{from{background-position:0% 0%}to{background-position:100% 100%}}
.journey-panel[data-reduced=true]::before{animation:none}
.journey-panel[data-reduced=true]::after{transition:none}
/* The reading veil stays behind the artwork; it never fades the map itself. */
.journey-panel .journey-eyebrow,.journey-panel .journey-toolbar p,.journey-panel .journey-map-key,.journey-panel .journey-footer,.journey-panel .journey-footer button,.journey-panel .journey-heading .close-label{color:#27264A}
.portrait .journey-panel::after{background:linear-gradient(to top,#FBFAFFCC 0%,#FBFAFFCC 52%,#FBFAFF59 72%,#FBFAFF00 100%)}
.journey-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.journey-heading h1{font-size:30px;letter-spacing:-.8px;line-height:1.1;margin:4px 0;color:#373089}.journey-eyebrow{font-size:9px;font-weight:700;letter-spacing:1.5px;color:#6c6688;margin:0}.journey-heading-actions{display:flex;align-items:center;gap:10px;flex:none}.journey-heading .close-button{position:static;display:flex;align-items:center;gap:9px;padding:0 0 0 8px;background:transparent}.journey-heading .close-label{display:inline!important;font-size:12px;color:#6a5d80}.journey-heading .close-glyph{display:grid!important;place-items:center;width:34px;height:34px;font-size:25px}
.journey-toolbar{display:flex;align-items:center;gap:14px;min-height:20px}.journey-toolbar p{margin:0 auto 0 0;font-size:12px;line-height:1.3;color:#716581}.journey-view-controls{display:flex;gap:7px}.journey-view-controls button,.journey-index-toggle,.journey-resume{padding:8px 12px;border:1px solid #D8D6EA;border-radius:9px;background:#FBFAFF;color:#51479C;font-size:12px;white-space:nowrap}.journey-index-toggle:hover,.journey-index-toggle[aria-pressed=true]{background:#fff;border-color:#8879ba;box-shadow:0 2px 8px #5E54B814}.journey-resume{background:#5E54B8;border-color:#5E54B8;color:#fff;font-weight:650}
.journey-layout{min-height:0;display:grid;grid-template-columns:minmax(0,1fr);gap:24px}.journey-panel[data-view=scene] .journey-layout{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.journey-panel[data-view=index] .journey-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1fr);max-width:1120px;width:100%;justify-self:center}
.journey-landscape{min-width:0;min-height:0;position:relative;isolation:isolate;display:grid;grid-template-rows:minmax(0,1fr) auto}.journey-viewport{position:relative;min-height:0;min-width:0;overflow:clip;isolation:isolate}.journey-world{position:absolute;left:0;top:0;transform-origin:0 0;container-type:size}
.journey-terrain,.journey-road-layer,.journey-scene-layer,.journey-regions{position:absolute;inset:0;pointer-events:none}.journey-terrain{z-index:0}.journey-terrain img{position:absolute;object-fit:contain;user-select:none;opacity:.62}.journey-terrain-mine{left:-3%;top:-6%;width:94%;height:54%}.journey-terrain-coast{right:-3%;bottom:-4%;width:96%;height:53%}
.journey-region{position:absolute;left:2%;width:96%;height:29%;border-radius:44% 50% 45% 38%;background:radial-gradient(ellipse,#E4E0F480,transparent 72%)}.journey-region:nth-child(2){background:radial-gradient(ellipse,#DEE4F080,transparent 72%)}.journey-region:nth-child(3){background:radial-gradient(ellipse,#E2E3F480,transparent 72%)}
.journey-road-layer{z-index:1}.journey-road{display:block;width:100%;height:100%;overflow:visible}.journey-road path{fill:none;stroke-linecap:round;stroke-linejoin:round}.journey-road-edge{stroke:#fff;stroke-width:3.6}.journey-road-surface{stroke:#8E88C8;stroke-width:2.7}.journey-road-line{stroke:#e9e8f7;stroke-width:.2;stroke-dasharray:1.3 1.4}.journey-road-stop{fill:#fff;stroke:#5E54B8;stroke-width:.35}.journey-road-stop[data-active=true]{fill:#E77962;stroke:#BC604E;stroke-width:.5}.journey-road-arrow{stroke:#fff;stroke-width:.4}
.journey-scene-layer{z-index:2}.journey-scene-art{position:absolute;width:var(--scene-width);height:var(--scene-height);transform:translate(-50%,-50%);object-fit:contain;object-position:center;user-select:none;image-rendering:auto}
.journey-truck{position:absolute;width:7%;z-index:3;transform:translate(-50%,-82%);pointer-events:none;filter:drop-shadow(0 2px 2px #31246425)}.journey-truck img{display:block;width:100%;height:auto;transform-origin:center}.journey-truck[data-facing=left] img{transform:scaleX(-1)}
.journey-stations{position:absolute;inset:0;list-style:none;margin:0;padding:0;z-index:4}.journey-stations li{position:absolute;left:var(--stop-x);top:var(--stop-y);width:var(--label-width,16%);transform:translate(-50%,0)}.journey-station{position:relative;width:100%;display:flex;gap:5px;align-items:flex-start;text-align:left;padding:7px 6px;background:#ffffffed;border:1px solid #e4deef;border-radius:11px;color:#27264A;box-shadow:0 3px 8px #4d3f7c08;min-height:40px;transition:background .2s,border-color .2s,transform .2s}
.journey-stop-number{flex:none;width:22px;height:22px;display:grid;place-items:center;border:1.5px solid #9183bb;background:#f2eefb;border-radius:50%;color:#53438b;font-size:11px;font-weight:750}.journey-stop-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.journey-stop-copy strong{font-size:12px;line-height:1.13;font-weight:650}.journey-stop-copy>[data-station-progress]{font-size:8px;line-height:1.15;color:#88768e}
.journey-station.is-case{background:#FFF8F6;border-color:#f1d7d3}.journey-station.is-case .journey-stop-number{color:#AA5345;border-color:#dc9a96;background:#FFF0EC}.journey-station[aria-pressed=true],.journey-station:hover{border-color:#9b89bd;background:#EAE8F8;transform:translateY(-2px)}.journey-station.is-case[aria-pressed=true],.journey-station.is-case:hover{border-color:#db9d96;background:#FFEBE5}.journey-station[data-status=reviewed] .journey-stop-number{background:#e1f2ec;border-color:#82bba8;color:#2b7561}.journey-station[data-status=reviewed] [data-station-progress]{color:#327c66}.journey-current{position:absolute;right:7px;top:-9px;padding:2px 6px;border-radius:6px;background:#B75B49;color:#fff;font-size:8px;font-weight:700;line-height:1.2}
.journey-map-key{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 12px;color:#756782}.journey-map-key strong{font-size:11px;font-weight:500}.journey-map-key span{font-size:10px}
.journey-panel[data-view=scene] .journey-stations{visibility:hidden}.journey-panel[data-view=scene] .journey-landscape{background:transparent;border-radius:20px}.journey-panel[data-view=scene] .journey-viewport{border-radius:20px 20px 0 0}
.journey-scene-caption{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px 20px;background:#E7E7F5;border-radius:0 0 20px 20px}.journey-scene-number{font-size:29px;font-weight:700;color:#B75B49}.journey-scene-caption p{font-size:17px;line-height:1.3;margin:0;color:#424166}.journey-scene-caption>div{display:flex;align-items:center;gap:12px;font-size:11px;color:#796b89}.journey-scene-caption button,.journey-page-controls button{background:#fff;border:1px solid #e1d9ed;border-radius:8px;color:#5E54B8;width:32px;height:28px}
.journey-directory{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:9px;padding:12px 4px 0 8px}.journey-directory h2{font-size:27px;line-height:1.1;margin:6px 0 9px;color:#5E54B8;letter-spacing:-.5px}.journey-directory header>p:last-child{font-size:12px;line-height:1.4;color:#514969;margin:0}
.journey-screen-list{list-style:none;margin:0;padding:0;display:grid;grid-template-rows:repeat(6,minmax(0,1fr));gap:4px;min-height:0}.journey-screen-list li{min-height:0}.journey-screen-list button{width:100%;height:100%;display:grid;grid-template-columns:32px minmax(0,1fr) auto;grid-template-rows:auto auto;align-content:center;align-items:center;gap:4px 10px;text-align:left;padding:8px 9px;border:1px solid transparent;border-bottom-color:#e6e0ef;border-radius:8px;background:transparent;color:#27264A}.journey-screen-list button:hover,.journey-screen-list button[aria-current=page]{background:#f0ecf8;border-color:#ddd3eb}.journey-page-number{grid-row:1/3;font-size:12px;color:#72516E}.journey-screen-list strong{font-size:16px;line-height:1.2;font-weight:600}.journey-state{grid-column:2;grid-row:2;font-size:10px;line-height:1.2;color:#514969}.journey-state[data-status=reviewed],.journey-state[data-status=assisted]{color:#23634D}.journey-topic-arrow{grid-column:3;grid-row:1/3;font-size:18px;color:#6C6093}
.journey-page-controls{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#514969}.journey-detail{font-size:10px;line-height:1.4;color:#514969;margin:0;min-height:20px}
.journey-index{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px}.journey-index h2{margin:8px 0;font-size:23px;color:#27264A}.journey-index ol{list-style:none;padding:0;margin:0;display:grid;grid-template-rows:repeat(10,minmax(0,1fr));gap:4px;min-height:0}.journey-index li{min-height:0}.journey-index button{width:100%;height:100%;display:grid;grid-template-columns:27px minmax(0,1fr) auto;align-items:center;gap:8px;padding:4px 10px;border:1px solid transparent;border-radius:9px;text-align:left;background:#EDECF7;color:#424166}.journey-index button[aria-pressed=true]{background:#fff2ed;border-color:#e0b0b1}.journey-index strong{font-size:14px;line-height:1.1}.journey-index small{display:block;font-size:9px;margin-top:3px;color:#514969}.journey-index-number{font-size:13px;color:#72516E}.journey-index-current{font-size:9px;color:#a24e6b}
.journey-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:#91829e;border-top:1px solid #eee9f4;padding-top:9px}.journey-footer button{padding:3px 0;font-size:10px;white-space:nowrap;background:transparent;color:#7a648f;text-decoration:underline;text-underline-offset:3px}.journey-footer [aria-pressed=true]{color:#5E54B8;font-weight:700}
.journey-reset{position:absolute;inset:24% 25%;z-index:10;background:#fcfbff;border:1px solid #ddd5eb;border-radius:20px;box-shadow:0 12px 50px #5E54B825;padding:32px;display:flex;flex-direction:column;justify-content:center}.journey-reset h2{font-size:26px;color:#5E54B8;margin:0 0 15px}.journey-reset p{font-size:17px;line-height:1.5;color:#554b65;margin:0}.journey-reset>div{display:flex;gap:12px;margin-top:20px}.journey-reset button{padding:12px;border-radius:9px;border:1px solid #d9cfe7;background:#f2eef8;color:#5E54B8;font-size:14px}.journey-reset [data-course-reset-confirm]{background:#5E54B8;color:#fff}
.journey-panel button:focus-visible{outline:3px solid #E77962;outline-offset:3px}.journey-panel h1:focus-visible,.journey-panel h2:focus-visible{outline:2px solid #a496c1;outline-offset:3px}#journey-launch{position:absolute;bottom:0;right:0;z-index:4;padding:7px 12px;background:#eeeaf8;color:#55458b;border:1px solid #d9d2e8;border-radius:8px;font-size:10px}
#course-map.portrait .journey-panel{padding:12px 18px 12px;gap:6px}.portrait .journey-heading h1{font-size:28px}.portrait .journey-toolbar{flex-wrap:wrap;gap:8px}.portrait .journey-toolbar p{flex-basis:100%;font-size:11px}.portrait .journey-resume{margin-left:auto}.portrait .journey-layout{gap:12px}.portrait .journey-panel[data-view=scene] .journey-layout{grid-template-columns:1fr;grid-template-rows:45% minmax(0,1fr)}.portrait .journey-panel[data-view=scene] .journey-landscape{grid-template-columns:64% minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.portrait .journey-panel[data-view=scene] .journey-viewport{border-radius:20px 0 0 20px}.portrait .journey-scene-caption{display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:16px;border-radius:0 20px 20px 0;gap:12px}.portrait .journey-scene-caption p{font-size:16px}.portrait .journey-scene-caption>div{justify-content:space-between;gap:8px}.portrait .journey-directory{padding:4px 0 0}.portrait .journey-directory h2{font-size:24px;margin:4px 0 6px}.portrait .journey-screen-list{grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:4px 12px}.portrait .journey-screen-list strong{font-size:14px}.portrait .journey-screen-list button{grid-template-columns:26px minmax(0,1fr) 12px;gap:3px 5px;padding:6px}.portrait .journey-truck{width:9.1%}.portrait .journey-station{padding:5px 6px;gap:4px;min-height:38px}.portrait .journey-stop-number{width:22px;height:22px;font-size:11px}.portrait .journey-stop-copy strong{font-size:12px}.portrait .journey-stop-copy>[data-station-progress]{font-size:8px}
.portrait .journey-terrain-mine{left:-7%;top:-5%;width:105%;height:40%}.portrait .journey-terrain-coast{right:-8%;bottom:-5%;width:110%;height:40%}.portrait .journey-panel[data-view=index] .journey-layout{grid-template-columns:1fr;grid-template-rows:43% minmax(0,1fr)}.portrait .journey-index ol{grid-template-columns:1fr 1fr;grid-template-rows:repeat(5,minmax(0,1fr));gap:5px 9px}.portrait .journey-reset{inset:24% 8%;padding:25px}
@media(max-width:550px){#course-map.portrait .journey-panel{padding:10px 9px 10px;gap:6px}.journey-heading h1,.portrait .journey-heading h1{font-size:23px}.journey-eyebrow{font-size:7px}.journey-toolbar p{font-size:10px}.journey-view-controls button,.journey-resume{font-size:10px;padding:7px 8px}.journey-view-controls{gap:4px}.portrait .journey-station{padding:4px 3px;gap:3px;min-height:33px}.portrait .journey-stop-number{width:17px;height:17px;font-size:9px}.portrait .journey-stop-copy strong{font-size:9px}.portrait .journey-stop-copy>[data-station-progress]{font-size:6px}.journey-current{font-size:6px;right:3px}.journey-map-key{padding:4px 1px;gap:8px}.journey-map-key strong,.journey-map-key span{font-size:8px}.portrait .journey-scene-caption{padding:10px;gap:7px}.portrait .journey-scene-caption p{font-size:12px}.journey-scene-number{font-size:23px}.journey-scene-caption>div{font-size:9px}.journey-scene-caption button{width:23px;height:25px}.portrait .journey-directory h2{font-size:20px}.journey-directory header>p:last-child{font-size:10px}.portrait .journey-screen-list strong{font-size:11px}.portrait .journey-screen-list button{grid-template-columns:20px minmax(0,1fr) 8px;padding:4px 2px}.journey-page-number,.journey-state{font-size:8px}.journey-detail{font-size:8px}.journey-footer,.journey-footer button{font-size:8px}.journey-footer{gap:8px}.journey-footer>span{max-width:40%}.journey-index strong{font-size:11px}.journey-index small{font-size:8px}.journey-index h2{font-size:18px;margin:3px 0}.journey-reset h2{font-size:21px}.journey-reset p{font-size:14px}.journey-reset button{font-size:12px;padding:9px}}
@media(max-height:700px) and (min-width:900px){.journey-panel{padding-top:10px;gap:7px}.journey-heading h1{font-size:26px}.journey-directory h2{font-size:24px}.journey-screen-list strong{font-size:14px}.journey-screen-list button{padding:5px 7px}.journey-scene-caption{padding:12px 16px}.journey-scene-caption p{font-size:15px}}
@media(prefers-reduced-motion:reduce){.journey-scene-art,.journey-station{transition:none}.journey-panel::before{animation:none}.journey-panel::after{transition:none}}

.journey-world[data-layout=landscape] .journey-station{display:block;padding:9px 8px 7px 10px}
.journey-world[data-layout=landscape] .journey-stop-number{position:absolute;left:0;top:-10px;box-shadow:0 1px 4px #43346712}
.journey-world[data-layout=landscape] .journey-stop-copy strong{font-size:12px;overflow-wrap:normal}
.journey-stop-compact{display:none}


@media(max-width:950px){.journey-heading{flex-wrap:wrap;gap:10px}.journey-heading>div:first-child{flex-basis:100%}.journey-heading-actions{width:100%;justify-content:flex-end}.portrait .journey-resume{margin-left:0}.portrait .journey-toolbar{flex-wrap:nowrap}.portrait .journey-toolbar p{flex-basis:auto}}
@media(max-width:550px){
 .journey-heading-actions{gap:6px;justify-content:space-between}.journey-index-toggle,.journey-resume{font-size:10px;padding:8px}.journey-heading .close-button{padding-left:0;gap:4px}.journey-heading .close-label{font-size:10px}.journey-heading .close-glyph{width:25px;height:29px;font-size:23px}
 .portrait .journey-stations li{top:var(--stop-y)}
 .portrait .journey-station{display:flex;align-items:center;min-height:38px;padding:3px 5px}
 .portrait .journey-stop-number{position:absolute;left:0;top:-8px;width:14px;height:14px;font-size:8px}
 .portrait .journey-stop-copy{gap:2px}.portrait .journey-stop-copy strong{font-size:10.5px;line-height:1.1}
}
/* A short horizontal phone keeps the complete route inside the viewport. */
@media(max-height:500px) and (min-width:600px){
 .journey-panel{padding:9px 18px 8px;gap:6px}
 .journey-heading{flex-wrap:nowrap;gap:12px}.journey-heading>div:first-child{flex-basis:auto}.journey-heading h1{font-size:21px;letter-spacing:-.5px}.journey-eyebrow{font-size:7px;letter-spacing:1px}
 .journey-heading-actions{width:auto;gap:7px}.journey-index-toggle,.journey-resume{font-size:10px;padding:7px 8px}.journey-heading .close-button{padding-left:0;gap:4px}.journey-heading .close-label{font-size:10px}
 .journey-toolbar{min-height:20px}.journey-toolbar p{font-size:10px}.journey-footer{padding-top:6px}
 .journey-world[data-layout=landscape] .journey-station{padding:9px 3px 5px;min-height:0}.journey-world[data-layout=landscape] .journey-stop-copy strong{font-size:9px;line-height:1.1;white-space:nowrap}.journey-stop-title,.journey-stop-copy>[data-station-progress]{display:none}.journey-stop-compact{display:block}
 .journey-world[data-layout=landscape] .journey-stop-number{width:15px;height:15px;font-size:8px;top:-8px}.journey-current{font-size:6px;right:1px;padding:2px 4px}

}
