:root{--ink:#213d39;--muted:#62756e;--paper:#fffefa;--bg:#f6f4ee;--line:#dce2d8;--green:#194e47;--mint:#e7efe5;--sand:#ecd9b5;--amber:#80521d;--amber-bg:#fff0d6;--blue:#e9f1f2;--radius:18px;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.65;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}a{color:var(--green);text-underline-offset:3px}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #c58b36;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:clamp(30px,5vw,44px);line-height:1.25;letter-spacing:-.035em;font-weight:650}h2{font-size:21px;line-height:1.4;font-weight:650}h3{font-size:17px;line-height:1.5;font-weight:650}p+p{margin-top:10px}small{font-size:12px}.skip{position:fixed;left:16px;top:-100px;background:white;z-index:100}.skip:focus{top:12px}.topbar{max-width:1100px;padding:20px 26px 12px;margin:auto;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:650;letter-spacing:.08em}.brand small{display:block;font-size:10px;font-weight:450;letter-spacing:.07em;color:var(--muted);margin-top:2px}.brand-symbol{display:grid;place-items:center;background:var(--green);color:#f4ebd5;font:28px/1.2 serif;border-radius:11px;width:44px;height:44px}.icon-button{border:1px solid var(--line);border-radius:50%;background:transparent;min-width:44px;min-height:44px}.statusline{max-width:1048px;margin:0 auto 8px;min-height:24px;font-size:11px;color:var(--muted)}.statusline span{float:right}main{max-width:1100px;margin:auto;padding:12px 26px 130px}main:focus{outline:none}.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:650}.page-heading{margin-bottom:24px}.page-heading h1{margin-top:7px}.page-heading p{font-size:14px;color:var(--muted);margin-top:10px}.hero{background:var(--green);color:#f8f6ed;padding:30px;border-radius:22px;position:relative;overflow:hidden}.hero .eyebrow{color:#b8d3c5}.hero h1{margin:10px 0 12px;max-width:640px}.hero p{color:#d9e4d9;font-size:15px;position:relative}.hero:after{content:"";position:absolute;right:-40px;top:-80px;width:310px;height:310px;border:1px solid #d0e8cb20;border-radius:50%;box-shadow:0 0 0 25px #d0e8cb0b,0 0 0 50px #d0e8cb08;pointer-events:none}.hero.sand{background:#765234}.hero.salt{background:#27705f}.hero.snow{background:#2e5962}.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:24px;padding-top:17px;border-top:1px solid #f3f8e52b;position:relative;z-index:1}.facts small{display:block;color:#d0dfd4;font-size:11px}.facts strong{display:block;font-size:18px;font-weight:600;line-height:1.5;margin-top:4px}.facts .compact{font-size:15px}.date-scroll{display:flex;gap:8px;overflow-x:auto;margin:18px 0 20px;padding:2px 1px 8px;scrollbar-width:thin}.day-button{flex:1;min-width:83px;min-height:71px;display:block;border:1px solid var(--line);border-radius:13px;padding:9px 12px;text-align:left;background:var(--paper)}.day-button strong{font-size:17px;display:block;font-variant-numeric:tabular-nums}.day-button span{font-size:11px;color:var(--muted);white-space:nowrap}.day-button[aria-pressed=true]{background:var(--green);color:white;border-color:var(--green)}.day-button[aria-pressed=true] span{color:#d0e4d8}.page-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px;align-items:start}.stack{display:grid;gap:18px;min-width:0}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:23px;min-width:0}.card>h2,.card>h3{margin-bottom:12px}.card p,.detail-text{font-size:14px;line-height:1.8}.card p.sub,.sub{color:var(--muted);font-size:13px}.card p.tiny,.tiny{font-size:11px;color:var(--muted)}.card + .section-head{margin-top:24px}.notice{background:var(--amber-bg);color:var(--amber);padding:14px 17px;border-radius:12px;font-size:13px;margin-bottom:18px}.notice strong{display:block;font-size:14px;margin-bottom:4px}.notice.green{background:var(--mint);color:var(--green)}.notice.blue{background:var(--blue);color:#335c65}.notice p{font-size:13px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 12px}.section-head h2{font-size:21px}.section-head small{color:var(--muted)}.tag{display:inline-flex;background:var(--mint);color:var(--green);border-radius:5px;padding:3px 8px;font-size:11px;font-weight:600;vertical-align:middle}.tag.pending{background:var(--amber-bg);color:var(--amber)}.tag.neutral{background:#eef0eb;color:var(--muted)}.flex{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.split{display:flex;align-items:center;justify-content:space-between;gap:12px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.primary,.secondary,.text-button,.nav-link{display:inline-flex;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:9px 14px;border-radius:9px;text-decoration:none;font-size:13px;font-weight:550;line-height:1.5;border:1px solid var(--line)}.primary{background:var(--green);color:white;border-color:var(--green)}.secondary,.nav-link{background:var(--paper);color:var(--green)}.text-button{border-color:transparent;background:transparent;padding:7px 9px}.nav-link:before{content:'↗';font-size:17px}.mode-control{padding:16px 18px;margin-bottom:18px;border:1px solid var(--line);border-radius:13px;background:var(--paper)}.mode-control label{font-size:12px;color:var(--muted)}.mode-control select{display:block;width:100%;margin-top:7px;border:0;background:var(--mint);padding:11px;border-radius:8px;font-size:14px;min-height:46px}.mode-control small{display:block;margin-top:7px;color:var(--muted);font-size:11px}.timeline{list-style:none;margin:14px 0 0;padding:0}.timeline li{display:grid;grid-template-columns:100px 1fr;gap:13px;padding:14px 0;border-bottom:1px solid var(--line);position:relative}.timeline li:last-child{border:0}.timeline .time{font-size:12px;line-height:1.6;font-weight:600;font-variant-numeric:tabular-nums}.timeline .time small{display:block;color:var(--muted);font-size:10px;font-weight:400;margin-top:4px}.timeline h3{font-size:14px;font-weight:600}.timeline p{font-size:12px;color:var(--muted);margin-top:5px}.timeline li.current{border-radius:9px;background:var(--mint);padding-left:10px;padding-right:10px}.timeline .tiny-nav{font-size:12px;min-height:38px;padding:6px 0;display:inline-flex;align-items:center;gap:5px;text-decoration:none}.cutoffs{display:grid;gap:10px;margin-top:14px}.cutoff{display:grid;grid-template-columns:51px 1fr;gap:10px;padding:12px;background:var(--amber-bg);border-radius:9px;font-size:12px}.cutoff time{color:var(--amber);font-variant-numeric:tabular-nums;font-weight:650}.cutoff p{font-size:12px;color:var(--muted);margin-top:4px}.cutoff b{font-weight:600}.field{display:block;margin:12px 0;font-size:12px;color:var(--muted)}.field input,.field textarea,.field select{display:block;width:100%;background:#fff;border:1px solid #c6d2c8;border-radius:8px;padding:10px;margin-top:6px;font-size:16px;min-height:44px;color:var(--ink)}.field textarea{min-height:75px;resize:vertical}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.check{display:flex;align-items:flex-start;gap:10px;padding:13px 0;border-bottom:1px solid var(--line);cursor:pointer;color:var(--ink)}.check:last-child{border-bottom:0}.check input{appearance:auto;width:20px;height:20px;margin:3px 0 0;flex:none;accent-color:var(--green)}.check b{display:block;font-size:14px;font-weight:550}.check small{display:block;font-size:12px;line-height:1.7;color:var(--muted);margin-top:4px}.check:has(input:checked) b{color:var(--muted);text-decoration:line-through;text-decoration-color:#a4b8a9}.check.compact{padding:8px 0;border:0}.check.compact b{font-size:13px}.sources{font-size:11px;margin-top:12px;line-height:1.8}.sources a{margin-right:12px;color:var(--muted);display:inline-block;max-width:100%}.sources span{display:block;color:var(--muted)}details{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}summary{cursor:pointer;min-height:42px;font-weight:600;font-size:14px;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}summary:after{content:'＋';color:var(--muted);font-weight:400}details[open]>summary:after{content:'−'}summary::-webkit-details-marker{display:none}details p{margin-top:8px}.guide-parts{display:grid;gap:15px;margin-top:10px}.guide-parts dt{font-size:12px;color:var(--green);font-weight:650}.guide-parts dd{margin:4px 0 0;font-size:13px;color:var(--muted);line-height:1.8}.hotel-choice,.food-choice{padding:12px 0;border-bottom:1px solid var(--line)}.hotel-choice:last-child,.food-choice:last-child{border:0}.hotel-choice b,.food-choice b{font-size:14px}.hotel-choice p,.food-choice p{font-size:12px;color:var(--muted);margin-top:5px}.hotel-choice .actions{margin-top:7px}.footnote{font-size:11px;color:var(--muted);margin:16px 0 0;line-height:1.8}.map{display:block;max-width:100%;width:100%;height:auto;border:1px solid var(--line);border-radius:10px;background:#fff}.map-figure{margin:0}.map-figure a{display:block}.map-figure figcaption{font-size:12px;color:var(--muted);margin-top:10px}.coverage{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.coverage span{font-size:12px;padding:5px 10px;border:1px solid #b7cebc;background:var(--mint);border-radius:6px}.coverage .off{color:var(--muted);background:transparent;border:1px dashed var(--line)}.route-days{display:grid;gap:10px}.route-day{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:13px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:17px 18px;text-decoration:none}.route-day .date{font-size:23px;line-height:1.25}.route-day .date small{font-size:10px;display:block;color:var(--muted)}.route-day h3{font-size:15px}.route-day p{font-size:12px;color:var(--muted);margin-top:4px}.route-day .arrow{font-size:20px}.catalog{display:grid;gap:14px}.catalog h3{font-size:14px}.catalog .coverage{margin-top:6px}.catalog .coverage span{font-size:11px}.catalog p{font-size:12px;color:var(--muted)}.train-line{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:18px 0}.train-line strong{font-size:28px;font-weight:600;font-variant-numeric:tabular-nums;display:block}.train-line span{font-size:13px;color:var(--muted)}.train-line div:last-child{text-align:right}.train-arrow{height:1px;background:var(--line);position:relative;margin:10px 0}.train-arrow:after{content:'→';position:absolute;right:0;top:-13px;background:var(--paper);padding-left:6px}.progress{height:5px;border-radius:5px;background:#e2e8df;overflow:hidden;margin-top:13px}.progress>span{display:block;background:var(--green);height:100%;transition:width .2s}.budget-hero{background:var(--green);color:white;padding:26px;border-radius:20px;margin-bottom:18px}.budget-hero small{color:#cfe0d6}.money{font-size:40px;line-height:1.2;font-weight:550;letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:10px 0}.money span{font-size:18px;letter-spacing:normal;margin-right:7px}.budget-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.budget-breakdown div{display:flex;justify-content:space-between;gap:12px;font-size:13px;border-bottom:1px solid #cadfd530;padding-bottom:6px}.budget-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}.budget-table th,.budget-table td{padding:10px 4px;border-bottom:1px solid var(--line);text-align:left;font-weight:400}.budget-table th{font-size:11px;color:var(--muted)}.budget-table input{width:86px;max-width:100%;border:1px solid var(--line);border-radius:7px;background:white;padding:8px;font-size:16px}.budget-table th:first-child{width:32%}.budget-table th:nth-child(2){width:27%}.budget-table tr:last-child td{border-bottom:0}.budget-table small{display:block;color:var(--muted);font-size:10px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;margin:auto;max-width:1100px;padding:9px 24px max(10px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);gap:8px;background:#fffefaf2;backdrop-filter:blur(15px);border-top:1px solid var(--line);z-index:20}.bottom-nav a{display:grid;justify-items:center;text-decoration:none;font-size:11px;color:var(--muted);min-height:51px;line-height:1.4;padding:4px;border-radius:9px}.bottom-nav a span{font-size:23px;line-height:1.2;font-weight:400}.bottom-nav a[aria-current=page]{background:var(--mint);color:var(--green);font-weight:650}dialog{max-width:610px;width:calc(100% - 30px);max-height:90dvh;border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--ink);padding:26px;box-shadow:0 30px 100px #173b3540;overflow:auto}dialog::backdrop{background:#17373180}dialog h2{margin-bottom:14px}dialog p{font-size:14px}dialog .dialog-close{margin-top:24px;width:100%}.utility-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.copy-field{width:100%;font-size:14px;border:1px solid var(--line);border-radius:7px;padding:9px;margin:10px 0}.emergency-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.emergency-grid a{border:1px solid var(--line);border-radius:8px;min-height:44px;padding:10px 12px;text-decoration:none;font-size:13px}#toast{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);background:var(--ink);color:white;padding:11px 19px;border-radius:10px;max-width:90%;font-size:13px;box-shadow:0 4px 20px #0002;z-index:80;display:none}.print-only{display:none}.loading{padding:30px}.flow-note{border-left:3px solid #a5bb9e;padding:4px 0 4px 14px;margin:13px 0;font-size:13px;color:var(--muted)}.weather-bar{margin:14px 0;font-size:13px;color:var(--muted)}.weather-bar a{font-size:12px}.row-list{display:grid;gap:10px}.row-list>div{padding:12px 0;border-bottom:1px solid var(--line)}.row-list h3{font-size:14px}.row-list p{font-size:13px;color:var(--muted);margin-top:6px}
@media(min-width:850px){.today-aside{position:sticky;top:18px}.bottom-nav{border:1px solid var(--line);border-radius:18px 18px 0 0;width:calc(100% - 52px)}.hero.snow h1{max-width:600px}}
@media(max-width:700px){.topbar{padding:17px 18px 11px}.statusline{margin:0 18px 8px;font-size:10px}.statusline span{font-size:10px}main{padding:9px 16px 115px}.hero{padding:24px 20px;border-radius:18px}.hero h1{font-size:30px;max-width:290px}.hero p{font-size:13px;max-width:285px}.hero:after{right:-160px;top:-120px}.facts{grid-template-columns:repeat(2,1fr);gap:13px;margin-top:19px}.facts strong{font-size:18px}.facts strong.compact{font-size:15px}.page-grid{grid-template-columns:1fr;gap:18px}.today-aside{position:static}.card{padding:19px 17px;border-radius:15px}.day-button{min-width:77px;padding:8px 11px;min-height:67px}.date-scroll{margin-bottom:12px}.mode-control{padding:13px 15px}.timeline li{grid-template-columns:91px 1fr;gap:10px}.timeline .time{font-size:11px}.timeline h3{font-size:14px}.timeline p{font-size:12px}.bottom-nav{padding:7px 10px max(8px,env(safe-area-inset-bottom));gap:4px}.section-head{margin-top:19px}.notice{padding:13px 14px}.page-heading{margin-bottom:18px}.page-heading h1{font-size:30px}.route-day{padding:15px;grid-template-columns:52px minmax(0,1fr) 15px;gap:9px}.route-day h3{font-size:14px}.route-day .date{font-size:21px}.budget-hero{padding:23px 19px}.money{font-size:38px}.budget-breakdown{gap:9px 15px}.budget-breakdown div{font-size:12px}.utility-list{grid-template-columns:1fr}.sources a{display:block;margin-bottom:6px}dialog{padding:22px 19px}.inline-fields{gap:0 12px}.field{font-size:12px}.field input{padding:9px}.coverage span{font-size:11px}.split{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
@media print{.topbar,.statusline,.bottom-nav,.date-scroll,.actions,.icon-button,.mode-control,button,.nav-link,.check input,.field,dialog,#toast{display:none!important}body{background:white;color:black}main{max-width:none;padding:0}.hero,.budget-hero{background:white!important;color:black;border:1px solid #aaa}.hero p,.hero small,.facts small,.budget-hero small{color:#333}.hero:after{display:none}.page-grid{display:block}.card{border:1px solid #ccc;margin:12px 0;break-inside:avoid}.timeline li{break-inside:avoid}.today-aside{position:static}.print-only{display:block}.facts{color:black}a{color:black}.map{max-height:22cm;object-fit:contain}.footnote{color:#333}}

.quick-jumps{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 17px}.quick-jumps button{min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);font-size:12px;color:var(--green)}.card{scroll-margin-top:15px}@media print{.quick-jumps{display:none}}
