/* Hallmark · macrostructure: Workbench · tone: editorial · anchor hue: forest-green
 * theme: custom; vibe: 奶油纸色 电车路线 紧凑日系商店; paper: oklch(96.5% .016 88); accent: oklch(44.8% .119 151)
 * fonts: Songti SC + PingFang SC; axes: light / roman-serif / forest-green
 * nav: N6 masthead; footer: Ft4 colophon; H2 knobs: ratio=7/5, proof=real screenshot, divider=negative-space
 * enrichment: official game captures, no fabricated art; pre-emit critique: P4 H5 E4 S5 R5 V4
 */
@import url('./tokens.css');
*{box-sizing:border-box}html,body{overflow-x:clip}html{scroll-behavior:smooth;scroll-padding-top:calc(4rem + 24px)}body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);line-height:1.75}button,input{font:inherit}a{color:var(--color-green);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}img{display:block;max-width:100%;height:auto}h1,h2,h3{font-style:normal;min-width:0;overflow-wrap:anywhere;line-height:1.35}h1,h2{font-family:var(--font-display);font-weight:700}h1{font-size:var(--text-display);margin:0 0 var(--space-md)}h2{font-size:clamp(1.5rem,2.5vw,1.875rem);margin:0 0 var(--space-lg)}h3{font-size:var(--text-lg);margin:0 0 var(--space-sm)}p{margin:0 0 var(--space-md)}p:last-child{margin-bottom:0}figure{margin:0}button,a,summary{-webkit-tap-highlight-color:var(--color-transparent)}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}button:active,.button:active{transform:translateY(1px)}button:disabled,[aria-disabled=true]{opacity:.55;cursor:not-allowed}.wrap{width:min(1224px,calc(100% - 32px));margin-inline:auto}.skip{position:fixed;inset:0 auto auto 16px;z-index:100;background:var(--color-surface);padding:var(--space-compact);transform:translateY(-150%)}.skip:focus{transform:none}.announcement{background:var(--color-green);color:var(--color-light-ink);font-size:var(--text-sm);text-align:center;padding:var(--space-sm) var(--space-md)}.announcement a{color:inherit;white-space:nowrap}.masthead{padding:var(--space-gutter) var(--space-md);background:var(--color-surface);text-align:center}.identity{display:inline-flex;align-items:center;gap:var(--space-compact);color:var(--color-ink);text-decoration:none;line-height:1.3;white-space:nowrap}.identity strong{font-family:var(--font-display);font-size:25px;letter-spacing:.08em}.identity small{display:block;font-size:11px;font-family:var(--font-mono);letter-spacing:.16em;color:var(--color-muted);margin-top:var(--space-sm)}.brand-mark{width:40px;height:40px;border-radius:4px;display:grid;place-items:center;background:var(--color-green);color:var(--color-light-ink);font-family:var(--font-mono);font-size:22px;font-weight:700}.navigation{position:sticky;top:0;z-index:30;background:var(--color-nav);color:var(--color-light-ink);border-bottom:3px solid var(--color-green)}.nav-inner{display:flex;justify-content:center;gap:var(--space-xs);align-items:center}.nav-inner>a{font-size:var(--text-sm);color:inherit;text-decoration:none;padding:var(--space-compact) var(--space-md);white-space:nowrap;min-height:48px}.nav-inner>a[aria-current=page]{background:var(--color-green)}.nav-inner>a:hover{background:var(--color-nav-hover)}.nav-inner .nav-download{color:var(--color-orange)}.breadcrumbs{font-size:var(--text-sm);padding:var(--space-gutter) 0;color:var(--color-muted);display:flex;flex-wrap:wrap;gap:var(--space-sm)}.breadcrumbs a{white-space:nowrap}.hero{display:grid;gap:var(--space-lg);margin-bottom:var(--space-xl)}.product{order:-1;background:var(--color-surface);padding:var(--space-lg);border:1px solid var(--color-rule);border-top:4px solid var(--color-green)}.cover{width:100%;max-width:460px;margin-bottom:var(--space-lg)}.product h1{font-size:clamp(2rem,3vw,2.625rem);margin-bottom:var(--space-sm)}.original{display:block;font-family:var(--font-mono);font-size:15px;letter-spacing:.12em;color:var(--color-muted);margin-top:var(--space-sm)}.tags{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin:var(--space-compact) 0 var(--space-md)}.tag{font-size:12px;color:var(--color-green);background:var(--color-green-soft);padding:var(--space-xs) var(--space-sm);border-radius:3px}.lede{font-size:16px;line-height:1.85}.quick-spec{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-compact);margin:var(--space-gutter) 0;border-block:1px solid var(--color-rule);padding:var(--space-md) 0}.quick-spec dt{font-size:12px;color:var(--color-muted)}.quick-spec dd{margin:var(--space-xs) 0 0;font-size:14px;font-weight:600}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:48px;padding:var(--space-sm) var(--space-gutter);font-size:15px;font-weight:700;border:1px solid var(--color-orange);border-radius:var(--radius-sm);background:var(--color-orange);color:var(--color-ink);text-decoration:none;white-space:nowrap;transition:transform var(--dur-short) var(--ease-out);cursor:pointer}.button:hover{background:var(--color-orange-hover);text-decoration:none}.button.secondary{background:var(--color-transparent);color:var(--color-green);border-color:var(--color-rule)}.button.secondary:hover{background:var(--color-green-soft)}.product .button{display:flex;width:100%;margin-bottom:var(--space-sm)}.micro{font-size:12px;color:var(--color-muted);line-height:1.65}.notice{font-size:13px;color:var(--color-berry);line-height:1.7;margin-top:var(--space-md)}.media-main{background:var(--color-nav);overflow:clip}.media-main a{display:block;position:relative}.media-main img{width:100%;aspect-ratio:16/9;object-fit:contain}.media-main figcaption{display:flex;justify-content:space-between;gap:var(--space-compact);align-items:center;padding:var(--space-compact) var(--space-md);font-size:13px;color:var(--color-light-ink)}.media-main figcaption a{color:var(--color-orange);white-space:nowrap}.thumb-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-sm);margin-top:var(--space-compact)}.thumb-row a{display:block;border:2px solid var(--color-transparent);background:var(--color-nav)}.thumb-row a:hover{border-color:var(--color-green)}.thumb-row img{width:100%;aspect-ratio:16/9;object-fit:contain}.media-caption{margin:var(--space-compact) 0 0;font-size:13px;color:var(--color-muted)}.journey{margin-top:var(--space-panel);display:flex;justify-content:space-between;gap:var(--space-compact);padding:var(--space-md) 0;border-block:1px solid var(--color-rule);font-size:13px;font-weight:600}.journey span{position:relative;padding-top:var(--space-md)}.journey span:before{content:'';position:absolute;top:0;left:0;width:7px;height:7px;border:2px solid var(--color-green);border-radius:50%}.jumpbar{display:flex;gap:var(--space-gutter);flex-wrap:wrap;padding:var(--space-md) 0;border-block:1px solid var(--color-rule);margin-bottom:var(--space-xl)}.jumpbar a{font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}.content-grid{display:grid;gap:var(--space-xl)}.section{margin-bottom:var(--space-2xl)}.section-title{background:var(--color-nav);color:var(--color-light-ink);padding:var(--space-compact) var(--space-md);font-family:var(--font-body);font-size:17px;line-height:1.5;margin:0 0 var(--space-lg);border-radius:2px}.story{max-width:72ch}.story .intro-title{font-size:27px;color:var(--color-green);margin-bottom:var(--space-md)}.feature{display:grid;gap:var(--space-md);margin-top:var(--space-panel);padding-top:var(--space-lg);border-top:1px solid var(--color-rule)}.feature img{aspect-ratio:16/9;object-fit:contain;width:100%;border-radius:3px}.feature h3{font-family:var(--font-display);font-size:22px}.feature p{font-size:14px}.spec{margin:0;background:var(--color-surface);border:1px solid var(--color-rule);padding:0 var(--space-md)}.spec div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:var(--space-compact);padding:var(--space-compact) 0;border-bottom:1px solid var(--color-rule);font-size:14px}.spec div:last-child{border:0}.spec dt{color:var(--color-muted)}.spec dd{margin:0;overflow-wrap:anywhere}.side-section{margin-bottom:var(--space-xl)}.side-section h2{font-family:var(--font-body);font-size:17px;border-bottom:2px solid var(--color-green);padding-bottom:var(--space-sm);margin-bottom:var(--space-md)}.rail-links{display:flex;flex-direction:column}.rail-links a{padding:var(--space-compact) 0;border-bottom:1px solid var(--color-rule);text-decoration:none;font-size:14px;display:flex;justify-content:space-between}.rail-links a:after{content:'→'}.character-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg)}.character{border-top:1px solid var(--color-rule);padding-top:var(--space-md)}.character .role{font-size:12px;color:var(--color-brown);margin-bottom:var(--space-sm)}.character p{font-size:14px}.audience{padding:var(--space-lg);background:var(--color-green-soft)}.audience ul{margin:0;padding-left:var(--space-gutter)}.audience li{margin:var(--space-sm) 0}.faq details{border-bottom:1px solid var(--color-rule);padding:0;background:var(--color-surface)}.faq summary{cursor:pointer;list-style:none;padding:var(--space-md) var(--space-stretch) var(--space-md) var(--space-md);font-weight:600;font-size:15px;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';position:absolute;right:16px;font-size:20px;top:12px;color:var(--color-green)}.faq details[open] summary:after{content:'−'}.faq details[open] summary{color:var(--color-green)}.faq .answer{padding:0 var(--space-md) var(--space-gutter);font-size:14px}.faq .answer p,.faq .answer ul{margin-bottom:var(--space-compact)}.updates article{border-top:1px solid var(--color-rule);padding:var(--space-gutter) 0}.updates time{font-family:var(--font-mono);font-size:12px;color:var(--color-muted)}.updates h3{margin:var(--space-sm) 0;font-size:15px}.updates ul{padding-left:var(--space-md);font-size:13px;margin:var(--space-sm) 0}.final-cta{background:var(--color-nav);color:var(--color-light-ink);padding:var(--space-xl);margin:var(--space-md) 0 var(--space-2xl);position:relative;display:grid;gap:var(--space-lg);border-radius:4px}.final-cta h2{margin-bottom:var(--space-compact);font-size:28px}.final-cta p{font-size:14px;max-width:64ch}.final-cta .micro{color:inherit;margin-top:var(--space-compact)}.footer{background:var(--color-nav);color:var(--color-light-ink);padding:var(--space-wide) 0 var(--space-panel)}.footer .identity{color:inherit}.footer .identity small{color:inherit}.footer-top{display:flex;justify-content:space-between;gap:var(--space-lg);flex-wrap:wrap;margin-bottom:var(--space-lg)}.footer-links,.related{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-gutter)}.footer a{color:inherit;white-space:nowrap;font-size:13px;min-height:44px;display:inline-flex;align-items:center}.footer p{font-size:12px;line-height:1.8}.related{padding-block:var(--space-compact);border-block:1px solid var(--color-rule);margin-bottom:var(--space-gutter)}.footer .related-label{color:var(--color-orange);display:flex;align-items:center;font-size:12px}.footer-meta{display:grid;gap:var(--space-compact)}.backtop{display:inline-flex;align-items:center;min-height:44px;font-size:13px;white-space:nowrap}.sticky-download{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-rule);z-index:25;display:flex;align-items:center;justify-content:space-between;gap:var(--space-compact);padding:var(--space-sm) var(--space-md) calc(var(--space-sm) + env(safe-area-inset-bottom))}.sticky-download strong{font-size:14px;display:block}.sticky-download small{font-size:11px;color:var(--color-muted)}body{padding-bottom:var(--space-mobile-bottom)}.page-heading{margin:var(--space-compact) 0 var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-rule)}.page-heading p{max-width:74ch;color:var(--color-muted)}.page-heading .tags{margin-bottom:0}.page-heading h1{margin-bottom:var(--space-md)}.page-content{display:grid;gap:var(--space-xl)}.toc{padding:var(--space-gutter);background:var(--color-surface);border:1px solid var(--color-rule);align-self:start}.toc h2{font-family:var(--font-body);font-size:16px;margin-bottom:var(--space-compact)}.toc a{display:block;padding:var(--space-sm) 0;text-decoration:none;font-size:14px}.guide-body section{margin-bottom:var(--space-2xl)}.guide-body h2{font-size:25px}.guide-body h3{font-size:18px;margin-top:var(--space-lg)}.guide-body p,.guide-body li{font-size:15px}.guide-body ol{padding-left:var(--space-lg)}.guide-body li{padding-left:var(--space-xs);margin-bottom:var(--space-compact)}.guide-cards{display:grid;gap:var(--space-compact);margin:var(--space-lg) 0 var(--space-xl)}.guide-card{background:var(--color-surface);border:1px solid var(--color-rule);padding:var(--space-gutter);color:var(--color-ink);text-decoration:none}.guide-card h2{font-family:var(--font-body);font-size:17px;margin-bottom:var(--space-sm)}.guide-card p{font-size:13px;color:var(--color-muted);margin-bottom:var(--space-compact)}.guide-card span{font-size:13px;color:var(--color-green)}.guide-card:hover{border-color:var(--color-green)}.spoiler{padding:var(--space-md) var(--space-gutter);background:var(--color-green-soft);font-size:14px;margin-bottom:var(--space-lg)}.route-controls{display:none;gap:var(--space-compact);align-items:center;margin-bottom:var(--space-md);flex-wrap:wrap}.js .route-controls{display:flex}.route-controls label{font-size:14px}.route-controls input{min-width:0;flex:1;min-height:46px;border:1px solid var(--color-rule);background:var(--color-surface);color:var(--color-ink);padding:var(--space-sm) var(--space-compact);border-radius:4px}.route-controls output{font-size:12px;color:var(--color-muted)}.route-list{display:grid;gap:var(--space-compact)}.route-item{display:flex;gap:var(--space-compact);align-items:center;justify-content:space-between;padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-rule)}.route-item h3{font-size:14px;margin:0}.route-item code{display:block;margin-top:var(--space-xs);font-family:var(--font-mono);font-size:17px;color:var(--color-green)}.route-item .micro{margin-top:var(--space-sm)}.copy{display:none;border:1px solid var(--color-rule);background:var(--color-paper);color:var(--color-ink);padding:var(--space-sm) var(--space-compact);border-radius:4px;min-height:44px;min-width:68px;white-space:nowrap;cursor:pointer;font-size:12px}.js .copy{display:block}.copy:hover{background:var(--color-green-soft)}[data-state=loading]{background:var(--color-loading)}[data-state=error]{border-color:var(--color-berry);color:var(--color-berry)}[data-state=success]{border-color:var(--color-green);color:var(--color-green)}.empty-message{font-size:14px;padding:var(--space-md);background:var(--color-surface);color:var(--color-berry)}.requirements{display:grid;gap:var(--space-gutter);margin-top:var(--space-lg)}.requirement h3{padding:var(--space-compact) var(--space-md);background:var(--color-nav);color:var(--color-light-ink);font-size:16px;margin:0}.requirement .spec div{grid-template-columns:75px minmax(0,1fr);font-size:13px}.download-card{background:var(--color-surface);border:1px solid var(--color-rule);padding:var(--space-lg);display:grid;gap:var(--space-lg);margin-bottom:var(--space-xl)}.download-card h2{font-family:var(--font-body);margin-bottom:var(--space-compact);font-size:22px}.download-card .button{margin-top:var(--space-md)}.download-card img{max-width:460px;width:100%;align-self:center}.step-list{list-style:none;padding:0;counter-reset:steps}.step-list li{counter-increment:steps;position:relative;padding:0 0 var(--space-gutter) var(--space-2xl);border-bottom:1px solid var(--color-rule);margin-bottom:var(--space-lg)}.step-list li:before{content:counter(steps,decimal-leading-zero);position:absolute;left:0;top:0;color:var(--color-green);font-family:var(--font-mono);font-size:20px;font-weight:700}.step-list p{font-size:14px}.filterbar{display:none;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-lg)}.js .filterbar{display:flex}.filterbar button{min-height:44px;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-rule);background:var(--color-surface);border-radius:4px;color:var(--color-ink);font-size:14px;cursor:pointer;white-space:nowrap}.filterbar button[aria-pressed=true]{background:var(--color-green);color:var(--color-light-ink);border-color:var(--color-green)}.filterbar button:hover{border-color:var(--color-green)}.filterbar output{width:100%;font-size:13px;color:var(--color-muted)}.gallery-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:var(--space-lg);margin-bottom:var(--space-stretch)}.gallery-grid img{width:100%;aspect-ratio:16/9;object-fit:contain;background:var(--color-nav)}.gallery-grid figcaption{padding-top:var(--space-compact)}.gallery-grid figcaption strong{display:block;font-size:15px}.gallery-grid figcaption p{font-size:13px;color:var(--color-muted);margin-top:var(--space-xs)}.gallery-grid a{display:block}.lightbox{border:none;width:min(1152px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;background:var(--color-nav);color:var(--color-light-ink);overflow:auto}.lightbox::backdrop{background:var(--color-backdrop)}.dialog-toolbar{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-rule);gap:var(--space-compact)}.dialog-toolbar p{font-size:13px;margin:0}.dialog-toolbar button,.dialog-controls button{min-width:44px;min-height:44px;border:1px solid var(--color-rule);background:var(--color-nav);color:var(--color-light-ink);border-radius:4px;padding:var(--space-sm) var(--space-compact);cursor:pointer;font-size:13px;white-space:nowrap}.dialog-toolbar button:hover,.dialog-controls button:hover{background:var(--color-nav-hover)}.dialog-image{min-height:150px;display:grid;place-items:center}.dialog-image img{max-height:calc(100dvh - 170px);object-fit:contain;width:100%;aspect-ratio:16/9}.dialog-controls{display:flex;gap:var(--space-md);align-items:center;justify-content:center;padding:var(--space-sm) var(--space-md) var(--space-md);flex-wrap:wrap}.dialog-controls a{color:var(--color-orange);font-size:13px;white-space:nowrap;min-height:44px;display:flex;align-items:center}.dialog-caption{font-size:13px;text-align:center;padding:0 var(--space-md) var(--space-compact)}.dialog-status{margin:0;text-align:center;font-size:13px;color:var(--color-orange);padding:var(--space-sm)}.js [hidden],[hidden]{display:none!important}
@media(min-width:40rem){.wrap{width:min(1224px,calc(100% - 48px))}.nav-inner{gap:var(--space-md)}.nav-inner>a{padding-inline:var(--space-lg)}.product{padding:var(--space-panel)}.feature{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:var(--space-lg)}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.route-list{grid-template-columns:repeat(2,minmax(0,1fr))}.requirements{grid-template-columns:repeat(2,minmax(0,1fr))}.download-card{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center}.final-cta{grid-template-columns:minmax(0,1fr) auto;align-items:center}.footer-meta{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(min-width:64rem){body{padding-bottom:0}.hero{grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:var(--space-lg)}.product{order:0;padding:var(--space-lg)}.product h1{font-size:34px}.product .lede{font-size:14px}.product .cover{margin-bottom:var(--space-gutter)}.product .quick-spec{margin-block:var(--space-md)}.content-grid{grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:var(--space-stretch)}.page-content{grid-template-columns:minmax(0,1fr) 260px;gap:var(--space-2xl)}.toc{position:sticky;top:calc(4rem + 16px);grid-column:2;grid-row:1}.guide-body{grid-column:1;grid-row:1}.sticky-download{display:none}.page-heading h1{font-size:44px}.media-main a{overflow:clip}.hero .media-main img{animation:window-zoom 18s var(--ease-in-out) alternate infinite}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.final-cta{padding:var(--space-wide) var(--space-stretch)}.journey{margin-top:var(--space-lg)}.nav-inner>a{padding-inline:var(--space-stretch)}}
@media(min-width:80rem){.product .lede{font-size:15px}.product h1{font-size:38px}}
@keyframes window-zoom{from{transform:translate(var(--media-x,0px),var(--media-y,0px)) scale(1.02)}to{transform:translate(var(--media-x,0px),var(--media-y,0px)) scale(1.045)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.button:active,button:active{transform:none}}
@media(min-width:64rem){html.reduce-motion .hero .media-main img{animation:none}}

/* Compact navigation retains every destination without clipped labels. */
.nav-long{display:none}.nav-short{display:inline}.nav-inner>a{padding-inline:var(--space-sm)}.nav-inner{gap:var(--space-xs)}
@media(min-width:40rem){.nav-long{display:inline}.nav-short{display:none}.nav-inner>a{padding-inline:var(--space-gutter)}.nav-inner{gap:var(--space-sm)}}
@media(min-width:64rem){.nav-inner>a{padding-inline:var(--space-stretch)}.nav-inner{gap:var(--space-md)}}

a:active:not(.button){opacity:.8}.route-controls input:hover{background:var(--color-green-soft)}.hero .media-main:hover img,.hero .media-main:focus-within img{animation-play-state:paused}

.nav-inner{flex-wrap:wrap}.toc a{min-height:44px}.thumb-row a{min-height:44px}
@media(min-width:64rem){.hero .media-main>a{padding-block:12px}.hero .media-main img{width:95%;margin-inline:auto}}
