
:root{--paper:#fbf5e8;--card:#fffdf5;--ink:#413d36;--muted:#736d61;--green:#466b58;--mint:#dcebd9;--orange:#a55039;--peach:#f7dfcf;--yellow:#f6e6a7;--blue:#dcebef;--line:#b9ad94;--hand:'Kaiti SC','STKaiti','KaiTi','FangSong',serif;--body:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{margin:0;background-color:var(--paper);background-image:radial-gradient(#c7bca545 .7px,transparent .7px);background-size:9px 9px;color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.75}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:var(--green);text-underline-offset:4px}button{color:inherit;cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:3px solid #3b806a;outline-offset:4px}button:focus:not(:focus-visible){outline:none}h1,h2,h3,p{margin:0}h1,h2,.hand{font-family:var(--hand)}h1{font-size:clamp(36px,4.2vw,60px);line-height:1.25;letter-spacing:2px;font-weight:700}h2{font-size:30px;line-height:1.4}h3{font-size:18px;line-height:1.55}small,.small{font-size:12px;line-height:1.65}.muted{color:var(--muted)}.wrap{width:min(1180px,calc(100% - 64px));margin:auto}.skip{position:fixed;top:-100px;left:16px;z-index:100;background:white;padding:12px}.skip:focus{top:12px}.topbar{position:sticky;top:0;z-index:20;background:#fbf5e8f5;backdrop-filter:blur(12px);border-bottom:1px dashed #c7baa0}.top-inner{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{font-family:var(--hand);font-size:23px;color:var(--ink);text-decoration:none;white-space:nowrap}.brand-mark{display:inline-grid;place-items:center;width:35px;height:35px;border:1.7px solid var(--green);border-radius:45% 51% 43% 52%;background:var(--mint);margin-right:8px;transform:rotate(-8deg);font-size:21px}.toplinks{display:flex;gap:22px;align-items:center}.toplinks>a{text-decoration:none;color:var(--ink);font-size:13px}.toplinks>a:hover{text-decoration:underline}.button{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:44px;padding:9px 16px;border:1.4px solid var(--ink);border-radius:7px 12px 6px 11px;background:var(--card);text-decoration:none;color:var(--ink);font-size:13px;font-weight:600;box-shadow:2px 3px 0 #d8cfbd;transition:transform .15s,box-shadow .15s}.button:hover{transform:translateY(-2px);box-shadow:3px 5px 0 #d8cfbd}.button.primary{background:var(--green);color:#fff;border-color:var(--green)}.button.peach{background:var(--peach)}.button.small-button{padding:7px 12px;min-height:40px}.hero{position:relative;display:grid;grid-template-columns:1fr .9fr;align-items:center;gap:45px;padding:40px 0 28px}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--green);font-weight:700;margin-bottom:16px}.title-underline{display:inline-block;position:relative;z-index:0}.title-underline:after{content:'';position:absolute;left:-3px;right:0;bottom:2px;height:16px;background:var(--yellow);border-radius:32% 55% 18% 60%;z-index:-1;transform:rotate(-1deg)}.hero-copy>p{margin-top:18px;color:#6f6a5b;max-width:450px;line-height:1.9}.trip-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.tag{font-size:12px;border:1px solid #b8b398;border-radius:17px 13px 16px 11px;padding:4px 12px;background:#fffdf5}.tag:nth-child(2){background:var(--mint);transform:rotate(2deg)}.tag:nth-child(3){background:var(--peach);transform:rotate(-2deg)}.hero-art{position:relative;isolation:isolate}.hero-art img{display:block;width:100%;height:280px;object-fit:contain;mix-blend-mode:multiply}.hero-art>span{display:block;position:absolute;right:3%;bottom:10px;font-family:var(--hand);font-size:18px;transform:rotate(-5deg);background:#fff8d8;padding:4px 14px;border:1px solid #cdbb8f;border-radius:3px;box-shadow:2px 2px 0 #e1d7bd}.route-block{margin-bottom:27px}.section-kicker{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px;gap:12px}.section-kicker>span{font-family:var(--hand);font-size:22px}.section-kicker .small{font-family:var(--body);font-size:12px}.route{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:15px}.route:before{content:'';position:absolute;top:30px;left:5%;right:5%;border-top:2px dashed #b3b99f;z-index:-1}.stop{position:relative;text-align:left;border:1.5px solid #a79d88;border-radius:10px 8px 13px 6px;background:#fffcf4;min-width:0;padding:15px 15px 12px;box-shadow:2px 3px 0 #ddd6c8;transition:transform .18s}.stop:nth-child(even){transform:rotate(.8deg)}.stop:nth-child(odd){transform:rotate(-.7deg)}.stop[aria-pressed=true]{background:var(--mint);border-color:var(--green);box-shadow:3px 4px 0 #a6b99e;transform:translateY(-4px) rotate(-1deg)}.stop:hover{transform:translateY(-4px)}.stop-top{display:flex;align-items:center;gap:9px}.stop-num{width:28px;height:28px;border:1px solid #87977d;border-radius:43% 52% 45% 48%;font-family:var(--hand);font-size:18px;display:grid;place-items:center;background:#fffdf0}.stop strong{font-family:var(--hand);font-size:23px;font-weight:700}.stop small{display:block;color:#676b5e;font-size:11px;margin:7px 0 2px}.stop time{font-size:12px;color:#505747}.route-hint{display:flex;justify-content:space-between;margin-top:14px;font-size:12px;color:var(--muted);gap:10px}.route-hint>button{border:0;background:none;text-decoration:underline;text-underline-offset:4px;color:var(--green);padding:0;font-size:12px}.paper{background:var(--card);border:1.4px solid #807966;border-radius:9px 14px 7px 13px;box-shadow:4px 5px 0 #e0d7c4;position:relative}.tape:before{content:'';position:absolute;width:86px;height:23px;background:repeating-linear-gradient(45deg,#e6bd87bd 0 7px,#efd3a9c2 7px 14px);top:-13px;left:29px;transform:rotate(-4deg);border-left:3px dotted #fbf5e8;border-right:3px dotted #fbf5e8;z-index:1}.stay-layout{display:grid;grid-template-columns:1.45fr 1fr;gap:24px;margin:34px 0 34px}.stay-card{padding:29px 28px 24px}.stay-card .station-eyebrow{font-family:var(--hand);font-size:18px;color:var(--green)}.stay-card h2{font-size:27px;margin:8px 0 10px}.address{font-size:12px;color:var(--muted);margin:9px 0}.dates-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:15px 0}.date-stamp{padding:5px 10px;background:#f6ead1;border:1px dashed #b8a986;border-radius:4px;line-height:1.6;font-size:13px}.stay-intro{font-size:14px;line-height:1.9}.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:21px}.station-note{background:#fff0c9;padding:25px 25px 20px;border:1px solid #d0bc88;border-radius:5px 10px 5px 8px;transform:rotate(.6deg);box-shadow:3px 4px 0 #dfd1ae;position:relative}.station-note:before{content:'';position:absolute;width:10px;height:10px;border:2px solid #aa674b;box-shadow:1px 1px 0 #9f795e;border-radius:50%;background:#ce8260;left:50%;top:10px}.station-note h3{font-family:var(--hand);font-size:24px;margin:4px 0 15px}.note-line{padding:11px 0;border-top:1px dashed #ccb782}.note-label{display:block;font-size:11px;color:#807046;margin-bottom:5px;font-weight:600;letter-spacing:1px}.note-line p{font-size:13px}.note-line a{font-size:12px}.leg-note{margin-top:12px;color:var(--green);font-size:12px;font-weight:600}.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:18px}.section-head p{font-size:12px;color:var(--muted);margin-top:4px}.section-num{font-family:var(--body);font-size:12px;letter-spacing:1px;color:var(--orange);display:block;margin-bottom:5px}.photo-strip{display:grid;grid-template-columns:1fr 1.1fr 1fr;align-items:start;gap:23px;margin:25px 7px 38px}.polaroid{position:relative;margin:0;background:#fffefa;padding:9px 9px 13px;box-shadow:2px 4px 9px #74634524;border:1px solid #c8bfac;transform:rotate(-2deg)}.polaroid:nth-child(2){transform:rotate(1.5deg);margin-top:9px}.polaroid:nth-child(3){transform:rotate(-1deg)}.polaroid:before{content:'';position:absolute;width:75px;height:20px;background:#dbdba3bb;top:-10px;left:38%;transform:rotate(3deg);z-index:1}.polaroid img{width:100%;height:158px;object-fit:cover;display:block;filter:saturate(.88)}.polaroid figcaption{font-family:var(--hand);font-size:17px;padding:9px 6px 0;display:flex;justify-content:space-between;gap:10px}.polaroid small{font-family:var(--body);font-size:10px;color:var(--muted)}.wide-photo img{object-position:50% 50%}.section{margin:42px 0}.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.day{background:#fffdf3;border:1.2px solid #b7ac95;border-radius:6px 10px 7px 9px;padding:20px 20px 19px;position:relative}.day:before{content:'';height:5px;position:absolute;left:16px;right:16px;top:0;background:var(--mint);transform:rotate(-.8deg)}.day:nth-child(2n):before{background:var(--peach)}.day:nth-child(3n):before{background:var(--yellow)}.day time{font-size:12px;color:var(--green);font-weight:600}.day h3{font-family:var(--hand);font-size:21px;margin:8px 0}.day p{font-size:13px;color:#696356;line-height:1.9}.mini-note{background:#f3ebd6;border-left:3px solid #bca274;padding:11px 15px;font-size:12px;color:#6d6149;margin-top:16px;border-radius:2px 7px 7px 2px}.catalog-head{background:#e7eddf;border:1px solid #acb49c;border-radius:10px 12px 4px 5px;padding:18px 20px;margin-bottom:17px}.filters{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.search-box{position:relative;flex:1;min-width:200px;max-width:300px}.search-box input{width:100%;padding:10px 34px 10px 12px;min-height:44px;background:var(--card);border:1px solid #a6ad96;border-radius:8px;font-size:13px}.search-box span{position:absolute;right:12px;top:10px;pointer-events:none}.filter-right{display:flex;gap:10px;align-items:center;flex-wrap:wrap}select{max-width:100%;min-height:44px;border:1px solid #9ca58c;border-radius:7px;background:#fffdf5;padding:8px;font-size:13px}.filter-toggle{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:12px;cursor:pointer;white-space:nowrap}.filter-toggle input{accent-color:var(--green);width:17px;height:17px}.result-meta{display:flex;justify-content:space-between;gap:14px;align-items:center;font-size:12px;color:#66705e;margin-top:13px;padding-top:10px;border-top:1px dashed #b2bba5}.result-meta button{background:none;border:0;color:var(--green);text-decoration:underline;min-height:30px}.places{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.place{padding:21px 22px;background:#fffdf6;border:1.2px solid #b7ad99;border-radius:12px 7px 9px 6px;display:flex;flex-direction:column;position:relative;box-shadow:1px 2px 0 #ded5c3}.place.recommended{border-color:#9fad8f}.place.closed{background:#eeeae1;border-style:dashed}.place.visited{background:#f0f3e7}.place-top{display:flex;justify-content:space-between;align-items:start;gap:13px;margin-bottom:8px}.place-title{min-width:0}.place-area{font-size:10px;color:#817965;margin-bottom:4px}.place h3{font-family:var(--hand);font-size:23px}.score{color:#976245;text-align:right;flex:none;line-height:1.4}.score b{font-family:Georgia,serif;font-size:29px;font-weight:500}.score small{font-size:10px;color:#82796b;display:block}.score em{font-size:10px;color:#99623d;font-style:normal;background:#f6e7cd;padding:1px 5px;border-radius:3px}.score.unrated{font-size:12px;color:#797061;max-width:66px;padding-top:8px}.badges{display:flex;gap:7px;flex-wrap:wrap;margin:7px 0 10px}.badge{font-size:11px;padding:2px 9px;border:1px solid #abb99c;color:#526b48;border-radius:7px 11px 6px 10px;background:#e8efdf}.badge.optional{color:#746b57;background:#f0eadb;border-color:#c7bea8}.badge.conditional{color:#965133;background:#f8e4d2;border-color:#d1ad8d}.badge.closed{color:#805b46;background:#e7d8cb;border-color:#bfa891}.badge.fee{background:transparent;color:#726a5c;border-color:#d1c7b5}.place-description{font-size:13px;color:#645f54;line-height:1.85;margin:2px 0 14px;flex:1}.place-info{display:grid;gap:7px;padding:12px 0;border-top:1px dashed #cfc4af;border-bottom:1px dashed #cfc4af;font-size:12px}.place-info p{display:flex;align-items:baseline;gap:9px}.info-symbol{font-size:15px;min-width:16px;color:#967b43}.place-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:13px}.place-links{display:flex;gap:16px;flex-wrap:wrap}.place-links a{font-size:12px}.check-visited{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;min-height:40px;white-space:nowrap}.check-visited input{width:18px;height:18px;accent-color:var(--green)}.empty{grid-column:1/-1;border:1px dashed var(--line);padding:40px;text-align:center;background:#fffaf0;border-radius:12px}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.info-card{padding:22px;background:#f4ebd5;border:1px solid #c5b794;border-radius:5px 12px 6px 9px}.info-card:nth-child(2){background:#e6eee0;border-color:#aebca1}.info-card:nth-child(3){background:#f5e4da;border-color:#d2b5a3}.info-card h3{font-family:var(--hand);font-size:24px;margin-bottom:11px}.info-card p{font-size:13px;line-height:1.9}.info-card p+p{margin-top:10px}.info-card a{display:inline-block;margin-top:12px;font-size:12px}.photo-note{font-size:12px;color:var(--muted);margin-top:12px}.mini-gallery{display:none}.mini-gallery.has-photos{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:32px 0 24px}.mini-gallery .polaroid img{height:180px}.footer{border-top:2px dashed #c7bda6;padding:28px 0 100px;margin-top:42px;font-size:11px;color:#766e5e}.footer-intro{display:flex;align-items:start;justify-content:space-between;gap:24px;margin-bottom:20px}.footer .hand{font-size:21px}.footer details{margin-top:14px}.footer summary{cursor:pointer;min-height:34px}.footer li{margin:7px 0;line-height:1.7}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(15px);background:#3c5146;color:#fff;padding:12px 20px;border-radius:12px;font-size:13px;box-shadow:2px 4px 12px #0002;opacity:0;pointer-events:none;z-index:90;transition:.2s;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}dialog{width:min(580px,calc(100% - 30px));max-height:88vh;padding:27px;border:1.5px solid var(--ink);border-radius:13px 9px 12px 8px;background:var(--paper);color:var(--ink);box-shadow:8px 8px 0 #2c382a33}dialog::backdrop{background:#31382c65;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:10px}.icon-button{border:1px solid #a69b84;border-radius:50%;background:#fff8eb;width:38px;height:38px;min-width:38px;font-size:20px}.date-form-row{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:18px}.date-form-row h3{grid-column:1/-1;font-size:14px}.date-form-row label{font-size:12px;color:#766a54}.date-form-row input{display:block;width:100%;min-width:0;min-height:43px;padding:8px 10px;border:1px solid #a99d83;border-radius:6px;background:#fffdf8;color:var(--ink);margin-top:4px}.form-error{color:#983f2f;font-size:13px;margin-top:15px}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.notice{display:none;font-size:12px;padding:10px 15px;background:#fbe4d7;border:1px solid #ceab8c;margin:14px 0}.notice.show{display:block}body.no-js .js-only{display:none}.noscript-note{padding:24px;background:#fff0c8}.timeline-date-note{display:none;font-size:12px;color:#935b33;margin-top:10px}.timeline-date-note.show{display:block}
@media(min-width:1350px){.hero{padding:43px 0 31px}.hero-art img{height:300px}}
@media(max-width:950px){.wrap{width:calc(100% - 40px)}.toplinks{gap:14px}.hero{gap:15px}.hero-art img{height:235px}.stop{padding:12px 10px}.stop strong{font-size:20px}.stay-layout{grid-template-columns:1.2fr 1fr;gap:18px}.stay-card{padding:25px 21px}.station-note{padding:25px 20px}.timeline{grid-template-columns:1fr 1fr}.info-grid{grid-template-columns:1fr}.info-card{padding:20px}.polaroid img{height:125px}.photo-strip{gap:15px}.polaroid figcaption{font-size:15px;flex-direction:column;gap:0}.toplinks .desktop-only{display:none}}
@media(max-width:650px){html{scroll-padding-top:74px}body{font-size:14px}.wrap{width:calc(100% - 32px)}.top-inner{min-height:60px;gap:6px}.brand{font-size:20px}.brand-mark{width:29px;height:29px;font-size:19px;margin-right:5px}.toplinks>a{display:none}.toplinks .button{font-size:11px;padding:6px 10px;min-height:36px;box-shadow:1px 2px 0 #d8cfbd}.hero{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:29px 0 16px}.eyebrow{font-size:10px;margin-bottom:13px}h1{font-size:39px;line-height:1.23}.hero-copy>p{font-size:12px;margin-top:15px;max-width:340px}.trip-tags{gap:6px;margin-top:15px}.tag{font-size:10px;padding:3px 9px}.hero-art{align-self:center;width:90%;margin-top:5px}.hero-art img{height:192px}.hero-art>span{font-size:15px;bottom:3px;right:0;padding:2px 10px}.route-block{margin-bottom:20px}.section-kicker{margin-bottom:12px}.section-kicker>span{font-size:21px}.section-kicker .small{font-size:10px}.route{display:flex;overflow-x:auto;gap:11px;padding:7px 3px 10px;margin:0 -3px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#bbb397 transparent}.route:before{display:none}.stop{flex:0 0 142px;scroll-snap-align:start;padding:13px 12px;min-height:115px}.stop strong{font-size:22px}.stop small{font-size:10px}.route-hint{font-size:10px;align-items:start}.route-hint>span{max-width:230px}.route-hint>button{font-size:11px;flex:none}.stay-layout{grid-template-columns:1fr;gap:24px;margin:27px 0 31px}.stay-card{padding:24px 20px 20px}.stay-card h2{font-size:25px}.stay-card .station-eyebrow{font-size:16px}.stay-intro{font-size:13px}.dates-row{gap:8px}.date-stamp{font-size:12px}.station-note{transform:rotate(.4deg);padding:25px 22px 15px}.station-note h3{font-size:23px;margin-bottom:12px}.note-line{padding:10px 0}.section{margin:34px 0}.section-head{align-items:start;gap:12px}.section-head h2{font-size:27px}.section-head p{font-size:11px}.section-num{font-size:10px}.photo-strip{grid-template-columns:1fr 1fr;gap:12px;margin:24px 3px 30px}.photo-strip .wide-photo{grid-column:1/-1;grid-row:2}.photo-strip .wide-photo img{height:100px}.polaroid{padding:7px 7px 9px}.polaroid img{height:124px}.polaroid figcaption{font-size:16px;padding:7px 3px 0}.photo-strip .wide-photo figcaption{flex-direction:row}.polaroid small{font-size:9px}.timeline{grid-template-columns:1fr}.day{padding:18px 20px}.day h3{font-size:23px}.day p{font-size:13px}.catalog-head{padding:14px}.filters{gap:10px}.search-box{max-width:none;flex-basis:100%}.filter-right{width:100%;gap:10px}.filter-right select{flex:1}.result-meta{font-size:11px;gap:10px;align-items:start}.places{grid-template-columns:1fr;gap:15px}.place{padding:20px}.place h3{font-size:24px}.place-description{font-size:13px}.place-bottom{gap:5px}.place-links{gap:13px}.place-info{font-size:11px;gap:8px}.mini-gallery.has-photos{gap:13px}.mini-gallery .polaroid img{height:120px}.footer{padding:25px 0 calc(28px + env(safe-area-inset-bottom))}.footer-intro{flex-direction:column;gap:13px}.footer .hand{font-size:23px}.footer ul{padding-left:19px}.toast{bottom:calc(20px + env(safe-area-inset-bottom));font-size:12px;min-width:220px}.mini-note{font-size:11px}.date-form-row{gap:8px}dialog{padding:22px 18px}.dialog-head h2{font-size:26px}.date-form-row input{font-size:12px;padding:7px}.button{font-size:12px}.section-head .button{padding:7px 10px}.info-card h3{font-size:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
@media print{body{background:#fff;font-size:12px}.wrap{width:100%}.topbar,.hero-art,.filters,.route-hint button,.button,.check-visited,.toast,.js-only,.photo-strip{display:none!important}.hero{display:block;padding:15px 0}h1{font-size:30px}.route{gap:8px}.stop{box-shadow:none!important;transform:none!important}.stay-layout,.places,.timeline{display:block}.place,.day,.paper,.station-note{break-inside:avoid;margin-bottom:15px;box-shadow:none;transform:none}.footer{padding-bottom:0}.place-links a:after{content:' ↗'}a{color:inherit}}

@font-face{font-family:'TripHand';src:url('media/HandwrittenTrip.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--hand:'TripHand','Kaiti SC','STKaiti','KaiTi',serif;--body:'TripHand',-apple-system,'PingFang SC',sans-serif}
body{font-size:17px}.hero-copy>p{font-size:17px}.toplinks>a,.button{font-size:15px}.brand{font-size:26px}.eyebrow{font-size:13px;letter-spacing:1px}.tag{font-size:13px}.stop strong{font-size:25px}.stop small,.stop time{font-size:13px}.route-hint,.route-hint>button{font-size:13px}.stay-intro{font-size:16px}.address,.small,small{font-size:13px}.note-line p{font-size:15px}.note-line a,.note-label{font-size:13px}.day p{font-size:15px}.day time{font-size:14px}.place-description{font-size:15px}.place-info,.place-links a,.check-visited{font-size:14px}.badge,.place-area{font-size:12px}.search-box input,select,.filter-toggle{font-size:14px}.info-card p{font-size:15px}.footer{font-size:13px}.section-head p,.mini-note,.result-meta,.photo-note{font-size:13px}.score b{font-family:var(--hand);font-weight:700;font-size:31px}.score small{font-size:11px}.hero-art img{border-radius:0;height:300px}.hero-art>span{font-size:18px}.topbar{border-bottom:2px dashed #c9bba1}.paper{border-radius:3px 13px 8px 15px / 8px 4px 14px 5px}.place:nth-child(3n){border-radius:7px 12px 9px 14px / 13px 5px 11px 6px}.place h3{font-size:25px}.place-info{line-height:1.8}.place-title h3{letter-spacing:.3px}.polaroid small{font-size:11px}
.map-section{margin:34px 0 42px}.map-section h2{font-size:29px}.map-controls{display:flex;gap:7px;flex:none;align-items:center}.map-controls button{height:40px;min-width:40px;border:1.3px solid #8d846d;background:#fff9e8;border-radius:9px 6px 10px 7px;font-family:var(--hand);font-size:20px;box-shadow:1px 2px 0 #d6cbb4}.map-controls #zoom-reset{font-size:14px;padding:0 10px}.map-controls button:disabled{opacity:.4}.map-paper{padding:9px 9px 0;background:#fff9eb;overflow:hidden}.map-paper:before{content:'';position:absolute;inset:12px;border:1px dashed #c5b997;border-radius:9px;pointer-events:none}.map-viewport{height:420px;overflow:hidden;position:relative;touch-action:pan-y;cursor:default;border-radius:6px;background-image:linear-gradient(#c1c8a423 1px,transparent 1px),linear-gradient(90deg,#c1c8a423 1px,transparent 1px);background-size:27px 27px}.map-viewport.zoomed{touch-action:none;cursor:grab}.map-viewport.dragging{cursor:grabbing}.map-stage{position:absolute;inset:0;transform-origin:center;will-change:transform}.route-drawing{width:100%;height:100%;overflow:visible;position:absolute;inset:0;pointer-events:none}.map-road-under{fill:none;stroke:#ead7ab;stroke-width:10;stroke-linecap:round;vector-effect:non-scaling-stroke}.map-road{fill:none;stroke:#6d8270;stroke-width:2;stroke-dasharray:8 8;stroke-linecap:round;vector-effect:non-scaling-stroke}.map-road-pencil{fill:none;stroke:#928368;stroke-width:.6;opacity:.5;vector-effect:non-scaling-stroke}.map-return{fill:none;stroke:#a7825f;stroke-width:1.5;stroke-dasharray:4 5;vector-effect:non-scaling-stroke}.map-pin{position:absolute;transform:translate(-50%,-50%) rotate(-2deg);min-width:140px;max-width:180px;padding:0 8px 5px;border:none;background:none;display:flex;flex-direction:column;align-items:center;z-index:2}.pin-number{border:1.5px solid #7b8064;border-radius:43% 51% 45% 52%;height:38px;width:38px;background:#e8edcf;color:#52633f;display:grid;place-items:center;box-shadow:2px 3px 0 #d9cdb0;font-size:22px;transition:transform .18s}.pin-name{font-size:22px;background:#fff9eba8;margin-top:3px;border-radius:12px;padding:0 8px;line-height:1.5}.map-pin small{font-size:13px;background:#fff9ebce;padding:0 5px;border-radius:5px}.map-pin[aria-pressed=true] .pin-number{background:#e1a484;color:#342b24;border-color:#9d593b;box-shadow:2px 3px 0 #c98563;transform:rotate(8deg) scale(1.1)}.map-pin[aria-pressed=true] .pin-name{background:#f5dfbe}.map-pin:hover .pin-number{transform:rotate(5deg) scale(1.1)}.map-pin:focus-visible{outline-offset:0;border-radius:10px}.map-leg{position:absolute;transform:translate(-50%,-50%) rotate(-3deg);font-size:17px;color:#6d6654;background:#fff7e5e0;padding:1px 8px;border-radius:8px;text-align:center;line-height:1.4;pointer-events:none;white-space:nowrap}.map-leg small{display:block;font-size:12px;color:#817358}.map-note{position:absolute;transform:translate(-50%,-50%) rotate(-6deg);font-size:22px;color:#a77e47;pointer-events:none;line-height:1.8}.map-home{position:absolute;transform:translate(-50%,-50%);font-size:19px;color:#8a6545;text-align:center;line-height:1.55}.map-home small{font-size:12px;white-space:nowrap}.map-selection{position:relative;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 19px 19px;background:#e5ead8;border-top:1px dashed #a5ae91;margin:0 -9px;font-size:15px}.map-selection strong{font-size:19px;display:block}.map-selection p{font-size:13px;color:#6c715c}.map-selection .actions{margin:0;flex:none}.map-selection .button{font-size:13px;min-height:40px}.map-scale{font-size:12px}.font-license{white-space:pre-wrap;font-family:monospace;font-size:11px;max-height:230px;overflow:auto;background:#fff9ec;padding:12px;border:1px solid #cbbb9e}
@media(max-width:950px){.map-pin{min-width:130px}.map-note{font-size:21px}.map-selection{align-items:start}.map-selection .actions{flex-direction:column}.hero-art img{height:270px}}
@media(max-width:650px){body{font-size:16px}.brand{font-size:22px}.hero-copy>p{font-size:15px;max-width:340px}.hero-art{width:100%;margin-top:13px}.hero-art img{height:225px}.hero-art>span{font-size:16px}.eyebrow{font-size:11px}.tag{font-size:11px}.hero{padding-top:26px}h1{font-size:40px;letter-spacing:0}.stop strong{font-size:23px}.stop small,.stop time{font-size:12px}.route-hint,.route-hint>button{font-size:11px}.route-hint>span{max-width:215px}.stay-intro{font-size:15px}.stay-card h2{font-size:26px}.station-note h3{font-size:25px}.note-line p{font-size:15px}.note-label{font-size:12px}.address{font-size:12px}.date-stamp{font-size:13px}.dates-row .small{font-size:11px}.place-description{font-size:15px;line-height:1.9}.place-info{font-size:13px}.place h3{font-size:25px}.badge,.place-area{font-size:11px}.place-links a,.check-visited{font-size:13px}.score b{font-size:30px}.score small{font-size:10px}.day p,.info-card p{font-size:15px}.day h3{font-size:24px}.section-head p{font-size:12px}.result-meta,.photo-note,.mini-note{font-size:12px}.filter-toggle,select,.search-box input{font-size:13px}.filter-right{gap:9px}.map-section{margin:30px 0}.map-section .section-head{display:block}.map-section h2{font-size:27px}.map-controls{justify-content:flex-end;margin-top:12px}.map-controls button{height:36px;min-width:39px}.map-paper{padding:5px 5px 0}.map-viewport{height:425px}.map-pin{min-width:108px;max-width:120px;padding:0 2px 4px}.pin-number{width:33px;height:33px;font-size:20px}.pin-name{font-size:18px;white-space:nowrap;padding:0 4px}.map-pin small{font-size:10px;white-space:nowrap}.map-leg{font-size:14px;padding:2px 3px}.map-leg small{font-size:10px}.map-note{font-size:17px;left:55%!important;top:62%!important}.map-home{font-size:16px;left:22%!important}.map-home small{font-size:9px}.leg3{top:23%!important;left:36%!important}.leg4{top:33%!important;left:83%!important}.map-selection{display:block;padding:15px 17px;margin:0 -5px}.map-selection strong{font-size:18px}.map-selection p{font-size:12px}.map-selection .actions{flex-direction:row;margin-top:11px;gap:8px}.map-selection .button{font-size:12px;padding:6px 10px}.footer{font-size:12px}.polaroid small{font-size:10px}.toplinks .button{font-size:12px}.mini-gallery .polaroid figcaption{font-size:16px}.mini-gallery .polaroid img{height:142px}}

[hidden]{display:none!important}
body[data-view="home"] .content-only,body[data-view="home"] .detail-only{display:none!important}
body[data-view="detail"] .home-only,body[data-view="all"] .home-only,body[data-view="all"] .detail-only{display:none!important}
.stop{text-decoration:none;color:var(--ink);display:block}.stop[aria-current=true]{background:var(--mint);border-color:var(--green);box-shadow:3px 4px 0 #a6b99e;transform:translateY(-4px) rotate(-1deg)}.stop-open{display:block;font-size:13px;color:var(--green);margin-top:8px;border-top:1px dashed #b5b49b;padding-top:7px}.all-places-link{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:25px;border:1px dashed #ab9b7d;border-radius:12px;background:#fff8e5;margin:35px 0}.all-places-link .hand{font-size:23px}
.detail-page-header{padding:28px 0 0}.back-link{display:inline-flex;align-items:center;min-height:44px;font-size:16px;text-decoration:none;color:var(--green);padding:5px 0;margin-bottom:24px}.back-link:hover{text-decoration:underline}.detail-heading-row{display:flex;justify-content:space-between;gap:25px;align-items:center}.detail-heading-row .eyebrow{font-size:14px;letter-spacing:1px;margin-bottom:9px}.detail-heading-row h1{font-size:44px;letter-spacing:1px;line-height:1.4}.detail-heading-row p:not(.eyebrow){font-size:16px;color:#766e5c;margin-top:8px}.detail-number{font-family:var(--hand);font-size:62px;color:#668365;transform:rotate(8deg);border:2px dashed #a7ae8d;border-radius:46% 53% 42% 51%;width:110px;height:105px;display:grid;place-items:center;background:#e6edce;flex:none}.detail-tabs{display:flex;gap:15px;flex-wrap:wrap;margin-top:25px;padding-bottom:20px;border-bottom:1px dashed #bfb296}.detail-tabs a{font-size:16px;background:#fff9e9;border:1px solid #b7aa8b;border-radius:9px 6px 11px 7px;padding:7px 17px;color:#546b49;text-decoration:none}.detail-tabs a:first-child{background:#dcebd9;border-color:#8da384}.detail-tabs a:hover{background:#f4dfb6}
body[data-view="detail"] #places-section,body[data-view="all"] #places-section{margin-top:27px}.place{overflow:hidden}.place-photo{margin:-21px -22px 18px;flex:none;background:#f0e9d9}.place-photo img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-bottom:1px solid #b9ad96}.place-photo figcaption{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:9px 13px;font-size:12px;line-height:1.65;color:#726957;background:#f7f0df}.place-photo figcaption span{min-width:0}.place-photo figcaption a{font-size:12px;white-space:nowrap;flex:none}.place .place-top{margin-top:0}.place-description,.day p,.info-card p,.stay-intro{font-size:16px}.place-info,.place-links a,.check-visited{font-size:14px}.photo-credit{font-size:12px;color:#716a5a}.result-meta,.photo-note{font-size:13px}body[data-view="home"] .footer{margin-top:25px}
@media(max-width:650px){.detail-page-header{padding-top:18px}.back-link{font-size:15px;margin-bottom:19px}.detail-heading-row{gap:10px}.detail-heading-row h1{font-size:30px;letter-spacing:0}.detail-heading-row .eyebrow{font-size:13px}.detail-heading-row p:not(.eyebrow){font-size:14px;margin-top:7px}.detail-number{font-size:39px;width:67px;height:65px}.detail-tabs{gap:8px;margin-top:20px;padding-bottom:17px}.detail-tabs a{font-size:14px;padding:6px 11px}.place-photo{margin:-20px -20px 17px}.place-photo img{aspect-ratio:16/10}.place-photo figcaption{font-size:12px;padding:8px 11px;gap:8px}.place-photo figcaption a{font-size:12px}.place .place-description{font-size:16px;line-height:1.85}.all-places-link{display:block;padding:20px}.all-places-link .hand{font-size:22px;display:block;margin-bottom:15px}.stop-open{font-size:12px}.stop{min-height:139px}.place-links a,.place-info,.check-visited{font-size:14px}.detail-page-header+.section .section-head{display:block}.detail-page-header+.section #visited-total{display:block;margin-top:10px;font-size:16px!important}}

.scope-control{display:none}.result-meta button{flex-shrink:0;white-space:nowrap}
@media(max-width:650px){.detail-heading-row h1{font-size:28px}.detail-heading-row p:not(.eyebrow){line-height:1.7}.detail-tabs{margin-top:18px}.detail-page-header+.section #visited-total{font-size:14px!important;margin-top:7px}.catalog-head{padding:12px}.filter-right{gap:14px}.filter-toggle{min-height:36px}.result-meta{margin-top:6px;padding-top:7px;font-size:12px}.detail-tabs a{min-height:40px}.section-head{margin-bottom:15px}}

@media(max-width:650px){#places-section>.section-head{display:block}#visited-total{display:block;font-size:14px!important;margin-top:7px}}

/* Hotel exteriors keep their own album, separate from nearby scenery. */
.hotel-album{margin:0 0 24px;min-width:0}.hotel-main-photo{position:relative;display:block;width:100%;padding:0;border:1px solid #c9bca3;border-radius:5px 9px 4px 7px;overflow:hidden;background:#f3ecdc;cursor:zoom-in}.hotel-main-photo img{display:block;width:100%;height:clamp(200px,26vw,340px);object-fit:cover}.hotel-main-photo>span{position:absolute;left:12px;bottom:10px;padding:3px 9px;background:#fff9eae8;border-radius:4px;color:var(--green);font-size:12px}.hotel-album figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:7px 0;color:var(--muted);font-size:12px}.hotel-album figcaption>a{flex:none;font-size:11px}.hotel-photo-thumbs{display:flex;align-items:center;gap:8px}.hotel-photo-thumbs button{padding:3px;background:#fffcf4;border:1.5px solid #c5bda9;border-radius:6px 4px 7px 5px}.hotel-photo-thumbs button[aria-pressed="true"]{border-color:var(--green);background:#e3ebdb;box-shadow:1px 2px 0 #bdc9ae}.hotel-photo-thumbs img{display:block;width:64px;height:42px;object-fit:cover;border-radius:3px}.hotel-photo-thumbs>span{font-size:12px;color:var(--muted);margin-left:3px}.stay-layout .station-note{align-self:start}
@media(max-width:650px){.hotel-album{margin-bottom:20px}.hotel-main-photo img{height:210px}.hotel-album figcaption{font-size:11px}.hotel-photo-thumbs>span{font-size:11px}.hotel-photo-thumbs img{width:58px;height:40px}}

.days-only,.day-only{display:none}
body:not([data-view="home"]):not([data-view="days"]) .day-index-only{display:none!important}
body[data-view="days"] .home-only,body[data-view="day"] .home-only,body[data-view="days"] .content-only,body[data-view="day"] .content-only,body[data-view="days"] .detail-only,body[data-view="day"] .detail-only{display:none!important}
body[data-view="days"] .days-only,body[data-view="day"] .day-only{display:block}
.day-index{margin:36px 0 46px}.day-index .section-head p{font-size:15px}.day-index .back-link{margin-bottom:15px}
.day-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.day-entry{display:flex;flex-direction:column;color:var(--ink);text-decoration:none;padding:20px;background:#fffdf6;border:1px solid #baa98a;border-radius:7px 12px 8px 14px;box-shadow:3px 4px 0 #e8deca;transition:transform .18s,box-shadow .18s;min-width:0}
.day-entry:nth-child(4n+2){background:#edf1e1}.day-entry:nth-child(4n+3){background:#fcf0df}.day-entry:nth-child(4n){background:#eff2ec}
.day-entry:hover{transform:translateY(-3px) rotate(-.4deg);box-shadow:4px 6px 0 #ddd2b9}.day-entry:focus-visible{outline:3px solid var(--green);outline-offset:4px}
.day-entry-top{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px dashed #c6b898;padding-bottom:9px}.day-entry-top time{font-size:21px;color:var(--green);font-weight:700}.day-entry-top small{font-size:11px;letter-spacing:.06em;white-space:nowrap;color:#87785c}
.day-entry h3{font-size:22px;line-height:1.5;margin:12px 0 14px}.day-entry-stay{font-size:13px;color:#726b5e;margin-top:auto}.day-entry-open{font-size:14px;color:var(--green);margin-top:10px}
.timeline .day-entry{min-height:175px}.day-breadcrumb{display:flex;align-items:center;justify-content:space-between;padding-top:22px;gap:20px}.day-breadcrumb .back-link{margin:0}.day-breadcrumb>a:last-child{font-size:14px;color:var(--green)}
.day-heading{padding:25px 0 28px;max-width:850px}.day-heading .eyebrow{margin-bottom:12px}.day-heading h1{font-size:42px;line-height:1.4;letter-spacing:0}.day-heading h1 time{color:var(--green);display:block;font-size:26px;margin-bottom:10px}.day-heading h1 span{display:block}.day-heading>p:last-child{font-size:16px;color:#766e5c;line-height:1.9;margin-top:15px}
.day-detail-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start;gap:30px}.day-schedule{padding:30px}.day-schedule>h2,.day-lodging h2{font-size:28px;line-height:1.5}.day-schedule ol{list-style:none;padding:0 0 0 15px;margin:25px 0 0;border-left:2px dashed #b6c3a4}.day-schedule li{position:relative;padding:0 0 25px 16px}.day-schedule li:before{content:'';position:absolute;left:-22px;top:7px;width:10px;height:10px;border:2px solid #809572;border-radius:50%;background:#f5ecd6}.day-slot-time{font-size:15px;color:var(--green)}.day-schedule li h3{font-size:22px;line-height:1.5;margin:6px 0}.day-schedule li p{font-size:15px;line-height:1.9}.day-footnote{border-top:1px dashed #c9baa0;padding-top:15px;font-size:13px;color:#766e5c;line-height:1.8}
.day-lodging{padding:26px;background:#eef2e4}.day-lodging .section-num{font-size:13px}.day-lodging>p{font-size:14px;margin:12px 0 18px}.day-food{border-top:1px dashed #afba9f;padding-top:18px;margin-top:24px}.day-food h3{font-size:23px}.day-food p{font-size:14px;line-height:1.9;margin:8px 0}
.day-place-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.day-place{overflow:hidden;display:flex;flex-direction:column}.day-place .place-photo{margin:0}.day-place-copy{padding:18px;display:flex;flex-direction:column;flex:1}.day-place h3{font-size:23px;line-height:1.5}.day-place-copy>p{font-size:13px;color:#766e5c;margin:10px 0 18px}.day-place .actions{margin-top:auto}.day-place .button{font-size:13px;padding:7px 12px}
.day-alternatives{padding:20px;border:1px dashed #b8aa8e;border-radius:12px;background:#f8f1e2;margin:25px 0}.day-alternatives>summary{font-size:21px;color:var(--green);cursor:pointer}.day-alternatives>p{font-size:14px;margin:12px 0 20px}.day-pagination{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;border-top:1px dashed #c5bba7;padding-top:25px;margin:38px 0 20px}
@media(max-width:1000px){.day-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.day-place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.day-index{margin:30px 0}.day-index .section-head{display:block}.day-index .section-head p{font-size:13px}.day-index .section-head .button{margin-top:12px}.day-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.day-entry{padding:13px 12px;border-radius:6px 10px 7px 11px}.day-entry-top{gap:4px;flex-wrap:wrap}.day-entry-top time{font-size:18px}.day-entry-top small{font-size:10px}.day-entry h3{font-size:20px;margin:10px 0 12px}.day-entry-stay{font-size:12px}.day-entry-open{font-size:13px}.day-heading{padding:22px 0}.day-heading h1{font-size:29px}.day-heading h1 time{font-size:22px}.day-heading>p:last-child{font-size:15px}.day-detail-layout{grid-template-columns:1fr;gap:22px}.day-schedule{padding:23px 19px}.day-schedule>h2,.day-lodging h2{font-size:25px}.day-lodging{padding:23px 20px}.day-schedule li{padding-left:12px}.day-schedule li h3{font-size:22px}.day-schedule li p{font-size:15px}.day-aside{min-width:0}.day-place-grid{grid-template-columns:1fr;gap:18px}.day-place .place-photo{margin:0}.day-pagination .button{font-size:13px;padding:9px 11px}.day-alternatives{padding:17px}.day-alternatives>summary{font-size:19px}.day-breadcrumb{padding-top:14px}}

.day-heading .day-flexible-note{font-size:14px;color:var(--green);background:#eaf0df;border-radius:8px 13px 6px 10px;padding:10px 14px;margin-top:15px}.day-index h1{font-size:30px;letter-spacing:0}

.hero-actions{align-items:center;margin-top:23px}.hero-stay-link{font-size:14px}.hero-copy h1{font-size:clamp(36px,4vw,54px);letter-spacing:0}.hero .trip-tags{max-width:530px}
.route{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;overflow:visible;padding:9px 0;margin:0}.route:before{display:none}
.stay-preview{grid-column:auto;background:#fffdf6;border:1.5px solid #b5a689;border-radius:7px 17px 9px 13px;box-shadow:4px 5px 0 #e5dcc7;position:relative;min-width:0;display:flex;flex-direction:column}
.stay-preview:nth-child(4),.stay-preview:nth-child(5){grid-column:auto}.stay-preview:before{content:'';position:absolute;top:-10px;left:40%;width:68px;height:20px;background:#dfdfa8b8;transform:rotate(-5deg);z-index:2}.stay-preview:nth-child(2n):before{background:#eac5aabd;transform:rotate(5deg)}
.stay-preview-cover{position:relative;display:block;margin:9px 9px 0;text-decoration:none;overflow:hidden;border-radius:3px 9px 2px 5px;background:#e3e6ce}.stay-preview-cover img{width:100%;height:185px;object-fit:cover;display:block}.stay-preview-number{position:absolute;top:9px;left:10px;background:#fff9e7ef;border:1px solid #c3b18d;border-radius:7px 3px 8px 4px;padding:2px 10px;transform:rotate(-4deg);color:#695438;font-size:13px}.stay-preview-caption{position:absolute;bottom:0;left:0;right:0;padding:16px 10px 5px;background:linear-gradient(transparent,#17271dc4);color:white;font-size:11px}
.stay-preview-body{padding:16px 20px 18px;flex:1;display:flex;flex-direction:column}.stay-preview-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.stay-preview h3{font-size:27px;line-height:1.3}.stay-preview h3 a{text-decoration:none;color:var(--ink)}.stay-preview-area-label{font-size:12px;color:#847452;display:block;margin-bottom:6px}.booked-stamp{border:1px dashed #769170;border-radius:5px 10px;color:#536e48;transform:rotate(-5deg);font-size:12px;padding:3px 7px;white-space:nowrap;background:#eaf0e0}.stay-preview-hotel{font-size:16px;color:var(--green);margin-top:12px}.stay-preview-dates{font-size:13px;color:#796f5b;margin-top:5px}.stay-preview-label{font-size:13px;color:#807157;border-top:1px dashed #cabb9d;margin-top:16px;padding-top:12px}.stay-quick-places{display:grid;gap:4px;margin:5px 0 14px}.stay-quick-places a{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;min-height:40px;border-radius:7px;padding:4px 7px;background:#eef2e580;font-size:14px}.stay-quick-places a:hover{background:#e1eacb}.stay-quick-places a span{min-width:0;line-height:1.6}.stay-quick-places b{font-size:18px;white-space:nowrap;color:#976245;font-weight:400}.stay-quick-places small{font-size:10px;color:#877b65}.stay-preview-more{display:flex;align-items:center;justify-content:center;min-height:43px;border:1px solid #b2bca0;border-radius:9px 5px 11px 7px;background:#eaf0df;text-decoration:none;font-size:15px;margin-top:auto}
.route-hint{font-size:13px}.route-hint>button{white-space:nowrap}.footer{padding-bottom:calc(28px + env(safe-area-inset-bottom))}
@media(max-width:950px){.toplinks{gap:12px}.stay-preview-body{padding:14px}.stay-preview h3{font-size:24px}.booked-stamp{font-size:11px}.stay-quick-places a{font-size:13px}.stay-preview-hotel{font-size:15px}}
@media(max-width:650px){.hero-copy h1{font-size:35px;line-height:1.35}.hero-actions{gap:12px;margin-top:19px}.hero-actions .button{font-size:14px;padding:10px 13px}.hero-stay-link{font-size:13px}.hero-art img{height:220px}.section-kicker{align-items:start;flex-direction:column;gap:4px}.section-kicker>span{font-size:25px}.section-kicker .small{font-size:13px}.route{grid-template-columns:1fr;gap:22px;padding:8px 0}.stay-preview,.stay-preview:nth-child(4),.stay-preview:nth-child(5){grid-column:auto}.stay-preview-cover img{height:155px}.stay-preview-body{padding:15px 18px 17px}.stay-preview h3{font-size:28px}.stay-preview-hotel{font-size:17px}.stay-preview-dates{font-size:14px}.stay-preview-area-label{font-size:12px}.booked-stamp{font-size:13px;padding:4px 8px}.stay-quick-places a{font-size:15px;min-height:43px}.stay-preview-more{font-size:16px}.stay-preview-label{font-size:14px}.route-hint{flex-wrap:wrap;font-size:12px;align-items:center}.route-hint>span{max-width:none}.route-hint>button{font-size:12px}.topbar .brand{font-size:19px}.topbar .brand-mark{width:26px;height:26px;font-size:17px;margin-right:4px}.toplinks{gap:7px}.hero .tag{font-size:12px}.day-index .section-head h2{font-size:26px}}

.stay-quick-places .place-unavailable{font-size:12px;color:#88705c}.stay-quick-places a{align-items:baseline}.stay-preview-more{margin-top:0}

.route{grid-auto-rows:8px;row-gap:16px;align-items:start}.stay-preview{align-self:start}
.stay-preview-days .stay-preview-label{margin-top:12px}.stay-preview-days>a{display:flex;gap:10px;align-items:baseline;min-height:40px;padding:5px 0;text-decoration:none;font-size:14px;border-bottom:1px dotted #d9ccb1}.stay-preview-days time{font-size:17px;color:#a46f48;min-width:39px}.stay-preview-days>a span:nth-child(2){flex:1}.stay-preview-days>a:hover{color:#a46f48}.stay-preview-food{background:#faf0d9;border:1px dashed #cfbf94;border-radius:6px 11px 8px 5px;padding:12px 14px;margin:3px 0 16px}.stay-preview-food>span{font-size:14px;color:#897448}.stay-preview-food p{font-size:14px;line-height:1.9;margin-top:5px}
@media(max-width:650px){.route{grid-auto-rows:auto;row-gap:22px}.stay-preview{grid-row-end:auto!important}.stay-preview-days>a{font-size:15px}.stay-preview-food p{font-size:14px}}

/* One continuous row, with all five stays kept in itinerary order. */
.route{display:flex;flex-wrap:nowrap;gap:24px;overflow-x:auto;overflow-y:visible;scroll-snap-type:x proximity;scroll-padding-inline:4px;overscroll-behavior-x:contain;padding:15px 4px 18px;margin:0 -4px;align-items:flex-start;scrollbar-width:thin;scrollbar-color:#a6b398 #eee6d4}
.stay-preview{flex:0 0 clamp(330px,36vw,410px);width:clamp(330px,36vw,410px);scroll-snap-align:start;grid-row-end:auto!important}.stay-preview-cover img{height:180px}.stay-preview-body{padding:17px 19px}.stay-preview-food p{font-size:13px}.stay-preview-more{margin-top:auto}.route-carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:8px;color:#847558;font-size:13px}.route-carousel-controls>div{display:flex;gap:10px}.route-carousel-controls button{min-width:44px}.route-carousel-controls button:disabled{opacity:.4;transform:none;box-shadow:none}
@media(max-width:650px){.route{gap:17px;padding-top:15px}.stay-preview{flex-basis:calc(100vw - 60px);width:calc(100vw - 60px);max-width:390px}.route-carousel-controls{font-size:12px;gap:10px}.route-carousel-controls .button{min-width:38px;min-height:36px;padding:5px 10px}.stay-preview-cover img{height:175px}}

/* Compact stay cards: the full itinerary stays accessible inside three tabs. */
.stay-preview{height:min(620px,calc(100svh - 165px));min-height:390px;overflow:hidden}
.stay-preview-cover{flex-shrink:0}.stay-preview-cover img{height:clamp(80px,16svh,135px)}.stay-preview-caption{font-size:10px;padding:13px 8px 4px}.stay-preview:before{top:0;height:12px}
.stay-preview-body{padding:12px 16px 14px;min-height:0}.stay-preview h3{font-size:24px}.stay-preview-area-label{display:inline;font-size:11px;margin-right:7px}.stay-preview-hotel{font-size:15px;line-height:1.55;margin-top:7px}.stay-preview-hotel>span{color:#8b8377}.stay-preview-hotel>a{color:var(--green);font-weight:600;text-decoration:none}.stay-preview-hotel>a:hover{text-decoration:underline}.stay-preview-dates{font-size:12px;margin-top:4px}
.stay-mini-tabs{display:flex;gap:5px;border-top:1px dashed #cdbb96;padding-top:10px;margin-top:10px;flex-shrink:0}.stay-mini-tabs button{flex:1;min-width:0;min-height:36px;font-size:12px;background:#f5efdf;border:1px solid #d1c5ad;border-radius:7px 4px 8px 5px;padding:4px}.stay-mini-tabs button[aria-selected="true"]{background:#e4ecd7;border-color:#8ba17f;color:#476f50;box-shadow:1px 2px 0 #d0d9c0}
.stay-mini-panels{flex:1;min-height:0;display:flex;padding:10px 0}.stay-mini-panel{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#b8bda4 #faf7ed;padding-right:3px}.stay-mini-panel.stay-preview-food{border:0;background:#faf1df;border-radius:7px;padding:13px;margin:0}.stay-mini-panel.stay-preview-food p{margin:0 0 13px;font-size:14px}.stay-mini-panel.stay-preview-food>a{font-size:14px}.stay-preview-days>a{min-height:43px;font-size:14px;padding:7px 0;line-height:1.7}.stay-preview-days time{font-size:16px;min-width:39px}.stay-plan-note{font-size:12px;color:#92856d;margin-top:14px;line-height:1.7}.stay-quick-places{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0}.stay-quick-places>a{align-items:start;gap:5px;font-size:13px;min-height:44px;padding:6px;line-height:1.5}.stay-quick-places a span{line-height:1.5}.stay-quick-places b{font-size:16px}.stay-quick-places .place-unavailable,.stay-quick-places small{font-size:10px}.stay-preview-more{min-height:38px;font-size:14px;flex-shrink:0;margin-top:0}.route{scroll-padding-top:0}
@media(max-width:650px){.hero-art{width:100vw;max-width:none;align-self:center;margin:15px -16px 0}.hero-art img{width:100%;height:auto;max-height:none;object-fit:contain}.hero-art>span{right:6%;bottom:6px;font-size:15px}.stay-preview{height:calc(100svh - 160px);max-height:625px;min-height:380px}.stay-preview-cover img{height:clamp(75px,16svh,130px)}.stay-preview h3{font-size:25px}.stay-preview-body{padding:12px 14px}.stay-preview-hotel{font-size:15px}.stay-preview-area-label{font-size:11px}.stay-mini-tabs button{font-size:12px;min-height:37px}.stay-quick-places>a{font-size:13px;min-height:46px}.stay-preview-days>a{font-size:14px}.stay-preview-more{min-height:40px;font-size:14px}.booked-stamp{font-size:11px;padding:3px 6px}}
@media(max-height:550px){.stay-preview{height:calc(100svh - 90px);min-height:0}.stay-preview-cover{display:none}.stay-mini-tabs{margin-top:6px;padding-top:6px}.stay-preview-body{padding:10px 14px}.stay-plan-note{display:none}}
/* Keep the five covers, tab panels and footers aligned without a tall spacer. */
.stay-preview{height:min(535px,calc(100svh - 155px));min-height:375px}.stay-preview-cover img{height:clamp(75px,14svh,112px)}.stay-preview-body{padding-top:10px}.stay-mini-panels{padding:8px 0}.stay-preview-days>a{min-height:39px;padding:5px 0}.stay-plan-note{margin-top:9px;font-size:11px}.stay-mini-tabs{margin-top:8px;padding-top:8px}.stay-preview-food p{line-height:1.8}
@media(max-width:650px){.stay-preview{height:min(540px,calc(100svh - 145px));min-height:375px}.stay-preview-cover img{height:clamp(75px,14svh,112px)}.stay-preview-body{padding-top:10px}.stay-preview h3{font-size:24px}.stay-mini-tabs button{min-height:35px}.stay-preview-days>a{min-height:40px}.stay-plan-note{font-size:11px}.stay-preview-more{min-height:37px}}
@media(max-height:550px){.stay-preview{height:calc(100svh - 90px);min-height:0}.stay-preview-cover{display:none}}
@media(max-width:650px){.hero-art{width:100%;max-width:100%;align-self:stretch;margin:15px 0 0}.hero-art img{width:100%;height:auto}.hero-art>span{right:3%}}

[hidden]{display:none!important}
.topbar{padding-top:env(safe-area-inset-top)}
.pwa-install-button{white-space:nowrap;background:var(--mint)}
.pwa-cache-details{font-size:13px;color:var(--green);margin-top:15px}.pwa-cache-details button{margin-left:10px}
.pwa-update-note{width:min(1180px,calc(100% - 32px));margin:0 auto 20px;text-align:right}.pwa-update-note button,.pwa-cache-details button{border:1px dashed var(--green);border-radius:8px 5px;background:var(--card);padding:5px 12px;font-size:13px;min-height:40px}
#install-dialog{width:min(460px,calc(100% - 32px));max-height:85dvh;overflow:auto;padding:25px;border-radius:19px 11px 24px 13px;border:2px solid var(--green);background:var(--paper)}
#install-dialog h2{font-size:28px;letter-spacing:0}.install-intro{display:flex;gap:16px;align-items:center;margin:20px 0}.install-intro img{border:1.5px solid #95a58a;border-radius:18px;box-shadow:3px 4px 0 #d9dfc4;flex:none}
#install-dialog ol{padding-left:25px}#install-dialog li{padding:5px 0}.install-note{font-size:13px;color:var(--muted);border-top:1px dashed var(--line);padding-top:15px;margin-top:20px}#install-now{margin-top:15px;min-height:44px}
@media(max-width:650px){.toplinks #pwa-install{display:inline-flex;min-height:42px;padding:7px 10px;font-size:13px}.top-inner{gap:8px}.install-intro p{font-size:15px}.install-intro{gap:12px}#install-dialog{padding:22px 18px}}
@media(display-mode:standalone){.pwa-install-button{display:none!important}.topbar .top-inner{min-height:60px}}
@media print{.pwa-update-note,#install-dialog,.pwa-install-button{display:none!important}}

.attraction-only{display:none}
body[data-view="place"] .home-only,body[data-view="place"] .content-only,body[data-view="place"] .detail-only{display:none!important}
body[data-view="place"] .attraction-only{display:block}
.places,.day-place-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.scenic-card{min-width:0;overflow:hidden;border:1.3px solid #aa9c82;border-radius:8px 13px 9px 12px;background:#fffdf5;box-shadow:4px 5px 0 #e1d8c3;display:flex;flex-direction:column}
.scenic-cover{position:relative;display:block;overflow:hidden}.scenic-cover img{width:100%;height:auto;aspect-ratio:1.5;object-fit:cover;display:block;transition:transform .25s}.scenic-cover:hover img{transform:scale(1.035)}
.scenic-stamp{position:absolute;top:12px;left:12px;background:#edf3e7f0;color:#47684f;border:1px dashed #98aa84;border-radius:5px 8px 4px 9px;font-size:12px;padding:3px 8px;transform:rotate(-3deg)}.scenic-stamp.conditional,.scenic-stamp.closed{background:#fae9d9ed;color:#8b5c3d;border-color:#bd9e7e}
.scenic-caption{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#f6f0dd;padding:8px 13px;font-size:11px;color:#83765e}.scenic-caption a{white-space:nowrap}
.scenic-copy{padding:21px;display:flex;flex-direction:column;flex:1}.scenic-copy h3{font-size:25px;line-height:1.45}.scenic-copy h3 a{color:var(--ink);text-decoration:none}.scenic-copy h3 a:hover{text-decoration:underline}.scenic-rating{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px;font-size:14px;color:#7b715b;margin-top:14px}.scenic-rating b{font-size:23px;color:#9a6947}.scenic-rating>span{font-size:12px;margin-left:auto}.scenic-fee{font-size:14px;color:#6f705c;line-height:1.7;margin:9px 0 20px}.scenic-copy .actions{margin-top:auto;gap:10px}.scenic-card.visited .scenic-copy{background:#edf2e3}.scenic-card.closed{border-style:dashed}
.attraction-breadcrumb{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:20px}.attraction-breadcrumb .back-link{margin:0}.attraction-breadcrumb>a:last-child{font-size:14px;text-align:right}
.attraction-heading{padding:24px 0 28px}.attraction-heading h1{font-size:42px;line-height:1.4;letter-spacing:0}.attraction-heading>p:last-child{font-size:21px;color:#887957;margin-top:10px}.attraction-hero{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:30px;align-items:start}
.attraction-main-photo{margin:0;padding:10px;background:#fffef7;border:1px solid #b8aa90;box-shadow:4px 5px 0 #e3d9c3;border-radius:5px 13px 7px 10px}.attraction-main-photo button{display:block;width:100%;padding:0;border:0;position:relative;background:#eeeddd}.attraction-main-photo img{display:block;width:100%;height:auto;max-height:530px;object-fit:contain}.attraction-main-photo button span{position:absolute;right:10px;bottom:10px;background:#fff9e9eb;border-radius:9px;padding:5px 10px;font-size:12px;color:#526d53}.attraction-main-photo figcaption{font-size:12px;color:#80755f;padding:12px 7px 3px;line-height:1.7}
.attraction-pocket{background:#edf2e3;padding:25px}.attraction-pocket>.section-num{font-size:13px}.attraction-score{display:flex;align-items:center;gap:12px;margin:12px 0 18px;color:#936444}.attraction-score>b{font-size:47px;line-height:1.1}.attraction-score>span{font-size:13px;line-height:1.7}.attraction-pocket dl{margin:0}.attraction-pocket dl>div{padding:12px 0;border-top:1px dashed #b5bea3}.attraction-pocket dt{font-size:14px;color:#557058}.attraction-pocket dd{margin:5px 0 0;font-size:15px;line-height:1.7}.attraction-pocket .actions{gap:10px;margin:15px 0 12px}.attraction-snapshot{font-size:11px;color:#7a745f;margin-top:5px}.attraction-alert{padding:12px;background:#f8e8d4;border:1px dashed #c3a481;border-radius:6px 12px;font-size:14px;margin-top:14px}
.attraction-story{display:grid;grid-template-columns:1.35fr 1fr;gap:24px;margin-top:32px;align-items:start}.attraction-story>.paper{padding:29px}.attraction-story h2{font-size:27px;line-height:1.5;margin:10px 0 17px}.attraction-story p{font-size:16px;line-height:1.95}.attraction-story .section-num{font-size:14px}.attraction-highlights{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}.attraction-highlights li{font-size:14px;background:#f4ecd7;padding:6px 10px;border-radius:9px 5px}.attraction-about .attraction-address{font-size:13px;color:#84775c;border-top:1px dashed #d6c9ad;padding-top:15px}.attraction-family{background:#f8ecdd}.attraction-meals{padding-top:18px;margin-top:20px;border-top:1px dashed #cbbb9f}.attraction-meals h3{font-size:22px;margin-bottom:7px}.attraction-meals p,.attraction-meals a{font-size:14px}.attraction-camera{grid-column:1/-1;background:#f5efd9}.attraction-camera h2{font-size:25px}.attraction-camera small{display:block;margin-top:16px;color:#867960;font-size:13px}
.attraction-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.attraction-gallery figure{margin:0;padding:9px;background:#fffdf6;border:1px solid #bdad92;border-radius:4px 10px 7px 9px;box-shadow:3px 4px 0 #e1d6bd}.attraction-gallery button{display:block;border:0;padding:0;width:100%;background:#f1ecdf}.attraction-gallery img{width:100%;height:240px;display:block;object-fit:cover}.attraction-gallery figcaption{font-size:13px;line-height:1.7;padding:12px 5px 6px}.attraction-gallery figcaption a{display:inline-block;margin-top:6px}.attraction-day-links{padding:25px 0;border-top:1px dashed #bcac8d}.attraction-day-links h2{font-size:25px;margin-bottom:15px}.attraction-day-links>p{font-size:15px}.attraction-stay-link{display:inline-block;margin-top:20px;font-size:16px}.attraction-sources{border:1px dashed #cbbb9a;border-radius:8px;padding:16px 20px;margin:15px 0 35px;font-size:13px;color:#7c705a}.attraction-sources summary{cursor:pointer;color:var(--green)}.attraction-sources ul{padding-left:20px}.attraction-sources li{margin:9px 0;overflow-wrap:anywhere}
#photo-dialog{width:min(1150px,calc(100% - 24px));padding:18px;max-height:95dvh}#photo-dialog .dialog-head{justify-content:flex-end;margin:0 0 12px}#photo-dialog img{width:100%;max-height:70dvh;display:block;object-fit:contain}#photo-dialog-caption{font-size:14px;margin:12px 0;line-height:1.7}#photo-dialog .photo-controls{display:flex;justify-content:space-between;gap:15px}.photo-controls button:disabled{opacity:.45}
@media(max-width:1000px){.places,.day-place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.attraction-hero{grid-template-columns:1fr 1fr;gap:22px}.attraction-pocket{padding:20px}.attraction-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.places,.day-place-grid{grid-template-columns:1fr;gap:22px}.scenic-copy{padding:20px}.scenic-copy h3{font-size:27px}.attraction-heading h1{font-size:32px}.attraction-heading>p:last-child{font-size:18px}.attraction-breadcrumb{align-items:start;gap:14px}.attraction-breadcrumb>a:last-child{max-width:45%;font-size:12px;padding-top:10px}.attraction-hero,.attraction-story{grid-template-columns:1fr;gap:22px}.attraction-story{margin-top:25px}.attraction-story>.paper{padding:23px 20px}.attraction-story h2{font-size:25px}.attraction-main-photo{padding:7px}.attraction-main-photo img{max-height:430px}.attraction-gallery{grid-template-columns:1fr;gap:20px}.attraction-gallery img{height:auto;max-height:350px;object-fit:contain}.attraction-sources{padding:14px}.attraction-day-links .actions{align-items:stretch;flex-direction:column}.attraction-camera h2{font-size:22px}#photo-dialog img{max-height:60dvh}#photo-dialog-caption{font-size:13px}}
@media(prefers-reduced-motion:reduce){.scenic-cover img{transition:none}}

.attraction-about{grid-column:1/-1}.attraction-about>p{max-width:85ch}.attraction-history{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:26px;padding-top:24px;border-top:1px dashed #c7b99a}.attraction-history h3{font-size:23px;color:#967144;margin-bottom:13px;line-height:1.5}.attraction-history p{font-size:16px;line-height:2}.attraction-camera{grid-column:auto}.attraction-story{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:650px){.attraction-history,.attraction-story{grid-template-columns:1fr}.attraction-history{gap:23px;margin-top:21px;padding-top:20px}.attraction-history h3{font-size:22px}.attraction-history p{font-size:16px}.attraction-story .attraction-about{padding:25px 21px}}
