@font-face{font-family:'Trip Chinese';font-style:normal;font-weight:100 900;font-display:swap;src:url('/chinese.woff2?v=2') format('woff2');unicode-range:U+3400-9FFF}:root{--paper:#f8f6ef;--ink:#1d3932;--muted:#68736c;--line:#dcded3;--green:#17483e;--orange:#bd5b33}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,'Trip Chinese',sans-serif;font-size:15px;line-height:1.6}a{color:inherit;text-underline-offset:4px}button,summary,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}header{max-width:1320px;margin:auto;padding:24px 6%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}.wordmark{font-size:27px;font-weight:800;text-decoration:none;white-space:nowrap}.wordmark span{font-size:10px;letter-spacing:2px;vertical-align:middle;margin-left:12px}nav{display:flex;gap:28px;font-size:13px}nav a{text-decoration:none}main{max-width:1180px;margin:auto;padding:0 28px}.hero{padding:76px 0 58px;display:grid;grid-template-columns:1.3fr 1fr;gap:65px;align-items:center}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.4px;margin:0 0 20px}h1{font-family:Georgia,serif;font-size:clamp(40px,5vw,65px);line-height:1.12;font-weight:400;letter-spacing:-2px;margin:0 0 22px}h1 em{color:var(--orange);font-weight:400}.intro{font-size:16px;max-width:450px;color:var(--muted)}.button{display:inline-flex;gap:45px;background:var(--green);color:#fff;padding:13px 21px;margin-top:15px;text-decoration:none;border-radius:4px}.updated{font-size:11px;color:var(--muted);margin-top:22px}.route-art{background:#e7ebe0;padding:35px 30px 20px;border:1px solid #d4dbcc;border-radius:5px;position:relative;overflow:hidden}.route-art>.eyebrow{margin-bottom:30px}.stamp{position:absolute;right:22px;top:17px;color:var(--orange);border:1px solid var(--orange);border-radius:50%;width:65px;height:65px;text-align:center;font-size:9px;line-height:1.4;padding-top:13px;transform:rotate(13deg)}.stamp b{font-size:19px;font-weight:400}.route-point{border-left:1px solid #92a797;padding:0 0 25px 22px;margin-left:5px;position:relative}.route-point:before{content:'';height:9px;width:9px;background:var(--green);border-radius:50%;position:absolute;left:-5px;top:6px}.route-point.open:before{background:var(--paper);outline:1px solid var(--orange)}.route-point small{font-size:9px;letter-spacing:1.5px}.route-point strong{font-family:Georgia,serif;display:block;font-size:27px;font-weight:400}.route-point strong span{font-family:Arial,'Trip Chinese';font-size:15px;opacity:.45;margin-left:9px}.route-point p{margin:3px 0 0;color:var(--muted);font-size:12px}.route-point:nth-last-child(2){padding-bottom:8px;border-left-color:transparent}.ticket-bottom{border-top:1px dashed #aebcac;margin-top:22px;padding-top:16px;font-size:10px;letter-spacing:2px;display:flex;justify-content:space-between}.bookings{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid var(--line);border-radius:5px;background:var(--line);overflow:hidden}.bookings article{background:#fffefa;padding:22px}.badge{display:inline-block;font-size:9px;letter-spacing:1px;font-weight:700;border-radius:3px;padding:4px 7px;background:#edf0e8;color:#4a6555}.badge.booked{background:#e4eee4;color:#2d654b}.badge.tentative{background:#f7e9cf;color:#926624}.badge.open{background:#ece9f2;color:#736184}.badge.idea{background:#eeeee6;color:#6b715c}h3{font-size:17px;line-height:1.4;margin:13px 0 8px}.bookings p{font-size:13px;margin:8px 0}.bookings small{font-size:11px;color:var(--muted)}details{margin-top:12px;font-size:12px}summary{cursor:pointer}.copy{border:1px solid var(--line);background:transparent;border-radius:4px;font-size:11px;padding:7px}section[id]{padding:70px 0 0}.section-top{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:28px}.section-top .eyebrow{color:var(--orange);margin-bottom:9px}h2{font-family:Georgia,serif;font-weight:400;font-size:36px;line-height:1.2;letter-spacing:-.8px;margin:0}.section-top>p{font-size:12px;color:var(--muted);margin:0}.timeline{border-top:1px solid var(--line)}.day{display:grid;grid-template-columns:125px 1fr;gap:25px;border-bottom:1px solid var(--line);padding:22px 0}.day-date{font-size:10px;letter-spacing:1px;padding-top:5px;color:var(--muted)}.day h3{margin:0 0 7px;font-size:19px}.day-heading{display:flex;gap:15px;align-items:center;justify-content:space-between}.day p{margin:0;color:#58675e;font-size:14px}.day details p{font-size:12px;margin-top:8px}.recommend{border-left:3px solid var(--orange);padding:16px 22px;background:#f0ece1;margin-bottom:23px}.recommend>span{font-size:10px;font-weight:bold;letter-spacing:1.3px;color:var(--orange)}.recommend p{margin:7px 0;font-size:14px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:23px}.filters button{border:1px solid var(--line);background:transparent;color:var(--ink);padding:8px 14px;border-radius:30px;font-size:12px}.filters .active{background:var(--green);color:white;border-color:var(--green)}.idea-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.idea{border:1px solid var(--line);border-radius:5px;padding:26px;background:#fffefa}.idea-title{display:flex;justify-content:space-between;align-items:center}.idea-title h3{font-family:Georgia,serif;font-weight:400;font-size:32px;margin:0}.chinese{color:#9aa68f;font-size:30px}.idea .tag{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--orange);margin:12px 0}.idea h4{font-size:17px;margin:10px 0}.idea p{font-size:14px;color:#58675e}.idea .tradeoff{font-size:12px;padding-top:12px;border-top:1px solid var(--line)}.idea-bottom{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:20px}.idea-bottom a{font-size:10px;max-width:60%}.save{font-size:12px;border:1px solid var(--line);background:transparent;padding:8px 12px;border-radius:4px;white-space:nowrap}.save[aria-pressed=true]{background:#e4eee4}.fine{color:var(--muted);font-size:11px;line-height:1.6}.pocket-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px}.pocket-grid article{border-top:2px solid #9bac96;padding-top:10px}.pocket-grid p{font-size:13px;color:#58675e}.food{margin:20px 0}.food b{font-size:13px}.food p{margin:5px 0}.check{display:flex;gap:10px;align-items:flex-start;font-size:13px;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}.check input{accent-color:var(--green);width:16px;height:16px;margin-top:3px;flex-shrink:0}.check:has(input:checked){color:var(--muted);text-decoration:line-through}footer{max-width:1124px;border-top:1px solid var(--line);margin:65px auto 0;padding:30px 28px 40px;display:flex;flex-direction:column;gap:6px}footer b{font-family:Georgia;font-weight:400;font-size:25px}footer span{font-size:12px}footer small{font-size:10px;color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--green);color:white;padding:12px 20px;border-radius:4px;display:none;font-size:13px;z-index:5}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:4px}[hidden]{display:none!important}@media(max-width:760px){header{padding:18px 22px;flex-wrap:wrap;gap:14px}.wordmark span{font-size:9px}nav{gap:24px;font-size:12px}main{padding:0 22px}.hero{grid-template-columns:1fr;gap:25px;padding:38px 0 30px}h1{font-size:45px}.hero .intro{font-size:15px}.route-art{padding:25px 25px 18px}.route-point{padding-bottom:20px}.route-point strong{font-size:25px}.bookings{grid-template-columns:1fr}.bookings article{padding:20px}.section-top{display:block}.section-top>p{margin-top:14px}h2{font-size:31px}section[id]{padding-top:45px}.day{grid-template-columns:1fr;gap:8px}.day-heading{align-items:flex-start}.day-heading h3{font-size:18px}.badge{white-space:nowrap}.idea-grid,.pocket-grid{grid-template-columns:1fr}.idea{padding:22px}.pocket-grid{gap:24px}.filters button{padding:9px 12px}footer{margin-top:40px}.updated{font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* City-led trip guide */
.trip-intro{padding:45px 0 5px}.trip-intro h1{font-size:clamp(38px,5vw,60px);margin-bottom:16px}.trip-intro .intro{max-width:650px}.trip-strip{display:flex;gap:24px;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;margin-top:25px;font-size:12px}.trip-strip b{display:block;font-size:9px;letter-spacing:1px;color:var(--orange)}#bookings{padding-top:30px}header{max-width:1320px}header nav{gap:23px}.city-list{display:grid;gap:25px}.city-guide{border:1px solid var(--line);border-radius:5px;background:#fffefa;padding:28px;scroll-margin-top:24px}.city-header{display:flex;justify-content:space-between;gap:18px;align-items:center}.city-header h3{font-family:Georgia,serif;font-size:34px;font-weight:400;margin:0;display:flex;align-items:center;gap:15px}.city-header .chinese{font-size:22px;font-family:Arial,'Trip Chinese',sans-serif}.city-header .tag{font-size:9px;letter-spacing:1.4px;color:var(--orange);margin:0 0 9px}.city-intro{font-size:14px;color:#58675e;max-width:850px;margin:15px 0 24px}.city-columns{display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px}.city-columns section{padding:0!important}.city-columns h4{font-size:12px;text-transform:uppercase;letter-spacing:1.3px;margin:0 0 14px;padding-top:12px;border-top:2px solid #b9c6b1}.city-columns ul{padding-left:16px;margin:0 0 15px}.city-columns li{font-size:13px;color:#58675e;margin-bottom:10px;line-height:1.65}.city-columns a{font-size:11px}.city-columns p{font-size:12px;line-height:1.7;color:#58675e;margin:6px 0 12px}.city-columns .hotel-option b a{font-size:13px}.city-columns small{color:var(--muted);font-size:10px}.hotel-option{margin-bottom:17px}.area-note{background:#f2f1e9;padding:10px 12px}.city-note{border-top:1px solid var(--line);padding-top:13px;margin:20px 0 0;font-size:11px;color:#73644e}.route-sketches{display:grid;grid-template-columns:1fr 1fr;gap:14px}.route-sketches article{background:#eceee4;border:1px solid #d8dfcf;border-radius:4px;padding:18px}.route-sketches h3{font-size:15px;margin:0 0 7px}.route-sketches b{font-weight:400;font-size:13px}.route-sketches p{font-size:11px;color:var(--muted);margin:8px 0 0}.city-jumps{display:flex;gap:10px 20px;flex-wrap:wrap;margin:0 0 22px}.city-jumps a{font-size:12px}.train-options{border-top:1px solid var(--line)}.train-option{padding:22px 0;display:grid;grid-template-columns:1fr 1fr;gap:35px;border-bottom:1px solid var(--line)}.train-option h3{font-size:20px;margin:9px 0}.train-option .stations{font-size:12px;color:var(--muted)}.train-option p{font-size:12px;margin:8px 0;color:#58675e}.train-option a{font-size:12px}.duration{font-size:14px;font-weight:600}.compact-checklist{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.day-outline{margin-top:25px}.day-outline>summary{font-size:14px;padding:13px 0;border-top:1px solid var(--line)}.city-guide.idea{padding:28px}.city-guide.idea .tag{font-size:9px}.city-guide.idea p{font-size:12px}.city-guide.idea .city-intro{font-size:14px}#trains .recommend p{font-size:13px}#ideas>.filters{margin-top:24px}
@media(max-width:760px){header nav{gap:20px;font-size:12px;flex-wrap:wrap}.trip-intro{padding-top:30px}.trip-intro h1{font-size:42px}.trip-strip{gap:12px;display:grid;grid-template-columns:1fr}.trip-strip span{display:flex;gap:10px;align-items:baseline}.trip-strip b{min-width:69px}.city-columns{grid-template-columns:1fr;gap:20px}.city-guide,.city-guide.idea{padding:20px}.city-header h3{font-size:30px}.city-header .chinese{font-size:20px}.city-header{align-items:flex-start}.city-header .badge{font-size:8px;margin-top:5px}.city-header .save{font-size:11px;padding:7px 10px}.city-columns li{font-size:14px}.city-columns p,.city-guide.idea .city-columns p{font-size:13px}.city-columns a{font-size:12px}.city-intro{margin-bottom:22px}.route-sketches{grid-template-columns:1fr}.train-option{grid-template-columns:1fr;gap:7px}.train-option h3{font-size:19px}.compact-checklist{grid-template-columns:1fr}.city-jumps{gap:10px 18px}}
/* High-speed rail explorer */
#route-map{height:540px;border:1px solid var(--line);border-radius:5px;background:#e9eee5;z-index:0;font-family:Arial,'Trip Chinese',sans-serif}.map-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.map-toolbar>.copy{white-space:nowrap;padding:9px 12px}.map-legend{display:flex;gap:12px 23px;flex-wrap:wrap;font-size:11px;margin:14px 0}.map-legend span{display:flex;align-items:center;gap:7px}.legend-dot,.pin-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:#fff9ee;border:2px solid #bc653f}.legend-dot.anchor,.pin-dot.anchor{background:var(--green);border-color:white;box-shadow:0 0 0 1px var(--green)}.pin-dot{width:16px;height:16px;box-shadow:0 1px 3px #0005}.city-map-pin{background:transparent}.legend-line:before{content:'';width:22px;border-top:2px dashed}.legend-line.leave:before{border-color:#bb5a33}.legend-line.middle:before{border-color:#7e69a5}.legend-line.finish:before{border-color:#227b7e}.map-city-label{border:0;background:#fffefaeb;box-shadow:none;border-radius:2px;font-weight:bold;font-size:11px;color:var(--ink);padding:2px 5px}.map-city-label:before{display:none}.map-popup h3{font-family:Georgia,'Trip Chinese',serif;font-size:21px;margin:12px 0}.map-popup p{font-size:12px;line-height:1.6;margin:10px 0}.map-popup ul{padding-left:14px}.map-popup li{margin:7px 0}.map-popup-route{padding:0;border:0;background:transparent;text-align:left;text-decoration:underline;text-underline-offset:3px;color:var(--green);font-size:11px}.map-popup a{color:var(--green)}.map-route-button{margin:8px 0 0 8px}.leaflet-control-attribution a{color:#27584b}.rail-connection{cursor:pointer}@media(max-width:760px){#route-map{height:490px}.map-toolbar{flex-direction:column;gap:0;margin-bottom:14px}.map-toolbar .filters{margin-bottom:10px}.map-city-label{font-size:10px}.map-legend{gap:9px 16px}.map-popup{max-height:280px;overflow:auto}.leaflet-popup-content{margin:16px}.map-route-button{margin-left:0;display:block}}
/* Quiet geographic overview: only our trip cities are labelled. */
#route-map{background:#e1eeed}.map-toolbar #map-reset.active{background:var(--green);color:#fff;border-color:var(--green)}.map-city-label{background:#fffefaed;font-size:12px;font-weight:600;padding:3px 6px}.map-legend{opacity:.85}.map-toolbar{flex-wrap:wrap}#route-map .rail-connection{stroke-width:2.5px}@media(max-width:760px){#route-map{height:480px}.map-city-label{font-size:11px}}
