@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Serif+SC:wght@400;500;600;700&display=swap');
/* Warm autumn theme */
:root {
  --paper: #FBF5E9;
  --surface: #FFF9F0;
  --cream: #F1E3CE;
  --ink: #4A2D21;
  --muted: #7B5F4B;
  --accent: #B84E27;
  --accent-hover: #933C20;
  --link: #9A3E20;
  --heading-accent: #9A5D22;
  --gold: #F2BF77;
  --gold-soft: #C99A62;
  --line: #D9C1A4;
  --line-strong: #A27C55;
  --dark: #4B2F25;
  --dark-soft: #624333;
  --dark-line: #947158;
  --on-dark: #FFF4E4;
  --on-dark-muted: #E9CDB0;
  --warning-bg: #F5E6C6;
  --warning-text: #6C482D;
  --focus: #9A3E20;
  --map-track: #9A3E20;
  --map-start: #267B52;
  --map-end: #AA5426;
  --map-parking: #2365A4;
  --map-warning: #A42D24;
  --floating-surface: rgba(255, 249, 240, .96);
  --shadow-soft: rgba(74, 45, 33, .12);
  --shadow: rgba(74, 45, 33, .4);
  --backdrop: rgba(45, 25, 15, .74);
  --visual-shade: rgba(75, 47, 37, .8);
  --visual-tint: rgba(75, 47, 37, .14);
  --on-dark-border: rgba(255, 244, 228, .55);
  --on-dark-decoration: rgba(255, 244, 228, .15);
}
.hero,
.itinerary-section,
.alternative-itinerary,
.field-notes,
footer { --focus: var(--gold); }
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.wrap{width:min(1320px,calc(100% - 96px));margin:auto}.topbar{height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;background:var(--paper)}.wordmark{display:flex;gap:11px;align-items:center;font-family:'Noto Serif SC',serif;font-weight:700;letter-spacing:.14em}.mark{display:grid;place-items:center;background:var(--dark);color:var(--on-dark);width:36px;height:36px;border-radius:50%;font-size:19px}.wordmark small{display:block;font:600 8px 'DM Sans',sans-serif;letter-spacing:.18em;margin-top:3px}.topbar nav{display:flex;gap:33px;align-items:center;font-size:13px;font-weight:600}.topbar nav a:not(.nav-download):hover{color:var(--link)}.nav-download{border:1px solid var(--line-strong);border-radius:99px;padding:11px 18px}.nav-download:hover{background:var(--cream);color:var(--link)}.hero{height:min(690px,calc(100vh - 80px));min-height:580px;position:relative;color:var(--on-dark);overflow:hidden;background:var(--dark)}.hero-art{position:absolute;inset:0;background:linear-gradient(120deg,var(--gold-soft),var(--dark));background-image:url('hero.jpg');background-size:cover;background-position:center 52%;transform:scale(1.03);animation:breathe 18s ease-in-out infinite alternate}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(54,30,20,.88),rgba(87,48,25,.5) 63%,rgba(166,103,42,.18)),linear-gradient(0deg,rgba(59,32,20,.56),rgba(213,165,96,.08) 70%)}.hero-content{position:relative;margin:auto;width:min(1320px,calc(100% - 96px));padding-top:94px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--muted);display:flex;align-items:center;gap:10px}.eyebrow span{width:27px;height:1px;background:currentColor}.eyebrow.light{color:var(--gold)}.hero h1,h2{font-family:'Noto Serif SC',serif;font-weight:500;letter-spacing:.05em;margin:30px 0;line-height:1.24}.hero h1{font-size:clamp(52px,6vw,86px)}h1 em,h2 em{font-style:normal;color:var(--gold)}.hero-intro{font-size:15px;line-height:2;color:var(--on-dark)}.hero-bottom{display:flex;align-items:center;gap:40px;margin-top:42px}.hero-button{background:var(--accent);color:var(--on-dark);padding:17px 24px;border-radius:2px;font-size:13px;font-weight:700;min-width:190px;display:flex;justify-content:space-between;transition:.25s}.hero-button:hover{background:var(--accent-hover);transform:translateY(-3px)}.hero-date{font-size:11px;line-height:1.8;letter-spacing:.16em}.hero-date small{font-size:11px;letter-spacing:.04em;color:var(--on-dark-muted)}.hero-side{position:absolute;right:38px;top:150px;writing-mode:vertical-rl;font-size:10px;letter-spacing:.22em;color:var(--on-dark-muted)}.hero-caption{position:absolute;bottom:16px;right:35px;color:var(--on-dark);font-size:10px;background:var(--dark);padding:4px 7px}.floating-leaf{position:absolute;color:var(--gold);opacity:.55;font-size:20px;animation:float 7s ease-in-out infinite}.leaf-a{right:18%;top:24%}.leaf-b{right:32%;bottom:18%;font-size:13px;animation-delay:-3s}.ticker{background:var(--gold);overflow:hidden;white-space:nowrap;font-size:10px;font-weight:700;letter-spacing:.2em;padding:15px 0}.ticker div{width:max-content;animation:marquee 34s linear infinite}.ticker i{font-style:normal;margin:0 27px;font-size:15px}.intro{padding:110px 0 65px;display:grid;grid-template-columns:1fr 1fr;gap:70px}h2{font-size:clamp(37px,4vw,57px);margin:23px 0;color:var(--ink)}h2 em{color:var(--heading-accent)}.intro-copy{max-width:530px;padding-top:24px;color:var(--muted);line-height:1.9;font-size:15px}.intro-copy p:first-child{color:var(--ink);font-size:18px;font-family:'Noto Serif SC',serif}.legend{margin-top:28px;font-size:11px;font-weight:700;letter-spacing:.08em}.legend span{color:var(--heading-accent);font-size:20px;margin-right:8px}.route-section{padding-bottom:115px}.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.route-card{background:var(--surface);border:1px solid var(--line);transition:transform .3s,box-shadow .3s}.route-card:hover{transform:translateY(-7px);box-shadow:0 16px 38px var(--shadow-soft)}.route-visual{height:220px;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:24px;color:var(--on-dark)}.route-visual:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent,var(--visual-shade))}.visual-0{background:radial-gradient(ellipse at 70% 30%,var(--gold-soft) 0,var(--dark-soft) 42%,var(--dark) 100%)}.visual-1{background:radial-gradient(ellipse at 60% 25%,var(--gold-soft) 0,var(--gold-soft) 42%,var(--dark-soft) 100%)}.visual-2{background:radial-gradient(ellipse at 65% 20%,var(--cream) 0,var(--gold-soft) 42%,var(--dark-soft) 100%)}.route-visual .num{position:absolute;top:18px;left:22px;border:1px solid var(--on-dark-border);border-radius:50%;width:37px;height:37px;display:grid;place-items:center;font-size:11px}.route-visual .symbol{position:absolute;right:25px;top:5px;font-family:serif;font-size:160px;line-height:1;color:var(--on-dark-decoration);transform:rotate(-15deg);transition:transform .8s}.route-card:hover .symbol{transform:rotate(12deg) scale(1.06)}.route-visual .tag{position:relative;font-size:11px;letter-spacing:.16em}.route-body{padding:26px}.route-body h3{font:600 25px 'Noto Serif SC',serif;margin:8px 0 11px}.route-body p{color:var(--muted);font-size:13px;line-height:1.8;min-height:47px}.route-facts{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.route-facts span{background:var(--cream);padding:7px 10px;border-radius:30px;font-size:11px}.route-link{border:0;border-top:1px solid var(--line);padding:18px 0 0;width:100%;background:none;color:var(--link);display:flex;justify-content:space-between;text-align:left;cursor:pointer;font-size:12px;font-weight:700}.itinerary-section{background:var(--dark);color:var(--on-dark);padding:100px 0 110px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px}.section-heading h2,.field-notes h2{color:var(--on-dark)}.section-heading h2 em,.field-notes h2 em{color:var(--gold)}.section-heading p:last-child{max-width:360px;color:var(--on-dark-muted);font-size:13px;line-height:1.9}.tabs{display:flex;gap:10px;border-bottom:1px solid var(--dark-line);margin:45px 0 34px;overflow:auto}.tabs button{border:0;background:transparent;color:var(--on-dark-muted);padding:14px 20px;white-space:nowrap;cursor:pointer;border-bottom:2px solid transparent}.tabs button.active{color:var(--gold);border-color:var(--gold)}.detail-top{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;padding-bottom:35px;border-bottom:1px solid var(--dark-line)}.detail-top h3{font:500 34px 'Noto Serif SC',serif;margin:0 0 15px}.detail-top p{font-size:14px;color:var(--on-dark-muted);line-height:1.9}.detail-tags{display:flex;flex-wrap:wrap;gap:9px}.detail-tags span{border:1px solid var(--dark-line);border-radius:99px;padding:8px 12px;font-size:11px}.detail-info{font-size:13px;line-height:2;color:var(--on-dark-muted)}.days{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:35px 0}.day{border:1px solid var(--dark-line);padding:23px;min-width:0}.day-label{font-size:10px;letter-spacing:.16em;color:var(--gold)}.day h4{font:500 19px 'Noto Serif SC',serif;margin:10px 0 20px}.event{display:grid;grid-template-columns:58px 1fr;gap:10px;border-top:1px solid var(--dark-line);padding:13px 0;font-size:12px;line-height:1.7;color:var(--on-dark-muted)}.event time{color:var(--gold);font-weight:700}.detail-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.detail-notes div{font-size:12px;line-height:1.8;color:var(--on-dark-muted)}.detail-notes b{color:var(--on-dark);display:block;margin-bottom:5px}.detail-sources{margin-top:25px;font-size:12px;color:var(--on-dark-muted)}.detail-sources a{border-bottom:1px solid var(--dark-line);margin-right:16px;line-height:2.2}.budget-section{padding:110px 0}.budget-header{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end}.budget-header>div:last-child p{font-size:14px;color:var(--muted);line-height:1.9;max-width:500px}.people-picker{display:flex;gap:8px;margin:25px 0}.people-picker button{border:1px solid var(--line-strong);background:transparent;color:var(--ink);border-radius:99px;padding:10px 22px;cursor:pointer}.people-picker button:not(.active):hover{background:var(--cream)}.people-picker button.active{background:var(--accent);color:var(--on-dark);border-color:var(--accent)}.budget-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:38px}.budget-card{background:var(--cream);padding:25px;border-top:3px solid var(--accent)}.budget-card h3{font:600 18px 'Noto Serif SC',serif;margin:0}.budget-card .price{font:500 38px 'Noto Serif SC',serif;margin:20px 0 12px}.budget-card .price small{font:12px 'DM Sans',sans-serif;color:var(--muted)}.budget-card p{font-size:12px;line-height:1.8;color:var(--muted)}.budget-note{font-size:11px;color:var(--muted);line-height:1.8;margin-top:20px}.field-notes{background:var(--dark-soft);padding:80px 0}.notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}.notes-list>div{display:flex;gap:20px;border-bottom:1px solid var(--dark-line);padding:14px 0}.notes-list span{font-size:11px;color:var(--gold)}.notes-list p{margin:0;color:var(--on-dark-muted);font-size:13px;line-height:1.8}.notes-list b{display:block;color:var(--on-dark);font-size:14px;margin-bottom:4px}.sources{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:110px 0}.sources p:not(.eyebrow){font-size:13px;line-height:1.9;color:var(--muted);max-width:420px}.outline-button{display:inline-block;border:1px solid var(--line-strong);padding:13px 20px;font-size:12px;margin-top:20px;color:var(--link)}.outline-button:hover{background:var(--cream)}.source-list a{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:19px 0;font-size:13px}.source-list small{display:block;color:var(--muted);font-size:10px;margin-bottom:6px;letter-spacing:.08em}.source-list a:hover{color:var(--link)}footer{background:var(--dark);color:var(--on-dark);padding:52px 0}.footer-inner{display:flex;justify-content:space-between;gap:30px}.footer-title{font:600 24px 'Noto Serif SC',serif;letter-spacing:.14em}.footer-title span{color:var(--gold)}.footer-inner p,.footer-meta{color:var(--on-dark-muted);font-size:11px;line-height:2}.footer-meta{text-align:right}.footer-meta a{display:inline-block;margin-top:10px;color:var(--on-dark)}@keyframes breathe{from{transform:scale(1.03)}to{transform:scale(1.09)}}@keyframes float{50%{transform:translateY(-14px) rotate(30deg)}}@keyframes marquee{to{transform:translateX(-50%)}}@media(max-width:760px){.wrap,.hero-content{width:calc(100% - 40px)}.topbar{height:68px;padding:0 20px}.topbar nav{gap:15px}.topbar nav a:not(.nav-download){display:none}.hero{min-height:570px;height:calc(90vh - 68px)}.hero-content{padding-top:85px}.hero h1{font-size:49px}.hero-intro{font-size:13px}.hero-side{right:15px;font-size:8px}.hero-date{font-size:9px}.hero-bottom{gap:15px}.hero-button{min-width:165px}.hero-caption{right:15px}.intro{grid-template-columns:1fr;gap:0;padding:75px 0 40px}.intro-copy{padding-top:0}.route-grid,.days,.budget-grid,.detail-notes{grid-template-columns:1fr}.route-section{padding-bottom:75px}.route-visual{height:190px}.itinerary-section{padding:75px 0}.section-heading{display:block}.detail-top,.budget-header,.notes-grid,.sources{grid-template-columns:1fr;gap:15px}.days{gap:12px}.day{padding:20px}.budget-section,.sources{padding:75px 0}.budget-header>div:last-child p{margin-top:0}.budget-grid{margin-top:20px}.field-notes{padding:70px 0}.sources{gap:30px}.footer-inner{display:block}.footer-meta{text-align:left;margin-top:25px}.floating-leaf{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition:none!important}}
.source-filters{display:flex;gap:7px;flex-wrap:wrap}.source-filters button{border:1px solid var(--line-strong);background:transparent;color:var(--link);border-radius:20px;padding:8px 13px;font-size:11px;cursor:pointer}.source-filters button:not(.active):hover{background:var(--cream)}.source-filters button.active{background:var(--accent);border-color:var(--accent);color:var(--on-dark)}.source-count{font-size:11px!important;margin:15px 0;color:var(--muted)!important}.source-list{max-height:670px;overflow:auto;padding-right:8px}.source-list a{line-height:1.6}
/* Film and verified scenery */
.film-section{padding:100px 0 20px;display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}.film-copy h2{margin-bottom:22px}.film-copy>p:not(.eyebrow){font-size:14px;line-height:2;color:var(--muted);max-width:390px}.film-copy .film-hint{font-size:11px;color:var(--muted);margin-top:26px}.film-download{transition:background .25s,color .25s}.film-download:hover{background:var(--ink);color:var(--on-dark)}.film-frame{background:var(--dark);padding:9px;box-shadow:0 20px 50px var(--shadow-soft)}.film-frame video{display:block;width:100%;aspect-ratio:16/9;background:var(--dark);object-fit:contain}.film-frame-foot{padding:13px 10px 6px;display:flex;justify-content:space-between;gap:12px;color:var(--on-dark-muted);font-size:9px;letter-spacing:.12em}.visual-evidence{padding:0 0 115px}.evidence-header{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:35px}.evidence-header h2{margin-bottom:0}.evidence-header>p{max-width:370px;color:var(--muted);font-size:13px;line-height:1.9}.evidence-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.evidence-card{margin:0;background:var(--surface);border:1px solid var(--line)}.evidence-card img,.evidence-illustration{display:block;width:100%;height:220px;object-fit:cover;background:var(--cream)}.evidence-card img.evidence-portrait{object-position:center 55%}.evidence-illustration{display:grid;place-items:center;background:linear-gradient(135deg,var(--dark-soft),var(--gold-soft));color:var(--on-dark);font:500 72px 'Noto Serif SC',serif}.evidence-card figcaption{padding:20px 22px 22px}.evidence-card .evidence-kicker{font-size:10px;letter-spacing:.13em;color:var(--muted)}.evidence-card h3{font:600 19px 'Noto Serif SC',serif;margin:9px 0}.evidence-card p{font-size:12px;line-height:1.85;color:var(--muted);margin:8px 0}.evidence-card a,.media-credits a{color:var(--link);text-decoration:underline;text-underline-offset:3px}.evidence-card .credit{font-size:10px;color:var(--muted)}.evidence-note{font-size:11px;color:var(--muted);line-height:1.9;margin-top:20px}.media-credits{font-size:11px;line-height:2;color:var(--muted);margin-top:24px}.media-credits strong{display:block;color:var(--ink);font-size:12px}
@media(max-width:760px){.film-section{grid-template-columns:1fr;gap:26px;padding:70px 0 0}.film-copy .film-hint{margin-top:18px}.film-frame-foot{font-size:8px}.visual-evidence{padding:0 0 75px}.evidence-header{display:block;margin-bottom:25px}.evidence-grid{grid-template-columns:1fr}.evidence-card img,.evidence-illustration{height:220px}}
.route-map{margin:28px 0 0;padding:10px;background:var(--cream)}.route-map img{display:block;width:100%;max-height:400px;object-fit:cover}.route-map figcaption{display:flex;justify-content:space-between;gap:12px;padding:12px 7px 3px;color:var(--muted);font-size:10px;letter-spacing:.06em}.route-map figcaption span:last-child{letter-spacing:.14em}@media(max-width:760px){.route-map figcaption{display:block;line-height:1.8}.route-map figcaption span{display:block}.route-map img{min-height:180px}}
.film-copy .film-credit{font-size:10px!important;line-height:1.8!important}.film-credit a{color:var(--link);text-decoration:underline;text-underline-offset:3px}
.film-copy .film-hint{font-size:12px;color:var(--muted)}.film-copy .film-credit{font-size:11px!important;color:var(--muted)!important}.evidence-card .credit{font-size:11px;color:var(--muted)}
/* 2026-11-07 weekend update */
.route-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .65s}.route-card:hover .route-image{transform:scale(1.04)}.route-visual:before{z-index:1;background:linear-gradient(180deg,var(--visual-tint) 0%,transparent 30%,var(--visual-shade) 100%)}.route-visual .num,.route-photo-label{z-index:2}.route-photo-label{position:relative}.route-photo-label small{display:block;margin-top:6px;color:var(--on-dark);font-size:11px;font-weight:700;letter-spacing:.03em}.track-link{display:inline-block;color:var(--link);font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:4px}.route-body .track-note{min-height:0;font-size:11px;line-height:1.6;margin:7px 0 18px;color:var(--muted)}.detail-track{margin-top:20px;font-size:12px;line-height:1.8;color:var(--on-dark-muted)}.detail-track a{color:var(--on-dark-muted);text-decoration:underline;text-underline-offset:4px}.days{grid-template-columns:repeat(2,1fr)}.archive-warning{display:block;background:var(--warning-bg);border-left:3px solid var(--accent);color:var(--warning-text);padding:12px 15px;margin-bottom:10px;font-size:13px;line-height:1.7}.film-section{border-top:1px solid var(--line);padding-bottom:110px}.film-frame-foot span:last-child{color:var(--gold)}@media(max-width:760px){.days{grid-template-columns:1fr}.film-section{padding-bottom:75px}}
/* Historical, user-supplied KML shape only; no basemap. */
.route-track-button{display:block;width:100%;padding:0;border:0;cursor:pointer;text-align:left;background:var(--cream);color:var(--ink)}.route-track-button:before{background:linear-gradient(180deg,var(--visual-tint),transparent 38%,var(--visual-tint));pointer-events:none}.route-track-image{width:100%;height:100%;object-fit:contain;position:absolute;inset:0}.route-track-top,.route-track-open{position:absolute;z-index:2;background:var(--floating-surface);color:var(--link);padding:6px 9px;border-radius:4px;font-size:10px;font-weight:700}.route-track-top{left:68px;top:20px}.route-track-open{right:14px;bottom:15px}.route-track-button .num{background:var(--dark);color:var(--on-dark);border-color:var(--on-dark)}.track-summary{color:var(--muted);font-size:12px;line-height:1.8;padding:12px;background:var(--cream);border-left:2px solid var(--line-strong);margin:3px 0 0}.track-summary strong{color:var(--ink)}.route-body .track-note{margin-bottom:10px}.track-link{margin-bottom:10px}.track-modal{width:min(800px,calc(100% - 32px));max-height:calc(100% - 40px);border:0;background:var(--surface);color:var(--ink);padding:26px;box-shadow:0 25px 70px var(--shadow);overflow:auto}.track-modal::backdrop{background:var(--backdrop)}.track-modal-head{display:flex;justify-content:space-between;align-items:start;gap:20px}.track-modal-head span{font-size:10px;letter-spacing:.1em;color:var(--muted)}.track-modal-head h3{font:600 24px 'Noto Serif SC',serif;margin:8px 0 20px}.track-modal-close{background:none;border:1px solid var(--line-strong);border-radius:50%;width:36px;height:36px;font-size:23px;color:var(--ink);cursor:pointer}.track-modal-map{width:100%;display:block;background:var(--cream)}.track-modal p{font-size:13px;line-height:1.85;color:var(--muted)}.track-modal-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:11px!important}.track-modal-legend span:first-child{color:var(--map-start)}.track-modal-legend span:nth-child(2){color:var(--map-end)}.track-modal-warning{border-left:3px solid var(--accent);background:var(--warning-bg);padding:12px 15px;color:var(--warning-text)!important}.track-modal-note{font-size:11px!important}.track-modal-photo{display:flex;align-items:center;gap:15px;border-top:1px solid var(--line);padding-top:18px;font-size:12px;line-height:1.8;color:var(--muted)}.track-modal-photo img{width:118px;height:80px;object-fit:cover}.track-modal-photo a{color:var(--link);text-decoration:underline;text-underline-offset:3px}@media(max-width:760px){.track-modal{padding:18px}.track-modal-head h3{font-size:20px}.track-modal-photo img{width:95px;height:75px}}
.track-origin{display:inline-block;font-size:10px;color:var(--muted);margin-top:3px}.film-copy .archive-warning{font-size:12px!important;color:var(--warning-text)!important;line-height:1.7!important}
/* Maps: vector basemap from OpenFreeMap, track from user-provided KML. */
.hike-map-wrap{position:relative;overflow:hidden;background:var(--cream)}.route-visual.hike-map-wrap{padding:0}.hike-map-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:0}.hike-map-surface{position:absolute;inset:0;z-index:1;opacity:0;transition:opacity .25s}.map-ready .hike-map-surface{opacity:1}.hike-map-wrap .map-failure{display:none;position:absolute;z-index:5;left:8px;bottom:25px;padding:5px 8px;background:var(--floating-surface);color:var(--warning-text);font-size:11px;line-height:1.4}.hike-map-wrap.map-unavailable .map-failure{display:block}.route-map-open{position:absolute;z-index:3;inset:0 0 24px;border:0;background:transparent;cursor:pointer;width:100%;height:calc(100% - 24px)}.route-map-open:focus-visible{outline:3px solid var(--link);outline-offset:-3px}.route-track-button .num,.route-track-top{pointer-events:none;z-index:4}.route-track-open{bottom:8px;right:14px}.map-credit{position:absolute;bottom:0;right:0;z-index:5;background:var(--floating-surface);font-size:9px;line-height:18px;padding:0 4px;color:var(--ink)}.map-credit a{color:var(--link);text-decoration:underline}.track-modal-map.hike-map-wrap{height:380px;background:var(--cream)}.track-modal-map .hike-map-surface{width:100%;height:100%}.maplibregl-ctrl-attrib{font-size:10px!important;line-height:1.3!important}.maplibregl-ctrl-attrib a{color:var(--link)!important}@media(max-width:760px){.track-modal-map.hike-map-wrap{height:260px}.maplibregl-ctrl-attrib{font-size:8px!important}}
.hike-map-wrap .hike-map-surface{position:absolute;inset:0;width:100%;height:100%}

/* Five routes with a shared, explicit Ningbo fallback. */
.route-grid,
.budget-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr));
}
.route-card { display: flex; flex-direction: column; }
.route-body { display: flex; flex-direction: column; flex: 1; }
.route-body > .route-link { margin-top: auto; padding-top: 18px; }
.route-body > p { min-height: 0; }
.route-track-top { left: 16px; max-width: calc(100% - 32px); }
.route-body .track-summary { margin: 0 0 20px; }
.track-summary summary { cursor: pointer; font-weight: 600; }
.track-summary p { margin: 10px 0; }
.track-summary small { display: block; font-size: 11px; }
.route-body .route-condition,
.budget-card .budget-condition {
  border-left: 2px solid var(--accent);
  padding-left: 10px;
  color: var(--warning-text);
  font-size: 12px;
}
.variant-controls { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 20px; }
.variant-controls button {
  background: transparent;
  border: 1px solid var(--line-strong);
  border-radius: 30px;
  padding: 10px 16px;
  color: inherit;
  font-size: 13px;
  cursor: pointer;
}
.variant-controls button.active { background: var(--accent); color: var(--on-dark); border-color: var(--accent); }
.variant-note { padding: 16px 20px; background: var(--dark-soft); color: var(--on-dark-muted); line-height: 1.8; font-size: 13px; margin: 0 0 30px; }
.budget-variants { margin-top: 18px; }
.budget-variants button { padding: 7px 12px; font-size: 11px; }
.budget-variants button.active { background: var(--dark); color: var(--on-dark); border-color: var(--dark); }
.text-button { background: none; border: 0; color: inherit; padding: 0; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.detail-track { display: flex; gap: 12px; flex-wrap: wrap; }
.detail-track p { width: 100%; margin: 0; font-size: 12px; }
.detail-info b { display: block; margin-top: 16px; color: var(--on-dark); }
.detail-info b:first-child { margin-top: 0; }
.detail-info p { margin: 7px 0 14px; }
.detail-info a { text-decoration: underline; text-underline-offset: 4px; }
.detail-info .drive-reference { font-size: 12px; }
.detail-notes p { margin: 0 0 12px; }
.event { grid-template-columns: 92px 1fr; }
.event time { white-space: normal; }
.source-controls { position: sticky; top: 0; padding: 8px 0 12px; background: var(--paper); z-index: 1; }
.source-controls .source-filters + .source-filters { margin-top: 10px; }
.source-record { border-bottom: 1px solid var(--line); padding-bottom: 16px; }
.source-list .source-record a { border: 0; padding: 16px 0 5px; }
.sources .source-record p { margin: 6px 0; max-width: none; font-size: 12px; }
.sources .source-record .source-status { font-size: 11px; color: var(--warning-text); }
.source-list small { letter-spacing: 0; font-size: 11px; line-height: 1.8; }
.place-map-fallback { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; background: var(--cream); color: var(--muted); }
.place-map-fallback span { font-family: 'Noto Serif SC', serif; font-size: 24px; }
.place-map-fallback small { font-size: 12px; }
.hike-place-marker { display: flex; flex-direction: column-reverse; align-items: center; gap: 5px; }
.hike-place-marker-lower { flex-direction: column; }

/* Keep the invitation readable and let route details open on demand. */
.route-body .route-condition { margin: 2px 0 22px; line-height: 1.8; }
.detail-top .route-tip { border-left: 2px solid var(--gold); color: var(--on-dark-muted); padding-left: 14px; margin-top: 22px; font-size: 13px; }
.route-explainer { margin-top: 32px; border-top: 1px solid var(--dark-line); border-bottom: 1px solid var(--dark-line); color: var(--on-dark-muted); }
.route-explainer > summary { color: var(--on-dark); padding: 16px 0; cursor: pointer; font-size: 13px; }
.route-explainer > div { padding: 0 0 18px; font-size: 12px; line-height: 1.9; }
.route-explainer ul { padding-left: 20px; }
.route-explainer li { margin-bottom: 8px; }
.route-explainer .detail-sources { margin-top: 16px; }
.reference-meta { font-size: 11px !important; }
.detail-notes a { text-decoration: underline; text-underline-offset: 4px; }
.reference-fold { align-self: start; min-width: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.reference-fold > summary { padding: 20px 0; cursor: pointer; font-size: 15px; line-height: 1.6; }
.reference-fold .source-list { padding-bottom: 20px; }
.source-detail > summary { padding: 6px 0; cursor: pointer; color: var(--muted); font-size: 11px; }
.source-detail[open] { padding-bottom: 8px; }
.source-record { padding-bottom: 13px; }
.hotel-heading { margin: 34px 0 10px; font: 600 18px 'Noto Serif SC', serif; }
.hotel-recommendations { padding: 0; margin: 0; list-style: none; }
.hotel-recommendations li { display: flex; align-items: baseline; gap: 18px; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 13px; line-height: 1.8; }
.hotel-recommendations span { flex: 0 0 38px; color: var(--muted); }
.hotel-recommendations a { text-decoration: underline; text-underline-offset: 4px; }
.evidence-card { display: flex; flex-direction: column; }
.evidence-card > img { height: 240px; }
.evidence-photo-embed { display: block; width: 100%; height: 240px; border: 0; background: var(--dark); }
.evidence-card > img.evidence-kuaiji { object-position: center 25%; }
.evidence-card > img.evidence-shared-portrait { height: 360px; object-fit: contain; background: var(--dark); }
.track-modal-photo img.evidence-shared-portrait { height: 155px; object-fit: contain; background: var(--dark); }
.evidence-card figcaption { display: flex; flex-direction: column; flex: 1; }
.evidence-card h3 { line-height: 1.6; }
.evidence-kicker { letter-spacing: .02em !important; }
.evidence-route-preview { border: 0; padding: 0; width: 100%; height: 240px; position: relative; background: var(--cream); cursor: pointer; }
.evidence-route-preview img { height: 100%; width: 100%; object-fit: contain; }
.evidence-route-preview > span { position: absolute; right: 14px; bottom: 14px; padding: 7px 10px; background: var(--floating-surface); color: var(--link); border-radius: 3px; font-size: 12px; }
.evidence-card .scenery-link { display: inline-flex; align-self: start; margin: 6px 0 18px; padding-bottom: 3px; font-size: 13px; font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--link); }
.photo-credit { border-top: 1px solid var(--line); margin-top: auto; padding-top: 8px; }
.photo-credit > summary { padding: 5px 0; cursor: pointer; font-size: 11px; color: var(--muted); }
.photo-credit .credit { margin-bottom: 0; }
.track-modal { width: min(1000px, calc(100% - 32px)); }
.track-modal-map.hike-map-wrap { height: min(53vh, 500px); min-height: 320px; }
.track-modal-head h3 { margin-top: 0; }
.track-modal .map-trip-tip { border-left: 3px solid var(--accent); padding-left: 13px; color: var(--warning-text); font-size: 13px; }
.track-modal .map-parking-summary { font-size: 12px; }
.map-explainer { margin-top: 16px; border-top: 1px solid var(--line); }
.map-explainer > summary { padding: 15px 0; cursor: pointer; color: var(--link); font-size: 13px; }
.map-explainer > div { padding-bottom: 6px; }
.map-explainer p { font-size: 12px; }
.map-place-sources { border-top: 1px solid var(--line); padding-top: 12px; margin-top: 15px; }
summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
@media (max-width: 760px) {
  .track-modal { padding: 16px; }
  .track-modal-map.hike-map-wrap { height: 48vh; min-height: 300px; }
  .track-modal-head h3 { font-size: 19px; line-height: 1.5; }
  .track-modal-legend { gap: 8px 15px; }
  .hotel-recommendations li { gap: 12px; }
  .evidence-card > img, .evidence-route-preview, .evidence-photo-embed { height: 250px; }
  .evidence-card > img.evidence-kuaiji { object-position: center 25%; }
  .evidence-card > img.evidence-shared-portrait { height: auto; }
}
.hike-place-dot { height: 12px; width: 12px; background: var(--map-track); border: 2px solid var(--on-dark); border-radius: 50%; box-shadow: 0 1px 6px var(--shadow); }
.hike-place-label { padding: 5px 8px; background: var(--surface); color: var(--ink); box-shadow: 0 2px 6px var(--shadow-soft); border-radius: 4px; font-size: 12px; white-space: nowrap; }
.map-place-sources { display: flex; flex-wrap: wrap; gap: 10px 25px; }
.map-place-sources p { margin: 5px 0; }
.map-place-sources small { display: block; font-size: 10px; }
.map-place-sources a,
.map-route-links a { text-decoration: underline; text-underline-offset: 4px; }
.map-route-links { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 12px; line-height: 1.8; margin: 15px 0; }
@media (max-width: 760px) {
  .route-grid, .budget-grid { grid-template-columns: 1fr; }
  .event { grid-template-columns: 82px 1fr; }
  .variant-controls button { flex: 1; }
  .route-track-top { font-size: 10px; }
  .source-list { max-height: 760px; }
}
.track-modal-map .maplibregl-ctrl-attrib{background:var(--floating-surface)!important;padding:3px 6px!important;border-radius:3px 0 0 0;line-height:1.35!important;font-size:11px!important}.track-modal-map .maplibregl-ctrl-attrib-inner{white-space:normal}@media(max-width:760px){.track-modal-map .maplibregl-ctrl-attrib{font-size:10px!important;max-width:calc(100% - 16px)}}

/* One preferred weekend, with the other routes available on demand. */
.primary-photo .evidence-card {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  border: 0;
  background: var(--cream);
}
.primary-photo .evidence-card > img.evidence-shared-portrait {
  height: min(70vh, 650px);
  min-height: 420px;
}
.primary-photo .evidence-card figcaption {
  justify-content: center;
  padding: clamp(28px, 5vw, 72px);
}
.primary-photo .evidence-card h3 { font-size: 34px; margin: 16px 0; }
.primary-photo .evidence-card p { font-size: 15px; line-height: 2; }
.primary-photo .photo-credit { margin-top: 34px; }
.primary-photo .photo-credit .credit { font-size: 11px; }
.primary-map-section .route-grid { grid-template-columns: 1fr; }
.primary-map-section .route-card { display: grid; grid-template-columns: 1.2fr .8fr; }
.primary-map-section .route-card:hover { transform: none; }
.primary-map-section .route-visual { height: 420px; }
.primary-map-section .route-body { padding: 34px; }
#route-detail { margin-top: 48px; }
.primary-budget { grid-template-columns: 1fr; }
.primary-budget .budget-card,
#alternative-budget .budget-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  padding: 36px 42px;
}
.primary-budget .price { font-size: 58px; }
.budget-breakdown p { margin-top: 0; font-size: 14px; line-height: 2.2; }
.alternatives-section { padding: 0 0 110px; }
.alternative-options { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.alternative-options > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 30px 0;
  cursor: pointer;
  list-style: none;
}
.alternative-options > summary::-webkit-details-marker { display: none; }
.alternative-options > summary strong { display: block; font: 500 31px 'Noto Serif SC', serif; }
.alternative-options > summary small { display: block; font-size: 13px; line-height: 1.9; margin-top: 13px; color: var(--muted); }
.alternative-toggle { font-size: 30px; transition: transform .2s; }
.alternative-options[open] .alternative-toggle { transform: rotate(45deg); }
.alternative-content { padding: 0 0 38px; }
.alternative-tabs { margin: 8px 0 28px; border-color: var(--line); }
.alternative-tabs button { color: var(--muted); padding: 14px 17px; }
.alternative-tabs button:hover { color: var(--link); }
.alternative-tabs button.active { color: var(--ink); border-color: var(--link); }
.alternative-overview { display: grid; grid-template-columns: .85fr 1.15fr; gap: 22px; align-items: start; }
.alternative-overview .route-grid { grid-template-columns: 1fr; }
.alternative-overview .route-card:hover { transform: none; }
.alternative-overview .evidence-card > img,
.alternative-overview .evidence-photo-embed { height: 320px; }
.alternative-overview .evidence-card > img.evidence-shared-portrait { height: 440px; }
.alternative-overview .route-visual { height: 320px; }
.alternative-itinerary { background: var(--dark); color: var(--on-dark); padding: 38px; margin-top: 28px; }
.alternative-itinerary .detail-top h3 { font-size: 28px; }
.alternative-budget-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-top: 30px; }
.alternative-budget-heading h3 { font: 500 23px 'Noto Serif SC', serif; }
.alternative-budget-heading p { font-size: 12px; color: var(--muted); }
#alternative-budget { grid-template-columns: 1fr; margin-top: 12px; }
@media (max-width: 760px) {
  .hero h1 { font-size: clamp(32px, 11vw, 56px); }
  .hero-bottom { align-items: start; flex-wrap: wrap; gap: 20px; }
  .hero-date { font-size: 11px; }
  .primary-photo .evidence-card,
  .primary-map-section .route-card,
  .alternative-overview,
  .primary-budget .budget-card,
  #alternative-budget .budget-card { grid-template-columns: 1fr; }
  .primary-photo .evidence-card > img.evidence-shared-portrait { height: auto; min-height: 0; }
  .primary-photo .evidence-card figcaption { padding: 26px; }
  .primary-photo .evidence-card h3 { font-size: 26px; }
  .primary-photo .evidence-card p { font-size: 13px; }
  .primary-photo .photo-credit { margin-top: 18px; }
  .primary-map-section .route-visual { height: 300px; }
  .primary-map-section .route-body { padding: 25px; }
  #route-detail { margin-top: 35px; }
  .primary-budget .budget-card,
  #alternative-budget .budget-card { gap: 8px; padding: 26px; }
  .primary-budget .price { font-size: 46px; }
  .alternatives-section { padding-bottom: 75px; }
  .alternative-options > summary { gap: 15px; }
  .alternative-options > summary strong { font-size: 27px; }
  .alternative-options > summary small { font-size: 12px; }
  .alternative-overview .evidence-card > img.evidence-shared-portrait { height: auto; }
  .alternative-overview .route-visual { height: 280px; }
  .alternative-itinerary { padding: 22px; }
  .alternative-itinerary .detail-top h3 { font-size: 24px; }
  .alternative-itinerary .detail-tags span { line-height: 1.6; }
  .alternative-itinerary .days { margin: 25px 0; }
  .alternative-itinerary .day { padding: 16px; }
  .alternative-itinerary .event { grid-template-columns: 72px 1fr; }
  .alternative-budget-heading { display: block; }
}

.itinerary-section :focus-visible,
.alternative-itinerary :focus-visible,
.field-notes :focus-visible,
footer :focus-visible { outline-color: var(--gold); }
