:root{--ink: #1d2529;--ink-soft: #343d42;--muted: #5f696d;--muted-2: #7f888b;--line: rgba(29, 37, 41, .13);--line-strong: rgba(29, 37, 41, .21);--paper: rgba(249, 250, 247, .9);--paper-solid: #f7f8f5;--red: #c51f2f;--red-deep: #981421;--red-soft: rgba(197, 31, 47, .1);--green: #4f9f78;--amber: #c3944b;--shadow: 0 18px 55px rgba(24, 31, 34, .12), 0 2px 7px rgba(24, 31, 34, .05);--font-sans: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Segoe UI", sans-serif;--font-num: "Bahnschrift", "DIN Alternate", "Arial Narrow", Arial, sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:radial-gradient(circle at 32% 8%,#f2f3f0,#f2f3f000 44%),linear-gradient(180deg,#dde1df,#cbd1d2 56%,#b7bfc0);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}#app{position:relative;width:100%;height:100%;isolation:isolate}#scene-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none;outline:none}.atmosphere{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background:radial-gradient(circle at 50% 36%,#ffffff3b,#fff0 45%),linear-gradient(180deg,#ffffff29,#fff0 25%);mix-blend-mode:screen}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;box-shadow:inset 0 0 180px #222a2e21;background:linear-gradient(to top,#e6eae9f5,#e6eae99e 10%,#e6eae900 34%),linear-gradient(90deg,#eff0ed40,#eff0ed00 20%),linear-gradient(270deg,#eff0ed33,#eff0ed00 22%)}#hud{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}#hud>*{pointer-events:auto}.eyebrow,.panel-head .head-title span,.consist-head,.scale-note,.scene-hint,.legend-title small,.cutaway-label small,.system-state small,.loader-meta,.view-caption{font-family:var(--font-num);letter-spacing:.13em}.brand{position:absolute;top:28px;left:32px;display:flex;align-items:center;gap:15px;pointer-events:none}.brand-mark{position:relative;width:56px;height:56px;border:1px solid rgba(197,31,47,.55);background:var(--red);color:#fff;display:grid;place-items:center;box-shadow:0 8px 26px #c51f2f3d;overflow:hidden}.brand-mark:before,.brand-mark:after{content:"";position:absolute;background:#ffffff4d}.brand-mark:before{width:42px;height:1px;transform:rotate(-45deg)}.brand-mark:after{width:1px;height:42px;transform:rotate(45deg)}.brand-mark span{font-family:var(--font-num);font-weight:800;font-size:21px;letter-spacing:-.06em;z-index:1}.brand-mark i{position:absolute;right:5px;bottom:5px;width:4px;height:4px;background:#fff;z-index:2}.brand-copy{text-shadow:0 1px 0 rgba(255,255,255,.7)}.brand-copy .eyebrow{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:9px;font-weight:600;margin-bottom:5px}.live-dot{display:inline-block;width:5px;height:5px;background:var(--red);border-radius:50%;box-shadow:0 0 0 3px #c51f2f1a;animation:livePulse 2.4s ease-out infinite}@keyframes livePulse{0%,55%{box-shadow:0 0 #c51f2f4d}to{box-shadow:0 0 0 8px #c51f2f00}}.brand-copy h1{margin:0;font-size:clamp(20px,1.62vw,27px);font-weight:700;letter-spacing:.02em;line-height:1.2}.brand-copy p{margin:4px 0 0;color:var(--muted);font-size:11px;letter-spacing:.04em}.brand-copy p b{color:var(--red);font-family:var(--font-num);letter-spacing:.09em}.top-meta{position:absolute;top:27px;right:32px;display:flex;align-items:center;gap:16px;pointer-events:none}.sound-toggle{pointer-events:auto;position:relative;display:flex;align-items:center;gap:8px;padding:8px 12px 8px 9px;border:1px solid var(--line);background:#f8f9f69e;color:var(--ink-soft);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .2s ease,border-color .2s ease,color .2s ease}.sound-toggle:hover{background:#ffffffe6;border-color:var(--line-strong)}.sound-toggle.ready{border-color:#c51f2f4d;background:#fffcf9e6}.sound-toggle.muted{color:var(--muted-2)}.sound-icon{width:24px;height:24px;display:grid;place-items:center;color:var(--red);flex:0 0 24px}.sound-icon svg{width:17px;height:17px;overflow:visible}.sound-icon path:first-child{fill:currentColor}.sound-wave{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;opacity:.35;transition:opacity .25s ease}.sound-toggle.ready .sound-wave{opacity:1;animation:soundWave 2s ease-in-out infinite}.sound-toggle.muted .sound-icon{color:var(--muted-2)}@keyframes soundWave{0%,to{opacity:.45}50%{opacity:1}}.sound-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1;white-space:nowrap}.sound-copy b{font-size:8px;font-weight:700;letter-spacing:.04em}.sound-copy small{margin-top:3px;color:var(--muted-2);font-family:var(--font-num);font-size:6px;letter-spacing:.08em}.sound-prompt-dot{position:absolute;top:5px;right:5px;width:4px;height:4px;border-radius:50%;background:var(--red);box-shadow:0 0 0 3px #c51f2f1a;opacity:0}.sound-toggle.pending .sound-prompt-dot{opacity:1;animation:livePulse 2s ease-out infinite}.sound-toggle.ready .sound-prompt-dot,.sound-toggle.muted .sound-prompt-dot{opacity:0}.system-state{display:flex;align-items:center;gap:9px;padding-right:20px;border-right:1px solid var(--line);text-align:right}.system-state b{display:block;font-size:10px;font-weight:700;letter-spacing:.08em}.system-state small{display:block;margin-top:2px;color:var(--muted-2);font-size:7px}.pulse-ring{position:relative;width:8px;height:8px;border:1px solid rgba(79,159,120,.7);border-radius:50%}.pulse-ring:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;background:var(--green);border-radius:50%}.clock{display:flex;align-items:baseline;gap:8px}.clock strong{font-family:var(--font-num);font-size:19px;font-weight:600;letter-spacing:.06em;font-variant-numeric:tabular-nums}.clock span{color:var(--muted);font-family:var(--font-num);font-size:8px;letter-spacing:.1em}.view-caption{position:absolute;top:36px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;color:var(--muted-2);font-size:8px;pointer-events:none;white-space:nowrap}.view-caption b{color:var(--ink);font-family:var(--font-sans);font-size:10px;font-weight:600;letter-spacing:.14em}.caption-rule{display:inline-block;width:34px;height:1px;background:linear-gradient(90deg,transparent,var(--line-strong))}.caption-rule:last-child{transform:scaleX(-1)}.panel{background:linear-gradient(135deg,#ffffffa8,#fff0 45%),var(--paper);border:1px solid rgba(255,255,255,.7);border-radius:7px;box-shadow:var(--shadow),inset 0 0 0 1px #21292d0f;backdrop-filter:blur(18px) saturate(1.12);-webkit-backdrop-filter:blur(18px) saturate(1.12)}.panel:before{content:"";position:absolute;top:-1px;left:22px;width:42px;height:2px;background:var(--red)}.train-panel{position:absolute;top:117px;left:32px;width:332px;padding:17px 17px 13px}.location-panel{position:absolute;top:117px;right:32px;width:354px;padding:17px 17px 15px}.panel-head{display:flex;align-items:center;gap:10px;min-height:36px;padding-bottom:11px;border-bottom:1px solid var(--line)}.head-index{font-family:var(--font-num);font-size:9px;font-weight:600;color:var(--red);border:1px solid rgba(197,31,47,.32);width:22px;height:22px;display:grid;place-items:center;line-height:1}.head-title{flex:1;min-width:0}.head-title span{display:block;font-size:7px;font-weight:600;color:var(--muted-2);margin-bottom:2px}.head-title h2{margin:0;font-size:14px;font-weight:700;letter-spacing:.06em}.status-pill,.live-chip{display:inline-flex;align-items:center;gap:5px;font-size:9px;font-weight:600;letter-spacing:.06em;white-space:nowrap}.status-pill{color:var(--red);background:var(--red-soft);border:1px solid rgba(197,31,47,.15);padding:5px 8px}.status-pill i{width:5px;height:5px;background:var(--red);border-radius:50%;animation:livePulse 1.8s infinite}.status-pill.stopped{color:#3b7e5f;background:#468f6a1a;border-color:#468f6a2b}.status-pill.stopped i{background:var(--green);animation:none}.live-chip{color:#fff;background:var(--ink);padding:5px 7px;font-family:var(--font-num);font-size:7px;letter-spacing:.14em}.live-chip:before{content:"";width:4px;height:4px;background:#ff5163;border-radius:50%}.train-hero{display:flex;align-items:flex-end;justify-content:space-between;padding:14px 0 0}.train-identity{display:flex;align-items:baseline;gap:9px}.train-identity strong{font-family:var(--font-num);font-size:38px;font-weight:800;line-height:.9;letter-spacing:-.035em;color:var(--ink)}.train-identity span{color:var(--red);font-family:var(--font-num);font-size:10px;font-weight:600;letter-spacing:.08em}.train-route{display:flex;align-items:center;gap:5px;padding-bottom:2px;color:var(--muted);font-size:9px;white-space:nowrap}.train-route i{position:relative;width:20px;height:1px;background:var(--line-strong)}.train-route i:after{content:"";position:absolute;right:-1px;top:-2px;border-left:4px solid var(--red);border-top:2.5px solid transparent;border-bottom:2.5px solid transparent}.operator{margin:8px 0 12px;color:var(--muted);font-size:9px;letter-spacing:.04em}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 0 8px}.metric-grid div{position:relative;padding-left:9px}.metric-grid div:first-child{padding-left:0}.metric-grid div+div:before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:1px;background:var(--line)}.metric-grid strong{display:block;font-family:var(--font-num);font-size:17px;line-height:1;font-weight:600;letter-spacing:-.02em}.metric-grid span{display:block;margin-top:4px;color:var(--muted);font-size:7px;letter-spacing:.04em}.charge-entry{position:relative;width:100%;display:flex;align-items:center;gap:9px;margin-top:10px;padding:8px 9px;text-align:left;background:linear-gradient(90deg,#c51f2f14,#c51f2f04),#ffffff5c;border:1px solid rgba(197,31,47,.2);border-left:2px solid var(--red);transition:background .2s ease,border-color .2s ease,transform .2s ease}.charge-entry:hover{background:linear-gradient(90deg,#c51f2f1f,#c51f2f06),#ffffffb8;border-color:#c51f2f57;transform:translateY(-1px)}.charge-entry-icon{width:28px;height:28px;display:grid;place-items:center;flex:0 0 28px;background:var(--red);color:#fff;clip-path:polygon(0 0,100% 0,100% 76%,74% 100%,0 100%)}.charge-entry-icon svg{width:14px;height:14px;fill:currentColor}.charge-entry-icon{animation:chargePulse 2.8s ease-out infinite}@keyframes chargePulse{0%,60%,to{box-shadow:0 0 #c51f2f40}80%{box-shadow:0 0 0 7px #c51f2f00}}.charge-entry-copy{flex:1;display:flex;flex-direction:column;min-width:0}.charge-entry-copy b{font-size:9px;font-weight:700;letter-spacing:.04em}.charge-entry-copy small{margin-top:3px;color:var(--muted);font-size:7px;letter-spacing:.03em}.charge-entry-copy small strong{font-family:var(--font-num);font-size:9px;color:var(--red)}.charge-entry-action{display:flex;align-items:center;gap:3px;color:var(--red);font-size:7px;font-weight:600;letter-spacing:.03em;white-space:nowrap}.charge-entry-action i{font-family:var(--font-num);font-style:normal;font-size:10px;transition:transform .2s ease}.charge-entry:hover .charge-entry-action i{transform:translate(2px)}.consist-head{display:flex;align-items:center;justify-content:space-between;margin:12px 0 7px;color:var(--ink-soft);font-size:8px;font-weight:600}.consist-head small{color:var(--muted-2);font-family:var(--font-sans);font-size:8px;letter-spacing:0}.consist{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:2px}.car-chip{position:relative;height:27px;display:grid;place-items:center;background:#dfe2e0b8;color:var(--ink-soft);font-family:var(--font-num);font-size:8px;font-weight:600;line-height:1;transition:background .2s ease,color .2s ease,transform .2s ease;overflow:hidden}.car-chip:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--car-color, #aeb4b5);opacity:.85}.car-chip:hover{background:#fffffff2;transform:translateY(-1px)}.car-chip.active{background:var(--red);color:#fff}.car-chip.active:after{background:#fff}.panel-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:11px;color:var(--muted);font-size:8px;letter-spacing:.02em}.key-hint{display:flex;align-items:center;gap:4px;white-space:nowrap}kbd{display:inline-grid;place-items:center;min-width:16px;height:16px;border:1px solid var(--line-strong);border-radius:2px;color:var(--muted);font-family:var(--font-num);font-size:8px;background:#ffffff80}.platform-hero{display:flex;align-items:center;gap:16px;padding:14px 0 11px;border-bottom:1px solid var(--line)}.platform-number{min-width:83px;padding-right:14px;border-right:1px solid var(--line)}.platform-number small{display:block;font-family:var(--font-num);color:var(--muted-2);font-size:6px;letter-spacing:.16em;margin-bottom:1px}.platform-number strong{display:block;font-family:var(--font-num);font-size:41px;font-weight:800;line-height:.88;letter-spacing:-.06em}.platform-copy{flex:1;min-width:0}.track-line{display:flex;align-items:center;gap:5px;margin-bottom:3px;color:var(--red);font-size:8px;font-weight:600}.track-line i{position:relative;width:17px;height:5px;border-top:1px solid var(--red);border-bottom:1px solid var(--red)}.track-line i:before,.track-line i:after{content:"";position:absolute;top:-2px;bottom:-2px;width:1px;background:var(--red)}.track-line i:before{left:0}.track-line i:after{right:0}.platform-copy b{display:block;font-size:17px;font-weight:700;letter-spacing:.04em}.platform-copy p{margin:4px 0 0;color:var(--muted);font-family:var(--font-num);font-size:8px;letter-spacing:.04em}.position-route{padding:12px 0;border-bottom:1px solid var(--line);overflow:hidden}.route-stations{display:flex;justify-content:space-between;padding:0 1px;margin-bottom:10px;color:var(--muted-2);font-size:7px;letter-spacing:.02em}.route-stations .current{color:var(--red);font-weight:700}.route-track{position:relative;height:14px;margin:0 4px}.route-track:before{content:"";position:absolute;left:0;right:0;top:6px;height:1px;background:#c9cece}.route-fill{position:absolute;left:0;width:80%;top:6px;height:1px;background:var(--red)}.stop{position:absolute;top:3px;width:7px;height:7px;border-radius:50%;background:#b3babb;border:1px solid #f6f7f4;box-sizing:content-box}.stop.s1{left:0}.stop.s2{left:20%}.stop.s3{left:40%}.stop.s4{left:60%}.stop.s5{left:80%}.stop.s6{left:calc(100% - 9px)}.stop.current{background:var(--red);box-shadow:0 0 0 4px #c51f2f1f}.route-marker{position:absolute;top:-12px;left:calc(80% - 13px);width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--red);background:#f9faf7f2;transform:rotate(45deg);box-shadow:0 2px 9px #c51f2f26}.route-marker em{transform:rotate(-45deg);color:var(--red);font-family:var(--font-num);font-style:normal;font-size:6px;font-weight:700}.location-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:0;padding:9px 0 10px;border-bottom:1px solid var(--line)}.location-grid>div{display:flex;align-items:baseline;justify-content:space-between;padding:5px 10px 5px 0;border-bottom:1px dashed rgba(29,37,41,.08)}.location-grid>div:nth-last-child(-n+2){border-bottom:0;padding-bottom:0}.location-grid>div:nth-child(2n){padding-left:12px;border-left:1px solid var(--line)}.location-grid span{color:var(--muted);font-size:8px}.location-grid strong{font-family:var(--font-num);font-size:11px;font-weight:600;letter-spacing:.01em}.location-grid strong b{font-size:13px;font-weight:700;color:var(--red)}.progress-head{display:flex;align-items:center;justify-content:space-between;margin:10px 0 5px;color:var(--muted);font-size:8px}.progress-head strong{font-family:var(--font-num);color:var(--ink);font-size:10px;font-weight:600}.progress-bar{height:3px;background:#1d25291a;overflow:hidden}.progress-bar i{display:block;width:0%;height:100%;background:linear-gradient(90deg,var(--red-deep),#e34d59);transition:width .25s linear}.position-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;color:var(--muted);font-size:8px}.position-state{display:flex;align-items:center;gap:5px}.position-state i{width:4px;height:4px;background:var(--red);border-radius:50%;box-shadow:0 0 0 3px #c51f2f17}.position-state.stopped i{background:var(--green);box-shadow:0 0 0 3px #4f9f781a}.geo{font-family:var(--font-num);font-size:7px;color:var(--muted-2);letter-spacing:.03em;white-space:nowrap}.power-legend{position:absolute;left:32px;bottom:28px;width:318px;padding:13px 15px 11px;background:#f8f9f6c2;border:1px solid rgba(255,255,255,.68);border-radius:6px;box-shadow:0 12px 35px #181f2214;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.legend-title{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--line)}.legend-title span{font-size:11px;font-weight:700;letter-spacing:.05em}.legend-title small{color:var(--muted-2);font-size:7px}.legend-list{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;padding:9px 0 7px}.legend-list div{display:flex;align-items:center;gap:6px;font-size:8px;white-space:nowrap}.legend-list i{width:5px;height:5px;background:var(--dot);border-radius:50%;box-shadow:0 0 0 3px color-mix(in srgb,var(--dot) 10%,transparent)}.legend-list span{color:var(--ink-soft);font-weight:600}.legend-list em{color:var(--muted-2);font-size:7px;font-style:normal;overflow:hidden;text-overflow:ellipsis}.power-legend p{margin:0;padding-top:7px;border-top:1px solid var(--line);color:var(--muted);font-size:7px;line-height:1.5}.dock{position:absolute;left:50%;bottom:24px;transform:translate(-50%);display:flex;align-items:stretch;gap:3px;padding:4px;background:#f7f8f5d6;border:1px solid rgba(255,255,255,.75);border-radius:7px;box-shadow:0 15px 45px #181f2224,inset 0 0 0 1px #1d252912;backdrop-filter:blur(20px) saturate(1.15);-webkit-backdrop-filter:blur(20px) saturate(1.15)}.dock-button{position:relative;display:flex;align-items:center;gap:7px;min-width:74px;height:43px;padding:0 12px;color:var(--ink-soft);font-size:10px;font-weight:600;letter-spacing:.04em;transition:background .2s ease,color .2s ease;white-space:nowrap}.dock-button:hover{background:#ffffffb8}.dock-button.primary{min-width:126px;color:#fff;background:var(--ink)}.dock-button.primary:hover{background:#2d383d}.dock-button.primary.active{background:var(--red);box-shadow:0 6px 18px #c51f2f40}.dock-button.primary kbd{margin-left:2px;color:#ffffffb8;border-color:#ffffff40;background:#ffffff14}.dock-icon{position:relative;width:14px;height:14px;flex:0 0 14px;opacity:.86}.icon-focus{border:1px solid currentColor}.icon-focus:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1px solid currentColor;opacity:.5}.icon-front{width:15px;height:10px;margin-top:2px;border:1px solid currentColor;border-radius:50% 2px 2px 50%;transform:skew(-16deg)}.icon-front:after{content:"";position:absolute;right:2px;top:3px;width:3px;height:2px;background:currentColor}.icon-cut{background-image:repeating-linear-gradient(-45deg,currentColor 0,currentColor 1px,transparent 1px,transparent 4px);border-left:2px solid currentColor;opacity:.8}.icon-replay{display:grid;place-items:center;font-family:Arial,sans-serif;font-size:19px;line-height:1;font-weight:400;transform:translateY(-1px)}.dock-divider{width:1px;background:var(--line);margin:6px 2px}.audio-prompt{position:absolute;left:50%;bottom:92px;transform:translate(-50%,8px);display:flex;align-items:center;gap:10px;min-width:420px;padding:7px 8px 7px 9px;color:var(--ink);background:linear-gradient(135deg,#ffffffc2,#fff3),#f9faf7f2;border:1px solid rgba(255,255,255,.82);border-radius:6px;box-shadow:0 16px 45px #181f2229,inset 0 0 0 1px #21292d12;backdrop-filter:blur(20px) saturate(1.12);-webkit-backdrop-filter:blur(20px) saturate(1.12);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,transform .3s ease,visibility .3s;z-index:25}body.ready .audio-prompt:not(.dismissed){opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%)}body.cutaway-active .audio-prompt,body.capture-mode .audio-prompt{opacity:0;visibility:hidden;pointer-events:none}.audio-prompt-icon{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;background:var(--red);color:#fff;clip-path:polygon(0 0,100% 0,100% 77%,75% 100%,0 100%)}.audio-prompt-icon svg{width:19px;height:19px;overflow:visible}.audio-prompt-icon path:first-child{fill:currentColor}.audio-prompt-icon .sound-wave{stroke:#fff;stroke-width:1.4;fill:none;stroke-linecap:round;opacity:.7}.audio-prompt-copy{flex:1;display:flex;flex-direction:column;min-width:0}.audio-prompt-copy b{font-size:9px;font-weight:700;letter-spacing:.04em}.audio-prompt-copy small{margin-top:3px;color:var(--muted);font-size:7px;line-height:1.4}.audio-prompt-enable{display:flex;align-items:center;gap:6px;padding:8px 10px;color:#fff;background:var(--red);font-size:8px;font-weight:600;letter-spacing:.03em;white-space:nowrap;transition:background .2s ease}.audio-prompt-enable:hover{background:var(--red-deep)}.audio-prompt-enable i{font-family:var(--font-num);font-style:normal;font-size:11px}.audio-prompt-dismiss{width:22px;height:22px;flex:0 0 22px;display:grid;place-items:center;color:var(--muted-2);font-family:Arial,sans-serif;font-size:16px;line-height:1}.audio-prompt-dismiss:hover{color:var(--ink);background:#1d25290d}.cutaway-nav{position:absolute;left:50%;bottom:86px;transform:translate(-50%,7px);display:flex;align-items:stretch;gap:12px;padding:5px;background:#1b2124e6;border:1px solid rgba(255,255,255,.13);border-radius:5px;box-shadow:0 14px 40px #14191c3d;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;visibility:hidden;transition:opacity .28s ease,transform .28s ease,visibility .28s;max-width:calc(100vw - 60px)}body.cutaway-active .cutaway-nav{opacity:1;visibility:visible;transform:translate(-50%)}.cutaway-label{display:flex;flex-direction:column;justify-content:center;padding:0 11px 0 13px;color:#fff;border-right:1px solid rgba(255,255,255,.14);white-space:nowrap}.cutaway-label b{font-size:9px;font-weight:600;letter-spacing:.06em}.cutaway-label small{margin-top:3px;color:#ffffff61;font-size:6px}.cutaway-actions{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}.cutaway-actions::-webkit-scrollbar{display:none}.zone-button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:84px;padding:6px 10px;color:#ffffffb3;text-align:left;transition:background .2s ease,color .2s ease;white-space:nowrap}.zone-button:hover{background:#ffffff14;color:#fff}.zone-button.active{color:#fff;background:var(--red)}.zone-button b{font-size:9px;font-weight:600}.zone-button small{margin-top:2px;font-family:var(--font-num);color:inherit;font-size:6px;letter-spacing:.03em;opacity:.55}.scene-hint{position:absolute;left:50%;bottom:2px;transform:translate(-50%);display:flex;align-items:center;gap:7px;color:#2c35398c;font-size:7px;pointer-events:none;transition:opacity .25s ease;white-space:nowrap}.scene-hint i{width:2px;height:2px;background:#2c35394d;border-radius:50%}body.cutaway-active .scene-hint{opacity:0}.scale-note{position:absolute;right:32px;bottom:27px;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:7px;pointer-events:none}.scale-rule{display:flex;align-items:flex-end;gap:2px;height:8px}.scale-rule i{display:block;width:9px;height:3px;border-left:1px solid var(--muted);border-right:1px solid var(--muted);border-bottom:1px solid var(--muted)}.scale-rule i:nth-child(2){height:7px}.power-popup{position:absolute;right:32px;bottom:76px;width:360px;max-height:calc(100vh - 180px);overflow:auto;padding:15px 15px 13px;color:var(--ink);background:linear-gradient(135deg,#ffffffb3,#fff0 48%),#f9faf7f2;border:1px solid rgba(255,255,255,.8);border-radius:7px;box-shadow:var(--shadow),inset 0 0 0 1px #21292d0f;backdrop-filter:blur(20px) saturate(1.1);-webkit-backdrop-filter:blur(20px) saturate(1.1);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity .24s ease,transform .24s ease,visibility .24s;z-index:20}.power-popup.visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.power-popup:before{content:"";position:absolute;top:-1px;left:18px;width:56px;height:2px;background:var(--red)}.power-popup:after{content:"";position:absolute;left:15px;right:15px;bottom:0;height:2px;background:linear-gradient(90deg,var(--red),transparent 62%)}.popup-close{position:absolute;top:8px;right:9px;width:26px;height:26px;color:var(--muted);font-family:Arial,sans-serif;font-size:20px;line-height:1;display:grid;place-items:center;transition:background .2s ease,color .2s ease}.popup-close:hover{color:var(--ink);background:#1d25290f}.power-popup-head{display:flex;align-items:center;gap:10px;padding-right:28px}.power-bolt{width:37px;height:37px;display:grid;place-items:center;background:var(--red);flex:0 0 37px;clip-path:polygon(0 0,100% 0,100% 78%,76% 100%,0 100%)}.power-bolt svg{width:19px;height:19px;fill:#fff}.power-popup-head>div{flex:1}.power-popup-head small{display:block;color:var(--muted-2);font-family:var(--font-num);font-size:6px;letter-spacing:.12em;margin-bottom:3px}.power-popup-head h3{margin:0;font-size:15px;font-weight:700;letter-spacing:.04em}.locating-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 6px;color:var(--red);background:var(--red-soft);border:1px solid rgba(197,31,47,.16);font-family:var(--font-num);font-size:6px;letter-spacing:.06em;white-space:nowrap}.locating-chip i,.locating-dot{width:4px;height:4px;border-radius:50%;background:var(--red);animation:livePulse 2s ease-out infinite}.power-car,.power-summary strong{font-size:9px;font-weight:600;letter-spacing:.02em}.power-visual{position:relative;margin-top:12px;height:162px;overflow:hidden;background:linear-gradient(rgba(40,49,53,.045) 1px,transparent 1px) 0 0 / 100% 22px,linear-gradient(90deg,rgba(40,49,53,.045) 1px,transparent 1px) 0 0 / 22px 100%,linear-gradient(135deg,#f3f4f0,#e6e8e4);border:1px solid rgba(29,37,41,.08)}.power-diagram{position:absolute;top:0;right:0;bottom:0;left:0;padding:10px 12px 26px;display:grid;place-items:center}.power-diagram svg{width:100%;height:100%;overflow:visible}.power-diagram .seat-outline{fill:#d9dcd8;stroke:#596267;stroke-width:2;stroke-linejoin:round}.power-diagram .seat-inner{fill:#aab1b2;stroke:#596267;stroke-width:1.4}.power-diagram .diagram-line{fill:none;stroke:#828b8d;stroke-width:1.4;stroke-dasharray:4 4}.power-diagram .outlet-target{fill:#c51f2f;stroke:#fff;stroke-width:3}.power-diagram .target-halo{fill:none;stroke:#c51f2f;stroke-width:2;opacity:.35}.power-diagram .diagram-label{fill:#4f585c;font-family:var(--font-sans);font-size:10px;font-weight:600;letter-spacing:.04em}.power-diagram .diagram-arrow{fill:#c51f2f}.power-location-chip{position:absolute;left:10px;bottom:9px;display:inline-flex;align-items:center;gap:5px;padding:5px 8px;color:#fff;background:#1b2124e6;font-size:8px;letter-spacing:.03em}.power-location-chip:before{content:"";width:5px;height:5px;border-radius:50%;background:#ff4b5e;box-shadow:0 0 0 3px #ff4b5e24}.power-summary{display:grid;grid-template-columns:1fr 1fr;margin-top:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.power-summary>div{padding:8px 8px 8px 0}.power-summary>div+div{padding-left:10px;border-left:1px solid var(--line)}.power-summary span{display:block;margin-bottom:4px;color:var(--muted);font-size:7px}.power-summary strong{display:block;color:var(--ink)}.power-specs{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.power-specs span{padding:4px 6px;border:1px solid rgba(29,37,41,.12);color:var(--ink-soft);background:#ffffff52;font-family:var(--font-num);font-size:7px;letter-spacing:.04em}.power-popup-foot{display:flex;align-items:center;gap:6px;margin-top:10px;color:var(--muted);font-size:7px;line-height:1.4}@keyframes targetPulse{0%,to{opacity:.25;transform:scale(.94);transform-origin:center}50%{opacity:.8;transform:scale(1.04);transform-origin:center}}.power-diagram .target-halo{animation:targetPulse 2s ease-in-out infinite}.toast{position:absolute;left:50%;bottom:148px;transform:translate(-50%,5px);padding:8px 14px;color:#fff;background:#1b2124e6;border:1px solid rgba(255,255,255,.12);border-radius:3px;font-size:9px;letter-spacing:.04em;opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease,visibility .2s;pointer-events:none;white-space:nowrap;z-index:30}.toast.visible{opacity:1;visibility:visible;transform:translate(-50%)}.loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;justify-content:center;padding-left:clamp(32px,10vw,160px);background:linear-gradient(90deg,#fafaf7fa,#fafaf7f0 45%,#f1f2efe6),repeating-linear-gradient(90deg,transparent 0,transparent 119px,rgba(30,37,41,.035) 120px),repeating-linear-gradient(0deg,transparent 0,transparent 119px,rgba(30,37,41,.035) 120px);transition:opacity .75s ease,visibility .75s}body.ready .loader{opacity:0;visibility:hidden}.loader:after{content:"08";position:absolute;right:5vw;bottom:2vh;color:#20272b0b;font-family:var(--font-num);font-weight:800;font-size:38vw;line-height:.7;letter-spacing:-.1em;pointer-events:none}.loader-brand{position:relative;z-index:1;display:flex;align-items:center;gap:24px}.loader-mark{width:72px;height:72px;display:grid;place-items:center;background:var(--red);color:#fff;font-family:var(--font-num);font-size:25px;font-weight:800;letter-spacing:-.05em;box-shadow:0 20px 45px #c51f2f40}.loader-brand span{color:var(--red);font-family:var(--font-num);font-size:9px;font-weight:600;letter-spacing:.22em}.loader-brand h2{margin:7px 0 5px;font-size:clamp(23px,2.6vw,38px);font-weight:700;letter-spacing:.04em}.loader-brand p{margin:0;color:var(--muted);font-family:var(--font-num);font-size:9px;letter-spacing:.1em}.loader-track{position:relative;z-index:1;width:min(430px,60vw);height:2px;margin-top:40px;background:#1d25291c;overflow:hidden}.loader-track i{display:block;width:38%;height:100%;background:var(--red);animation:loadingBar 1.3s cubic-bezier(.6,.05,.3,.95) infinite}@keyframes loadingBar{0%{transform:translate(-100%)}to{transform:translate(370%)}}.loader-meta{position:relative;z-index:1;width:min(430px,60vw);display:flex;justify-content:space-between;margin-top:10px;color:var(--muted-2);font-size:7px}@media (max-width: 1280px){.train-panel{width:306px}.location-panel{width:326px}.power-legend{width:292px}.brand-copy h1{font-size:22px}.view-caption{display:none}}@media (max-width: 1120px){.power-legend,.scale-note{display:none}.train-panel{top:105px;left:22px;width:294px}.location-panel{top:105px;right:22px;width:312px}.brand{top:22px;left:22px}.top-meta{top:22px;right:22px}}@media (max-width: 880px){.location-panel,.scale-note{display:none}.train-panel{top:auto;bottom:88px;left:14px;width:280px;max-height:44vh;overflow:auto}.brand{top:16px;left:16px}.top-meta{top:16px;right:16px}.brand-mark{width:44px;height:44px}.brand-copy h1{font-size:18px}.brand-copy p{font-size:9px}.clock,.system-state{display:none}.top-meta{gap:8px}.sound-toggle{padding:8px}.sound-copy{display:none}.sound-icon{width:22px;height:22px;flex-basis:22px}.audio-prompt{left:12px;right:12px;top:96px;bottom:auto;min-width:0;padding:7px;transform:translateY(8px)}body.ready .audio-prompt:not(.dismissed){transform:translateY(0)}.audio-prompt-copy small{font-size:6px}.audio-prompt-enable{padding:7px 8px}.audio-prompt-dismiss{width:18px;height:22px;flex-basis:18px}.power-popup{right:12px;left:12px;bottom:144px;width:auto;max-height:46vh;padding:12px}.power-visual{height:128px}.power-popup-head h3{font-size:13px}.locating-chip{display:none}.dock{bottom:16px}.dock-button{min-width:56px;padding:0 8px;gap:5px;font-size:9px}.dock-button.primary{min-width:104px}.cutaway-nav{bottom:76px;max-width:calc(100vw - 24px)}.cutaway-label{display:none}body.cutaway-active .train-panel{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,visibility .2s}.toast{bottom:136px}.scene-hint{display:none}}@media (max-height: 900px){body.power-open .location-panel{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s}}@media (max-height: 760px){.power-legend{display:none}.train-panel,.location-panel{top:92px}.train-panel{padding-top:13px}.location-panel{max-height:calc(100vh - 180px);overflow:auto}}
