:root{--bg:#f6f2e9;--paper:#fffdf8;--ink:#20231f;--muted:#6c7068;--line:#ded9cf;--green:#365d4a;--green2:#8bad88;--orange:#dc7349;--yellow:#f0c56a;--blue:#54819c;--water:#62a7bd;--purple:#8673a8;--shadow:0 20px 50px rgba(44,52,44,.08);--radius:26px;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;line-height:1.65}a{color:inherit}.wrap{width:min(var(--max),calc(100% - 40px));margin:auto}.skip{position:fixed;left:12px;top:-100px;z-index:999;background:#fff;padding:10px 14px;border-radius:10px}.skip:focus{top:12px}.hero{background:radial-gradient(circle at 84% 18%,rgba(240,197,106,.33),transparent 28%),radial-gradient(circle at 14% 0,rgba(139,173,136,.28),transparent 34%),#f7f3eb;padding-bottom:50px;border-bottom:1px solid var(--line)}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{text-decoration:none;font-weight:750;letter-spacing:.02em}.brand-dot{display:inline-block;width:10px;height:10px;background:var(--orange);border-radius:50%;margin-right:8px}.navlinks{display:flex;gap:24px;font-size:14px}.navlinks a{text-decoration:none;color:#52574f}.hero-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:52px;align-items:end;padding:66px 0 28px}.eyebrow{font-size:12px;letter-spacing:.18em;font-weight:800;color:var(--green);text-transform:uppercase;margin:0 0 12px}.hero h1{font-family:Georgia,"Songti SC",serif;font-size:clamp(64px,9vw,126px);line-height:.88;letter-spacing:-.06em;margin:0}.hero h1 span{color:var(--green)}.lead{max-width:680px;font-size:19px;color:#4e534c;margin:30px 0}.hero-chips{display:flex;flex-wrap:wrap;gap:10px}.hero-chips span{background:rgba(255,255,255,.65);border:1px solid rgba(77,88,74,.15);padding:8px 12px;border-radius:999px;font-size:13px}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.glass{background:rgba(255,253,248,.79);backdrop-filter:blur(14px)}.hotel-hero{padding:28px}.mini-label{font-size:12px;color:var(--orange);font-weight:800;letter-spacing:.08em}.hotel-hero h2{font-size:29px;line-height:1.2;margin:10px 0}.hotel-hero h2 small{font-size:16px;font-weight:600;color:var(--muted)}.hotel-hero p{color:var(--muted);font-size:14px}.hotel-stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0}.hotel-stats div{padding:14px 0}.hotel-stats div+div{border-left:1px solid var(--line);padding-left:16px}.hotel-stats b,.hotel-stats span{display:block}.hotel-stats b{font-size:17px}.hotel-stats span{font-size:11px;color:var(--muted)}.actions{display:flex;gap:9px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid #c7c4bc;background:#fffaf2;border-radius:12px;padding:10px 14px;font-size:13px;font-weight:700}.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}.btn.small{padding:8px 12px;white-space:nowrap}.alert{border-radius:17px;padding:14px 17px;display:flex;gap:15px;align-items:center;font-size:13px}.alert b{white-space:nowrap}.concert{background:#2c2f2b;color:#fff}.concert span{opacity:.78}.section{padding:74px 0}.intro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.principle{border-top:2px solid #a9a69d;padding:18px 4px}.principle span{font-family:Georgia,serif;font-style:italic;color:var(--orange)}.principle h3{font-size:22px;margin:10px 0 3px}.principle p{margin:0;color:var(--muted);font-size:14px}.itinerary-section{background:#ede9df}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:34px}.section-head h2{font-family:Georgia,"Songti SC",serif;font-size:clamp(38px,5vw,64px);line-height:1.05;margin:0}.sub{color:var(--muted);max-width:700px;margin-bottom:0}.surprise-toggle{border:1px solid #c9c4b8;background:#fff8e8;border-radius:999px;padding:12px 16px;cursor:pointer;font-weight:800;color:#604c20}.days{display:grid;gap:22px}.day{display:grid;grid-template-columns:105px 1fr;gap:22px}.datebox{position:sticky;top:16px;align-self:start;background:#242924;color:#fff;border-radius:22px;padding:18px 10px;text-align:center}.datebox b{font-family:Georgia,serif;font-size:47px;line-height:1}.datebox span{display:block;font-size:12px;margin-top:7px;opacity:.7}.day-body{background:var(--paper);border-radius:27px;padding:28px 30px;border:1px solid #dbd6cc}.day-body>header{display:flex;justify-content:space-between;gap:20px;align-items:start;padding-bottom:21px;border-bottom:1px solid var(--line)}.day-body h3{font-size:26px;margin:6px 0 0}.tag{font-size:11px;font-weight:800;padding:5px 9px;border-radius:999px;background:#e6ece7;color:var(--green)}.tag.play{background:#fde4d4;color:#a64a2a}.tag.museum{background:#e6edf1;color:#3d6b83}.tag.easy{background:#f4e9ca;color:#7c5e1f}.level{font-size:12px;color:var(--muted);white-space:nowrap}.timeline{padding-top:7px}.slot{display:grid;grid-template-columns:130px 1fr;gap:18px;padding:17px 0;border-bottom:1px dashed #ddd8cf}.slot time{font-size:12px;font-weight:800;color:var(--green)}.slot b{font-size:16px}.slot p{margin:3px 0 0;color:var(--muted);font-size:14px}.slot.highlight>div{border-left:3px solid var(--blue);padding-left:14px}.slot.highlight-food>div{border-left:3px solid var(--orange);padding-left:14px}.slot.highlight-water>div{border-left:3px solid var(--water);padding-left:14px}.slot.sleep>div{border-left:3px solid var(--purple);padding-left:14px}.slot.warning>div{background:#fff3d6;border:1px solid #efd69a;padding:13px 14px;border-radius:14px}.inline-actions{display:flex;gap:15px;margin-top:8px}.inline-actions a,.text-link{font-size:12px;font-weight:800;color:var(--green)}.surprise{margin-top:17px;background:#fff6dd;border:1px solid #ead59c;padding:15px 17px;border-radius:16px;transition:.25s}.surprise b{color:#765d1d}.surprise p{margin:4px 0;color:#69614d;font-size:13px}.surprises-hidden .surprise{display:none}.map-section{background:var(--paper)}.map-layout{display:grid;grid-template-columns:2fr .8fr;gap:20px;align-items:stretch}.schematic-card{border:1px solid var(--line);border-radius:var(--radius);background:#f5f2e9;overflow:hidden;padding:14px}.trip-map{width:100%;height:auto;display:block}.region{fill:#ece2c9}.region.mid{fill:#dfe8dc}.region.east{fill:#e8ded5}.region-label{font:700 17px sans-serif;fill:#847e71;letter-spacing:.12em}.route{fill:none;stroke:#c5b9a0;stroke-width:5;stroke-dasharray:8 9;stroke-linecap:round}.route.local{stroke:#9ab39b;stroke-width:4}.pin circle{fill:#4f7a61;filter:url(#shadow)}.pin text{fill:white;text-anchor:middle;font:bold 16px sans-serif}.pin.hotelpin circle{fill:#222922}.pin.foodpin circle{fill:#d66e48}.pin.waterpin circle{fill:#5d9db1}.pin.playpin circle{fill:#b66d40}.pin.surprise-pin circle{fill:#d0a447}.pin.surprise-pin text{font-size:14px}.pin-label{font:bold 14px sans-serif;fill:#30352f}.pin-note,.small-map-label{font:12px sans-serif;fill:#777b72}.map-legend{display:flex;gap:18px;flex-wrap:wrap;padding:0 10px 8px;font-size:12px;color:var(--muted)}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.dot.hotel{background:#222922}.dot.main{background:#4f7a61}.dot.food{background:#d66e48}.dot.surprise-dot{background:#d0a447}.commute-note{padding:24px}.commute-note h3{margin-top:0}.commute-note p,.commute-note li{font-size:13px;color:var(--muted)}.commute-note ul{padding-left:20px}.places{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.place-card{display:grid;grid-template-columns:43px 1fr auto;gap:14px;align-items:center;border:1px solid var(--line);padding:16px;border-radius:18px;background:#fff}.place-card h3{font-size:16px;margin:0 0 3px}.address,.from{font-size:12px;margin:2px 0;color:var(--muted)}.place-num{width:37px;height:37px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-weight:900}.hotel-place .place-num{background:#252b26}.water-place .place-num{background:var(--water)}.surprise-place .place-num{background:#d1a644}.food-section{background:#eae3d6}.restaurant-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.restaurant{background:var(--paper);border:1px solid #d8d0c4;border-radius:26px;padding:25px}.restaurant.featured{background:#2f3f34;color:#fff;border-color:#2f3f34}.restaurant.featured .restaurant-address,.restaurant.featured p,.restaurant.featured .verify{color:rgba(255,255,255,.76)}.restaurant.featured .travel-pill{background:rgba(255,255,255,.1);color:#fff}.restaurant.featured .btn:not(.primary){background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}.restaurant-top{display:flex;justify-content:space-between;gap:15px;align-items:center}.date-badge,.cuisine{font-size:11px;font-weight:800}.date-badge{background:#f3d17d;border-radius:999px;padding:5px 9px;color:#5f4718}.date-badge.alt{background:#e9e4db;color:#646057}.cuisine{color:var(--orange)}.restaurant h3{font-size:26px;line-height:1.15;margin:15px 0 10px}.restaurant h3 small{font-size:14px;color:var(--muted)}.restaurant.featured h3 small{color:rgba(255,255,255,.6)}.restaurant-address{font-size:13px;color:var(--muted)}.travel-pill{display:inline-block;background:#f0ede5;border-radius:11px;padding:7px 10px;font-size:12px;color:#555b53;margin:7px 0}.restaurant p{font-size:13px;color:#575c55}.verify{border-left:2px solid var(--yellow);padding-left:10px}.tips-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.tip{padding:18px;border:1px solid var(--line);border-radius:17px;background:var(--paper)}.tip b{font-size:13px}.tip p{font-size:12px;color:var(--muted);margin-bottom:0}.tip.important{background:#fff1d9;border-color:#efd49b}.source-section{padding-top:20px}.source-card{background:#242924;color:#fff;border-radius:28px;padding:30px;display:grid;grid-template-columns:1fr 1.5fr;gap:30px}.source-card h2{font-family:Georgia,"Songti SC",serif;font-size:38px;margin:0}.source-card p{color:rgba(255,255,255,.65);font-size:13px}.source-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}.source-links a{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.15);padding:12px 14px;border-radius:12px;font-size:12px}.source-links a:hover{background:rgba(255,255,255,.07)}footer{padding:38px 0 52px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}footer .wrap{display:flex;gap:20px;justify-content:space-between;align-items:center}footer a{font-weight:800;color:var(--green)}
@media(max-width:900px){.navlinks{display:none}.hero-grid{grid-template-columns:1fr;padding-top:40px}.hero h1{font-size:78px}.intro-grid{grid-template-columns:1fr}.section{padding:54px 0}.day{grid-template-columns:1fr}.datebox{position:static;display:flex;align-items:baseline;gap:8px;text-align:left;padding:11px 16px;width:max-content}.datebox b{font-size:28px}.datebox span{margin:0}.map-layout,.source-card{grid-template-columns:1fr}.places,.restaurant-grid{grid-template-columns:1fr}.tips-grid{grid-template-columns:1fr 1fr}.section-head{align-items:start;flex-direction:column}.surprise-toggle{align-self:flex-start}.concert{align-items:flex-start;flex-direction:column;gap:2px}}
@media(max-width:560px){.wrap{width:min(100% - 24px,var(--max))}.hero{padding-bottom:30px}.topbar{height:60px}.hero-grid{gap:27px;padding:30px 0 20px}.hero h1{font-size:62px}.lead{font-size:16px;margin:22px 0}.hotel-hero{padding:21px}.hotel-hero h2{font-size:24px}.section{padding:42px 0}.day-body{padding:21px 18px}.day-body>header{flex-direction:column;gap:8px}.day-body h3{font-size:22px}.slot{grid-template-columns:1fr;gap:5px;padding:14px 0}.slot time{color:var(--orange)}.map-section .section-head{margin-bottom:20px}.schematic-card{padding:4px}.trip-map{min-height:270px}.places{gap:9px}.place-card{grid-template-columns:37px 1fr}.place-card .btn{grid-column:2;justify-self:start}.restaurant-grid{gap:12px}.restaurant{padding:20px}.tips-grid{grid-template-columns:1fr}.source-links{grid-template-columns:1fr}.source-card{padding:23px}.source-card h2{font-size:32px}footer .wrap{flex-direction:column;align-items:flex-start;gap:3px}.actions .btn{flex:1}.hero-chips span{font-size:12px}}
@media print{.topbar,.surprise-toggle,.actions,.inline-actions,footer,.source-section{display:none!important}.hero,.itinerary-section,.food-section{background:#fff}.day-body,.card,.restaurant{box-shadow:none;break-inside:avoid}.section{padding:25px 0}.surprise{display:block!important}.wrap{width:100%}}
