/* Route-authored scenes use the existing ACE tokens and native document flow. */
[data-journey-chapter], [data-journey-step] { scroll-margin-top: 120px; }
[data-journey-page] [id][tabindex="-1"]:focus-visible { outline: 2px solid rgb(var(--ink)); outline-offset: 6px; }
.journey-shell { max-width: 1280px; margin-inline: auto; padding-inline: 32px; }
.journey-method-section { padding-block: 88px; background: rgb(var(--surface-raised)); }
.journey-controls [hidden], .journey-combinations [hidden] { display: none !important; }
.journey-admin-intro { position: sticky; top: 112px; align-self: start; }
.journey-admin .scope-rail-wrap .scope-svg path { stroke-dashoffset: calc(1 - var(--journey-p,1)) !important; transition: none !important; }
.journey-admin .scope-rail-ul > li { min-height: 180px; transform: none !important; transition: none !important; }
.journey-delivery-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; }
.journey-delivery-steps > div { border: 0; border-top: 1px solid rgb(var(--rule)); border-radius: 0; padding: 28px 0; background: transparent; transform: none !important; transition: none !important; }
.journey-delivery-steps > .journey-current { border-top-color: rgb(var(--terracotta)); }
.journey-delivery-steps .method-line { display: none; }
.journey-service-choices > div { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; transform: none !important; }
.journey-service-choices > div > div:not(:first-child) { padding: 28px 0; }
.journey-service-choices > div:nth-child(even) { padding-top: 64px; }
.journey-editorial-grid > article > div:first-child { aspect-ratio: auto; }
.journey-editorial-grid > article:first-child { position: sticky; top: 112px; align-self: start; }
.journey-heading { font: 400 40px/1.1 'Instrument Serif', serif; color: rgb(var(--ink)); margin: 0 0 24px; text-wrap: balance; }
.journey-copy { font: 16px/1.65 'DM Sans', sans-serif; color: rgb(var(--secondary)); max-width: 62ch; }
.journey-index { display: flex; flex-wrap: wrap; gap: 8px 28px; border-block: 1px solid rgb(var(--rule)); padding: 12px 0; margin: 0 0 48px; }
.journey-index a { display: inline-flex; align-items: center; min-height: 44px; font: 13px/1.4 'DM Sans',sans-serif; color: rgb(var(--ink)); text-underline-offset: 6px; }
.journey-index a[aria-current] { text-decoration: underline; text-decoration-color: rgb(var(--terracotta)); }
.journey-sequence { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 64px; align-items: start; margin-top: 48px; }
.journey-stage { position: sticky; top: 112px; min-width: 0; margin: 0; }
.journey-stage .journey-image-plane { position: relative; isolation: isolate; overflow: hidden; }
.journey-image-plane > img { display: block; width: 100%; height: auto; aspect-ratio: 1672/941; object-fit: contain; margin: 0; }
.journey-trace { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.journey-trace path, .journey-trace polyline { fill: none; stroke: rgb(var(--terracotta)); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.journey-trace .journey-trace-ground { stroke: rgb(var(--brand-navy)); }
.journey-stage figcaption, .journey-note { margin-top: 16px; font: 12px/1.6 'DM Sans', sans-serif; color: rgb(var(--secondary)); }
.journey-stages { margin: 0; padding: 0; list-style: none; }
.journey-stages > [data-journey-step] { position: relative; padding: 32px 0 40px 28px; border-top: 1px solid rgb(var(--rule)); min-height: 230px; transform: none !important; transition: none !important; background: transparent; box-shadow: none; border-radius: 0; }
.journey-stages > [data-journey-step]::before { content: ''; position: absolute; left: 0; top: 32px; bottom: 40px; width: 2px; background: rgb(var(--terracotta)); transform: scaleY(0); transform-origin: top; transition: transform 240ms ease-out; }
.journey-stages > .journey-current::before { transform: scaleY(1); }
.journey-stages h3 { font: 400 30px/1.16 'Instrument Serif',serif; color: rgb(var(--ink)); margin: 0 0 16px; }
.journey-stages p { font: 16px/1.65 'DM Sans',sans-serif; color: rgb(var(--secondary)); margin: 0 0 18px; }
.journey-stages .journey-output { color: rgb(var(--ink)); font-size: 13px; margin: 0; }
.journey-controls { display: flex; flex-wrap: wrap; gap: 0; margin-top: 20px; border-bottom: 1px solid rgb(var(--rule)); }
.journey-controls button { min-height: 44px; padding: 10px 14px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: rgb(var(--ink)); font: 12px/1.4 'DM Sans',sans-serif; cursor: pointer; }
.journey-controls button[aria-pressed="true"] { border-bottom-color: rgb(var(--terracotta)); background: rgb(var(--surface)); }
.journey-controls button:hover { background: rgb(var(--surface)); }
.journey-controls button:focus-visible, .journey-index a:focus-visible, .journey-combinations button:focus-visible { outline: 2px solid rgb(var(--ink)); outline-offset: 4px; }
.journey-status { display: none; margin: 18px 0 0; min-height: 48px; color: rgb(var(--ink)); font: 24px/1.2 'Instrument Serif',serif; }
.journey-enabled .journey-status { display: block; }
[data-journey-layer] { opacity: 1; }
.journey-enabled [data-journey-layer] { opacity: 0; transition: opacity 280ms ease-out, transform 400ms cubic-bezier(.22,.61,.36,1); }
.journey-enabled .journey-registered { opacity: 1; }
.journey-enabled .journey-drawing [data-journey-layer] { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 550ms ease-out, opacity 200ms ease-out; }
.journey-enabled .journey-drawing .journey-registered { stroke-dashoffset: 0; }
[data-journey-sequence="programme"] .journey-image-plane > img { aspect-ratio: 3/1; object-fit: cover; object-position: 50% 70%; }
.journey-programme { padding: 16px 0; border-block: 1px solid rgb(var(--rule)); margin: 20px 0; }
.journey-programme .ace-programme-row { grid-template-columns: 125px minmax(0,1fr); gap: 16px; }
.journey-programme .ace-programme-track { background: rgb(var(--rule)); }
.journey-programme .ace-programme-row .ace-programme-track span { background: rgb(var(--ink)); }
.journey-programme .ace-programme-row:nth-child(3) .ace-programme-track span { background: rgb(var(--terracotta)); }
.journey-programme [data-journey-layer] { transform-origin: left; }
.journey-enabled .journey-programme [data-journey-layer] { opacity: 1; transform: scaleX(.04); }
.journey-enabled .journey-programme .journey-registered { transform: scaleX(1); }
.journey-programme-ruler { display: flex; justify-content: space-between; color: rgb(var(--secondary)); font: 11px/1.4 'DM Sans',sans-serif; margin-left: 141px; padding-bottom: 16px; }
.journey-record-stack { position: relative; min-height: 340px; perspective: 1000px; margin-top: 40px; }
.journey-record { position: absolute; inset: 0 36px 50px 0; padding: 24px; border: 1px solid rgb(var(--rule)); background: rgb(var(--surface-raised)); color: rgb(var(--ink)); box-shadow: 0 12px 28px rgb(var(--deep-ink)/.12); transform: translate(calc(var(--sheet)*9px), calc(var(--sheet)*11px)); }
.journey-record strong { display: block; margin: 24px 0; font: 32px/1.1 'Instrument Serif',serif; }
.journey-record p { font: 14px/1.6 'DM Sans',sans-serif; max-width: 34ch; }
.journey-record > span { display: flex; gap: 10px; align-items: center; font: 12px/1.4 'DM Sans',sans-serif; }
.journey-enabled .journey-record:not(.journey-registered) { transform: translate(28px, 45px) rotateX(-9deg); }
.journey-architecture .cinema-method-intro { top: 104px; }
.journey-architecture .cinema-method-intro > h2 { font-size: 36px; }
.journey-architecture .cinema-method-list > li { min-height: 260px; padding: 32px 0 48px 24px; }
.journey-architecture .ace-study-frame { position: relative; }
.journey-architecture .ace-study-frame.is-ready .journey-trace { display: none; }
.journey-architecture .journey-trace { color: rgb(var(--terracotta)); }
.journey-architecture .journey-trace path { stroke-width: 2; }
.journey-practice .timeline-line > div { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); gap: 64px; padding: 64px 0 !important; margin: 0 !important; min-height: 580px; }
.journey-practice .timeline-line > div:nth-of-type(2) { grid-template-columns: minmax(0,1.3fr) minmax(0,.7fr); }
.journey-practice .timeline-line > div > div:not(.absolute) { width: 100%; padding: 0; margin: 0; order: initial; min-width: 0; }
.journey-practice .timeline-line h2 { font-size: 40px; line-height: 1.12; margin-bottom: 24px; }
.journey-practice .timeline-line img { aspect-ratio: 5/4; }
.journey-practice .timeline-line > div > div:has(h2) { position: sticky; top: 150px; align-self: center; }
.journey-credential-band { padding-block: 56px !important; }
.journey-records { display: grid; grid-template-columns: minmax(220px,.65fr) minmax(0,1.6fr); gap: 64px; }
.journey-records > div:first-child { position: sticky; top: 112px; align-self: start; }
.journey-records > ul > li { padding: 40px 0; border-bottom: 1px solid rgb(var(--rule)); }
.journey-records > ul > li > div { grid-template-columns: 1fr 1fr; }
.journey-records > ul > li > div > div:first-child { grid-column: 1/-1; }
.journey-records h3 { font-size: 36px; }
.journey-records .journey-current { border-bottom-color: rgb(var(--terracotta)); }
.journey-combinations { display: grid; grid-template-columns: minmax(220px,.7fr) minmax(0,1.3fr); gap: 56px; margin-top: 36px; }
.journey-combinations:not(.journey-combinations-enabled) { display: block; }
.journey-combinations:not(.journey-combinations-enabled) .journey-combinations-menu { display: none; }
.journey-combinations:not(.journey-combinations-enabled) .journey-combinations-panel { min-height: 0; }
.journey-combinations-menu { display: flex; flex-direction: column; align-items: stretch; border-top: 1px solid rgb(var(--rule)); }
.journey-combinations button { display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; padding: 22px 0; border: 0; border-bottom: 1px solid rgb(var(--rule)); background: transparent; color: rgb(var(--ink)); font: 24px/1.2 'Instrument Serif',serif; cursor: pointer; }
.journey-combinations button[aria-pressed="true"] { color: rgb(var(--link)); }
.journey-combinations-panel { min-height: 350px; padding: 32px 0; border-block: 1px solid rgb(var(--rule)); }
.journey-combinations-panel h3 { font: 36px/1.1 'Instrument Serif',serif; color: rgb(var(--ink)); margin-bottom: 24px; }
.journey-combinations-panel p { font: 16px/1.65 'DM Sans',sans-serif; color: rgb(var(--secondary)); margin-bottom: 28px; max-width: 55ch; }
.journey-discipline-chain { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; font: 13px/1.5 'DM Sans',sans-serif; color: rgb(var(--ink)); margin-bottom: 32px; }
.journey-discipline-chain > span:not(.material-symbols-outlined) { padding-bottom: 6px; border-bottom: 2px solid rgb(var(--terracotta)); }
.journey-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: rgb(var(--ink)); font: 13px/1.5 'DM Sans',sans-serif; text-decoration: underline; text-underline-offset: 5px; }
.journey-region { padding-block: 80px; background: rgb(var(--surface-raised)); color: rgb(var(--ink)); }
.journey-region-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 72px; }
.journey-region-route { position: sticky; top: 112px; align-self: start; }
.journey-route-drawing { width: 100%; height: auto; margin-top: 24px; }
.journey-route-drawing path { fill: none; stroke: rgb(var(--terracotta)); stroke-width: 2; }
.journey-route-drawing circle { fill: rgb(var(--surface-raised)); stroke: rgb(var(--ink)); stroke-width: 2; }
.journey-route-labels { display: flex; justify-content: space-between; gap: 24px; color: rgb(var(--secondary)); font: 13px/1.5 'DM Sans',sans-serif; }
.journey-close { padding-block: 64px; border-top: 1px solid rgb(var(--rule)); background: rgb(var(--surface)); color: rgb(var(--ink)); }
.journey-close > div { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.journey-close h2 { max-width: 24ch; margin-bottom: 12px; }
.journey-close--practice { --ink: var(--warm-paper); --secondary: var(--warm-paper); background: rgb(var(--brand-navy)); }
.journey-close-paths { display: flex; flex-direction: column; gap: 12px; }
.journey-editorial-grid { display: grid !important; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr) !important; gap: 32px !important; }
.journey-editorial-grid > article { border: 0 !important; border-top: 1px solid rgb(var(--rule)) !important; border-radius: 0 !important; box-shadow: none !important; background: transparent !important; }
.journey-editorial-grid > article:first-child { grid-row: span 2; }
.journey-editorial-grid > article:first-child img { aspect-ratio: 5/4; height: auto; }
.journey-editorial-grid > article:not(:first-child) img { aspect-ratio: 2/1; height: auto; }
.journey-editorial-grid > article:first-child h3 { font-size: 36px; line-height: 1.12; }
.journey-reading-progress { position: fixed; top: 79px; left: 0; right: 0; height: 2px; pointer-events: none; z-index: 40; }
.journey-reading-progress::after { content: ''; display: block; height: 100%; background: rgb(var(--terracotta)); transform: scaleX(var(--reading-p,0)); transform-origin: left; }
[data-journey-reading] h2 { scroll-margin-top: 120px; }
[data-journey-index] a[aria-current] { color: rgb(var(--ink)); text-decoration: underline; text-decoration-color: rgb(var(--terracotta)); text-underline-offset: 4px; }
[data-journey-reading] figure { margin-block: 40px; }
[data-journey-reading] figure img { border-radius: 0; }
.journey-enabled.journey-linear [data-journey-layer] { opacity: 1; transform: none; transition: none; stroke-dashoffset: 0; }
.journey-enabled.journey-linear .journey-record { transform: translate(calc(var(--sheet)*9px), calc(var(--sheet)*11px)); }
@media (max-height: 799px) {
  .journey-stage, .journey-admin-intro, .journey-region-route, .journey-records > div:first-child, .journey-architecture .cinema-method-intro, .journey-editorial-grid > article:first-child, .journey-practice .timeline-line > div > div:has(h2) { position: static; }
}
@media (max-width: 1023px) {
  .journey-sequence, .journey-region-grid { gap: 36px; }
  .journey-stages h3 { font-size: 26px; }
  .journey-controls button { padding-inline: 9px; }
  .journey-records { grid-template-columns: minmax(180px,.7fr) minmax(0,1.3fr); gap: 32px; }
}
@media (max-width: 760px) {
  .journey-method-section { padding-block: 56px; }
  .journey-admin-intro { position: static; }
  .journey-admin .scope-rail-ul > li { min-height: 0; }
  .journey-delivery-steps { grid-template-columns: 1fr; }
  .journey-service-choices > div:nth-child(even) { padding-top: 0; }
  .journey-editorial-grid > article:first-child { position: static; }
  .journey-shell { padding-inline: 24px; }
  .journey-heading { font-size: 32px; }
  .journey-sequence, .journey-region-grid, .journey-records, .journey-combinations { grid-template-columns: 1fr; gap: 28px; }
  .journey-stage, .journey-region-route, .journey-records > div:first-child { position: static; }
  .journey-sequence { margin-top: 28px; }
  .journey-stages > [data-journey-step] { min-height: 0; padding: 28px 0 28px 20px; }
  .journey-stage .journey-status { min-height: 0; font-size: 24px; }
  .journey-index { gap: 4px 20px; margin-bottom: 28px; }
  .journey-record-stack { min-height: 310px; }
  .journey-record { padding: 20px; }
  .journey-record strong { font-size: 28px; }
  .journey-programme .ace-programme-row { grid-template-columns: 110px minmax(0,1fr); }
  .journey-programme-ruler { margin-left: 126px; }
  .journey-practice .timeline-line > div, .journey-practice .timeline-line > div:nth-of-type(2) { grid-template-columns: 1fr; min-height: 0; gap: 24px; padding-block: 40px !important; }
  .journey-practice .timeline-line > div > div:not(.absolute):has(h2) { position: static; order: 0; }
  .journey-practice .timeline-line > div > div:not(.absolute):has(img) { order: 1; }
  .journey-practice .timeline-line h2 { font-size: 32px; }
  .journey-practice .timeline-line img { aspect-ratio: 4/3; }
  .journey-records > ul > li > div { grid-template-columns: 1fr; }
  .journey-records h3 { font-size: 30px; }
  .journey-combinations-panel { min-height: 0; }
  .journey-combinations-menu { flex-direction: row; flex-wrap: wrap; gap: 0 20px; }
  .journey-combinations button { font-size: 20px; padding-block: 16px; }
  .journey-combinations button > .material-symbols-outlined { display: none; }
  .journey-editorial-grid { grid-template-columns: 1fr !important; }
  .journey-editorial-grid > article:first-child { grid-row: auto; }
  .journey-editorial-grid > article:first-child h3 { font-size: 30px; }
  .journey-region { padding-block: 56px; }
  .journey-close > div { display: block; }
  .journey-close .journey-link { margin-top: 24px; }
  .journey-architecture .cinema-method-list > li { min-height: 0; padding: 28px 0 28px 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .journey-enabled [data-journey-layer] { opacity: 1; transform: none; transition: none; stroke-dashoffset: 0; }
  .journey-enabled .journey-programme [data-journey-layer] { transform: none; }
  .journey-enabled .journey-record { transform: translate(calc(var(--sheet)*9px), calc(var(--sheet)*11px)); }
  .journey-admin-intro, .journey-architecture .cinema-method-intro { position: static; }
  .journey-stage, .journey-region-route, .journey-records > div:first-child, .journey-practice .timeline-line > div > div:has(h2) { position: static; }
  .journey-stages > [data-journey-step]::before { transition: none; }
}
