:root{--bg: #030807;--ink: #cfe8dd;--dim: #6f9486;--phos: #00ff9f;--phos-soft: #35d0ba;--warn: #ff6a39;--line: rgba(0, 255, 159, .28);--panel: rgba(3, 12, 10, .82);--mono: "Share Tech Mono", ui-monospace, monospace;--jp: "Noto Sans JP", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;background:var(--bg);color:var(--ink);font-family:var(--mono);overflow:hidden}#scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;cursor:crosshair}#boot{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:var(--bg);display:flex;align-items:center;justify-content:center;transition:opacity .7s ease}#boot.done{opacity:0;pointer-events:none}.boot-inner{width:min(420px,80vw)}.boot-line{color:var(--phos);font-size:13px;letter-spacing:.18em;margin-bottom:14px;text-shadow:0 0 8px rgba(0,255,159,.6);min-height:1.2em}.boot-bar{height:3px;background:#00ff9f26;overflow:hidden}.boot-fill{height:100%;width:0%;background:var(--phos);box-shadow:0 0 12px #00ff9fcc;transition:width .25s ease}.hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}.hud a,.hud button{pointer-events:auto}.hud-item{opacity:1;transform:none;transition:opacity .7s ease var(--d, 0s),transform .7s cubic-bezier(.16,1,.3,1) var(--d, 0s)}body.pre-intro .hud-item{opacity:0;transform:translateY(14px)}.hud-corner{position:absolute;width:26px;height:26px;border:1px solid var(--line)}.hud-corner.tl{top:14px;left:14px;border-right:0;border-bottom:0}.hud-corner.tr{top:14px;right:14px;border-left:0;border-bottom:0}.hud-corner.bl{bottom:14px;left:14px;border-right:0;border-top:0}.hud-corner.br{bottom:14px;right:14px;border-left:0;border-top:0}.hud-head{position:absolute;top:26px;left:34px;right:34px;display:flex;justify-content:space-between;align-items:flex-start}.ident-name{font-size:clamp(16px,2.2vw,24px);letter-spacing:.22em;color:var(--ink);text-shadow:0 0 14px rgba(0,255,159,.35)}.ident-sub{margin-top:6px;font-family:var(--jp);font-size:11px;letter-spacing:.24em;color:var(--dim)}.sysinfo{text-align:right;font-size:11px;letter-spacing:.2em;color:var(--dim);line-height:1.8}.sysinfo .ok{color:var(--phos)}.hud-nav{position:absolute;left:34px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:14px}.nav-item{background:none;border:1px solid transparent;border-left:2px solid rgba(0,255,159,.25);color:var(--dim);font-family:var(--mono);font-size:12px;letter-spacing:.24em;padding:8px 14px;text-align:left;cursor:pointer;transition:color .25s,border-color .25s,background .25s,transform .25s}.nav-item .nav-num{color:#00ff9f80;margin-right:8px}.nav-item:hover{color:var(--ink);transform:translate(3px)}.nav-item.active{color:var(--phos);border-left-color:var(--phos);background:#00ff9f0f;text-shadow:0 0 10px rgba(0,255,159,.5)}.station-card{position:absolute;right:34px;top:50%;transform:translateY(-50%);width:min(340px,78vw);background:var(--panel);border:1px solid var(--line);padding:18px 20px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px));overflow:hidden;transition:opacity .4s ease,height .42s cubic-bezier(.16,1,.3,1)}.sc-title{color:var(--phos);font-size:13px;letter-spacing:.3em;margin-bottom:10px;text-shadow:0 0 10px rgba(0,255,159,.45)}.sc-body{font-size:12.5px;line-height:1.75;color:var(--ink)}.sc-body .dim{color:var(--dim)}.sc-body .num{color:var(--phos)}.sc-body a{color:var(--phos-soft);text-decoration:none;border-bottom:1px dotted rgba(53,208,186,.5)}.sc-body a:hover{color:var(--phos)}.sc-body .row{display:flex;justify-content:space-between;gap:12px;border-top:1px dashed rgba(0,255,159,.14);padding:5px 0}.sc-body .row:first-child{border-top:0}.sc-inner{transition:transform .22s ease,opacity .22s ease}.sc-inner.out{transform:translate(30px) rotate(2.5deg) scale(.97);opacity:0}.sc-inner.in{animation:cardIn .34s cubic-bezier(.16,1,.3,1)}@keyframes cardIn{0%{transform:translate(-30px) rotate(-2.5deg) scale(.97);opacity:0}to{transform:none;opacity:1}}.tw{visibility:hidden}.tw.on{visibility:visible}.tw-caret{display:inline-block;width:.55em;height:1em;margin-left:2px;background:var(--phos);vertical-align:text-bottom;box-shadow:0 0 8px #00ff9fb3;animation:caretBlink .7s steps(1) infinite}@keyframes caretBlink{50%{opacity:0}}#city-legend{position:absolute;left:50%;bottom:78px;transform:translate(-50%);font-size:11px;letter-spacing:.18em;color:var(--dim);background:#030c0ab8;border:1px solid rgba(0,255,159,.2);padding:8px 14px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .5s ease}body.station-2 #city-legend{opacity:1}.legend-cube{display:inline-block;width:9px;height:9px;background:var(--phos);box-shadow:0 0 8px #00ff9fcc;margin-right:6px;vertical-align:baseline}#tip{position:fixed;z-index:20;pointer-events:none;background:#030e0beb;border:1px solid var(--line);color:var(--ink);font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;padding:7px 10px;transform:translate(14px,-50%);white-space:nowrap}#tip .num{color:var(--phos)}#tip .dim{color:var(--dim)}.hud-foot{position:absolute;left:34px;right:34px;bottom:24px;display:flex;justify-content:center;align-items:center;font-size:11px;letter-spacing:.16em}.links{display:flex;gap:26px;flex-shrink:0}.links a{color:var(--dim);text-decoration:none;transition:color .25s,text-shadow .25s}.links a:hover{color:var(--phos);text-shadow:0 0 10px rgba(0,255,159,.6)}.glitchable{position:relative}.glitching:before,.glitching:after{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.glitching:before{color:var(--warn);transform:translate(2px,-1px);clip-path:inset(20% 0 55% 0);opacity:.85}.glitching:after{color:var(--phos-soft);transform:translate(-2px,1px);clip-path:inset(60% 0 15% 0);opacity:.85}@media(max-width:760px){.hud-nav{top:auto;bottom:66px;transform:none;flex-direction:row;gap:8px;left:34px;right:34px}.nav-item{padding:6px 8px;font-size:10px;letter-spacing:.12em}.station-card{top:auto;bottom:120px;right:34px;left:34px;width:auto;transform:none}.links{gap:14px;font-size:10px}#city-legend{display:none}}@media(prefers-reduced-motion:reduce){.glitching:before,.glitching:after{display:none}}
