:root {
  --ink: #101310;
  --paper: #f2f0e8;
  --white: #fffdf5;
  --acid: #dfff00;
  --orange: #ff5a1f;
  --blue: #3d58f0;
  --cyan: #43d7d1;
  --muted: #777a71;
  --line: rgba(16, 19, 16, .16);
  --max: 1480px;
  --pad: clamp(22px, 4vw, 72px);
  --display: Impact, Haettenschweiler, "Arial Narrow Bold", "Arial Narrow", sans-serif;
  --body: Inter, "Helvetica Neue", Arial, "Noto Sans SC", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--body); overflow-x: hidden; }
button, a { font: inherit; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 200; left: 16px; top: -60px; padding: 12px 18px; background: var(--acid); color: var(--ink); transition: top .2s; }
.skip-link:focus { top: 16px; }

.site-header { position: fixed; z-index: 100; inset: 0 0 auto; height: 76px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 var(--pad); color: var(--white); border-bottom: 1px solid rgba(255,255,255,.19); transition: .3s ease; }
.site-header.scrolled { height: 64px; background: rgba(242,240,232,.9); color: var(--ink); border-color: var(--line); backdrop-filter: blur(16px); }
.brand { justify-self: start; display: flex; align-items: center; gap: 11px; font-weight: 800; letter-spacing: -.03em; }
.brand-mark { width: 24px; height: 24px; border: 7px solid currentColor; border-right-color: transparent; border-radius: 50%; transform: rotate(-30deg); }
.site-nav { display: flex; align-items: center; gap: clamp(22px, 3vw, 46px); }
.site-nav a { position: relative; font-size: 13px; font-weight: 700; letter-spacing: .12em; padding: 28px 0 24px; }
.site-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 18px; height: 2px; background: var(--acid); transition: .25s ease; }
.site-header.scrolled .site-nav a::after { background: var(--orange); }
.site-nav a:hover::after, .site-nav a.active::after { right: 0; }
.header-code { justify-self: end; font-size: 10px; letter-spacing: .18em; opacity: .75; }
.menu-toggle { display: none; background: none; border: 0; padding: 10px; }

section { position: relative; scroll-margin-top: 64px; }
.section-dark { background: var(--ink); color: var(--white); }
.eyebrow { margin: 0 0 24px; font-size: 11px; font-weight: 800; letter-spacing: .22em; }
.eyebrow.light { color: var(--acid); }
.eyebrow::before { content: ""; display: inline-block; width: 28px; height: 2px; margin: 0 10px 3px 0; background: currentColor; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--display); font-weight: 900; letter-spacing: -.045em; line-height: .88; text-transform: uppercase; }
h2 { font-size: clamp(52px, 7vw, 118px); }

.hero { min-height: 100svh; overflow: hidden; padding: 130px var(--pad) 40px; display: flex; flex-direction: column; justify-content: center; }
.hero-grid { position: absolute; inset: 0; opacity: .13; background-image: linear-gradient(rgba(255,255,255,.28) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.2) 1px, transparent 1px); background-size: 8vw 8vw; mask-image: linear-gradient(to bottom, black, transparent 90%); }
.hero::before { content: ""; position: absolute; width: 54vw; height: 54vw; border: 1px solid rgba(223,255,0,.35); border-radius: 50%; right: -18vw; top: -22vw; box-shadow: 0 0 0 8vw rgba(223,255,0,.025), 0 0 0 16vw rgba(223,255,0,.02); }
.hero-copy { position: relative; z-index: 4; width: min(770px, 58vw); }
.hero h1 { margin: 0; font-size: clamp(100px, 16vw, 260px); }
.hero-subline { display: grid; grid-template-columns: auto 1fr; gap: 30px; align-items: start; margin-top: 32px; }
.hero-subline span { color: var(--acid); font-size: 13px; font-weight: 900; letter-spacing: .2em; }
.hero-subline p { max-width: 290px; color: rgba(255,255,255,.65); font-size: 14px; line-height: 1.7; }
.train-stage { position: absolute; z-index: 3; width: 62vw; max-width: 1050px; height: 390px; right: -5vw; bottom: 11vh; perspective: 1000px; }
.speed-lines { position: absolute; inset: -30% -10%; opacity: .3; background: repeating-linear-gradient(0deg, transparent 0 34px, rgba(223,255,0,.3) 35px 36px); transform: skewY(-4deg); }
.train { position: absolute; right: 0; bottom: 55px; width: 100%; height: 260px; filter: drop-shadow(0 40px 30px rgba(0,0,0,.45)); animation: train-float 4s ease-in-out infinite; }
.train-front { position: absolute; z-index: 2; left: 0; top: 24px; width: 18%; height: 210px; background: linear-gradient(120deg, #c8cbc2 0 30%, #f6f5ef 31% 80%, #777d76); clip-path: polygon(32% 0, 100% 0, 100% 100%, 0 94%, 2% 40%); border-radius: 38px 0 0 15px; }
.train-front::before { content: ""; position: absolute; left: 16%; top: 12%; width: 60%; height: 72px; background: #182523; clip-path: polygon(22% 0,100% 0,100% 100%,0 82%); }
.train-number { position: absolute; left: 23%; bottom: 32px; color: #262926; font-size: 10px; font-weight: 900; letter-spacing: .15em; }
.headlight { position: absolute; left: 10%; bottom: 39px; width: 12px; height: 6px; background: var(--acid); box-shadow: 0 0 16px var(--acid); }
.train-body { position: absolute; left: 16%; right: 0; top: 24px; height: 210px; display: flex; align-items: center; gap: 2.4%; padding: 25px 4% 38px; background: linear-gradient(#f5f4ef 0 65%, #c6c8c2 66% 100%); border-radius: 0 8px 14px 0; overflow: hidden; }
.train-stripe { position: absolute; inset: auto 0 31px; height: 19px; background: var(--acid); box-shadow: 0 -5px 0 #161a18; }
.train-window { position: relative; z-index: 2; width: 22%; height: 94px; background: #14292a; border: 7px solid #2f3432; overflow: hidden; }
.train-window.small { width: 15%; }
.target-window { box-shadow: 0 0 0 3px var(--acid), 0 0 35px rgba(223,255,0,.25); }
.window-scene { position: absolute; inset: 0; background: linear-gradient(#f09660 0 45%, #b8aca0 46% 48%, #445854 49%); overflow: hidden; }
.window-scene.alt { filter: hue-rotate(45deg); }
.window-scene::after { content: ""; position: absolute; inset: 0 -100% 0 0; background: linear-gradient(90deg, transparent 0 35%, rgba(255,255,255,.18) 36% 38%, transparent 39% 72%, rgba(255,255,255,.12) 73% 74%, transparent 75%); animation: scenery 3.8s linear infinite; }
.city-block { position: absolute; bottom: 39%; background: #423d39; }
.b1 { left: 3%; width: 15%; height: 28%; }.b2 { left: 25%; width: 22%; height: 42%; }.b3 { left: 53%; width: 12%; height: 24%; }.b4 { left: 73%; width: 24%; height: 35%; }
.window-sun { position: absolute; right: 12%; top: 14%; width: 18px; height: 18px; border-radius: 50%; background: var(--acid); }
.train-door { position: relative; z-index: 2; display: flex; width: 25%; height: 152px; border: 3px solid #8e928d; }
.train-door span { width: 50%; border-right: 1px solid #a7aaa5; }
.wheel { position: absolute; z-index: -1; bottom: 4px; width: 66px; height: 66px; border-radius: 50%; background: radial-gradient(circle, #696e69 0 20%, #161918 21% 64%, #858b84 65% 70%, #111 71%); }
.w1 { left: 28%; }.w2 { right: 16%; }
.rail { position: absolute; left: -20%; right: -10%; bottom: 47px; height: 12px; border-top: 4px solid #777; border-bottom: 3px solid #454545; transform: skewX(-18deg); }
.rail span { position: absolute; width: 9px; height: 50px; top: -20px; background: #555; transform: skewX(18deg); }.rail span:nth-child(1){left:20%}.rail span:nth-child(2){left:52%}.rail span:nth-child(3){left:84%}
.hero-meta { position: absolute; z-index: 5; left: var(--pad); right: var(--pad); bottom: 26px; display: flex; justify-content: space-between; font-size: 10px; letter-spacing: .2em; color: rgba(255,255,255,.62); }
.scroll-cue i { display: inline-block; width: 45px; height: 1px; margin: 0 0 3px 12px; background: var(--acid); animation: cue 1.4s ease infinite; }

.intro-panel { min-height: 95vh; display: grid; grid-template-columns: 1.18fr .82fr; gap: clamp(40px, 7vw, 120px); align-items: center; padding: 120px var(--pad); background: var(--acid); overflow: hidden; }
.window-frame { position: relative; min-height: 560px; padding: 42px; background: #e7e7df; border: 28px solid #242824; border-radius: 130px 130px 48px 48px; box-shadow: inset 0 0 0 5px #858b83, 18px 22px 0 rgba(0,0,0,.12); overflow: hidden; }
.moving-view { position: absolute; inset: 0; background: linear-gradient(#8ccdcf 0 50%, #d9c5a9 51% 70%, #738b74 71%); }
.moving-view::before, .moving-view::after { content: ""; position: absolute; left: -40%; right: -40%; animation: scenery 8s linear infinite; }
.moving-view::before { bottom: 23%; height: 32%; background: repeating-linear-gradient(90deg, #203433 0 55px, #f2a53a 56px 90px, #d7d1bd 91px 155px); clip-path: polygon(0 30%, 10% 50%, 18% 10%, 30% 42%, 42% 18%, 55% 48%, 70% 12%, 80% 40%, 92% 4%, 100% 45%, 100% 100%, 0 100%); }
.moving-view::after { bottom: 0; height: 24%; background: repeating-linear-gradient(90deg, #334740 0 8px, transparent 9px 85px); }
.frame-label { position: absolute; left: 18px; bottom: 17px; color: var(--white); font-size: 9px; letter-spacing: .18em; }
.intro-copy h2 { font-size: clamp(58px, 6.5vw, 112px); }
.intro-copy > p:not(.eyebrow) { max-width: 500px; font-size: 18px; line-height: 1.85; }
.quick-facts { margin: 55px 0 0; border-top: 1px solid rgba(0,0,0,.3); }
.quick-facts div { display: grid; grid-template-columns: 120px 1fr; gap: 24px; padding: 17px 0; border-bottom: 1px solid rgba(0,0,0,.3); }
.quick-facts dt { font-size: 11px; font-weight: 800; letter-spacing: .12em; }.quick-facts dd { margin: 0; font-size: 14px; }

.metro-section, .walking-section { padding: 140px var(--pad); }
.section-head { max-width: var(--max); margin: 0 auto 76px; display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.section-head h2 { margin: 0; font-size: clamp(62px, 8vw, 126px); }
.section-index { font-size: 11px; font-weight: 800; letter-spacing: .16em; }
.metro-layout { max-width: var(--max); margin: auto; display: grid; grid-template-columns: 180px 1fr; border-top: 1px solid var(--line); }
.line-list { padding: 24px 24px 24px 0; border-right: 1px solid var(--line); }
.line-chip { width: 100%; display: flex; gap: 16px; align-items: center; padding: 16px 13px; border: 0; border-bottom: 1px solid var(--line); background: transparent; cursor: pointer; font-size: 13px; text-align: left; transition: .2s; }
.line-chip span { font-weight: 900; font-size: 10px; }
.line-chip:hover, .line-chip.active { background: var(--ink); color: var(--white); transform: translateX(6px); }
.metro-map { position: relative; min-height: 650px; overflow: hidden; background-image: linear-gradient(rgba(16,19,16,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(16,19,16,.055) 1px, transparent 1px); background-size: 42px 42px; }
.metro-map svg { position: absolute; inset: 8% 3% 6%; width: 94%; height: 86%; overflow: visible; }
.map-line { fill: none; stroke-width: 12; stroke-linecap: round; opacity: .86; transition: opacity .25s, stroke-width .25s; }
.line-1{stroke:#e83a38}.line-2{stroke:#3d58f0}.line-3{stroke:#e7b81e}.line-4{stroke:#7254ae}.line-5{stroke:#43a666}.line-6{stroke:#d863a5}
.metro-map[data-active-line] .map-line { opacity: .12; stroke-width: 8; }
.metro-map[data-active-line="1"] .line-1,.metro-map[data-active-line="2"] .line-2,.metro-map[data-active-line="3"] .line-3,.metro-map[data-active-line="4"] .line-4,.metro-map[data-active-line="5"] .line-5,.metro-map[data-active-line="6"] .line-6 { opacity: 1; stroke-width: 15; }
.map-stations circle { fill: var(--paper); stroke: var(--ink); stroke-width: 3; }
.station { position: absolute; z-index: 4; background: none; border: 0; cursor: pointer; text-align: left; }
.station span { display: block; width: 18px; height: 18px; margin-bottom: 8px; border: 4px solid var(--ink); border-radius: 50%; background: var(--white); transition: .2s; }
.station:hover span, .station:focus span { width: 28px; height: 28px; background: var(--acid); transform: translate(-5px,5px); }
.station b { display: block; padding: 3px 6px; background: var(--paper); font-size: 14px; }.station small { display: block; padding: 3px 6px; background: var(--ink); color: var(--white); font-size: 8px; letter-spacing: .14em; }
.station-wuyi { left: 43%; top: 47%; }.station-juzizhou { left: 25%; top: 51%; }.station-rail { left: 62%; top: 34%; }
.map-key { position: absolute; display: flex; justify-content: space-between; left: 34px; right: 34px; bottom: 24px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 10px; font-weight: 800; letter-spacing: .12em; }

.transfer-strip { min-height: 90vh; display: grid; grid-template-columns: .9fr 1.1fr; background: var(--orange); color: var(--white); overflow: hidden; }
.transfer-copy { align-self: center; padding: 120px var(--pad); z-index: 2; }
.transfer-copy h2 { margin-bottom: 0; font-size: clamp(66px, 8vw, 130px); }
.road-scene { position: relative; min-height: 800px; background: #242625; transform: skewX(-7deg) scale(1.1); overflow: hidden; }
.road-scene::before, .road-scene::after { content: ""; position: absolute; inset: 0 70% 0 28%; background: #d9d3bf; opacity: .65; }.road-scene::after { inset: 0 28% 0 70%; }
.road-markings { position: absolute; inset: -20% 42% -20% 42%; background: repeating-linear-gradient(0deg, transparent 0 72px, var(--acid) 73px 110px); }
.bus-top { position: absolute; left: 34%; top: 31%; width: 31%; height: 330px; border-radius: 40px 40px 16px 16px; background: linear-gradient(90deg, #f0eee5 0 12%, var(--acid) 13% 87%, #f0eee5 88%); box-shadow: 0 35px 45px rgba(0,0,0,.4); transform: rotate(-1deg); animation: bus-drive 4s ease-in-out infinite alternate; }
.bus-top::before { content: ""; position: absolute; inset: 30px 20px 130px; background: #1b2c2c; border-radius: 24px; }.bus-top::after { content: "BUS 旅程"; position: absolute; bottom: 48px; left: 27%; color: var(--ink); font-weight: 900; font-size: 22px; letter-spacing: .08em; }
.road-label { position: absolute; right: 15%; bottom: 20%; color: rgba(255,255,255,.55); font-size: 12px; letter-spacing: .22em; transform: rotate(90deg); }

.bus-section { padding: 140px var(--pad); }
.bus-section .section-head { border-bottom: 1px solid rgba(255,255,255,.18); padding-bottom: 55px; }
.route-tabs { max-width: var(--max); margin: 0 auto 40px; display: flex; gap: 6px; }
.route-tab { border: 1px solid rgba(255,255,255,.22); background: transparent; color: var(--white); padding: 14px 22px; cursor: pointer; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.route-tab:hover, .route-tab.active { background: var(--acid); border-color: var(--acid); color: var(--ink); }
.bus-feature { max-width: var(--max); margin: auto; display: grid; grid-template-columns: 1.35fr .65fr; min-height: 620px; }
.bus-window { position: relative; overflow: hidden; border: 28px solid #484b47; border-radius: 100px 100px 24px 24px; background: #1c201e; }
.bus-view { position: absolute; inset: 0; opacity: 0; transform: scale(1.06); transition: opacity .55s, transform .75s; }
.bus-view.active { opacity: 1; transform: scale(1); }
.bus-view span { position: absolute; left: 22px; bottom: 20px; padding: 8px 12px; background: var(--ink); color: var(--acid); font-size: 10px; letter-spacing: .15em; }
.route-oldtown { background: linear-gradient(150deg, transparent 0 25%, rgba(0,0,0,.4) 26%), linear-gradient(#e49860 0 38%, #9e5539 39% 65%, #382f2a 66%); }
.route-oldtown::before { content: ""; position: absolute; inset: 22% 4% 28%; background: repeating-linear-gradient(90deg, #704230 0 70px, #d6ae78 71px 84px, #a43c28 85px 140px); clip-path: polygon(0 30%,12% 6%,26% 32%,39% 2%,54% 28%,68% 0,80% 33%,92% 8%,100% 28%,100% 100%,0 100%); }
.route-landmark { background: radial-gradient(circle at 65% 20%, #fff7b4 0 8%, transparent 9%), linear-gradient(#4a75aa 0 58%, #d5a659 59% 72%, #536354 73%); }
.route-landmark::before { content: ""; position: absolute; width: 120px; height: 310px; left: 43%; bottom: 26%; background: #e2ddd0; clip-path: polygon(35% 0,65% 0,75% 25%,100% 100%,0 100%,25% 25%); }
.route-river { background: linear-gradient(#8ac5ca 0 45%, #e7bb71 46% 52%, #416a70 53%); }
.route-river::before { content: ""; position: absolute; left: 5%; right: 5%; bottom: 43%; height: 7px; background: #c34a3b; box-shadow: 0 5px 0 rgba(0,0,0,.25); transform: rotate(-2deg); }
.window-reflection { position: absolute; z-index: 4; inset: -30% 50% -20% 18%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.13), transparent); transform: rotate(18deg); pointer-events: none; }
.route-copy { padding: 50px clamp(30px,4vw,70px); background: #292d29; display: flex; flex-direction: column; justify-content: center; }
.route-number { color: var(--acid); font-size: 10px; font-weight: 800; letter-spacing: .2em; }
.route-copy h3 { margin: 12px 0 30px; font-family: var(--display); font-size: clamp(46px,5vw,82px); line-height: .95; }
.route-copy > p:not(.route-number) { color: rgba(255,255,255,.68); font-size: 15px; line-height: 1.9; }
.route-copy ul { list-style: none; padding: 0; margin: 36px 0 0; border-top: 1px solid rgba(255,255,255,.16); }
.route-copy li { display: grid; grid-template-columns: 100px 1fr; gap: 12px; padding: 17px 0; border-bottom: 1px solid rgba(255,255,255,.16); font-size: 12px; }.route-copy li span { color: rgba(255,255,255,.45); }

.cycling-section { min-height: 110vh; padding: 160px var(--pad) 50px; display: flex; flex-direction: column; justify-content: center; overflow: hidden; background: #a8d6d2; }
.river-bg { position: absolute; inset: 0; background: linear-gradient(#8ec8ca 0 45%, #eed69f 46% 54%, #52919a 55% 78%, #283c39 79%); }
.river-bg::before { content: ""; position: absolute; inset: 55% 0 20%; background: repeating-linear-gradient(172deg, transparent 0 18px, rgba(255,255,255,.18) 19px 21px); }
.river-sun { position: absolute; width: 14vw; height: 14vw; min-width: 130px; min-height: 130px; right: 14%; top: 15%; border-radius: 50%; background: var(--acid); box-shadow: 0 0 90px rgba(223,255,0,.35); }
.far-city { position: absolute; left: 0; right: 0; bottom: 45%; height: 20%; opacity: .65; background: repeating-linear-gradient(90deg, transparent 0 22px, #496b68 23px 62px, transparent 63px 76px, #5b7b76 77px 116px); clip-path: polygon(0 65%,4% 42%,8% 65%,13% 22%,18% 68%,23% 48%,29% 70%,35% 18%,40% 63%,48% 36%,54% 66%,61% 8%,66% 60%,75% 38%,80% 63%,88% 23%,94% 60%,100% 44%,100% 100%,0 100%); }
.railing { position: absolute; bottom: 12%; width: 2px; height: 200px; background: #202a28; }.railing::after { content:""; position:absolute; top:20px; left:-220px; width:440px; height:5px; background:#202a28; transform:rotate(-5deg); }.r1{left:8%}.r2{left:42%}.r3{left:82%}
.cycling-copy { position: relative; z-index: 3; align-self: flex-start; max-width: 820px; }
.cycling-copy h2 { font-size: clamp(72px,9vw,150px); }.cycling-copy > p:not(.eyebrow) { max-width: 460px; font-size: 16px; line-height: 1.8; }
.cyclist { position: absolute; z-index: 4; right: 10%; bottom: 13%; width: 360px; height: 290px; filter: drop-shadow(0 20px 12px rgba(0,0,0,.3)); animation: ride 3s ease-in-out infinite; }
.bike-wheel { position: absolute; bottom: 0; width: 120px; height: 120px; border: 8px solid #151b19; border-radius: 50%; box-shadow: inset 0 0 0 2px rgba(255,255,255,.25); }.bike-wheel.left{left:0}.bike-wheel.right{right:0}
.bike-frame { position: absolute; left: 85px; bottom: 55px; width: 160px; height: 80px; border: 9px solid var(--orange); clip-path: polygon(0 100%,28% 0,58% 100%,100% 8%,94% 0,55% 78%,33% 5%,10% 100%); }
.rider { position: absolute; left: 146px; bottom: 124px; width: 55px; height: 125px; background: var(--ink); border-radius: 40px 40px 8px 8px; transform: rotate(-27deg); }.rider::before { content:""; position:absolute; width:46px;height:46px;border-radius:50%;background:var(--orange);left:20px;top:-50px; }.rider::after { content:""; position:absolute; width:105px;height:17px;background:var(--ink);left:23px;top:36px;transform:rotate(33deg);transform-origin:left; }
.cycling-meta { position: absolute; z-index: 3; left: var(--pad); right: var(--pad); bottom: 30px; display: flex; justify-content: space-between; border-top: 1px solid rgba(0,0,0,.25); padding-top: 12px; font-size: 10px; font-weight: 800; letter-spacing: .15em; }

.walking-section { background: #e7e1d2; }
.walk-layout { max-width: var(--max); margin: auto; display: grid; grid-template-columns: 310px 1fr; min-height: 700px; border-top: 1px solid var(--line); }
.walk-routes { padding: 28px 26px 28px 0; }
.walk-tab { width: 100%; display: grid; grid-template-columns: 40px 1fr; text-align: left; padding: 22px 14px; border: 0; border-bottom: 1px solid var(--line); background: transparent; cursor: pointer; transition: .2s; }.walk-tab span { grid-row: 1/3; font-size: 10px; font-weight: 900; }.walk-tab b { font-size: 17px; }.walk-tab small { margin-top: 5px; color: var(--muted); }.walk-tab.active, .walk-tab:hover { background: var(--ink); color: var(--white); transform: translateX(6px); }.walk-tab.active small,.walk-tab:hover small{color:var(--acid)}
.walk-map { position: relative; overflow: hidden; min-height: 700px; background: #c9c4b5; }
.street-grid { position: absolute; inset: -20%; background: linear-gradient(32deg, transparent 45%, rgba(255,255,255,.68) 46% 52%, transparent 53%), linear-gradient(-21deg, transparent 43%, rgba(255,255,255,.53) 44% 48%, transparent 49%), repeating-linear-gradient(90deg, transparent 0 80px, rgba(0,0,0,.06) 81px 83px); transform: rotate(-6deg); }
.footpath { position: absolute; inset: 7%; width: 86%; height: 86%; }.footpath path { fill: none; stroke: var(--orange); stroke-width: 7; stroke-linecap: round; stroke-dasharray: 4 18; animation: path-flow 1s linear infinite; }
.place { position: absolute; display: flex; gap: 8px; align-items: center; border: 0; background: var(--paper); padding: 8px 12px; box-shadow: 5px 5px 0 rgba(0,0,0,.15); cursor: pointer; }.place span { width: 26px; height: 26px; display: grid; place-items: center; background: var(--orange); color: white; border-radius: 50%; font-size: 9px; }.place:hover,.place:focus{background:var(--acid)}.p1{left:8%;bottom:13%}.p2{left:39%;top:45%}.p3{right:8%;top:10%}
.walk-card { position: absolute; right: 6%; bottom: 6%; width: min(360px,42%); padding: 30px; background: var(--ink); color: var(--white); box-shadow: 14px 14px 0 var(--acid); }.walk-card > span { color: var(--acid); font-size: 9px; font-weight: 900; letter-spacing: .2em; }.walk-card h3 { margin: 13px 0 18px; font-family: var(--display); font-size: 44px; }.walk-card p { color: rgba(255,255,255,.65); line-height: 1.7; font-size: 13px; }.walk-card dl { margin: 24px 0 0; }.walk-card dl div { display: flex; justify-content: space-between; padding: 9px 0; border-top: 1px solid rgba(255,255,255,.18); font-size: 10px; }.walk-card dd{margin:0;color:rgba(255,255,255,.65)}

.night-section { min-height: 115vh; display: grid; place-items: center; overflow: hidden; }
.night-sky { position: absolute; inset: 0; background: linear-gradient(#101528 0 52%, #1b2640 53% 61%, #071619 62%); }
.night-sky::before { content:"";position:absolute;inset:0 0 38%;opacity:.6;background-image:radial-gradient(circle,white 0 1px,transparent 2px);background-size:97px 83px; }
.moon { position:absolute;width:14vw;height:14vw;min-width:150px;min-height:150px;border-radius:50%;right:15%;top:15%;background:#f7f2c7;box-shadow:0 0 90px rgba(255,245,183,.2); }
.night-city { position:absolute;left:0;right:0;bottom:37%;height:31%;background:repeating-linear-gradient(90deg,#131c27 0 44px,#263148 45px 47px,#101724 48px 90px);clip-path:polygon(0 74%,6% 65%,11% 74%,18% 48%,24% 71%,31% 57%,38% 74%,44% 30%,50% 68%,57% 52%,63% 72%,69% 12%,72% 69%,78% 53%,84% 70%,90% 38%,96% 68%,100% 59%,100% 100%,0 100%); }
.night-city::after { content:"";position:absolute;inset:35% 2% 0;background-image:radial-gradient(circle,var(--acid) 0 1px,transparent 2px);background-size:33px 22px;opacity:.7; }
.reflection { position:absolute;inset:63% 0 0;background:repeating-linear-gradient(94deg,transparent 0 20px,rgba(223,255,0,.1) 21px 23px,transparent 24px 50px,rgba(255,151,72,.12) 51px 53px);filter:blur(2px); }
.night-copy { position:relative;z-index:2;text-align:center; }.night-copy h2 { font-size:clamp(100px,16vw,260px);margin-bottom:38px; }.night-copy > p:not(.eyebrow){font-size:18px;line-height:1.9;color:rgba(255,255,255,.7)}
.night-index { position:absolute;left:var(--pad);bottom:30px;font-size:10px;letter-spacing:.18em;color:rgba(255,255,255,.5); }

.site-footer { padding: 100px var(--pad) 28px; background: #090b0a; color: var(--white); display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; }
.footer-brand h2 { margin: 0 0 24px; font-family: var(--display); font-size: clamp(70px,9vw,145px); letter-spacing: -.05em; }.footer-brand > p:last-child{color:rgba(255,255,255,.5)}
.footer-nav { display: grid; align-content: start; }.footer-nav a { display:flex;justify-content:space-between;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.17);font-size:15px;font-weight:700; }.footer-nav a:hover{color:var(--acid)}
.footer-bottom { grid-column:1/-1;display:flex;justify-content:space-between;gap:30px;padding-top:24px;border-top:1px solid rgba(255,255,255,.17);font-size:10px;letter-spacing:.1em;color:rgba(255,255,255,.45); }.footer-bottom a{color:var(--acid)}

.detail-panel { position: fixed; z-index: 130; top: 0; right: 0; width: min(540px, 100%); height: 100svh; padding: 100px 55px 45px; overflow-y: auto; background: var(--acid); color: var(--ink); transform: translateX(105%); visibility: hidden; transition: transform .45s cubic-bezier(.75,0,.2,1), visibility .45s; }
.detail-panel.open { transform: translateX(0); visibility: visible; }
.panel-close { position:absolute;right:28px;top:26px;width:48px;height:48px;border:1px solid var(--ink);border-radius:50%;background:transparent;font-size:30px;cursor:pointer; }.panel-close:hover{background:var(--ink);color:var(--white)}
.panel-code { font-size:10px;letter-spacing:.15em; }.detail-panel h2 { margin:45px 0 6px;font-size:clamp(70px,9vw,120px); }.panel-en{font-size:11px;font-weight:900;letter-spacing:.2em}.panel-visual{height:240px;margin:35px 0;background:linear-gradient(#84c5c8 0 54%,#d3ad7d 55% 70%,#343d36 71%);overflow:hidden}.panel-visual span{display:block;width:130px;height:220px;margin:50px auto 0;background:#d6d2c4;clip-path:polygon(35% 0,65% 0,75% 25%,100% 100%,0 100%,25% 25%)}
.detail-panel > p:not(.eyebrow,.panel-en){line-height:1.8}.detail-panel dl{margin-top:35px}.detail-panel dl div{display:grid;grid-template-columns:100px 1fr;gap:18px;padding:14px 0;border-top:1px solid rgba(0,0,0,.25);font-size:12px}.detail-panel dd{margin:0}.panel-backdrop{position:fixed;z-index:120;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(3px)}

.reveal { opacity: 0; transform: translateY(40px); transition: opacity .7s ease, transform .8s cubic-bezier(.2,.8,.2,1); }
.reveal.visible { opacity: 1; transform: translateY(0); }
@keyframes train-float { 50% { transform: translateY(-5px); } }
@keyframes scenery { to { transform: translateX(50%); } }
@keyframes cue { 50% { transform: translateX(12px); opacity: .45; } }
@keyframes bus-drive { to { transform: translateY(40px) rotate(-1deg); } }
@keyframes ride { 50% { transform: translateY(-8px) rotate(-1deg); } }
@keyframes path-flow { to { stroke-dashoffset: -22; } }

@media (max-width: 1000px) {
  .site-header { grid-template-columns: 1fr auto; }
  .header-code { display:none; }
  .site-nav { position:fixed;inset:64px 0 auto;background:var(--paper);color:var(--ink);padding:22px var(--pad);display:none;flex-direction:column;align-items:stretch;gap:0;border-bottom:1px solid var(--line); }
  .site-nav.open { display:flex; }.site-nav a{padding:16px 0;border-bottom:1px solid var(--line)}.site-nav a::after{display:none}
  .menu-toggle{display:grid;gap:5px}.menu-toggle span:not(.sr-only){display:block;width:25px;height:2px;background:currentColor}
  .hero-copy{width:80vw}.train-stage{width:80vw;opacity:.84}.hero h1{font-size:clamp(90px,18vw,190px)}
  .intro-panel{grid-template-columns:1fr}.window-frame{min-height:430px}.intro-copy{max-width:720px}
  .transfer-strip{grid-template-columns:1fr}.road-scene{min-height:600px}
  .bus-feature{grid-template-columns:1fr}.bus-window{min-height:500px}.route-copy{min-height:430px}
  .walk-layout{grid-template-columns:240px 1fr}.cyclist{opacity:.7;right:-4%}
}

@media (max-width: 680px) {
  :root{--pad:20px}.site-header{height:64px}.hero{padding-top:110px;min-height:820px;justify-content:flex-start}.hero-copy{width:100%}.hero h1{font-size:clamp(84px,29vw,138px)}.hero-subline{grid-template-columns:1fr;gap:12px}.hero .eyebrow{margin-bottom:16px}.train-stage{width:116vw;right:-43vw;height:290px;bottom:90px}.train{height:220px}.train-front,.train-body{height:175px}.train-window{height:75px;border-width:4px}.train-door{height:120px}.train-stripe{bottom:25px;height:14px}.wheel{width:52px;height:52px}.hero-meta{bottom:20px}.scroll-cue{font-size:0}
  h2{font-size:55px}.intro-panel,.metro-section,.bus-section,.walking-section{padding-top:90px;padding-bottom:90px}.window-frame{min-height:330px;border-width:18px;border-radius:70px 70px 25px 25px}.section-head{margin-bottom:42px;align-items:flex-start}.section-index{writing-mode:vertical-rl}.section-head h2{font-size:56px}
  .metro-layout{grid-template-columns:1fr}.line-list{display:flex;overflow-x:auto;padding:0 0 16px;border-right:0}.line-chip{min-width:118px;border:1px solid var(--line)}.metro-map{min-height:560px}.station-wuyi{left:39%}.station-rail{left:57%}
  .transfer-strip{min-height:900px}.transfer-copy{padding:90px var(--pad) 30px}.transfer-copy h2{font-size:64px}.road-scene{min-height:520px}.bus-top{width:42%;left:29%}
  .route-tabs{overflow-x:auto}.route-tab{white-space:nowrap}.bus-window{min-height:360px;border-width:16px;border-radius:55px 55px 18px 18px}.route-copy{min-height:390px}.route-copy h3{font-size:55px}
  .cycling-section{min-height:900px;padding-top:110px;justify-content:flex-start}.cycling-copy h2{font-size:70px}.cycling-copy>p:not(.eyebrow){max-width:330px}.cyclist{transform:scale(.75);transform-origin:right bottom;right:-8%;bottom:14%}.cycling-meta span:last-child{display:none}
  .walk-layout{grid-template-columns:1fr}.walk-routes{display:flex;overflow-x:auto;padding:0 0 16px}.walk-tab{min-width:200px}.walk-map{min-height:640px}.walk-card{width:84%;max-width:340px;right:8%;bottom:5%}.place b{display:none}.p2{top:31%}.p3{top:8%}
  .night-section{min-height:900px}.night-copy h2{font-size:110px}.moon{right:-12%;top:12%}.site-footer{grid-template-columns:1fr;gap:50px;padding-top:80px}.footer-bottom{flex-direction:column}.detail-panel{padding:90px 24px 40px}
}

@media (prefers-reduced-motion: reduce) {
  html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}
}

#line-1:checked ~ .line-list label[for="line-1"] {background:var(--ink);color:var(--white);transform:translateX(6px)}
#line-1:checked ~ .metro-map .map-line {opacity:.12;stroke-width:8}
#line-1:checked ~ .metro-map .line-1 {opacity:1;stroke-width:15}

#line-2:checked ~ .line-list label[for="line-2"] {background:var(--ink);color:var(--white);transform:translateX(6px)}
#line-2:checked ~ .metro-map .map-line {opacity:.12;stroke-width:8}
#line-2:checked ~ .metro-map .line-2 {opacity:1;stroke-width:15}

#line-3:checked ~ .line-list label[for="line-3"] {background:var(--ink);color:var(--white);transform:translateX(6px)}
#line-3:checked ~ .metro-map .map-line {opacity:.12;stroke-width:8}
#line-3:checked ~ .metro-map .line-3 {opacity:1;stroke-width:15}

#line-4:checked ~ .line-list label[for="line-4"] {background:var(--ink);color:var(--white);transform:translateX(6px)}
#line-4:checked ~ .metro-map .map-line {opacity:.12;stroke-width:8}
#line-4:checked ~ .metro-map .line-4 {opacity:1;stroke-width:15}

#line-5:checked ~ .line-list label[for="line-5"] {background:var(--ink);color:var(--white);transform:translateX(6px)}
#line-5:checked ~ .metro-map .map-line {opacity:.12;stroke-width:8}
#line-5:checked ~ .metro-map .line-5 {opacity:1;stroke-width:15}

#line-6:checked ~ .line-list label[for="line-6"] {background:var(--ink);color:var(--white);transform:translateX(6px)}
#line-6:checked ~ .metro-map .map-line {opacity:.12;stroke-width:8}
#line-6:checked ~ .metro-map .line-6 {opacity:1;stroke-width:15}

#bus-oldtown:checked ~ .route-tabs label[for="bus-oldtown"] {background:var(--acid);border-color:var(--acid);color:var(--ink)}
#bus-oldtown:checked ~ .bus-feature .route-oldtown {opacity:1;transform:scale(1)}
#bus-oldtown:checked ~ .bus-feature #bus-copy-oldtown {display:block}

#bus-landmark:checked ~ .route-tabs label[for="bus-landmark"] {background:var(--acid);border-color:var(--acid);color:var(--ink)}
#bus-landmark:checked ~ .bus-feature .route-landmark {opacity:1;transform:scale(1)}
#bus-landmark:checked ~ .bus-feature #bus-copy-landmark {display:block}

#bus-river:checked ~ .route-tabs label[for="bus-river"] {background:var(--acid);border-color:var(--acid);color:var(--ink)}
#bus-river:checked ~ .bus-feature .route-river {opacity:1;transform:scale(1)}
#bus-river:checked ~ .bus-feature #bus-copy-river {display:block}

#walk-heritage:checked ~ .walk-routes label[for="walk-heritage"] {background:var(--ink);color:var(--white);transform:translateX(6px)}
#walk-heritage:checked ~ .walk-routes label[for="walk-heritage"] small {color:var(--acid)}
#walk-heritage:checked ~ #map-heritage {display:block}

#walk-market:checked ~ .walk-routes label[for="walk-market"] {background:var(--ink);color:var(--white);transform:translateX(6px)}
#walk-market:checked ~ .walk-routes label[for="walk-market"] small {color:var(--acid)}
#walk-market:checked ~ #map-market {display:block}

#walk-riverside:checked ~ .walk-routes label[for="walk-riverside"] {background:var(--ink);color:var(--white);transform:translateX(6px)}
#walk-riverside:checked ~ .walk-routes label[for="walk-riverside"] small {color:var(--acid)}
#walk-riverside:checked ~ #map-riverside {display:block}

/* 无脚本交互：表单状态切换内容，锚点打开站点面板。 */
.css-choice { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
label { cursor:pointer; }
.bus-copy, .walk-map { display:none; }
.reveal { opacity:1; transform:none; }
.site-header { background:rgba(10,34,43,.94); color:var(--white); }
.panel-backdrop { display:none; }
.detail-panel:target { transform:translateX(0); visibility:visible; }
body:has(.detail-panel:target) .panel-backdrop { display:block; }
body:has(.detail-panel:target) { overflow:hidden; }
.panel-close { text-decoration:none; display:grid; place-items:center; }
.station { text-decoration:none; }
.place { border:0; padding:0; }
.place summary { cursor:pointer; list-style:none; }
.place summary::-webkit-details-marker { display:none; }
.place[open] { z-index:20; }
.place-info { width:220px; padding:16px; background:var(--paper); color:var(--ink); box-shadow:0 8px 24px #0003; font-size:13px; line-height:1.7; text-align:left; }
#nav-switch:focus-visible + .menu-toggle { outline:2px solid var(--acid); }
.metro-layout:has(.css-choice:focus-visible) .line-list,
.bus-section:has(> .css-choice:focus-visible) .route-tabs,
.walk-layout:has(> .css-choice:focus-visible) .walk-routes { outline:2px solid var(--orange); outline-offset:6px; }
@media(max-width: 1000px) { #nav-switch:checked ~ .site-nav { display:flex; } }
/* 支持滚动时间轴时，恢复内容进入屏幕的淡入效果。 */
@supports (animation-timeline: view()) {
 .reveal { animation:css-reveal linear both; animation-timeline:view(); animation-range:entry 0% entry 22%; }
}
@keyframes css-reveal { from { opacity:0; transform:translateY(35px); } to { opacity:1; transform:none; } }
@media(prefers-reduced-motion: reduce) { .reveal { animation:none; opacity:1; transform:none; } }

body:has(#home:target) .site-nav a[href="#home"]::after {right:0}

body:has(#metro:target) .site-nav a[href="#metro"]::after {right:0}

body:has(#bus:target) .site-nav a[href="#bus"]::after {right:0}

body:has(#cycling:target) .site-nav a[href="#cycling"]::after {right:0}

body:has(#walking:target) .site-nav a[href="#walking"]::after {right:0}
.place { display:block; }
.place summary { display:flex; align-items:center; gap:8px; padding:8px 12px; }
.place-info { margin:0; }
@supports (animation-timeline: scroll()) {
 .site-header { animation:header-scroll linear both; animation-timeline:scroll(root); animation-range:0px 60px; }
}
@keyframes header-scroll {
 from { height:82px; background:transparent; color:var(--white); }
 to { height:64px; background:rgba(242,240,232,.94); color:var(--ink); border-color:var(--line); backdrop-filter:blur(16px); }
}

/* 出行规划与独立详情页 */
.detail-entry { position:relative; z-index:5; max-width:1480px; margin:50px auto 0; padding:26px; border:1px solid currentColor; display:flex; align-items:center; gap:24px; }
.detail-entry h3 { font-size:24px; margin:8px 0; }.detail-entry p{margin:0;font-size:14px}.detail-entry small{letter-spacing:.16em}.detail-entry>div{margin-right:auto}
.action-link { display:inline-block; background:var(--acid); color:var(--ink); padding:17px 24px; font-size:14px; font-weight:800; border:1px solid var(--ink); }
.action-link:hover { background:var(--orange);color:white }.text-link{font-size:14px}
.sub-header { padding:22px 5%; background:var(--ink);color:var(--white);display:flex;align-items:center;justify-content:space-between;gap:24px }
.sub-header nav{display:flex;flex-wrap:wrap;gap:22px;font-size:13px}.sub-header a:hover{color:var(--acid)}
.sub-hero { padding:70px 6% 45px;max-width:1500px;margin:auto }.sub-hero h1{font:900 clamp(46px,6.5vw,100px)/1.12 var(--body);letter-spacing:-.045em;margin:26px 0}.sub-hero h1 em{font-style:normal;color:var(--blue)}.sub-hero>p:not(.eyebrow){max-width:760px;font-size:17px;line-height:1.8}.sub-hero .action-link{margin-top:22px}
.demo-note{border-left:4px solid var(--orange);padding:15px 20px;background:#e7e5dc;font-size:13px;line-height:1.8;margin-top:28px;max-width:950px}
.planner-workspace{max-width:1400px;margin:0 auto;padding:0 6% 60px;display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.4fr);gap:40px;align-items:start}
.planner-form{background:var(--ink);color:var(--white);padding:30px;position:sticky;top:25px}.planner-heading{display:flex;justify-content:space-between;gap:14px;align-items:center}.planner-heading h2{font-size:22px;margin:0}.planner-heading button{border:0;background:none;color:var(--acid);cursor:pointer;font-size:12px}
.location-fields{display:grid;gap:15px;margin:30px 0}.location-fields label{display:grid;gap:12px;font-size:12px}.location-fields select{width:100%;border:1px solid #74766d;background:#242a24;color:white;padding:17px 12px;font:inherit;font-size:17px}.direction{color:var(--acid);text-align:center;font-size:23px}.preferences{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}.preferences legend{font-size:12px;margin-bottom:15px}.preferences label{padding:12px 10px;border:1px solid #696e60;font-size:13px}.preferences label:has(input:checked){background:var(--acid);color:var(--ink)}.preferences input{accent-color:var(--ink)}.field-help{font-size:12px;line-height:1.8;color:#b4b9ab;margin:22px 0}
.results{scroll-margin-top:25px}.results-heading h2{font-size:30px;margin:12px 0 25px}.plan-result{display:none;background:var(--white);border:1px solid var(--line);padding:32px}.result-top{display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:10px}.result-tag{padding:8px 12px;background:var(--acid);font-size:12px}.plan-result h3{font-size:clamp(24px,3vw,38px);line-height:1.35;margin:30px 0 12px}.plan-result h3 span{color:var(--orange)}.mode-combo{font-size:14px;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);padding:25px 0;border-block:1px solid var(--line);gap:10px;margin:24px 0}.metrics strong{font-size:32px;display:block}.metrics small{font-size:12px;margin-left:4px}.metrics span{font-size:11px;color:var(--muted)}.choice-reason{font-size:14px;line-height:1.8}.journey-steps{list-style:none;counter-reset:step;padding:0;margin:28px 0}.journey-steps li{position:relative;padding:0 0 26px 45px;border-left:2px solid var(--line);margin-left:13px}.journey-steps li:before{counter-increment:step;content:counter(step);position:absolute;left:-15px;top:0;border-radius:50%;width:28px;height:28px;background:var(--blue);color:white;text-align:center;line-height:28px;font-size:12px}.journey-steps h4{font-size:18px;margin:8px 0}.journey-steps p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}.journey-steps small{font-size:11px}.route-detail{border-top:1px solid var(--line);padding-top:20px;font-size:13px;line-height:1.8}.route-detail summary{cursor:pointer;font-weight:700}
.planning-explain,.guide-body{max-width:1400px;margin:auto;padding:45px 6% 70px}.planning-explain h2{font-size:30px}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:30px 0}.guide-grid article{border-top:3px solid var(--ink);padding:25px 20px;background:#e8e6dd}.guide-grid p{font-size:14px;line-height:1.9}.guide-grid h3{font-size:23px;margin:16px 0}.guide-number{color:var(--blue);font-size:40px;font-weight:900}.guide-body .section-head{padding:0}.guide-body .section-head h2{font-size:32px}.guide-lower{display:grid;grid-template-columns:1fr 1.5fr;gap:40px;padding:50px 0}.guide-lower h2{font-size:32px}.guide-lower p{line-height:1.8}.guide-accordion details{padding:24px;border-bottom:1px solid var(--line)}.guide-accordion details[open]{background:var(--ink);color:var(--white)}.guide-accordion summary{cursor:pointer;font-size:21px;font-weight:700}.guide-accordion a{color:var(--orange);font-size:14px}.sub-footer{padding:35px 6%;background:var(--ink);color:white;display:flex;justify-content:space-between;gap:20px;font-size:12px}
:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
@media(max-width:1000px){.planner-workspace{grid-template-columns:1fr}.planner-form{position:static}.location-fields{grid-template-columns:1fr 30px 1fr;align-items:end}.sub-header{align-items:flex-start}.sub-header nav{gap:15px}.detail-entry{flex-wrap:wrap}.guide-grid{gap:12px}}
@media(max-width:600px){.sub-header{flex-direction:column}.sub-hero{padding-top:40px}.sub-hero h1{font-size:46px}.planner-workspace{padding-inline:5%;gap:30px}.planner-form,.plan-result{padding:22px}.location-fields{grid-template-columns:1fr}.direction{transform:rotate(90deg)}.guide-grid,.guide-lower{grid-template-columns:1fr}.metrics strong{font-size:26px}.guide-body .section-head{display:block}.result-top{flex-wrap:wrap}.sub-footer{flex-direction:column}.detail-entry{margin-top:30px}.detail-entry>div{width:100%}}
.planner-workspace:has(#origin option[value="wuyi"]:checked):has(#destination option[value="wuyi"]:checked) #wuyi-wuyi {display:block}
.planner-workspace:has(#origin option[value="wuyi"]:checked):has(#destination option[value="juzi"]:checked):has(input[value="balanced"]:checked) #wuyi-juzi-balanced {display:block}
.planner-workspace:has(#origin option[value="wuyi"]:checked):has(#destination option[value="juzi"]:checked):has(input[value="transfer"]:checked) #wuyi-juzi-transfer {display:block}
.planner-workspace:has(#origin option[value="wuyi"]:checked):has(#destination option[value="juzi"]:checked):has(input[value="walking"]:checked) #wuyi-juzi-walking {display:block}
.planner-workspace:has(#origin option[value="wuyi"]:checked):has(#destination option[value="rail"]:checked):has(input[value="balanced"]:checked) #wuyi-rail-balanced {display:block}
.planner-workspace:has(#origin option[value="wuyi"]:checked):has(#destination option[value="rail"]:checked):has(input[value="transfer"]:checked) #wuyi-rail-transfer {display:block}
.planner-workspace:has(#origin option[value="wuyi"]:checked):has(#destination option[value="rail"]:checked):has(input[value="walking"]:checked) #wuyi-rail-walking {display:block}
.planner-workspace:has(#origin option[value="juzi"]:checked):has(#destination option[value="wuyi"]:checked):has(input[value="balanced"]:checked) #juzi-wuyi-balanced {display:block}
.planner-workspace:has(#origin option[value="juzi"]:checked):has(#destination option[value="wuyi"]:checked):has(input[value="transfer"]:checked) #juzi-wuyi-transfer {display:block}
.planner-workspace:has(#origin option[value="juzi"]:checked):has(#destination option[value="wuyi"]:checked):has(input[value="walking"]:checked) #juzi-wuyi-walking {display:block}
.planner-workspace:has(#origin option[value="juzi"]:checked):has(#destination option[value="juzi"]:checked) #juzi-juzi {display:block}
.planner-workspace:has(#origin option[value="juzi"]:checked):has(#destination option[value="rail"]:checked):has(input[value="balanced"]:checked) #juzi-rail-balanced {display:block}
.planner-workspace:has(#origin option[value="juzi"]:checked):has(#destination option[value="rail"]:checked):has(input[value="transfer"]:checked) #juzi-rail-transfer {display:block}
.planner-workspace:has(#origin option[value="juzi"]:checked):has(#destination option[value="rail"]:checked):has(input[value="walking"]:checked) #juzi-rail-walking {display:block}
.planner-workspace:has(#origin option[value="rail"]:checked):has(#destination option[value="wuyi"]:checked):has(input[value="balanced"]:checked) #rail-wuyi-balanced {display:block}
.planner-workspace:has(#origin option[value="rail"]:checked):has(#destination option[value="wuyi"]:checked):has(input[value="transfer"]:checked) #rail-wuyi-transfer {display:block}
.planner-workspace:has(#origin option[value="rail"]:checked):has(#destination option[value="wuyi"]:checked):has(input[value="walking"]:checked) #rail-wuyi-walking {display:block}
.planner-workspace:has(#origin option[value="rail"]:checked):has(#destination option[value="juzi"]:checked):has(input[value="balanced"]:checked) #rail-juzi-balanced {display:block}
.planner-workspace:has(#origin option[value="rail"]:checked):has(#destination option[value="juzi"]:checked):has(input[value="transfer"]:checked) #rail-juzi-transfer {display:block}
.planner-workspace:has(#origin option[value="rail"]:checked):has(#destination option[value="juzi"]:checked):has(input[value="walking"]:checked) #rail-juzi-walking {display:block}
.planner-workspace:has(#origin option[value="rail"]:checked):has(#destination option[value="rail"]:checked) #rail-rail {display:block}
