:root{--bg:#080b10;--panel:rgba(15,20,27,.82);--line:rgba(180,195,210,.18);--text:#edf0f2;--muted:#8b959f;--railjet:#e72833;--ic:#ff9d4d;--regional:#51d6a5;--night:#75a7ff;--sbahn:#d989e8}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Manrope,system-ui,sans-serif}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}#stage{position:fixed;inset:0;background:radial-gradient(circle at 52% 48%,#121a22 0,#090d13 50%,#06080c 100%)}#map{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.glass{background:var(--panel);border:1px solid var(--line);border-radius:9px;backdrop-filter:blur(14px);box-shadow:0 12px 38px rgba(0,0,0,.25)}.brand{position:fixed;left:22px;top:20px;z-index:2;display:grid;grid-template-columns:12px auto;column-gap:9px;align-items:center;font-size:13px;font-weight:600;letter-spacing:.02em}.brand small{grid-column:2;color:var(--muted);font-size:10px;font-weight:400;letter-spacing:.15em;text-transform:uppercase}.flag{width:12px;height:20px;border-radius:2px;background:linear-gradient(#e32636 0 33%,#fff 33% 66%,#e32636 66%)}#clock{position:fixed;z-index:2;left:50%;top:9%;transform:translateX(-50%);font:300 clamp(34px,5vw,62px)/1 DM Mono,monospace;letter-spacing:-.07em;text-shadow:0 2px 20px #000;text-align:center}#clock i{font-style:normal;color:#78808b}#clock small{display:block;margin-top:8px;color:var(--muted);font:400 10px/1 Manrope,sans-serif;letter-spacing:.12em;text-transform:uppercase}.top-button{position:fixed;right:20px;top:20px;z-index:4;padding:8px 12px;font-size:11px;color:#bcc4cb}.about{position:fixed;z-index:6;right:20px;top:63px;width:min(370px,calc(100vw - 40px));padding:22px}.about[hidden]{display:none}.about h2{font-size:20px;line-height:1.25;margin:5px 30px 15px 0}.about p:not(.eyebrow){color:#a7b0b8;font-size:12px;line-height:1.65}.about #closeAbout{position:absolute;right:12px;top:8px;color:#9aa3ac;font-size:24px}.legend{position:fixed;z-index:2;left:20px;bottom:20px;width:255px;padding:14px 16px}.eyebrow{margin:0 0 9px;color:#707b86;font-size:9px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}.legend-row{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:8px;padding:4px 0;font-size:11px}.dot{width:7px;height:7px;border-radius:50%;box-shadow:0 0 8px currentColor}.count{font:400 10px DM Mono;color:#a3abb3}.legend footer{border-top:1px solid var(--line);margin-top:9px;padding-top:9px;color:#6f7984;font-size:9px}.pulse-symbol{display:inline-block;width:8px;height:8px;margin-right:5px;border:1px solid #85909b;border-radius:50%}.controls{position:fixed;z-index:2;right:20px;bottom:20px;display:flex;align-items:center;gap:14px;padding:10px 12px}.controls>button{min-width:62px;font-size:11px}.pause-icon{margin-right:6px;font-family:DM Mono}.timeline-wrap{position:relative;width:min(290px,28vw);height:48px}#profile,#timeline{position:absolute;left:0;top:0;width:100%;height:34px}#timeline{appearance:none;margin:0;background:transparent;cursor:pointer}#timeline::-webkit-slider-thumb{appearance:none;width:2px;height:34px;background:#fff;border-radius:1px}.ticks{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;color:#69737d;font:400 8px DM Mono}.speed{display:flex;gap:3px}.speed button{border:1px solid transparent;border-radius:4px;padding:4px 6px;color:#6f7984;font:400 9px DM Mono}.speed button[aria-pressed=true]{border-color:#56616d;color:#e7eaed}#tooltip{position:fixed;z-index:5;pointer-events:none;opacity:0;transform:translate(-50%,-135%);padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:#111820;font-size:11px;transition:opacity .12s}#tooltip.on{opacity:1}#tooltip span{display:block;margin-top:2px;color:#87919a;font-size:9px}.help{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);color:#55606b;font-size:9px;letter-spacing:.08em}
@media(max-width:760px){.brand{left:14px;top:14px}.top-button{right:14px;top:14px}.legend{left:12px;bottom:90px;width:210px}.controls{left:12px;right:12px;bottom:12px;gap:8px}.timeline-wrap{flex:1;width:auto}.help{display:none}#clock{top:13%}.legend-row:nth-child(n+4){display:none}.legend footer{display:none}}
.date-control{display:grid;gap:2px;color:#69737d;font-size:8px;letter-spacing:.1em;text-transform:uppercase}.date-control input{width:116px;padding:4px 6px;border:1px solid var(--line);border-radius:4px;outline:0;background:#0b1118;color:#cbd1d6;font:400 10px DM Mono;color-scheme:dark}.date-control input:focus{border-color:#697582}
.attribution{padding-top:10px;border-top:1px solid var(--line)}.attribution a,.data-credit a{color:#aeb7bf;text-decoration:none}.attribution a:hover,.data-credit a:hover{text-decoration:underline}.data-credit{position:fixed;z-index:2;right:20px;bottom:86px;color:#56616b;font-size:8px;letter-spacing:.02em}
.license-label,.source-line{white-space:nowrap}
@media(max-width:760px){.controls{flex-wrap:wrap}.date-control{order:3}.legend{bottom:108px}}
@media(max-width:760px){.data-credit{display:none}}
.about{width:min(430px,calc(100vw - 40px));max-height:calc(100vh - 84px);overflow:auto}.about h3{margin:20px 0 7px;color:#d7dce0;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.about p:not(.eyebrow),.about details{color:#a7b0b8;font-size:12px;line-height:1.65}.about a{color:#cbd2d8}.about details{margin-top:10px}.about summary{cursor:pointer;color:#8e99a3}
.map-summary{position:fixed;z-index:2;left:20px;top:68px;width:245px;color:#78838d;font-size:10px;line-height:1.55}.map-summary strong{color:#b7c0c8;font-weight:500}
@media(max-width:760px){.map-summary{display:none}}
