.site{flex-direction:column;min-height:100vh;display:flex}.wrap{width:100%;max-width:1220px;padding:0 var(--vi-space-6);margin:0 auto}.cmdbar{z-index:40;font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);letter-spacing:var(--vi-tracking-label);text-transform:uppercase;background:var(--vi-ground);border-bottom:1px solid var(--vi-line);align-items:stretch;display:flex;position:sticky;top:0}.cmdbar>*{align-items:center;gap:var(--vi-space-2);padding:var(--vi-space-3) var(--vi-space-4);border-right:1px solid var(--vi-line-soft);color:var(--vi-dim);white-space:nowrap;text-decoration:none;display:flex}.cmdbar .brand{color:var(--vi-fg)}.cmdbar .brand .ast{color:var(--vi-accent-text)}.cmdbar a:hover{color:var(--vi-fg);background:var(--vi-panel-hover)}.cmdbar .spacer{border-right:0;flex:1}.cmdbar .live .dot{background:var(--vi-accent);border-radius:50%;width:7px;height:7px;animation:2.4s ease-in-out infinite pulse}.cmdbar .clock{color:var(--vi-faint);border-right:0;min-width:12ch}.cmdbar .cta{background:var(--vi-accent);color:var(--vi-on-accent);border-right:0;font-weight:500}.cmdbar .cta:hover{background:var(--vi-accent-hi);color:var(--vi-on-accent)}.barbtn{font:inherit;letter-spacing:inherit;text-transform:inherit;border:0;border-right:1px solid var(--vi-line-soft);color:var(--vi-dim);cursor:pointer;padding:var(--vi-space-3) var(--vi-space-4);align-items:center;gap:var(--vi-space-2);background:0 0;display:flex}.barbtn:hover{color:var(--vi-fg);background:var(--vi-panel-hover)}.barbtn .kbd{color:var(--vi-faint)}.palette{z-index:90;background:color-mix(in srgb, var(--vi-ground) 72%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:start center;padding-top:14vh;display:grid;position:fixed;inset:0}.pal-box{background:var(--vi-panel);border:1px solid var(--vi-line-strong);border-radius:var(--vi-radius);width:min(560px,92vw);box-shadow:var(--vi-shadow);overflow:hidden}.pal-in{box-sizing:border-box;width:100%;padding:var(--vi-space-4) var(--vi-space-5);border:0;border-bottom:1px solid var(--vi-line-soft);color:var(--vi-fg);font-family:var(--vi-font-mono);font-size:var(--vi-text-sm);background:0 0;outline:none}.pal-in::placeholder{color:var(--vi-faint)}.pal-list{padding:var(--vi-space-2);max-height:46vh;margin:0;list-style:none;overflow-y:auto}.pal-list li{padding:var(--vi-space-3) var(--vi-space-4);border-radius:var(--vi-radius-sm);font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);text-transform:uppercase;letter-spacing:var(--vi-tracking-label);color:var(--vi-dim);cursor:pointer;justify-content:space-between;align-items:center;display:flex}.pal-list li.sel{background:var(--vi-accent-tint);color:var(--vi-accent-text)}.pal-list li .k{color:var(--vi-faint)}body.noscan .term:after{display:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.hero{padding:var(--vi-space-8) 0 var(--vi-space-7);position:relative}.hero .kicker{font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);text-transform:uppercase;letter-spacing:var(--vi-tracking-label);color:var(--vi-accent-text);margin-bottom:var(--vi-space-4)}.hero h1{font-family:var(--vi-font-display);text-transform:uppercase;letter-spacing:.01em;margin:0 0 var(--vi-space-5);font-size:clamp(3.5rem,10vw,8rem);line-height:1.02}.hero h1 .ghost{color:#0000;-webkit-text-stroke:1.5px var(--vi-faint)}.hero h1 .ast{color:var(--vi-accent-text);vertical-align:super;font-size:.4em;text-decoration:none}.hero-under{gap:var(--vi-space-7);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;display:grid}.hero-sub{font-size:var(--vi-text-lg);color:var(--vi-dim);max-width:44ch;margin:0 0 var(--vi-space-5)}.hero-sub em{color:var(--vi-accent-text);font-style:normal}.hero-cta{gap:var(--vi-space-3);margin-bottom:var(--vi-space-4);flex-wrap:wrap;display:flex}.footnote{font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);color:var(--vi-faint);max-width:52ch;line-height:1.7}.footnote .ast{color:var(--vi-accent-text)}.btn{justify-content:center;align-items:center;gap:var(--vi-space-2);font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);text-transform:uppercase;letter-spacing:var(--vi-tracking-label);padding:var(--vi-space-3) var(--vi-space-5);border:1px solid var(--vi-line-strong);border-radius:var(--vi-radius-sm);color:var(--vi-fg);cursor:pointer;white-space:nowrap;background:0 0;text-decoration:none;display:inline-flex}.btn:hover{background:var(--vi-panel-hover)}.btn-primary{background:var(--vi-accent);border-color:var(--vi-accent);color:var(--vi-on-accent);font-weight:500}.btn-primary:hover{background:var(--vi-accent-hi);border-color:var(--vi-accent-hi)}.btn-lg{padding:var(--vi-space-4) var(--vi-space-6);font-size:var(--vi-text-sm)}.sec{border-top:1px solid var(--vi-line);padding:var(--vi-space-7) 0 var(--vi-space-8)}.sec-head{align-items:baseline;gap:var(--vi-space-4);margin-bottom:var(--vi-space-2);flex-wrap:wrap;display:flex}.sec-head h2{font-family:var(--vi-font-display);text-transform:uppercase;letter-spacing:var(--vi-tracking-display);margin:0;font-size:clamp(1.75rem,4vw,3rem);line-height:1}.sec-head .num{font-family:var(--vi-font-mono);font-size:var(--vi-text-sm);color:var(--vi-accent-text)}.sec-head .tagline{font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);text-transform:uppercase;letter-spacing:var(--vi-tracking-label);color:var(--vi-faint);margin-left:auto}.sec-lede{color:var(--vi-dim);max-width:62ch;margin:0 0 var(--vi-space-6)}.fig{font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);text-transform:uppercase;letter-spacing:var(--vi-tracking-label);color:var(--vi-faint);margin-top:var(--vi-space-4)}.term{background:var(--vi-panel);border:1px solid var(--vi-line);border-radius:var(--vi-radius-lg);box-shadow:var(--vi-shadow);position:relative;overflow:hidden}.term:after{content:"";pointer-events:none;background:repeating-linear-gradient(0deg, transparent 0 2px, var(--vi-scanline) 2px 4px);position:absolute;inset:0}.term-bar{align-items:center;gap:var(--vi-space-3);padding:var(--vi-space-3) var(--vi-space-4);border-bottom:1px solid var(--vi-line-soft);background:var(--vi-panel-2);font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);color:var(--vi-dim);display:flex}.term-bar .dot{background:var(--vi-line-strong);border-radius:50%;width:8px;height:8px}.term-bar .session{color:var(--vi-faint);margin-left:auto}.term-body{padding:var(--vi-space-5);font-family:var(--vi-font-mono);white-space:pre-wrap;word-break:break-word;min-height:22em;color:var(--vi-fg);font-size:13px;line-height:1.75}.term-body .p{color:var(--vi-accent-text)}.term-body .c{color:var(--vi-faint)}.term-body .ok{color:var(--vi-accent-text)}.term-body .warn{color:var(--vi-warn)}.cursor{background:var(--vi-accent-hi);vertical-align:text-bottom;width:8px;height:1.1em;animation:1s step-end infinite blink;display:inline-block}.rail-scroll{gap:var(--vi-space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.ticket{background:var(--vi-paper);color:var(--vi-paper-ink);font-family:var(--vi-font-mono);padding:var(--vi-space-4) var(--vi-space-4) var(--vi-space-5);font-size:var(--vi-text-xs);position:relative;box-shadow:0 14px 34px #00000080}.ticket:nth-child(odd){transform:rotate(-.7deg)}.ticket:nth-child(2n){transform:rotate(.5deg)}.ticket:before,.ticket:after{content:"";height:7px;position:absolute;left:0;right:0}.ticket:before{background:linear-gradient(45deg, transparent 5px, var(--vi-paper) 0) 0 0/14px 14px repeat-x, linear-gradient(-45deg, transparent 5px, var(--vi-paper) 0) 7px 0/14px 14px repeat-x;top:-7px}.ticket:after{background:linear-gradient(135deg, transparent 5px, var(--vi-paper) 0) 0 0/14px 14px repeat-x, linear-gradient(-135deg, transparent 5px, var(--vi-paper) 0) 7px 0/14px 14px repeat-x;bottom:-7px}.ticket-top{color:var(--vi-paper-dim);text-transform:uppercase;letter-spacing:var(--vi-tracking-label);margin-bottom:var(--vi-space-3);justify-content:space-between;display:flex}.ticket h3{font-family:var(--vi-font-sans);font-size:var(--vi-text-sm);margin:0 0 var(--vi-space-3);color:var(--vi-paper-ink);font-weight:600;line-height:1.35}.ticket dl{gap:var(--vi-space-1) var(--vi-space-4);margin:0 0 var(--vi-space-4);grid-template-columns:auto 1fr;display:grid}.ticket dt{color:var(--vi-paper-dim);text-transform:uppercase;letter-spacing:var(--vi-tracking-label)}.ticket dd{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.stamp{font-size:var(--vi-text-xs);text-transform:uppercase;letter-spacing:var(--vi-tracking-label);padding:2px var(--vi-space-2);border:1.5px solid;border-radius:2px;display:inline-block;transform:rotate(-2deg)}.stamp.run{color:#14874a}.stamp.wait{color:#9a6206}.stamp.done{color:var(--vi-paper-ink)}.barcode{margin-top:var(--vi-space-4);background:repeating-linear-gradient(90deg, var(--vi-paper-ink) 0 1px, transparent 1px 3px, var(--vi-paper-ink) 3px 5px, transparent 5px 6px, var(--vi-paper-ink) 6px 7px, transparent 7px 11px, var(--vi-paper-ink) 11px 14px, transparent 14px 16px);opacity:.85;height:26px}.stations{align-items:stretch;gap:var(--vi-space-2);flex-wrap:wrap;display:flex}.station{font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);text-transform:uppercase;letter-spacing:var(--vi-tracking-label);padding:var(--vi-space-3) var(--vi-space-4);border:1px solid var(--vi-line-strong);border-radius:var(--vi-radius-sm);color:var(--vi-fg);background:var(--vi-panel);align-items:center;display:flex}.station.hot{border-color:var(--vi-accent);color:var(--vi-accent-text);box-shadow:0 0 0 1px var(--vi-accent) inset}.station:hover{border-color:var(--vi-accent);color:var(--vi-accent-text)}.st-name{text-align:center;min-width:14ch;display:inline-block}.sc-name{min-height:1.2em}.st-arrow{color:var(--vi-accent-text);font-family:var(--vi-font-mono);align-items:center;display:flex}.station-cards{margin-top:var(--vi-space-6);border-top:1px solid var(--vi-line-soft);border-left:1px solid var(--vi-line-soft);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.scard{padding:var(--vi-space-5);border-right:1px solid var(--vi-line-soft);border-bottom:1px solid var(--vi-line-soft);min-width:0}.scard .meta{font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);text-transform:uppercase;letter-spacing:var(--vi-tracking-label);color:var(--vi-faint);margin-bottom:var(--vi-space-2)}.scard h3{font-family:var(--vi-font-mono);font-size:var(--vi-text-sm);margin:0 0 var(--vi-space-2);color:var(--vi-fg)}.scard p{font-size:var(--vi-text-sm);color:var(--vi-dim);margin:0}.scard.core h3{color:var(--vi-accent-text)}.scard.core{box-shadow:inset 2px 0 0 var(--vi-accent)}.prices{gap:var(--vi-space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.price{background:var(--vi-panel);border:1px solid var(--vi-line);border-radius:var(--vi-radius-lg);padding:var(--vi-space-5);flex-direction:column;display:flex}.price.featured{border-color:var(--vi-accent)}.price .name{font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);text-transform:uppercase;letter-spacing:var(--vi-tracking-label);color:var(--vi-dim)}.price .amt{font-family:var(--vi-font-display);font-size:var(--vi-text-2xl);margin:var(--vi-space-3) 0 var(--vi-space-2);line-height:1}.price .amt small{font-family:var(--vi-font-sans);font-size:var(--vi-text-sm);color:var(--vi-dim)}.price p{color:var(--vi-dim);font-size:var(--vi-text-sm);margin:0 0 var(--vi-space-4)}.price ul{margin:0 0 var(--vi-space-5);padding:0;list-style:none}.price li{font-size:var(--vi-text-sm);color:var(--vi-dim);padding-left:var(--vi-space-4);margin-bottom:var(--vi-space-2);position:relative}.price li:before{content:"→";color:var(--vi-accent-text);position:absolute;left:0}.price .foot{margin-top:auto}.marquee{border-top:1px solid var(--vi-line);padding:var(--vi-space-6) 0;white-space:nowrap;overflow:hidden}.marquee-track{align-items:center;gap:var(--vi-space-6);will-change:transform;animation:26s linear infinite marquee;display:inline-flex}.marquee .word{font-family:var(--vi-font-display);text-transform:uppercase;color:var(--vi-fg);font-size:clamp(3rem,7vw,5.5rem);line-height:1}.marquee .word.ghost{color:#0000;-webkit-text-stroke:1.5px var(--vi-faint)}.marquee .sep{color:var(--vi-accent-text);font-size:2rem}.foot{border-top:1px solid var(--vi-line);font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);text-transform:uppercase;letter-spacing:var(--vi-tracking-label);color:var(--vi-faint)}.foot-in{gap:var(--vi-space-5);padding:var(--vi-space-4) 0;flex-wrap:wrap;display:flex}.foot-in a{color:var(--vi-dim);text-decoration:none}.foot-in a:hover{color:var(--vi-fg)}.foot-in .right{gap:var(--vi-space-5);margin-left:auto;display:flex}.auth-shell{padding:var(--vi-space-8) var(--vi-space-4);flex:1;place-items:center;display:grid}.auth-card{background:var(--vi-panel);border:1px solid var(--vi-line);border-radius:var(--vi-radius-lg);width:100%;max-width:430px;padding:var(--vi-space-6);text-align:center}.auth-card h1{font-family:var(--vi-font-display);text-transform:uppercase;letter-spacing:var(--vi-tracking-display);font-size:var(--vi-text-xl);margin:0 0 var(--vi-space-2)}.auth-card>p{color:var(--vi-dim);font-size:var(--vi-text-sm);margin:0 0 var(--vi-space-5)}.auth-btns{gap:var(--vi-space-3);flex-direction:column;display:flex}.auth-btns .btn{width:100%}.auth-fine{margin-top:var(--vi-space-5);font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);color:var(--vi-faint);line-height:1.6}.badge-row{gap:var(--vi-space-4);flex-wrap:wrap;display:flex}.vbadge{border:1px solid var(--vi-line);border-radius:var(--vi-radius-lg);padding:var(--vi-space-4) var(--vi-space-5);background:var(--vi-panel);align-items:center;gap:var(--vi-space-4);min-width:290px;display:flex}.vbadge .seal{border:2px solid var(--vi-accent);width:46px;height:46px;color:var(--vi-accent-text);font-family:var(--vi-font-display);border-radius:50%;flex:none;place-items:center;font-size:15px;display:grid}.vbadge.perf .seal{background:var(--vi-accent);color:var(--vi-on-accent)}.vbadge .t{font-family:var(--vi-font-display);text-transform:uppercase;letter-spacing:var(--vi-tracking-display);font-size:var(--vi-text-base)}.vbadge .m{font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);color:var(--vi-dim);margin-top:2px}.display{font-family:var(--vi-font-display);text-transform:uppercase;letter-spacing:var(--vi-tracking-display);line-height:var(--vi-leading-tight);font-size:var(--vi-text-2xl);margin:0 0 var(--vi-space-2)}.sub{color:var(--vi-dim);margin:0 0 var(--vi-space-5);max-width:62ch}.eyebrow{font-family:var(--vi-font-mono);font-size:var(--vi-text-xs);text-transform:uppercase;letter-spacing:var(--vi-tracking-label);color:var(--vi-accent-text);margin-bottom:var(--vi-space-3)}.sect{font-family:var(--vi-font-display);text-transform:uppercase;letter-spacing:var(--vi-tracking-display);font-size:var(--vi-text-xl);margin:var(--vi-space-7) 0 var(--vi-space-4);align-items:baseline;gap:var(--vi-space-3);display:flex}.sect .num{font-size:var(--vi-text-xs)}@media (width<=1000px){.rail-scroll,.station-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-under{grid-template-columns:minmax(0,1fr)}.cmdbar .clock,.cmdbar .live{display:none}}@media (width<=640px){.rail-scroll,.station-cards,.prices{grid-template-columns:minmax(0,1fr)}.cmdbar .links{display:none}.wrap{padding:0 var(--vi-space-4)}}@media (prefers-reduced-motion:reduce){.marquee-track,.cursor{animation:none}}
