:root{color:#f3f6f7;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--tra-red:#8b1d2c;--tra-red-bright:#bd2b3d;--emu-green:#63a84d;--panel:#17212a;--panel-deep:#0d141b;--metal:#66717a;--text-dim:#aab5bd;--line:#ffffff26;--green:#42cf80;--yellow:#f0c34d;--red:#e44d56;background:#0b1015;font-family:PingFang TC,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;background:#0b1015;width:100%;height:100dvh;margin:0;overflow:hidden}html{touch-action:manipulation;-webkit-text-size-adjust:100%}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:fixed;inset:0}button{font:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible{outline-offset:3px;outline:3px solid #fff}.experience{background:#0a0f14;grid-template-rows:minmax(260px,46dvh) minmax(0,54dvh);width:100%;height:100dvh;min-height:100dvh;display:grid;overflow:hidden}.windshield{isolation:isolate;background:linear-gradient(#91b7ca 0 48%,#899083 48% 100%);border-bottom:8px solid #080b0e;min-height:0;position:relative;overflow:hidden}.windshield:before,.windshield:after{content:"";z-index:20;background:linear-gradient(90deg,#0a0e12,#253039 45%,#080b0e);width:clamp(14px,2.7vw,38px);position:absolute;top:0;bottom:0;box-shadow:0 0 12px #000000b3}.windshield:before{left:0}.windshield:after{right:0;transform:scaleX(-1)}.windshield__video,.track-simulator{width:100%;height:100%;position:absolute;inset:0}.windshield__video{z-index:1;object-fit:cover;object-position:center 58%}.windshield__tint{z-index:3;pointer-events:none;background:linear-gradient(#050d1433,#0000 35%,#060a0d14 67%,#0306088a),linear-gradient(90deg,#05090c33,#0000 16% 84%,#05090c33);position:absolute;inset:0}.track-simulator{--motion-ms:.5s;z-index:0;perspective:520px;background:#b2d2df;overflow:hidden}.track-simulator__sky{background:radial-gradient(at 72% 24%,#ffffffb3 0 3%,#0000 17%),linear-gradient(#7daec6 0%,#c8dfe6 64%,#f0d3b3 100%);position:absolute;inset:0 0 39%}.track-simulator__mountains{clip-path:polygon(0 88%,9% 48%,18% 77%,28% 35%,39% 74%,52% 27%,62% 70%,73% 42%,85% 73%,94% 39%,100% 78%,100% 100%,0 100%);position:absolute;left:-8%;right:-8%}.track-simulator__mountains--back{opacity:.6;background:#799398;height:33%;bottom:42%}.track-simulator__mountains--front{background:linear-gradient(160deg,#536c67,#708178);height:25%;bottom:39%}.track-simulator__water,.track-simulator__fields{z-index:1;pointer-events:none;height:22%;display:none;position:absolute;bottom:31%;left:0;right:0}.scene-coastal .track-simulator__water{background:repeating-linear-gradient(174deg,#0000 0 13px,#ffffff38 14px 16px),linear-gradient(#69aabb,#4f899f);display:block}.scene-coastal .track-simulator__city{opacity:.18}.scene-coastal .track-simulator__mountains--front{background:linear-gradient(160deg,#506e69,#668b80)}.scene-mountain .track-simulator__fields{background:repeating-linear-gradient(168deg,#d0cd635c 0 11px,#3e764973 12px 25px),#70905d;height:28%;display:block}.scene-mountain .track-simulator__city{opacity:.08}.scene-mountain .track-simulator__mountains--back{background:#607b75;height:43%}.scene-mountain .track-simulator__mountains--front{background:linear-gradient(160deg,#405f51,#6b8269);height:35%}.scene-city .track-simulator__city{opacity:.94}.scene-city .track-simulator__mountains--back{opacity:.28}.track-simulator__city{opacity:.82;justify-content:space-around;align-items:end;height:27%;display:flex;position:absolute;bottom:38%;left:0;right:0}.track-simulator__city i{width:7%;height:calc(23% + (var(--h,1) * 4%));background:repeating-linear-gradient(90deg,#0000 0 8px,#e6eddd73 8px 11px),#536069;border-top:4px solid #445059;min-height:22px;max-height:100%}.track-simulator__city i:nth-child(2n){height:65%}.track-simulator__city i:nth-child(3n){height:85%}.track-simulator__city i:nth-child(5n){height:42%}.track-simulator__ground{transform-origin:top;background:linear-gradient(90deg,#80877d 0 34%,#5b5e56 34% 66%,#7e857b 66% 100%);position:absolute;inset:57% -25% -38%;transform:rotateX(61deg)}.track-simulator__sleepers{z-index:3;transform-origin:top;clip-path:polygon(45% 0,55% 0,96% 100%,4% 100%);background:repeating-linear-gradient(#191917fa 0 5px,#827761fa 6px 14px,#47463ffa 15px 27px) 0 0/100% 58px;width:62%;height:85%;position:absolute;top:58%;left:19%;transform:perspective(360px)rotateX(62deg)}.track-simulator.is-moving .track-simulator__sleepers{animation:sleepers var(--motion-ms) linear infinite}@keyframes sleepers{0%{background-position-y:0}to{background-position-y:58px}}.track-simulator__rail{z-index:5;background:linear-gradient(90deg,#3b3d3d,#e8e4d8 48%,#4a4d4d);width:1.2%;min-width:7px;position:absolute;top:56%;bottom:-20%;box-shadow:0 0 8px #ffffff75}.track-simulator__rail--left{transform-origin:top;left:46%;transform:skew(-17deg)}.track-simulator__rail--right{transform-origin:top;right:46%;transform:skew(17deg)}.track-simulator__platform{z-index:2;opacity:.92;background:repeating-linear-gradient(#9aa09b 0 28px,#858b85 29px 32px);width:34%;position:absolute;top:57%;bottom:-8%}.track-simulator__platform--left{border-right:9px solid #d4b731;left:-17%;transform:skew(-25deg)}.track-simulator__platform--right{border-left:9px solid #d4b731;right:-17%;transform:skew(25deg)}.track-simulator__wire{z-index:4;transform-origin:top;background:#262c2eb3;width:2px;height:47%;position:absolute;top:15%;left:50%}.track-simulator__wire--one{transform:rotate(58deg)}.track-simulator__wire--two{transform:rotate(-58deg)}.track-simulator__poles{z-index:4;justify-content:space-between;align-items:end;display:flex;position:absolute;inset:26% 6% 34%}.track-simulator__poles i{background:#485157;width:4px;height:85%;position:relative;box-shadow:2px 0 #ffffff2e}.track-simulator__poles i:before{content:"";background:#485157;width:68px;height:3px;position:absolute;top:0;left:-34px}.track-simulator__signal{z-index:6;background:#30373c;border-radius:8px 8px 2px 2px;width:15px;height:74px;position:absolute;bottom:37%;right:14%;box-shadow:0 0 0 3px #1c2226}.track-simulator__signal i,.track-simulator__signal b{border-radius:50%;width:9px;height:9px;position:absolute;left:3px}.track-simulator__signal i{background:#3c171b;top:8px}.track-simulator__signal b{background:var(--green);box-shadow:0 0 13px var(--green);top:28px}.windshield__header{z-index:10;top:max(14px, env(safe-area-inset-top));right:max(48px, calc(env(safe-area-inset-right) + 30px));left:max(48px, calc(env(safe-area-inset-left) + 30px));align-items:center;gap:14px;display:flex;position:absolute}.tra-brand{align-items:center;gap:10px;display:inline-flex}.tra-brand img{object-fit:contain;object-position:left center;width:78px;height:42px}.tra-brand>div{gap:1px;display:grid}.tra-brand__name{letter-spacing:.14em;white-space:nowrap;font-size:16px;font-weight:800}.tra-brand__service{color:#c8d0d6;letter-spacing:.1em;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px}.tra-brand--compact{color:#fff;background:#080e13c2;border:1px solid #ffffff30;border-radius:5px;padding:7px 11px;box-shadow:0 7px 18px #0003}.tra-brand--compact img{width:45px;height:27px}.tra-brand--compact .tra-brand__name{font-size:12px}.tra-brand--compact .tra-brand__service{font-size:7px}.route-chip{color:#fff;background:#0a0f14d1;border:1px solid #fff3;border-radius:5px;align-items:center;min-height:39px;margin-right:auto;display:flex;overflow:hidden}.route-chip span,.route-chip strong{align-self:stretch;align-items:center;padding:0 12px;display:flex}.route-chip span{color:#d9e0e4;letter-spacing:.14em;font-size:9px;font-weight:700}.route-chip strong{letter-spacing:.12em;background:linear-gradient(#69ad51,#397d35);font-size:14px}.sound-toggle{color:#edf2f4;background:#090e12c7;border:1px solid #ffffff3d;border-radius:5px;justify-content:center;align-items:center;gap:7px;min-width:146px;min-height:42px;padding:0 13px;display:inline-flex}.journey-announcement{z-index:10;color:#fff;border:1px solid #ffffff38;border-top:3px solid var(--emu-green);text-align:center;pointer-events:none;background:#070d11d6;border-radius:4px;min-width:min(390px,56vw);padding:9px 18px 10px;display:grid;position:absolute;top:114px;left:50%;transform:translate(-50%);box-shadow:0 8px 26px #00000042}.journey-announcement strong{color:#fff;letter-spacing:.1em;font-size:clamp(14px,1.65vw,21px)}.journey-announcement span{color:#cdd8dd;margin-top:2px;font-size:clamp(9px,1vw,12px)}.journey-announcement.is-urgent{border-top-color:var(--yellow);background:#502b00eb}.phase-idle .journey-announcement{opacity:0}.sound-toggle:active{transform:translateY(2px)}.sound-toggle span{color:#0e171d;background:#e6ecef;border-radius:50%;place-items:center;width:21px;height:21px;font-weight:900;display:grid}.windshield__status-row{z-index:9;top:72px;right:max(54px, calc(env(safe-area-inset-right) + 36px));left:max(54px, calc(env(safe-area-inset-left) + 36px));pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:absolute}.journey-progress{z-index:11;right:max(52px, calc(env(safe-area-inset-right) + 34px));bottom:34px;left:max(52px, calc(env(safe-area-inset-left) + 34px));color:#fff;pointer-events:none;grid-template-columns:auto minmax(90px,1fr) auto;align-items:center;gap:10px;display:grid;position:absolute}.journey-progress__station{letter-spacing:.08em;white-space:nowrap;background:#070d11d1;border:1px solid #ffffff3d;border-radius:3px;align-items:center;gap:6px;min-height:24px;padding:4px 8px;font-size:11px;font-weight:800;display:inline-flex}.journey-progress__station i{background:#8a969d;border:2px solid #e8eef1;border-radius:50%;width:8px;height:8px}.journey-progress__station.is-origin i,.journey-progress__station.is-arrived i{background:var(--green);box-shadow:0 0 8px #42cf80cc}.journey-progress__line{background:#070d11d1;border:1px solid #ffffff42;border-radius:999px;height:6px;overflow:hidden}.journey-progress__line i{background:linear-gradient(90deg, var(--green), #8ee8b4);border-radius:inherit;height:100%;transition:width 90ms linear;display:block}.vision-status{color:#eaf0f3;background:#080d11c7;border:1px solid #ffffff2e;border-radius:4px;align-items:center;gap:9px;min-height:34px;padding:0 13px;font-size:13px;font-weight:700;display:inline-flex}.status-light{background:#4e585f;border-radius:50%;width:10px;height:10px}.status-light--green{background:var(--green);box-shadow:0 0 10px #42cf80d9}.status-light--yellow{background:var(--yellow);box-shadow:0 0 10px #f0c34dd9}.status-light--red{background:var(--red);box-shadow:0 0 10px #e44d56b3}.countdown{color:#fff;text-align:right;background:#080d11d6;border:1px solid #ffffff2e;border-radius:5px;grid-template-columns:auto auto auto;align-items:baseline;gap:6px;min-width:126px;min-height:62px;padding:7px 13px;display:grid}.countdown span{color:#bec9cf;letter-spacing:.14em;grid-column:1/-1;font-size:10px;font-weight:700}.countdown strong{font-variant-numeric:tabular-nums;margin-left:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:29px;line-height:1}.countdown small{font-size:11px}.countdown.is-alert{color:#2a1800;background:var(--yellow);border-color:#ffe49c;animation:.8s ease-in-out infinite alternate countdownPulse}.countdown.is-alert span{color:#5a3a00}@keyframes countdownPulse{to{box-shadow:0 0 0 6px #f0c34d2e,0 0 24px #f0c34d6b}}.start-prompt{z-index:8;color:#fff;border-left:7px solid var(--tra-red-bright);background:linear-gradient(90deg,#090f14eb,#090f14b3);width:min(570px,64vw);padding:18px 34px 20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-34%);box-shadow:0 18px 50px #00000040}.start-prompt__eyebrow{color:#f0cbd0;letter-spacing:.24em;font-size:11px;font-weight:700}.start-prompt h1{letter-spacing:.045em;margin:5px 0 7px;font-size:clamp(27px,3vw,44px);line-height:1.09}.start-prompt p{color:#dbe2e6;margin:0;font-size:clamp(13px,1.45vw,17px);font-weight:600}.start-prompt__safety{flex-wrap:wrap;gap:6px;margin-top:10px;font-size:10px;display:flex}.start-prompt__safety b,.start-prompt__safety span{background:#ffffff1a;border:1px solid #ffffff29;border-radius:999px;padding:4px 8px}.start-prompt__safety b{color:#0b1a12;background:#8fe9b6;border-color:#baf5d3}.action-message{z-index:12;color:#fff;border:1px solid #ffffff3d;border-left:8px solid var(--yellow);text-align:center;background:#090e12e8;min-width:min(470px,60vw);padding:17px 28px;display:grid;position:absolute;top:53%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 48px #00000057}.action-message span{color:#c8d1d6;letter-spacing:.16em;font-size:12px;font-weight:700}.action-message strong{color:#ffe18d;letter-spacing:.08em;margin-top:3px;font-size:clamp(28px,3.4vw,48px)}.action-message.is-success{border-left-color:var(--green)}.action-message.is-success strong{color:#8eecb7}.action-message small{color:#cae9d7;margin-top:5px;font-size:12px}.safety-banner{z-index:12;min-height:28px;padding:4px max(46px, calc(env(safe-area-inset-right) + 28px)) 4px max(46px, calc(env(safe-area-inset-left) + 28px));color:#dce5e9;letter-spacing:.06em;white-space:nowrap;background:#060b0fe6;border-top:1px solid #ffffff29;justify-content:center;align-items:center;gap:clamp(10px,2.4vw,34px);font-size:9px;display:flex;position:absolute;bottom:0;left:0;right:0}.safety-banner strong{color:#8fe9b6}.dashboard{min-height:0;padding:18px max(18px, calc(env(safe-area-inset-right) + 12px)) max(12px, calc(env(safe-area-inset-bottom) + 9px)) max(18px, calc(env(safe-area-inset-left) + 12px));background:linear-gradient(#303a41 0 9px,#12191f 9px 100%),#12191f;position:relative;overflow:hidden}.dashboard:before{content:"";pointer-events:none;border:1px solid #ffffff1a;position:absolute;inset:14px;box-shadow:inset 0 0 40px #0000007a}.dashboard__rim{z-index:0;background:linear-gradient(#78b05f 0 4px,#707981 4px 10px,#242d34 10px 48%,#0a0e12 52%);height:15px;position:absolute;top:0;left:0;right:0;box-shadow:0 4px 9px #000000a6}.dashboard__grid{z-index:1;grid-template-rows:minmax(0,1fr) 94px;grid-template-columns:1.05fr .82fr 1.43fr 1.2fr;gap:10px;width:100%;height:100%;display:grid;position:relative}.panel{background:linear-gradient(145deg, #ffffff09, transparent 30%), var(--panel);border:1px solid #394650;border-radius:6px;min-width:0;min-height:0;overflow:hidden;box-shadow:inset 0 0 0 2px #0000005c,inset 0 -13px 25px #00000021,0 5px 11px #00000047}.panel__title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:8px;min-height:32px;padding:8px 11px 5px;display:flex}.panel__title span{letter-spacing:.12em;font-size:12px;font-weight:800}.panel__title i{color:#71828f;letter-spacing:.12em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;font-style:normal}.panel--power{grid-template-rows:auto 1fr 1fr auto;display:grid}.bar-meter{flex-direction:column;justify-content:center;gap:6px;padding:4px 12px;display:flex}.bar-meter__heading{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.bar-meter__heading span{color:var(--text-dim);font-size:11px}.bar-meter__heading strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.bar-meter__track{background:#080c10;border:1px solid #3e4850;border-radius:2px;width:100%;height:13px;position:relative;overflow:hidden}.bar-meter__track:after{content:"";background:repeating-linear-gradient(90deg,#0000 0 13%,#05090ccc 13% 15%);position:absolute;inset:0}.bar-meter__fill{height:100%;transition:width 80ms linear;display:block}.bar-meter__fill--green{background:linear-gradient(90deg,#279f5c,#66e39b)}.bar-meter__fill--red{background:linear-gradient(90deg,#9d2c36,#ed5b65)}.electrical-readout{border-top:1px solid var(--line);background:#05090c73;justify-content:space-between;align-items:center;gap:8px;min-height:45px;padding:5px 12px;display:flex}.electrical-readout span{color:var(--text-dim);font-size:10px}.electrical-readout strong{color:#8ed8ef;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:22px}.electrical-readout small{font-size:9px}.panel--pressure{grid-template-rows:auto 1fr auto;display:grid}.pressure-gauge{place-items:center;min-height:0;padding:5px;display:grid}.pressure-gauge__face{aspect-ratio:1;background:radial-gradient(circle at 50% 55%, #121a20 0 9%, transparent 10%), repeating-conic-gradient(from -130deg, #aab4ba 0 1deg, transparent 1deg 13deg), radial-gradient(circle, #18232b 0 64%, #0a0f13 65% 70%, #68737a 71% 73%, #0b1014 74%);border:2px solid #6a747a;border-radius:50%;width:min(15vh,118px);position:relative;box-shadow:inset 0 0 16px #000,0 2px 5px #000}.pressure-gauge__face i{transform-origin:50% 92%;clip-path:polygon(50% 0,100% 100%,0 100%);background:#f0ebe0;width:4px;height:36%;transition:transform 80ms linear;position:absolute;top:17%;left:calc(50% - 2px)}.pressure-gauge__face b{text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:17px;position:absolute;bottom:16%;left:0;right:0}.pressure-gauge__face small{color:var(--text-dim);text-align:center;font-size:8px;position:absolute;bottom:7%;left:0;right:0}.pressure-gauge__label{color:#9ba8af;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;position:absolute;top:25%;left:0;right:0}.pressure-gauge__min,.pressure-gauge__max{color:#8c989f;font-size:8px;position:absolute;top:52%}.pressure-gauge__min{left:13%}.pressure-gauge__max{right:13%}.door-indicator{color:#95a1a8;border-top:1px solid var(--line);background:#05090c73;justify-content:center;align-items:center;gap:8px;min-height:39px;font-size:11px;font-weight:700;display:flex}.door-indicator i{background:#4c575d;border-radius:50%;width:10px;height:10px}.door-indicator.is-closed i{background:var(--green);box-shadow:0 0 9px #42cf80cc}.panel--speed{background:radial-gradient(circle at 45% 46%, #3548548a, transparent 44%), var(--panel-deep);place-items:center;display:grid;position:relative}.speed-gauge{aspect-ratio:200/178;width:min(28vh,250px);max-width:96%;position:relative}.speed-gauge__face{width:100%;height:100%;overflow:visible}.speed-gauge__track,.speed-gauge__progress{fill:none;stroke-width:7px;stroke-linecap:round}.speed-gauge__track{stroke:#313d45}.speed-gauge__progress{stroke:url(#speedArc)}.speed-gauge__face line{stroke:#abb6bc;stroke-width:2px}.speed-gauge__face text{fill:#aeb8bd;text-anchor:middle;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px}.speed-gauge__needle{transform-box:fill-box;transform-origin:50% 92%;transition:transform 70ms linear}.speed-gauge__needle path{fill:#f4f0e5;filter:drop-shadow(0 0 3px #ffffff73)}.speed-gauge__hub{fill:#aeb6ba;stroke:#0b1014;stroke-width:4px}.speed-gauge__digital{justify-content:center;align-items:baseline;gap:6px;display:flex;position:absolute;bottom:5%;left:0;right:0}.speed-gauge__digital strong{font-variant-numeric:tabular-nums;text-align:right;text-shadow:0 0 10px #8ed8ef40;min-width:2.2ch;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(28px,4vh,43px);line-height:.9}.speed-gauge__digital span{color:#9ba8af;font-size:10px}.speed-limit{background:#060a0dc2;border:1px solid #46535c;border-radius:4px;grid-template-columns:auto auto;align-items:baseline;min-width:72px;padding:5px 7px;display:grid;position:absolute;top:10px;right:10px}.speed-limit span{color:#9ba8af;letter-spacing:.08em;grid-column:1/-1;font-size:7px}.speed-limit strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:17px}.speed-limit small{color:#89969d;margin-left:3px;font-size:6px}.panel--systems{grid-template-rows:auto 1fr;display:grid}.systems-grid{grid-template-columns:1fr 1fr;min-height:0;display:grid}.systems-grid__item{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;justify-content:center;gap:4px;min-width:0;padding:7px 10px;display:flex}.systems-grid__item:nth-child(2n){border-right:0}.systems-grid__item:nth-child(n+3){border-bottom:0}.systems-grid__item span{color:var(--text-dim);font-size:9px}.systems-grid__item strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.systems-grid__item strong.is-safe{color:#79e3a6}.systems-grid__item--signal{flex-direction:row;justify-content:flex-start;align-items:center}.systems-grid__item--signal>div:last-child{gap:3px;display:grid}.digital-time{color:#8ed8ef;font-variant-numeric:tabular-nums;letter-spacing:.04em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.signal-stack{background:#080c0f;border:1px solid #414c53;border-radius:8px;gap:3px;width:20px;padding:4px;display:grid}.signal-stack i{opacity:.2;border-radius:50%;width:10px;height:10px}.signal-stack i:first-child{background:var(--red)}.signal-stack i:nth-child(2){background:var(--yellow)}.signal-stack i:nth-child(3){background:var(--green)}.signal-stack i.is-active{opacity:1;box-shadow:0 0 8px}.control-deck{background:linear-gradient(#ffffff0a,#0000 32%),#202a31;border:1px solid #46535c;border-radius:6px;grid-column:1/-1;grid-template-columns:minmax(150px,1.1fr) minmax(210px,1fr) minmax(210px,1fr) minmax(160px,1.05fr);gap:10px;min-width:0;padding:8px;display:grid;box-shadow:inset 0 0 0 2px #0e151a,0 5px 12px #0000004d}.control-deck__identity{flex-direction:column;justify-content:center;min-width:0;display:flex}.control-deck__identity .tra-brand--compact{width:fit-content;box-shadow:none;background:0 0;border:0;padding:3px 6px}.control-deck__identity .tra-brand--compact img{width:35px;height:20px}.control-deck__identity .tra-brand__name{font-size:10px}.control-deck__identity .tra-brand__service{display:none}.control-deck__identity>span{color:#77868f;letter-spacing:.12em;margin-left:6px;font-size:8px}.drive-button,.brake-button{color:#fff;cursor:pointer;border:2px solid #ffffff5c;border-radius:6px;grid-template-rows:1fr 1fr;grid-template-columns:42px 1fr;align-items:center;min-width:0;min-height:72px;padding:7px 16px 7px 9px;display:grid;position:relative;box-shadow:inset 0 2px #ffffff2e,inset 0 -4px #00000047,0 4px #080b0e}.drive-button{background:linear-gradient(#258b51,#146336)}.brake-button{background:linear-gradient(#ad303a,#74202a)}.drive-button i,.brake-button i{background:#00000040;border:1px solid #ffffff47;border-radius:50%;grid-row:1/-1;place-items:center;width:38px;height:38px;font-style:normal;display:grid;box-shadow:inset 0 2px 4px #00000059}.drive-button span,.brake-button span{letter-spacing:.16em;align-self:end;font-size:clamp(21px,2.4vw,31px);font-weight:900;line-height:1}.drive-button small,.brake-button small{color:#ffffffbd;letter-spacing:.06em;align-self:start;margin-top:4px;font-size:8px}.drive-button:active:not(:disabled),.brake-button:active:not(:disabled){transform:translateY(3px);box-shadow:inset 0 2px 5px #0000004d,0 1px #080b0e}.drive-button:disabled,.brake-button:disabled{cursor:default;filter:saturate(.25)brightness(.58);opacity:.68}.brake-button.is-ready{filter:none;opacity:1;animation:.64s ease-in-out infinite alternate brakeReady}@keyframes brakeReady{to{transform:translateY(-1px);box-shadow:inset 0 2px #ffffff40,inset 0 -4px #00000047,0 4px #080b0e,0 0 0 5px #e44d563d,0 0 20px #e44d5694}}.train-state{background:#0a1014;border:1px solid #4a565f;border-left:5px solid #7b878e;border-radius:4px;flex-direction:column;justify-content:center;min-width:0;padding:9px 13px;display:flex}.train-state span{color:#81919b;letter-spacing:.12em;font-size:9px}.train-state strong{text-overflow:ellipsis;white-space:nowrap;margin-top:5px;font-size:clamp(14px,1.6vw,20px);overflow:hidden}.train-state.is-warning{border-left-color:var(--yellow)}.train-state.is-warning strong{color:#ffe08b}.train-state.is-braking{border-left-color:var(--red)}.train-state.is-success{border-left-color:var(--green)}.train-state.is-success strong{color:#84e8ad}@media (orientation:portrait) and (width<=900px){.experience{grid-template-rows:minmax(305px,35dvh) minmax(0,65dvh)}.windshield__header{top:max(11px, env(safe-area-inset-top));right:max(38px, calc(env(safe-area-inset-right) + 24px));left:max(38px, calc(env(safe-area-inset-left) + 24px))}.windshield__status-row{top:67px;right:max(42px, calc(env(safe-area-inset-right) + 28px));left:max(42px, calc(env(safe-area-inset-left) + 28px))}.journey-announcement{min-width:min(420px,58vw);padding-top:7px;padding-bottom:8px;top:108px}.start-prompt{width:min(580px,72vw);transform:translate(-50%,-27%)}.journey-progress{right:max(42px, calc(env(safe-area-inset-right) + 28px));left:max(42px, calc(env(safe-area-inset-left) + 28px))}.dashboard{padding:17px max(13px, calc(env(safe-area-inset-right) + 8px)) max(11px, calc(env(safe-area-inset-bottom) + 8px)) max(13px, calc(env(safe-area-inset-left) + 8px))}.dashboard__grid{grid-template-rows:minmax(0,.9fr) minmax(0,1.25fr) 108px;grid-template-columns:1fr 1fr;gap:8px}.panel--power{grid-area:1/1}.panel--pressure{grid-area:1/2}.panel--speed{grid-area:2/1}.panel--systems{grid-area:2/2}.control-deck{grid-area:3/1/auto/-1}.panel--pressure{grid-template-rows:auto 1fr;grid-template-columns:1fr 1fr}.panel--pressure .panel__title{grid-column:1/-1}.pressure-gauge{grid-column:1}.door-indicator{border-top:0;border-left:1px solid var(--line);grid-column:2}.pressure-gauge__face{width:min(12vh,108px)}.speed-gauge{width:min(23vh,220px)}.control-deck{grid-template-columns:.6fr 1fr 1fr .8fr}}@media (width<=1100px) and (orientation:landscape){.dashboard__grid{grid-template-columns:1fr .75fr 1.28fr 1.08fr}.control-deck{grid-template-columns:.72fr 1fr 1fr .88fr}.control-deck__identity>span{display:none}.speed-gauge{width:min(27vh,212px)}.pressure-gauge__face{width:min(14vh,100px)}.drive-button,.brake-button{grid-template-columns:35px 1fr;padding-right:9px}.drive-button i,.brake-button i{width:32px;height:32px}.drive-button span,.brake-button span{font-size:22px}}@media (height<=790px) and (orientation:landscape){.experience{grid-template-rows:minmax(250px,45dvh) minmax(0,55dvh)}.dashboard{padding-top:16px}.dashboard__grid{grid-template-rows:minmax(0,1fr) 86px;gap:8px}.control-deck{gap:8px;padding:6px}.drive-button,.brake-button{min-height:66px}.bar-meter{padding-top:2px;padding-bottom:2px}.electrical-readout{min-height:38px}.door-indicator{min-height:34px}.start-prompt{padding-top:13px;padding-bottom:15px}.start-prompt__safety{margin-top:7px}}@media (width<=760px){.route-chip span{display:none}.sound-toggle{min-width:116px;padding-left:8px;padding-right:8px;font-size:9px}.windshield__header{gap:8px}.tra-brand--compact .tra-brand__name{font-size:10px}.tra-brand--compact .tra-brand__service{display:none}.start-prompt h1{font-size:25px}.systems-grid__item{padding:6px 8px}.systems-grid__item strong{font-size:10px}.journey-progress{gap:6px}.journey-progress__station{padding-left:6px;padding-right:6px;font-size:9px}.safety-banner{gap:8px;font-size:8px}.safety-banner span:last-child{display:none}}@media (prefers-reduced-motion:reduce){.countdown.is-alert,.brake-button.is-ready{animation-duration:1.4s}}
