#railway-simulation{--mint:#71e9cc;--muted:#acc4d0;background:#081b29;color:#ecf5f8;border:1px solid #2b4755;border-radius:18px;padding:clamp(18px,3vw,36px);margin:28px 0 40px;font:16px/1.6 system-ui,sans-serif;overflow:hidden}#railway-simulation *{box-sizing:border-box}.rail-heading{display:flex;justify-content:space-between;align-items:start;gap:20px}.rail-heading h2{color:#fff;font-size:clamp(27px,3.4vw,44px);line-height:1.12;margin:10px 0}.rail-heading p{margin:5px 0;color:var(--muted)}#railway-simulation .rail-kicker{font:11px/1.6 ui-monospace,monospace;letter-spacing:2px;color:var(--mint)}.rail-badge{border:1px solid #3d796f;border-radius:30px;padding:6px 13px;white-space:nowrap;font-size:12px;color:var(--mint)}.rail-context{max-width:850px;color:var(--muted)}.rail-controls{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:25px 0 18px}#railway-simulation button,#railway-simulation select{font:inherit;border:1px solid #496372;border-radius:7px;background:#152f40;color:#fff;padding:9px 14px;cursor:pointer}#railway-simulation button:disabled{opacity:.5;cursor:wait}#railway-simulation #rail-play{background:var(--mint);color:#08251f;font-weight:750}#railway-simulation input{accent-color:#71e9cc}.rail-controls label{font-size:13px;color:#c8dbe3}#rail-stages{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}#rail-stages button{font-size:12px;padding:7px 10px}#rail-stages button[aria-current]{border-color:var(--mint);color:var(--mint)}.rail-workspace{display:grid;grid-template-columns:1.45fr 1fr;border:1px solid #294654;border-radius:10px;overflow:hidden}.rail-radar{background:#071621;min-width:0;padding:18px}.rail-radar-top{display:flex;justify-content:space-between;font:10px ui-monospace,monospace;letter-spacing:1px;color:var(--muted)}.rail-radar svg{width:100%;height:auto;display:block;margin-top:15px}.rail-path{stroke:#57c8b0;stroke-dasharray:8 6}.rail-map-node rect{fill:#102c3c;stroke:#497282}.rail-legend{font-size:11px;color:var(--muted);margin:0}.rail-legend span{color:var(--mint);margin-left:10px}.rail-legend .rail-amber{color:#ffc36d}.rail-story{padding:24px;background:#102534}.rail-story h3{font-size:23px;color:#fff;margin:8px 0 14px}.rail-story p{color:#cadde5;font-size:14px}#rail-audio-status{color:var(--mint);font-size:11px}#rail-progress{width:100%;height:5px;accent-color:#71e9cc}.rail-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.rail-metrics>div{border:1px solid #294654;border-radius:8px;padding:15px}.rail-metrics span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.rail-metrics strong{display:block;font-size:23px;font-weight:600;margin-top:6px}.rail-metrics small{font-size:13px}#railway-simulation details{border-top:1px solid #294654;padding-top:16px;font-size:13px;color:#c8dbe3}#railway-simulation summary{cursor:pointer;color:var(--mint)}#railway-simulation a{color:#8edbff}#railway-simulation :focus-visible{outline:3px solid #ffc36d;outline-offset:4px}#railway-simulation.is-degraded .rail-path{stroke:#ffc36d}#railway-simulation.is-degraded .rail-packets{fill:#ffc36d}.is-playing .rail-path{animation:rail-flow 3s linear infinite}.is-playing .rail-packets{animation:rail-pulse 1.6s ease-in-out infinite}@keyframes rail-flow{to{stroke-dashoffset:-56}}@keyframes rail-pulse{50%{opacity:.3}}@media(max-width:800px){.rail-workspace{grid-template-columns:1fr}.rail-heading{display:block}.rail-badge{display:inline-block;margin-top:10px}.rail-metrics{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){.is-playing .rail-path,.is-playing .rail-packets{animation:none}}


/* Intro stays inside the dispatch diagram. */
.rail-radar{position:relative;overflow:hidden}
#rail-intro-overlay{position:absolute;inset:40px 18px 36px;z-index:2;margin:0;padding:0;border:0;background:#000;overflow:hidden;opacity:0;transition:opacity 1.2s ease;color:#fff}
#rail-intro-overlay[hidden]{display:none}
#rail-intro-overlay.is-visible{opacity:1}
#rail-intro{display:block;width:100%;height:100%;object-fit:contain}
.rail-intro-controls{position:absolute;bottom:8px;right:8px;left:8px;display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.rail-intro-controls button{padding:12px 18px;border:1px solid #a8c5d3;border-radius:8px;background:#081b29e8;color:#fff;font:600 14px system-ui;cursor:pointer}
.rail-intro-controls button:focus-visible{outline:3px solid #71e9cc;outline-offset:4px}
@media(prefers-reduced-motion:reduce){#rail-intro-overlay{transition:none}}
