@charset "UTF-8";
:root{--paper:#f7f5ef;--ink:#203f35;--muted:#69736b;--red:#b54832;--line:#d8dcd2;--gold:#b18b48;--serif:"Songti SC","STSong","Noto Serif CJK SC",serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer;color:inherit}button{border:0;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--red);outline-offset:5px}svg{display:block}h1,h2,h3,p{margin:0}button svg,.bottom-nav svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.masthead,main{max-width:1120px;margin:auto}.masthead{padding:27px 36px 15px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:11px;align-items:center;font-size:17px;letter-spacing:2px;font-weight:600}.brand small{display:block;font-size:9px;letter-spacing:1.8px;margin-top:2px}.brand-seal{display:grid;place-items:center;width:38px;height:42px;border:1px solid var(--red);color:var(--red);font-family:var(--serif);font-size:27px;line-height:1;transform:rotate(-3deg)}.icon-button{width:46px;height:46px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center}.icon-button svg{width:21px}.hero{padding:47px 36px 20px;display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:20px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:600;display:flex;align-items:center;gap:11px}.short-rule{width:24px;height:1px;background:var(--red)}h1{font-family:var(--serif);font-weight:500;font-size:64px;line-height:1.25;letter-spacing:2px;margin:22px 0}h1 span{color:var(--red)}.intro{color:var(--muted);font-size:15px;line-height:1.9}.date-line{display:flex;align-items:center;gap:17px;margin-top:27px}.date-line>strong{font-size:44px;letter-spacing:-2px;font-family:Georgia,serif;font-weight:400;line-height:1}.date-line>span:not(.date-stamp){font-size:12px;line-height:1.65;border-left:1px solid var(--line);padding-left:17px}.date-stamp{border:1px solid var(--red);color:var(--red);font:15px/1.25 var(--serif);padding:5px 9px;transform:rotate(8deg);margin-left:9px}.hero-art{position:relative;min-width:0}.hero-art img{width:100%;height:345px;object-fit:cover;object-position:center 45%;mix-blend-mode:multiply;display:block;border-radius:3px}.art-note{display:block;text-align:right;font:13px var(--serif);letter-spacing:3px;margin-top:12px;color:var(--muted)}.trip-facts{display:flex;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:33px 36px 65px;padding:21px 0;gap:38px}.trip-facts>div{display:flex;gap:12px;align-items:baseline}.trip-facts b{font:32px Georgia,serif}.trip-facts b small{font-size:18px}.trip-facts span{font-size:13px;color:var(--muted)}.trip-facts>a{margin-left:auto;font-size:14px}.trip-facts>a span{margin-left:20px;color:var(--red)}.route-section,.itinerary,.pocket{margin:0 36px 70px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:15px}.section-heading h2{font:500 32px/1.5 var(--serif);margin-top:8px;letter-spacing:1px}.section-heading .eyebrow{color:var(--muted);font-size:11px}.text-button{min-height:44px;font-size:14px;padding:8px 0;border-bottom:1px solid var(--ink);white-space:nowrap}.text-button span{margin-left:8px}.section-note{font-size:14px;color:var(--muted);margin:11px 0 23px}.route-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:32px;align-items:center}.map-paper{border:1px solid var(--line);background:#eeeee4;position:relative;overflow:hidden;background-image:radial-gradient(#4a5c4610 .7px,transparent .7px);background-size:5px 5px}.map-top{display:flex;justify-content:space-between;padding:21px 24px 0;font-family:var(--serif);font-size:16px}.north{font:12px var(--sans);letter-spacing:1px}.walk-svg{width:100%;height:auto}.walk-svg text{font-family:var(--sans);fill:var(--ink)}.walk-svg .road{fill:none;stroke:#d9dbcd;stroke-width:12;stroke-linecap:round;stroke-linejoin:round}.walk-svg .road-inner{fill:none;stroke:#f7f6f0;stroke-width:9;stroke-linecap:round;stroke-linejoin:round}.walk-svg .block{fill:#e1e5d7;stroke:#d4d9ca;stroke-width:1}.walk-svg .landmark{font-size:12px;fill:#82897b;letter-spacing:3px}.walk-svg .street-label{font-size:12px;fill:#788171}.walk-svg .path{stroke:var(--red);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;fill:none}.walk-svg .transfer{stroke-dasharray:5 7;stroke:#8c998a}.walk-svg .map-stop{cursor:pointer;outline:none}.walk-svg .map-stop circle{fill:var(--paper);stroke:var(--red);stroke-width:1.8;transition:fill .2s}.walk-svg .map-stop text.number{fill:var(--red);font:600 13px var(--sans);text-anchor:middle;dominant-baseline:central}.walk-svg .map-stop .hit-area{fill:transparent;stroke:none}.walk-svg .map-stop:hover .pin,.walk-svg .map-stop:focus-visible .pin,.walk-svg .map-stop.selected .pin,.walk-svg .map-stop.completed .pin{fill:var(--red)}.walk-svg .map-stop:hover .number,.walk-svg .map-stop:focus-visible .number,.walk-svg .map-stop.selected .number,.walk-svg .map-stop.completed .number{fill:white}.walk-svg .stop-label{font-size:13px;font-weight:500;paint-order:stroke;stroke:#eeeee4;stroke-width:5px;stroke-linejoin:round}.walk-svg .area-label{font-family:var(--serif);font-size:19px;fill:#647a5d;letter-spacing:3px}.map-key{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:0 20px 19px;font-size:10px;color:var(--muted)}.map-key span{display:flex;align-items:center;gap:6px}.map-key span:last-child{margin-left:auto}.map-key i{width:18px;border-top:2px solid var(--red)}.map-key i.dashed{border-top:2px dashed #8c998a}.chapter-preview h3{font:500 31px/1.5 var(--serif);margin:14px 0 26px}.chapter-preview>a{display:flex;align-items:center;gap:15px;padding:17px 0;border-top:1px solid var(--line)}.chapter-preview>a>span{font:23px var(--serif);color:var(--red)}.chapter-preview b{font-weight:500;font-size:16px}.chapter-preview small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.chapter-preview em{margin-left:auto;font-size:12px;font-style:normal;font-variant-numeric:tabular-nums}.margin-note{border-left:2px solid var(--gold);padding:0 0 0 16px;margin-top:23px}.margin-note>span{font-size:14px;font-weight:600}.margin-note p{font-size:13px;color:var(--muted);line-height:1.8;margin-top:5px}.small-label{color:var(--muted);font-size:12px}.itinerary .section-heading{margin-bottom:30px}.transit{padding:22px 25px;margin:16px 0 25px;background:#e9ede4;border-radius:3px}.transit>span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.transit h3{font-size:17px;margin:5px 0;font-weight:500}.transit p{font-size:14px;color:var(--muted)}.transit a{display:inline-block;color:var(--ink);font-size:14px;margin-top:8px;text-decoration:underline;text-underline-offset:4px}.chapter-heading{display:flex;align-items:center;gap:12px;padding:22px 0 12px}.chapter-heading>span{font:italic 30px Georgia,serif;color:var(--red)}.chapter-heading h3{font:24px var(--serif);font-weight:500}.chapter-heading small{font-size:12px;color:var(--muted);margin-left:auto}.stop-card{display:grid;grid-template-columns:135px 1fr 48px;gap:20px;border-top:1px solid var(--line);padding:25px 0;align-items:start}.stop-time{padding-top:3px;font-size:14px;font-variant-numeric:tabular-nums}.stop-time small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.stop-main{text-align:left;min-width:0;padding:0}.stop-title{display:flex;align-items:center;gap:12px}.stop-number{color:var(--red);font:italic 17px Georgia,serif;min-width:22px}.stop-title h4{font:500 23px/1.5 var(--serif);margin:0}.stop-main p{font-size:14px;color:var(--muted);margin:8px 0 10px;line-height:1.8}.tags{display:flex;gap:7px;flex-wrap:wrap}.tag{font-size:11px;padding:2px 8px;background:#e9ede4;color:#52654f;border-radius:2px}.tag.alert{background:#f0e3d3;color:#8d5931}.detail-hint{font-size:12px;color:var(--ink);display:inline-block;margin-top:12px}.check-stop{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;font-size:20px;margin-top:2px}.check-stop.checked{border-color:var(--red);color:var(--red);background:#b5483208}.stop-card.done .stop-title h4{color:#637365}.pocket-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:26px;margin-top:25px}.passport{background:var(--ink);color:var(--paper);padding:28px;border-radius:3px}.passport-top{display:flex;justify-content:space-between;font-size:15px}.passport-top b{font:22px Georgia,serif}.stamps{display:grid;grid-template-columns:repeat(9,1fr);gap:7px;margin:24px 0}.stamp{border:1px dashed #c6d1bd70;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;color:#b8c4b3;font:13px Georgia,serif;padding:0;min-height:30px}.stamp.earned{border:1px solid #e7c9a0;color:#e7c9a0;transform:rotate(-10deg);background:#ffffff08}.passport p{font:18px var(--serif);margin-bottom:12px}.passport small{display:block;color:#c0cec1;font-size:12px}.passport .text-button{border-color:#b3c0b0;color:#c0cec1;font-size:12px;margin-top:16px}.packing{padding:5px 12px}.packing h3{font:24px var(--serif);margin-bottom:16px}.packing label{display:flex;align-items:center;gap:10px;margin:13px 0;font-size:14px;cursor:pointer}.packing input{width:19px;height:19px;accent-color:var(--ink);margin:0}.packing label:has(input:checked){color:var(--muted);text-decoration:line-through}.packing details{border-top:1px solid var(--line);margin-top:22px;padding-top:15px}.packing summary{font-size:14px}.packing details p{font-size:13px;color:var(--muted);margin-top:12px}summary{cursor:pointer}footer{text-align:center;padding:0 36px 125px}footer .brand-seal{margin:0 auto 23px;width:33px;height:37px;font-size:23px}footer>p{font:21px/1.6 var(--serif)}footer>small{display:block;font-size:11px;color:var(--muted);letter-spacing:2px;margin:10px 0 24px}.sources{max-width:680px;margin:auto;color:var(--muted);font-size:12px}.sources p{text-align:left;margin-top:13px;line-height:1.8}.sources a{text-decoration:underline}.bottom-nav{position:fixed;z-index:15;bottom:18px;left:50%;transform:translateX(-50%);display:flex;background:#f7f5eff5;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid #d8dcd2;box-shadow:0 6px 25px #203f3514;border-radius:50px;padding:8px 15px;gap:8px}.bottom-nav a{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 19px;border-radius:30px;color:var(--muted);font-size:13px;white-space:nowrap;position:relative}.bottom-nav a.active{color:var(--paper);background:var(--ink)}.bottom-nav svg{width:20px;height:20px}.nav-count{background:var(--red);color:white;border-radius:50%;width:17px;height:17px;display:grid;place-items:center;font-size:10px;position:absolute;right:8px;top:2px}.nav-count[hidden]{display:none}dialog{color:var(--ink);background:var(--paper);border:0;padding:0;max-width:calc(100% - 32px);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#132b25a8;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.place-dialog{width:580px;border-radius:14px;max-height:85dvh;overscroll-behavior:contain}.close-button{position:absolute;right:15px;top:13px;width:44px;height:44px;border-radius:50%;background:#f7f5efe8;border:1px solid var(--line);font-size:27px;z-index:2;line-height:1}.detail-top{background:#e7eadf;padding:36px 30px 25px;border-bottom:1px solid var(--line)}.detail-top .eyebrow{color:var(--red);padding-right:30px}.detail-top h2{font:30px/1.4 var(--serif);margin:12px 0}.detail-top>p{font-size:13px;color:var(--muted)}.detail-body{padding:25px 30px 30px}.detail-body>p{font-size:16px;line-height:1.95}.detail-mini{margin:22px 0;border:1px solid var(--line);padding:17px 18px;background:#eeeee4}.detail-mini>span{font-size:11px;letter-spacing:2px;color:var(--muted)}.mini-route{display:flex;align-items:center;gap:10px;margin:10px 0 3px;font-size:13px;line-height:1.5}.mini-route i{height:0;min-width:20px;flex:1;border-top:1px dashed var(--red)}.mini-route b{color:var(--red);font-weight:500}.detail-list{padding:0;list-style:none;margin:20px 0}.detail-list li{position:relative;padding:9px 0 9px 17px;font-size:14px;line-height:1.8;border-bottom:1px solid var(--line)}.detail-list li:before{content:'·';position:absolute;left:0;color:var(--red)}.detail-notice{border-left:2px solid var(--gold);font-size:13px;line-height:1.8;padding:3px 0 3px 13px;margin:20px 0;color:#826039}.detail-actions{display:flex;gap:10px;margin-top:25px}.primary-button,.secondary-button{min-height:48px;border-radius:4px;padding:11px 19px;text-align:center;font-size:14px;display:flex;align-items:center;justify-content:center}.primary-button{background:var(--ink);color:var(--paper)}.secondary-button{border:1px solid var(--line);background:var(--paper);color:var(--ink)}.detail-actions>*{flex:1}.reference-dialog{width:850px;border-radius:12px;max-height:90dvh;padding:24px}.reference-dialog header{position:relative;padding-right:40px}.reference-dialog h2{font:24px var(--serif)}.reference-dialog p{font-size:13px;color:var(--muted);margin-top:10px}.reference-dialog .close-button{right:-10px;top:-12px}.reference-dialog>a{display:inline-block;font-size:14px;text-decoration:underline;margin:12px 0}.reference-scroll{overflow:auto;max-height:67dvh;border:1px solid var(--line)}.reference-scroll img{display:block;width:100%;height:auto}.confirm-dialog{padding:28px;border-radius:12px;width:360px}.confirm-dialog h2{font:24px/1.5 var(--serif)}.confirm-dialog p{font-size:14px;color:var(--muted);margin:12px 0 25px}.confirm-dialog>div{display:flex;gap:12px}.toast{position:fixed;bottom:calc(100px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:var(--ink);color:white;padding:11px 20px;max-width:calc(100% - 36px);width:max-content;border-radius:6px;font-size:14px;z-index:50;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.skip{position:fixed;left:12px;top:-70px;background:var(--ink);color:white;padding:10px;z-index:100}.skip:focus{top:12px}.noscript-note{padding:25px}.noscript-note a{text-decoration:underline}
@media(min-width:900px){.itinerary #timeline{max-width:860px;margin:auto}.hero{padding-top:55px}.hero-art{transform:rotate(-1deg)}}
@media(max-width:700px){.masthead{padding:20px 23px 8px;padding-top:max(20px,env(safe-area-inset-top))}.brand{font-size:15px}.brand small{font-size:8px}.brand-seal{width:33px;height:37px;font-size:24px}.icon-button{width:42px;height:42px}.hero{display:block;padding:28px 24px 0}.hero-copy{position:relative}.eyebrow{font-size:10px;letter-spacing:1.8px}h1{font-size:46px;line-height:1.25;margin:17px 0 13px;letter-spacing:1px}.intro{font-size:13px;line-height:1.85}.date-line{margin-top:22px;gap:13px}.date-line>strong{font-size:35px}.date-line>span:not(.date-stamp){font-size:11px;padding-left:13px}.date-stamp{font-size:13px;margin-left:auto;margin-right:7px}.hero-art{margin:18px -8px 0}.hero-art img{height:auto;max-height:255px;aspect-ratio:1.66;object-fit:cover}.art-note{font-size:11px;margin-top:5px;padding-right:7px}.trip-facts{margin:23px 24px 43px;padding:17px 0;gap:0;justify-content:space-between}.trip-facts>div{gap:6px}.trip-facts b{font-size:27px}.trip-facts b small{font-size:14px}.trip-facts span{font-size:11px}.trip-facts>a{display:none}.route-section,.itinerary,.pocket{margin:0 23px 45px}.section-heading h2{font-size:27px;margin-top:7px}.section-heading .eyebrow{font-size:9px;letter-spacing:1.7px}.section-heading .text-button{font-size:12px}.section-note{font-size:12px;margin:9px 0 20px}.route-layout{display:block}.map-top{padding:18px 18px 0;font-size:15px}.map-key{padding:0 13px 15px;gap:9px;font-size:9px}.map-key i{width:14px}.map-aside{margin-top:20px}.chapter-preview{display:none}.margin-note{margin-top:0;padding-left:12px}.margin-note>span{font-size:13px}.margin-note p{font-size:12px}.small-label{font-size:10px;white-space:nowrap}.transit{padding:18px 19px;margin:12px 0 16px}.transit>span{font-size:11px}.transit h3{font-size:16px}.transit p{font-size:13px}.chapter-heading{padding-top:16px}.chapter-heading h3{font-size:22px}.chapter-heading small{font-size:10px}.stop-card{grid-template-columns:1fr 40px;gap:9px 10px;padding:21px 0}.stop-time{grid-column:1/-1;display:flex;gap:10px;align-items:center;font-size:12px;padding:0}.stop-time small{display:inline;margin:0;font-size:11px}.stop-time small:before{content:'·';margin-right:10px}.stop-title{gap:8px}.stop-title h4{font-size:21px;line-height:1.5}.stop-number{font-size:15px;min-width:20px}.stop-main p{font-size:13px;line-height:1.85;margin:7px 0 9px}.tag{font-size:10px;padding:2px 7px}.check-stop{width:40px;height:40px;font-size:18px;margin-top:0}.detail-hint{font-size:11px}.pocket-grid{display:block;margin-top:21px}.passport{padding:23px}.passport-top{font-size:14px}.stamps{gap:6px}.stamp{font-size:12px;min-height:27px}.passport p{font-size:18px}.passport small{font-size:11px}.packing{padding:28px 0 0}.packing label{min-height:30px}.packing h3{font-size:23px}footer{padding:3px 24px 135px}footer>p{font-size:18px}footer>small{font-size:10px}.sources{font-size:11px}.bottom-nav{bottom:0;left:0;right:0;transform:none;border-radius:0;border-width:1px 0 0;justify-content:space-around;padding:8px 12px calc(8px + env(safe-area-inset-bottom));gap:2px}.bottom-nav a{flex:1;max-width:145px;gap:7px;font-size:12px;padding:12px 9px}.bottom-nav svg{width:19px;height:19px}.place-dialog{margin:auto 0 0;width:100%;max-width:100%;max-height:88dvh;border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom)}.place-dialog:before{content:'';display:block;position:absolute;top:9px;left:calc(50% - 17px);width:34px;height:4px;background:#c3cabb;border-radius:4px}.detail-top{padding:33px 24px 22px}.detail-top h2{font-size:28px;padding-right:17px}.detail-body{padding:22px 24px 25px}.detail-body>p{font-size:15px}.detail-list li{font-size:13px}.detail-actions{position:sticky;bottom:-1px;background:var(--paper);padding:10px 0 0}.reference-dialog{max-width:calc(100% - 20px);padding:20px}.reference-dialog h2{font-size:22px}.reference-dialog p{font-size:12px}.reference-scroll{max-height:64dvh}}
@media(max-width:370px){h1{font-size:41px}.section-heading h2{font-size:24px}.small-label{white-space:normal;text-align:right}.trip-facts span{font-size:10px}.map-key span:last-child{margin-left:0}.passport{padding:19px}.stamps{gap:4px}.stamp{min-height:23px}.bottom-nav a{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.detail-mini>p{font-size:12px;line-height:1.7;color:var(--muted);margin-top:10px}.transit p.transfer-warning{font-size:12px;color:#826039;margin-top:8px}#share-url{width:100%;padding:12px;border:1px solid var(--line);border-radius:4px;color:var(--ink);background:white;font-size:16px;margin-top:8px}#share-dialog label{font-size:13px}body.modal-open{position:fixed;width:100%;left:0;right:0}.stop-main p{font-size:15px}.intro{font-size:16px}.transit p{font-size:15px}.margin-note p{font-size:14px}.detail-hint{font-size:13px}.stop-time{font-size:14px}.tag{font-size:12px}.section-note{font-size:14px}.map-key{font-size:11px}.brand small{font-size:10px}.packing label{font-size:16px}.packing details p{font-size:14px}.passport small{font-size:12px}.map-stop:focus-visible .pin{stroke-width:4}.detail-actions [data-check]{width:auto;height:auto;border-radius:4px;font-size:14px;margin:0}
@media(max-width:700px){.hero-art img{max-height:none;aspect-ratio:1.62}.stop-main p{font-size:14px}.intro{font-size:14px}.transit p{font-size:14px}.map-key{font-size:10px}.margin-note p{font-size:13px}.section-note{font-size:13px}.detail-actions{flex-wrap:wrap}.detail-actions>*{min-width:135px}}
@media print{.bottom-nav,.icon-button,.check-stop,.text-button,.packing,dialog,.detail-hint{display:none!important}.hero-art img{max-height:220px}.hero{display:flex}.hero-copy{width:50%}h1{font-size:40px}.hero-art{width:50%}.route-layout{display:block}.map-aside{display:none}.map-paper{max-width:480px;margin:auto}.stop-card{break-inside:avoid}.route-section,.itinerary,.pocket{margin-bottom:25px}footer{padding-bottom:20px}body{font-size:12px}}
