/* Introductory compositions share the approved player and Sara's side stage. */
.intro-scene{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:18px;color:var(--intro-body);position:relative;padding:0 26px 0 24px;--intro-title:#373089;--intro-subtitle:#20184e;--intro-body:#20184e;--intro-card-title:#2c254f;--intro-focus-color:#b34b57;--intro-focus-line:#ef8580}
.intro-scene [data-intro-cue]{opacity:var(--intro-visible,0);transform:translateX(var(--intro-enter-x,0));transform-origin:center;min-width:0}
.intro-scene .intro-heading{position:relative;z-index:1}
.intro-scene .intro-eyebrow{margin:0 0 10px;font-size:11px;letter-spacing:2px;font-weight:600;color:var(--muted)}
.intro-scene h1{margin:0;font-size:46px;line-height:1.05;letter-spacing:-1.2px;font-weight:700;color:var(--intro-title)}
.intro-scene .intro-subtitle{margin:16px 0 0;font-size:24px;line-height:1.3;color:var(--intro-subtitle)}
.intro-scene .intro-landscape{display:block;width:100%;height:100%;object-fit:cover;object-position:center 70%}
.intro-scene .intro-seek{position:relative;background:transparent;text-align:center;border-radius:14px;min-width:0;padding:0;line-height:1.2}
.intro-scene .intro-seek:focus-visible{outline:3px solid var(--indigo);outline-offset:2px}
.intro-scene .intro-interaction{position:absolute;right:9px;bottom:8px;display:grid;place-items:center;width:21px;height:21px;border:1px solid #ded9ef9c;border-radius:50%;font-size:13px;color:#8c83ad;opacity:.55}
.intro-scene .intro-seek:hover .intro-interaction,.intro-scene .intro-seek:focus-visible .intro-interaction{opacity:1;color:var(--indigo);border-color:var(--indigo)}
.intro-scene .intro-seek h2,.intro-scene .intro-route-stop h2,.intro-scene .intro-role-statement strong,.intro-scene .intro-application>span{color:color-mix(in srgb,var(--intro-card-title),var(--intro-focus-color) calc(var(--intro-focus,0)*100%));transform:scale(var(--intro-text-scale,1));transform-origin:center}
.intro-scene .intro-object{display:block;background:url('assets/inicio-objetos.png') no-repeat;background-size:300% 200%;aspect-ratio:1;width:100%;transform:scale(calc(var(--intro-art-scale,1)*var(--intro-art-pulse,1)));transform-origin:center;filter:drop-shadow(0 1px calc(var(--intro-art-glow,0)*23px) #8f80c470)}
.intro-scene .intro-object-stop:before,.intro-scene .intro-outcome:before{content:'';position:absolute;inset:-1% -7% 18%;z-index:-1;background:radial-gradient(ellipse,#ded7f5 0%,#ece7f966 48%,transparent 76%);opacity:calc(var(--intro-art-glow,0)*.8);transform:scale(var(--intro-art-pulse,1));pointer-events:none}
.intro-scene .intro-object-cargo{background-position:0 0}.intro-scene .intro-object-documents{background-position:50% 0}.intro-scene .intro-object-people{background-position:100% 0}
.intro-scene .intro-object-observe{background-position:0 100%}.intro-scene .intro-object-control{background-position:50% 100%}.intro-scene .intro-object-report{background-position:100% 100%}
.intro-scene .intro-takeaway{margin:0;padding:14px 0 4px;font-size:25px;line-height:1.25;border-top:1px solid var(--line);font-weight:600}
.intro-scene .intro-takeaway>span{color:#a9424c;margin-left:14px}

/* 1.1 — a landscape, then the system's name and fictional context. */
.intro-scene-0{gap:6px}
.intro-scene-0 h1{max-width:1000px;font-size:53px}
.intro-scene .intro-hero-art{min-height:0;position:relative}
.intro-scene .intro-hero-art .intro-landscape{object-position:center 70%}
.intro-scene .intro-hero-rule{position:absolute;left:4%;right:4%;bottom:1%;height:2px;background:linear-gradient(90deg,transparent,#ee7773b3,transparent)}
.intro-scene .intro-hero-foot{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:6px 10px 4px}
.intro-scene .intro-system{display:flex;align-items:center;gap:18px}
.intro-scene .intro-system>strong{font-size:34px;letter-spacing:-1px;white-space:nowrap;color:var(--indigo)}
.intro-scene .intro-system>strong>span{color:var(--coral-dark)}
.intro-scene .intro-system p{margin:0;font-size:18px;line-height:1.3;border-left:1px solid var(--line);padding-left:18px}
.intro-scene .intro-case{margin:0;text-align:right;font-size:18px;font-weight:700;line-height:1.4}
.intro-scene .intro-case span{display:block;font-size:14px;color:var(--muted);font-weight:400}

/* 1.2 — three objects in one observation field, without nested cards. */
.intro-scene .intro-observation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;min-height:0;position:relative;align-items:center}
.intro-scene .intro-object-stop{display:flex;flex-direction:column;align-items:center;min-height:0;padding:10px 15px 24px}
.intro-scene .intro-object-stop .intro-object{width:min(100%,280px);max-height:290px}
.intro-scene .intro-object-stop h2{font-size:31px;margin:8px 0 0;line-height:1.15}
.intro-scene .intro-observation-line{position:absolute;left:10%;right:10%;top:47%;height:1px;background:var(--line);z-index:-1}

/* 1.3 — a route diagram, not links to unfinished screens. */
.intro-scene-2{gap:22px;grid-template-rows:auto minmax(0,1fr)}
.intro-scene .intro-route{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:26px 22px;padding:0;margin:0;list-style:none;min-height:0}
.intro-scene .intro-route-stop{display:flex;flex-direction:column;justify-content:flex-start;gap:18px;border:1px solid #e1e1f0;border-top:3px solid color-mix(in srgb,#c7c9e7,var(--intro-focus-line) calc(var(--intro-focus,0)*100%));padding:24px 17px 14px;border-radius:4px 4px 14px 14px;background:color-mix(in srgb,#f3f5fa,#ffffff calc(var(--intro-focus,0)*100%))}
.intro-scene .intro-route-number{font-size:33px;line-height:1;color:var(--indigo);font-weight:700;letter-spacing:-1px}
.intro-scene .intro-route-label{font-size:10px;letter-spacing:1.4px;color:var(--muted);font-weight:700;display:block;margin-bottom:9px}
.intro-scene .intro-route-stop h2{font-size:22px;line-height:1.2;margin:0;letter-spacing:-.3px;transform-origin:left center;hyphens:manual}
.intro-scene .intro-route-case .intro-route-number{color:var(--coral-dark)}

/* 2.1 — a dedicated team illustration gives the people their own scene. */
.intro-scene-3{grid-template-rows:auto minmax(0,1fr)}
.intro-scene .intro-participation{min-height:0;position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:26px;padding:4px 0 10px}
.intro-scene .intro-participation-art{min-height:0;display:flex;align-items:center;justify-content:center;padding:8px 20px 12px}
.intro-scene .intro-participation-art img{display:block;width:94%;height:94%;object-fit:contain;transform:scale(calc(var(--intro-art-scale,1)*var(--intro-art-pulse,1)));transform-origin:center}
.intro-scene .intro-role-statement{margin:0;text-align:center;font-size:25px;line-height:1.3;padding-bottom:8px;color:var(--intro-subtitle)}
.intro-scene .intro-role-statement strong{display:block;font-size:35px;line-height:1.15;letter-spacing:-.6px;transform-origin:left center}

/* 2.2 — three independent scenes can respond precisely to each spoken place. */
.intro-scene .intro-roles{min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:36px;position:relative;align-items:stretch;padding:12px 0 14px}
.intro-scene .intro-lane{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 64px;min-height:0;align-items:center;gap:14px;padding:16px 16px 12px;border:1px solid color-mix(in srgb,#e1e1ef,#d4cfe6 calc(var(--intro-focus,0)*100%));border-bottom:3px solid color-mix(in srgb,#dcdff0,var(--intro-focus-line) calc(var(--intro-focus,0)*100%));border-radius:14px;background:color-mix(in srgb,#f3f5fa,#fcfdff calc(var(--intro-focus,0)*100%))}
.intro-scene .intro-stage-art{display:block;width:100%;height:100%;min-height:0;justify-self:center;background-repeat:no-repeat;background-position:center;background-size:contain;transform:scale(calc(var(--intro-art-scale,1)*var(--intro-art-pulse,1)));transform-origin:center}
.intro-scene .intro-stage-mine{background-image:url('assets/inicio-mina-v4.png')}.intro-scene .intro-stage-transport{background-image:url('assets/inicio-transporte-v4.png')}.intro-scene .intro-stage-port{background-image:url('assets/inicio-puerto-v4.png')}
.intro-scene .intro-lane-caption{display:flex;align-items:center;justify-content:center;gap:10px;min-width:0;width:100%}
.intro-scene .intro-lane-number{font-size:18px;color:var(--coral-dark);font-weight:700;flex-shrink:0}
.intro-scene .intro-lane h2{font-size:27px;margin:0;line-height:1.12;text-align:center}
.intro-scene .intro-responsibility{font-size:23px;text-align:center;font-weight:500}

/* 2.3 — observe, check and communicate as learning actions. */
.intro-scene .intro-outcomes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;min-height:0;position:relative}
.intro-scene .intro-outcome{display:grid;grid-template-rows:minmax(0,1fr) 24px 42px 70px;justify-items:center;align-items:center;padding:0 14px 12px}
.intro-scene .intro-outcome .intro-object{width:min(100%,240px);max-height:100%;align-self:center}
.intro-scene .intro-step-number{font-size:15px;letter-spacing:2px;color:var(--coral-dark);font-weight:700;margin:8px 0}
.intro-scene .intro-outcome h2{font-size:31px;line-height:1.1;margin:0 0 12px}
.intro-scene .intro-outcome p{font-size:21px;line-height:1.3;margin:0;max-width:275px;align-self:start}
.intro-scene .intro-application{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;text-align:center;border-top:1px solid var(--line);padding:19px 0 6px}
.intro-scene .intro-application>span{font-size:21px;line-height:1.25;font-weight:600}

/* Flow marks use the audio clock; they stop on pause and reconstruct on seek. */
.intro-scene .intro-flow{position:absolute;top:43%;width:36px;height:16px;pointer-events:none;color:color-mix(in srgb,#aaa9cd,var(--coral-dark) calc(var(--intro-focus,0)*100%));z-index:2;transform:translateX(calc(var(--intro-flow-travel,0)*6px))}
.intro-scene .intro-flow-1{left:calc(33.333% - 25px)}.intro-scene .intro-flow-2{left:calc(66.666% - 10px)}
.intro-scene .intro-flow-trace{position:absolute;left:0;right:2px;top:7px;height:2px;background:currentColor;transform:scaleX(calc(.55 + var(--intro-flow-travel,0)*.45));transform-origin:left center}
.intro-scene .intro-flow-tip{position:absolute;right:0;top:3px;width:10px;height:10px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg)}
.intro-scene .intro-outcomes .intro-flow{top:38%}

/* Paired subheadings keep their own indigo hierarchy; body copy stays dark. */
.intro-scene .intro-outcome h2,.intro-scene .intro-role-statement strong{color:color-mix(in srgb,#302867,var(--intro-focus-color) calc(var(--intro-focus,0)*100%))}

/* A separate portrait composition keeps text readable at the 450 px design width. */
.portrait .intro-scene{gap:10px;padding:0 9px}
.portrait .intro-scene .intro-landscape{object-fit:contain;object-position:center}
.portrait .intro-scene .intro-eyebrow{font-size:8px;letter-spacing:1.15px;margin:4px 0 7px}
.portrait .intro-scene h1{font-size:29px;letter-spacing:-.8px;line-height:1.07}
.portrait .intro-scene .intro-subtitle{font-size:16px;line-height:1.25;margin-top:10px}
.portrait .intro-scene .intro-takeaway{font-size:17px;line-height:1.2;padding:10px 0 2px}
.portrait .intro-scene .intro-takeaway>span{display:block;margin:5px 0 0}
.portrait .intro-scene .intro-interaction{right:6px;bottom:6px;width:18px;height:18px;font-size:11px}
.portrait .intro-scene-0{gap:8px}
.portrait .intro-scene-0 h1{font-size:33px}
.portrait .intro-scene .intro-hero-foot{display:grid;gap:15px;padding:0 0 4px}
.portrait .intro-scene .intro-system{gap:13px}
.portrait .intro-scene .intro-system>strong{font-size:27px}
.portrait .intro-scene .intro-system p{font-size:14px;padding-left:13px}
.portrait .intro-scene .intro-case{text-align:left;font-size:15px}
.portrait .intro-scene .intro-case span{font-size:12px;display:inline;margin-left:7px}
.portrait .intro-scene .intro-observation{grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:8px}
.portrait .intro-scene .intro-object-stop{display:grid;grid-template-columns:38% minmax(0,1fr);gap:20px;padding:0 20px;align-items:center;height:100%}
.portrait .intro-scene .intro-object-stop .intro-object{width:96px;height:96px;max-height:none;max-width:none;justify-self:center}
.portrait .intro-scene .intro-object-stop h2{font-size:24px;margin:0;text-align:left;transform-origin:left center}
.portrait .intro-scene .intro-observation-line{left:21%;top:9%;bottom:9%;right:auto;width:1px;height:auto}
.portrait .intro-scene-2{gap:12px;grid-template-rows:auto minmax(0,1fr)}
.portrait .intro-scene .intro-route{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:9px 17px}
.portrait .intro-scene .intro-route-stop{position:relative;flex-direction:row;align-items:center;justify-content:flex-start;gap:0;padding:6px 9px;border-top-width:2px;border-radius:3px 3px 8px 8px}
.portrait .intro-scene .intro-route-number{position:absolute;right:7px;top:7px;font-size:10px;min-width:0;letter-spacing:0}
.portrait .intro-scene .intro-route-label{font-size:8px;letter-spacing:.5px;margin-bottom:4px}
.portrait .intro-scene .intro-route-stop h2{font-size:15px;line-height:1.16;letter-spacing:-.1px}
.portrait .intro-scene .intro-role-statement{font-size:20px;padding-bottom:8px}
.portrait .intro-scene .intro-role-statement strong{font-size:24px;line-height:1.15}
.portrait .intro-scene .intro-participation{gap:14px;padding:0 0 4px}.portrait .intro-scene .intro-participation-art{padding:8px 10px 12px}
.portrait .intro-scene .intro-roles{grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:15px;align-items:stretch;padding:4px 0 7px}
.portrait .intro-scene .intro-lane{grid-template-columns:110px minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:10px;padding:3px 23px 3px 5px;border-bottom-width:2px;min-height:0}
.portrait .intro-scene .intro-stage-art{grid-column:1;width:100%;height:100%;min-height:0;justify-self:center}
.portrait .intro-scene .intro-lane-caption{gap:8px}
.portrait .intro-scene .intro-lane h2{font-size:22px;transform-origin:center}
.portrait .intro-scene .intro-lane-number{font-size:14px}
.portrait .intro-scene .intro-responsibility{font-size:16px;line-height:1.25}
.portrait .intro-scene .intro-outcomes{grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:8px}
.portrait .intro-scene .intro-outcome{display:grid;grid-template-columns:36% minmax(0,1fr);grid-template-rows:17px auto auto;column-gap:17px;row-gap:4px;align-content:center;padding:5px 21px 5px 5px;text-align:left}
.portrait .intro-scene .intro-outcome .intro-object{grid-column:1;grid-row:1/4;max-width:none;max-height:none;height:96px;width:96px;align-self:center;justify-self:center}
.portrait .intro-scene .intro-step-number{grid-column:2;font-size:10px;margin:0;align-self:center;justify-self:start}
.portrait .intro-scene .intro-outcome h2{grid-column:2;font-size:24px;margin:0;transform-origin:left center;justify-self:start}
.portrait .intro-scene .intro-outcome p{grid-column:2;font-size:15px;line-height:1.2;justify-self:start}
.portrait .intro-scene .intro-application{gap:9px;padding:10px 0 3px}
.portrait .intro-scene .intro-application>span{font-size:14px;line-height:1.2}
.portrait .intro-scene .intro-flow{left:20%;top:auto;width:24px;height:10px;transform:translateY(calc(var(--intro-flow-travel,0)*4px)) rotate(90deg);transform-origin:center}
.portrait .intro-scene .intro-flow-1{top:calc(33.333% - 4px)}.portrait .intro-scene .intro-flow-2{top:calc(66.666% - 4px)}
.portrait .intro-scene .intro-roles .intro-flow{left:13%}.portrait .intro-scene .intro-outcomes .intro-flow{left:16%}
.portrait .intro-scene .intro-object-stop:before,.portrait .intro-scene .intro-outcome:before{inset:0 55% 0 0}

/* 1.3 — a connected itinerary with distinct practice stops and a changing purpose. */
/* 1.3: every row reads left to right; the explanation has its own lower band. */
.intro-route-experience{position:relative;min-height:0;height:100%;display:grid;grid-template-rows:minmax(0,1fr) 82px;gap:20px;padding-bottom:28px;isolation:isolate}
.intro-scene .intro-route-map{position:relative;height:100%;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:1fr 1fr;gap:42px 22px;padding:0 9px}
.intro-scene .intro-route-map .intro-route-stop{position:relative;display:block;min-height:0;padding:0;border:0;background:none;border-radius:0;z-index:1}
.intro-scene .intro-route-map .intro-route-stop:not(:nth-child(5)):not(:nth-child(10))::after{content:"";position:absolute;left:100%;width:22px;top:50%;border-top:2px solid #aaa4c8;z-index:-1}
.intro-scene .intro-route-map .intro-route-stop:not(:nth-child(5)):not(:nth-child(10))::before{content:"";position:absolute;left:calc(100% + 12px);top:calc(50% - 4px);width:8px;height:8px;border-top:2px solid #aaa4c8;border-right:2px solid #aaa4c8;transform:rotate(45deg);z-index:-1}
.intro-scene .intro-route-point{display:grid;grid-template-columns:40px 1fr;grid-template-rows:40px minmax(0,1fr);align-items:center;align-content:center;gap:12px 8px;height:100%;width:100%;padding:15px 13px 17px;text-align:left;border:1px solid #dadcea;border-radius:13px;background:#f4f5fa;box-shadow:0 3px 0 #e9eaf3}
.intro-scene .intro-route-point .intro-route-number{position:static;display:grid;place-items:center;width:38px;height:38px;flex:none;border:1px solid #c9c7e0;border-radius:50%;font-size:17px;background:#fff;color:#625b91;letter-spacing:0;margin:0}
.intro-scene .intro-route-point .intro-route-label{font-size:12px;letter-spacing:.6px;color:#625a7c;margin:0}
.intro-scene .intro-route-point h2{grid-column:1/-1;font-size:19px;line-height:1.18;letter-spacing:-.2px;text-align:left;transform-origin:left}
.intro-scene .intro-route-case .intro-route-point{border-top:3px solid #8580b8;background:#fafbfe;padding-top:13px}
.intro-scene .intro-route-case .intro-route-number{border-radius:7px;border-color:#aaa5cb;background:#e2e3f3;color:#514784}
.intro-scene .intro-route-case .intro-route-label{font-weight:800;color:#514784}
.intro-scene .intro-route-point[aria-pressed=true]{background:#fff;border-color:#c78192;box-shadow:inset 0 -3px #cf8c9c,0 3px 0 #e9eaf3}
.intro-scene .intro-route-point[aria-pressed=true] .intro-route-number{border-color:#c5778d;background:#fbeaf0;color:#a14663}
.intro-scene .intro-route-point .intro-interaction{right:7px;bottom:6px;width:13px;height:13px;font-size:8px}
.intro-scene .intro-route-point:hover h2{text-decoration:none}
.intro-route-return{position:absolute;list-style:none;inset:0;pointer-events:none;z-index:0}
.intro-route-return::before{content:"";position:absolute;right:9%;top:calc(50% - 22px);height:22px;width:82%;border-right:2px solid #aaa4c8;border-bottom:2px solid #aaa4c8;border-radius:0 0 12px 0}
.intro-route-return i{position:absolute;left:9%;top:50%;height:22px;border-left:2px solid #aaa4c8}
.intro-route-return b{position:absolute;left:calc(9% - 3px);top:calc(50% + 15px);width:8px;height:8px;border-right:2px solid #aaa4c8;border-bottom:2px solid #aaa4c8;transform:rotate(45deg)}
.intro-route-phase{position:relative;min-height:0;border:1px solid #e4e5ef;border-radius:12px;background:#f0f2f8}
.intro-route-phase>div{position:absolute;inset:0;display:flex;align-items:center;gap:26px;padding:13px 24px;opacity:var(--route-phase-opacity,0);transform:translateY(var(--route-phase-shift,0));text-align:left}
.intro-route-phase strong{font-size:27px;color:#373089;line-height:1.1;width:44%;flex:none}.intro-route-phase span{font-size:18px;color:#554d69;line-height:1.25}
.portrait .intro-route-experience{grid-template-rows:minmax(0,1fr) 58px;gap:12px}
.portrait .intro-scene .intro-route-map{grid-template-columns:1fr 1fr;grid-template-rows:repeat(5,minmax(0,1fr));gap:8px 18px;padding:0}
.portrait .intro-scene .intro-route-map .intro-route-stop:nth-child(n){grid-column:auto;grid-row:auto}
.portrait .intro-scene .intro-route-map .intro-route-stop::after,.portrait .intro-scene .intro-route-map .intro-route-stop::before{display:none}
.portrait .intro-scene .intro-route-map .intro-route-stop:nth-child(odd)::after{display:block;width:18px}
.portrait .intro-scene .intro-route-map .intro-route-stop:nth-child(odd)::before{display:block;left:calc(100% + 8px)}
.portrait .intro-route-return{display:none}
.portrait .intro-scene .intro-route-point{grid-template-columns:27px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;gap:3px 7px;padding:6px 7px;text-align:left;border-radius:8px}
.portrait .intro-scene .intro-route-point .intro-route-number{grid-column:1;grid-row:1/3;width:27px;height:27px;font-size:10px;margin:0}
.portrait .intro-scene .intro-route-point .intro-route-label{font-size:7px;letter-spacing:.3px;grid-column:2}
.portrait .intro-scene .intro-route-point h2{font-size:12px;line-height:1.15;grid-column:2;letter-spacing:0}
.portrait .intro-scene .intro-route-point .intro-interaction{display:none}
.portrait .intro-scene .intro-route-case .intro-route-point{padding-top:4px}
.portrait .intro-route-phase>div{gap:10px;padding:6px 10px}.portrait .intro-route-phase strong{font-size:16px;width:44%}.portrait .intro-route-phase span{font-size:11px;line-height:1.2}

/* Stops remain much quieter than the changing explanatory band. */
.intro-scene .intro-route-point{--route-accent:#4943a6;--route-tint:#e8edff;background:#fcfdff;border:0;box-shadow:0 3px 12px #36345b0b;transition:background .18s,box-shadow .18s;--intro-focus-color:#4943a6}
.intro-scene .intro-route-case .intro-route-point{--route-accent:#ad4a51;--route-tint:#ffebe4;--intro-focus-color:#ad4a51;border:0;background:#fcfdff;padding-top:15px}
.intro-scene .intro-route-point .intro-route-number{border:0;background:#e5e8fb;color:#4943a6;box-shadow:0 2px 0 #d3d9f2}
.intro-scene .intro-route-case .intro-route-number{background:#ffe7de;color:#ad4a51;box-shadow:0 2px 0 #f5d0c5}
.intro-scene .intro-route-case .intro-route-label{color:#934954}
.intro-scene .intro-route-point:is([aria-pressed=true],:hover,:focus-visible){background:var(--route-tint);box-shadow:0 4px 14px #37305c12}
.intro-scene .intro-route-point:is([aria-pressed=true],:hover,:focus-visible) .intro-route-number{background:var(--route-accent);color:white;box-shadow:none}
.intro-scene .intro-route-point:is([aria-pressed=true],:hover,:focus-visible) h2{color:var(--route-accent);text-decoration:none}
.intro-scene .intro-route-map .intro-route-stop::before,.intro-scene .intro-route-map .intro-route-stop::after{opacity:var(--route-link-visible,0);border-color:#9b94cd}
.intro-scene .intro-route-map .intro-route-stop::after{clip-path:inset(0 calc((1 - var(--route-link-visible,0))*100%) 0 0)}
.intro-route-return{opacity:var(--route-link-visible,0);clip-path:inset(0 0 calc((1 - var(--route-link-visible,0))*50%) 0)}
.intro-route-phase{opacity:var(--route-band-visible,0);transform:translateY(calc((1 - var(--route-band-visible,0))*8px))}
.portrait .intro-scene .intro-route-case .intro-route-point{padding-top:6px}
@media(prefers-reduced-motion:reduce){.intro-scene .intro-route-point{transition:none}.intro-route-phase{transform:none}}
