@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&display=swap');
:root{--paper:#f7f4e9;--ink:#243b32;--muted:#768076;--line:#dcded0;--red:#b64b35;--sage:#647b59;--gold:#ae823d;--blue:#648b91;--shadow:0 18px 60px #273c3220}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.7 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}button,a,input,select{ -webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button{border:0;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:hover,a:hover{color:var(--red)}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 4%;border-bottom:1px solid var(--line);position:relative;z-index:5;background:var(--paper)}.brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:2px;font-size:16px}.brand i{font-family:Georgia,serif;font-weight:400;letter-spacing:0;font-size:17px}.brand-mark{border:1px solid var(--red);color:var(--red);font-family:serif;font-size:26px;line-height:40px;width:40px;text-align:center;transform:rotate(-4deg)}nav{display:flex;gap:30px;height:100%;align-items:center}.nav{height:100%;position:relative;font-size:13px}.nav.active:after{content:"";position:absolute;bottom:18px;left:8px;right:8px;height:2px;background:var(--red)}.travel-kit{border:1px solid var(--line);border-radius:30px;padding:8px 18px;font-size:12px}.travel-kit span{margin-left:16px}.view{display:none}.view.active{display:block}.atlas{position:relative;height:calc(100svh - 138px);min-height:640px;max-height:1050px;overflow:hidden;background:#e9e6d4;touch-action:pan-y pinch-zoom;cursor:default}.atlas.dragging{cursor:grabbing}.map-world{position:absolute;width:1500px;height:1000px;transform-origin:0 0;will-change:transform}.map-world>img{width:100%;height:100%;object-fit:cover;user-select:none}.map-world svg,#map-pins{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#route-lines path{fill:none;stroke-width:4;stroke-linecap:round;stroke-dasharray:7 9;opacity:.9;filter:drop-shadow(0 1px 2px #fff)}.map-intro{position:absolute;left:0;top:0;bottom:0;width:37%;padding:50px 3.8%;background:linear-gradient(90deg,#f7f4e9 10%,#f7f4e9f5 57%,#f7f4e9b3 82%,#f7f4e900);pointer-events:none;cursor:default}.map-intro>*{pointer-events:auto}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:600;color:var(--sage)}h1,h2,h3,.serif{font-family:"Noto Serif SC","Songti SC",serif;font-weight:500}h1{font-size:clamp(42px,4.5vw,72px);line-height:1.35;letter-spacing:3px;margin:20px 0}h1 em{font-style:normal;color:var(--red)}.map-intro p{font-size:13px;line-height:2;color:#687567}.trip-chips{display:flex;gap:7px;margin:20px 0}.trip-chips span{font-size:10px;border:1px solid #c5cbb9;border-radius:2px;padding:3px 8px;background:#f7f4e970}.primary{display:flex;justify-content:space-between;gap:30px;align-items:center;background:var(--ink);color:white;padding:13px 19px;font-size:13px;border-radius:3px}.primary:hover{background:var(--red);color:white}.text-button{font-size:11px;color:var(--muted);padding:12px 0}.compass{position:absolute;right:35px;top:25px;font-size:40px;line-height:1;text-align:center;pointer-events:none}.compass span{display:block;font:10px Georgia,serif;letter-spacing:2px}.zoom-controls{position:absolute;right:28px;bottom:173px;display:grid;gap:1px;background:#dfdfd2;box-shadow:var(--shadow);border-radius:6px;overflow:hidden}.zoom-controls button{width:42px;height:40px;font-size:22px;background:#fffcf2}.map-caption{position:absolute;bottom:133px;left:40%;font-size:10px;background:#fffcf2e8;padding:7px 13px;border-radius:30px;display:flex;align-items:center;gap:8px;pointer-events:none}.status-dot{width:6px;height:6px;background:var(--sage);border-radius:50%}.map-disclaimer{position:absolute;top:20px;left:42%;font-size:9px;color:#4b6256;background:#fff9;padding:3px 10px;border-radius:20px;pointer-events:none}.day-dock{position:absolute;bottom:22px;left:4%;right:4%;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;cursor:default}.day-card{display:flex;text-align:left;align-items:center;gap:13px;background:#fdfbf3f5;border:1px solid #ebe5d5;padding:16px 17px;border-radius:5px;box-shadow:0 5px 15px #34452c0d;transition:transform .2s}.day-card:hover{transform:translateY(-4px)}.day-card.active{border-color:var(--day-color);box-shadow:0 0 0 1px var(--day-color)}.day-num{font-family:Georgia,serif;font-size:31px;color:var(--day-color);line-height:1}.day-card small{display:block;color:var(--muted);font-size:10px}.day-card strong{font-size:13px;font-weight:500}.day-card .arrow{margin-left:auto}.pin{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;display:flex;align-items:center;gap:5px;white-space:nowrap;filter:drop-shadow(0 3px 4px #22372d24);transition:opacity .2s}.pin .dot{height:29px;width:29px;border:2px solid #fffdf1;border-radius:50% 50% 50% 3px;transform:rotate(-45deg);display:grid;place-items:center;background:var(--day-color);color:white}.pin .dot span{transform:rotate(45deg);font-size:12px}.pin .label{font-size:11px;font-weight:600;background:#fffdf2f0;border:1px solid #ece5d1;padding:3px 7px;border-radius:3px}.pin:hover .label{background:var(--ink);color:white}.pin.dim{opacity:.25}.atlas.zoomed .map-intro{opacity:0;pointer-events:none}.atlas.zoomed .map-intro>*{pointer-events:none}.under-map{height:56px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line)}.under-map>span:first-child{font-family:"Noto Serif SC",serif;color:var(--ink)}footer{display:flex;justify-content:space-between;align-items:center;padding:30px 4%;border-top:1px solid var(--line);color:var(--muted);font-size:10px;letter-spacing:1px}footer button{font-size:11px}.content-view{max-width:1260px;margin:auto;padding:48px 5% 70px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.section-heading h2{font-size:36px;margin:7px 0 10px}.section-heading p{font-size:13px;color:var(--muted);max-width:720px}.outline{border:1px solid var(--line);border-radius:3px;padding:10px 15px;white-space:nowrap;font-size:12px}.notice{border-left:3px solid var(--gold);background:#eee9d9;padding:13px 17px;color:#6c6248;font-size:12px;margin-bottom:24px}.day-tabs,.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 26px}.day-tabs button,.filter-row button{padding:9px 17px;border:1px solid var(--line);border-radius:30px;font-size:12px}.day-tabs button.active,.filter-row button.active{background:var(--ink);border-color:var(--ink);color:#fff}.day-hero{display:grid;grid-template-columns:1fr 1fr;min-height:240px;border-radius:6px;overflow:hidden;margin-bottom:30px;background:#e6e9db}.day-hero img{width:100%;height:280px;object-fit:cover}.day-hero-copy{padding:30px}.day-hero h3{font-size:28px;margin:8px 0}.day-hero p{font-size:13px}.mini-facts{display:flex;gap:15px;flex-wrap:wrap;color:var(--muted);font-size:11px}.timeline{position:relative;max-width:860px;margin:auto}.stop-row{display:grid;grid-template-columns:70px 1fr;gap:22px;margin-bottom:0}.time{font-family:Georgia,serif;font-size:18px;padding-top:21px;color:var(--red)}.stop-body{border-left:1px solid #d0d5c6;padding:0 0 28px 30px;position:relative}.stop-body:before{content:"";position:absolute;width:9px;height:9px;background:var(--day-color);border:3px solid var(--paper);box-sizing:content-box;border-radius:50%;left:-8px;top:25px}.stop-card{background:#fffdf7;border:1px solid #e2e2d6;border-radius:5px;padding:19px 22px;position:relative}.stop-top{display:flex;gap:10px;align-items:center;justify-content:space-between}.stop-card h3{font-size:21px;margin:0}.tag{font-size:10px;padding:2px 7px;border:1px solid #dbddce;border-radius:3px;color:var(--sage)}.stop-card p{font-size:13px;margin:10px 0;color:#657063}.stop-meta{font-size:11px;color:var(--muted);margin-top:8px}.stop-actions{display:flex;gap:15px;margin-top:15px;flex-wrap:wrap}.stop-actions button,.stop-actions a{font-size:12px;color:var(--red)}.transport-strip{font-size:12px;color:#64725e;padding:12px 0 0;line-height:1.9}.transport-strip strong{font-weight:500;color:var(--ink)}.food-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.food-card{background:#fffdf7;border:1px solid var(--line);border-radius:5px;overflow:hidden}.food-visual{height:170px;position:relative;background:#e5e5d3;overflow:hidden}.food-visual img{height:100%;width:100%;object-fit:cover}.food-visual .food-symbol{position:absolute;bottom:14px;left:18px;font-family:serif;font-size:40px;color:#fff;text-shadow:0 2px 10px #0008}.food-card-content{padding:21px}.food-card h3{font-size:19px;margin:8px 0}.food-card p{font-size:12px;color:#6f786e;min-height:61px}.food-budget{font-size:12px;font-weight:600}.food-card .outline{margin-top:16px;width:100%;text-align:left}.editor-note{margin-top:25px;padding:20px;border:1px solid var(--line);font-size:12px;color:var(--muted)}.hotel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.hotel-card{border:1px solid var(--line);padding:25px;border-radius:5px;background:#fffdf7}.hotel-card:first-child{border-top:4px solid var(--red)}.hotel-card .hotel-index{font:40px Georgia;color:#a5b197}.hotel-card h3{font-size:21px;line-height:1.5}.hotel-card p{font-size:12px;color:var(--muted)}.hotel-card a{display:inline-block;font-size:12px;border-bottom:1px solid var(--ink);margin-top:10px}.secondary{margin-top:50px}.airport-switch{display:flex;border-bottom:1px solid var(--line);margin-bottom:25px}.airport-switch button{padding:10px 25px}.airport-switch button.active{background:var(--ink);color:white}.airport-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:30px}.guide-box{background:#fffdf7;border:1px solid var(--line);padding:26px;border-radius:5px}.guide-box h3{font-size:22px;margin-top:0}.guide-box ol,.guide-box ul{padding-left:20px}.guide-box li{padding:6px 0;font-size:13px}.guide-box a,.drawer a.source{font-size:12px;text-decoration:underline;color:var(--sage)}.budget-table{border-collapse:collapse;width:100%;font-size:13px}.budget-table td,.budget-table th{padding:12px;text-align:left;border-bottom:1px solid var(--line)}.budget-table th{font-weight:500;color:var(--muted)}.budget-total{font-size:24px;font-family:Georgia,serif;color:var(--red)}.scrim{position:fixed;inset:0;background:#162b2659;backdrop-filter:blur(3px);z-index:20}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(580px,100%);background:var(--paper);z-index:21;overflow:auto;box-shadow:var(--shadow);overscroll-behavior:contain}.drawer[hidden],.scrim[hidden]{display:none}.close{position:absolute;right:18px;top:18px;width:36px;height:36px;border-radius:50%;background:#fffdf5e8;z-index:2;font-size:26px;line-height:1}.drawer-photo{width:100%;height:230px;object-fit:cover}.drawer-inner{padding:30px 34px 45px}.drawer h2{font-size:30px;line-height:1.5;margin:7px 0 18px}.drawer h3{font-family:inherit;font-weight:600;font-size:15px;margin:26px 0 8px}.drawer p,.drawer li{font-size:13px;color:#586757;line-height:1.95}.drawer ol,.drawer ul{padding-left:20px}.drawer li{padding-bottom:7px}.drawer .practical{background:#e9ecdf;border-radius:4px;padding:15px 18px;margin-top:18px}.drawer .practical p{margin:4px 0}.drawer .primary{justify-content:center;margin-top:20px}.drawer .links{display:flex;gap:12px;flex-wrap:wrap;margin:15px 0}.drawer .links a{border:1px solid var(--line);border-radius:4px;padding:8px 12px;font-size:12px}.drawer details{border-bottom:1px solid var(--line);padding:16px 0}.drawer summary{cursor:pointer;font-size:14px;font-weight:600}.check-item{display:flex;align-items:flex-start;gap:10px;padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}.check-item input{margin-top:6px;accent-color:var(--sage);width:17px;height:17px;flex-shrink:0}.check-item small{display:block;color:var(--muted);margin-top:5px}.field{margin:17px 0}.field label{display:block;font-size:12px;margin-bottom:7px}.field input,.field select{width:100%;padding:11px;border:1px solid var(--line);border-radius:4px;background:#fffdf7;color:var(--ink)}.source-list{padding-left:0!important;list-style:none}.source-list a{color:var(--sage);text-decoration:underline}.source-list li{border-bottom:1px solid var(--line);padding:12px 0}.photo-credit{font-size:10px;color:var(--muted);margin-top:10px}.saved-label{font-size:11px;color:var(--sage)}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:white;border-radius:30px;padding:10px 22px;opacity:0;pointer-events:none;z-index:50;transition:.2s;font-size:12px}#toast.show{opacity:1;transform:translate(-50%,0)}#print-content{display:none}
@media(min-width:1500px){.map-intro{padding-top:70px}.day-dock{left:6%;right:6%}.map-caption{bottom:140px}}
@media(max-width:1000px){nav{gap:12px}.topbar{padding:0 24px}.brand{font-size:13px}.map-intro{width:43%;padding:38px 25px}.map-intro h1{font-size:49px}.day-card{padding:13px 10px;gap:9px}.day-card strong{font-size:12px}.day-card small{font-size:9px}.food-grid{grid-template-columns:repeat(2,1fr)}.hotel-grid{grid-template-columns:1fr}.hotel-card{display:block}.atlas{min-height:650px}.map-caption{left:39%}}
@media(max-width:680px){.topbar{height:105px;flex-wrap:wrap;padding:12px 18px 0}.brand{font-size:14px}.brand-mark{font-size:22px;line-height:31px;width:31px}.travel-kit{font-size:10px;padding:5px 10px}.topbar nav{order:3;width:100%;height:43px;justify-content:space-between;gap:0}.nav{font-size:12px;padding:0 8px}.nav.active:after{bottom:3px}.atlas{height:calc(100svh - 105px);min-height:700px;max-height:950px}.map-intro{top:0;bottom:auto;width:100%;height:300px;padding:23px;background:linear-gradient(#f7f4e9f2,#f7f4e9a6 68%,#f7f4e900);pointer-events:none}.map-intro h1{font-size:35px;line-height:1.35;margin:10px 0;letter-spacing:2px}.map-intro h1 br:first-of-type{display:none}.map-intro p{font-size:11px;margin:6px 0}.map-intro .eyebrow{font-size:8px;letter-spacing:2px}.trip-chips{margin:10px 0}.map-intro .primary{position:absolute;right:20px;top:150px;padding:10px 12px;font-size:11px;gap:12px}.map-intro .text-button{font-size:10px;padding:3px 0}.compass{top:265px;right:20px;font-size:32px}.day-dock{grid-template-columns:1fr 1fr;bottom:26px;left:16px;right:16px;gap:8px}.day-card{padding:11px 10px;gap:9px}.day-num{font-size:25px}.day-card small{font-size:9px}.day-card strong{font-size:11px}.day-card .arrow{display:none}.map-caption{bottom:174px;left:16px;right:70px;justify-content:center;font-size:9px;padding:6px}.map-disclaimer{top:auto;bottom:5px;left:14px;font-size:8px;background:transparent}.zoom-controls{right:16px;bottom:178px}.zoom-controls button{width:35px;height:33px;font-size:19px}.under-map{padding:0 18px;font-size:10px}.under-map>span:nth-child(2){display:none}.pin .label{font-size:10px}.content-view{padding:30px 19px 45px}.section-heading{align-items:flex-start;flex-direction:column;gap:8px}.section-heading h2{font-size:28px}.section-heading p{font-size:12px}.day-tabs{gap:6px}.day-tabs button{padding:7px 11px;font-size:11px}.day-hero{grid-template-columns:1fr}.day-hero img{height:190px;order:-1}.day-hero-copy{padding:22px}.day-hero h3{font-size:25px}.stop-row{grid-template-columns:47px 1fr;gap:8px}.time{font-size:14px}.stop-body{padding-left:18px}.stop-card{padding:15px}.stop-card h3{font-size:18px}.stop-top{align-items:flex-start}.tag{font-size:9px}.food-grid{gap:14px;grid-template-columns:1fr}.food-visual{height:190px}.food-card p{min-height:0}.airport-grid{grid-template-columns:1fr;gap:15px}.guide-box{padding:20px}.budget-table{font-size:11px}.budget-table td,.budget-table th{padding:10px 7px}.drawer-inner{padding:25px 23px 35px}.drawer h2{font-size:26px}.drawer-photo{height:200px}footer{padding:22px 18px;flex-wrap:wrap;gap:12px;font-size:9px}footer>span:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{body{background:white;font-size:11px}.topbar,main,footer,.drawer,.scrim,#toast{display:none!important}#print-content{display:block;color:black}#print-content h1{font-size:27px}#print-content h2{font-size:22px;margin-top:25px}#print-content h3{font-size:16px}#print-content article{break-inside:avoid;border-top:1px solid #ddd;padding:8px 0}#print-content a{overflow-wrap:anywhere}#print-content p{margin:6px 0}#print-content .print-day{break-before:page}}

@media(min-width:681px) and (max-height:850px){.map-intro{padding-top:30px}.map-intro h1{font-size:50px;margin:14px 0;line-height:1.3}.map-intro p{margin:8px 0}.trip-chips{margin:15px 0}.map-intro .text-button{padding:8px 0}}

/* Address and documented real-world visual references. */
.location-block{margin:20px 0;padding:18px;border:1px solid var(--line);border-radius:8px;background:#f5f2e7}.location-block h3{margin:8px 0}.address-text{font-size:13px;overflow-wrap:anywhere;font-weight:600;line-height:1.7}.reference-photo{width:100%;height:220px;object-fit:cover;border-radius:6px;display:block}.reference-photo[hidden]{display:none}.location-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.location-card{border:1px solid var(--line);background:#fffef8;border-radius:8px;overflow:hidden}.location-card-body{padding:22px}.location-card-body p{font-size:13px;line-height:1.8}.location-card-body small{font-size:10px;color:var(--muted);overflow-wrap:anywhere}.directory-title{margin:36px 0 20px}.reference-placeholder{min-height:160px;background:#e8ebdf;padding:24px;color:var(--green)}.reference-placeholder span{font-size:36px}.reference-placeholder p{font-size:14px}.reference-placeholder a{font-size:12px;text-decoration:underline}.topbar nav{gap:20px}@media(max-width:900px){.location-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar nav{gap:10px}}@media(max-width:680px){.location-grid{grid-template-columns:1fr}.topbar nav{overflow-x:auto;justify-content:flex-start}.nav{white-space:nowrap}.reference-photo{height:200px}}

/* Guided map playback. */
.tour-start{position:absolute;top:24px;right:100px;z-index:3;background:var(--ink);color:white;border-radius:30px;padding:12px 20px;box-shadow:var(--shadow)}.tour-start:hover{color:white;background:var(--red)}.tour-panel{position:absolute;left:25px;top:25px;width:300px;padding:24px;z-index:4;background:#fffef5f5;border:1px solid #ffffff;border-radius:12px;box-shadow:var(--shadow);cursor:default;touch-action:auto}.tour-panel[hidden],.tour-start[hidden]{display:none}.tour-panel h2{font-size:32px;margin:8px 0;color:var(--tour-color)}.tour-panel p{min-height:48px;font-size:16px;margin:8px 0}.tour-exit{position:absolute;right:12px;top:8px;font-size:24px}.tour-meta,.tour-actions,.tour-options{display:flex;align-items:center;justify-content:space-between;gap:8px}.tour-meta{font-size:11px}.tour-actions button{font-size:12px;padding:8px 5px}.tour-actions button:first-child{background:var(--ink);color:white;padding:8px 13px;border-radius:5px}.tour-options{font-size:11px;margin-top:12px}.tour-options select{font:inherit;border:1px solid var(--line);background:white;border-radius:4px}.tour-panel small{display:block;font-size:10px;line-height:1.5;color:var(--muted);margin-top:12px}.tour-panel progress{width:100%;height:5px;accent-color:var(--tour-color);margin:13px 0 4px}.tour-active .map-intro,.tour-active .compass,.tour-active .map-caption{display:none}.tour-active #route-lines{opacity:.15}#tour-route{display:none;overflow:visible} .tour-active #tour-route{display:block}.tour-track{fill:none;stroke:white;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;opacity:.8}.tour-progress{fill:none;stroke:var(--tour-color);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.tour-arrow circle{fill:var(--tour-color);stroke:white;stroke-width:3;filter:drop-shadow(0 3px 7px #0005)}.tour-arrow path{fill:white;stroke:none}.tour-active .map-disclaimer{display:none}@media(max-width:680px){.tour-start{top:14px;right:16px;padding:10px 14px;font-size:12px}.tour-panel{top:12px;left:12px;width:calc(100% - 24px);padding:14px 18px}.tour-panel h2{font-size:23px;margin:4px 0}.tour-panel p{min-height:0;margin:4px 0;font-size:14px}.tour-panel progress{margin:6px 0}.tour-options{margin-top:6px}.tour-panel small{margin-top:6px}.tour-active .day-dock{z-index:3}}

/* Nearby restaurant alternatives. */
.backup-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}.backup-options button{display:flex;align-items:center;gap:14px;text-align:left;padding:18px;background:var(--paper,#fffaf2);border:1px solid var(--line);border-radius:12px}.backup-options button>span{font-size:26px;color:var(--red)}.backup-options button>div{flex:1}.backup-options small{display:block;margin-top:7px;line-height:1.6}.backup-options button:hover{border-color:var(--red)}@media(max-width:700px){.backup-options{grid-template-columns:1fr}}
