:root{
  --cream:#F7F0E6;
  --paper:#FFF8F1;
  --pink:#F6D0D6;
  --blush:#FBE4DE;
  --sage:#D7E6DC;
  --mint:#E8F1EC;
  --moss:#355746;
  --ink:#2A3830;
  --muted:#6A7A70;
  --coral:#DC5848;
  --gold:#E6C36A;
  --sand:#F3E4C8;
  --white:#FFFCF7;
  --shadow:0 18px 40px rgba(80,52,40,.12);
  --fs-xs:.75rem;
  --fs-sm:.875rem;
  --fs-md:1rem;
  --fs-lg:clamp(1.125rem,2.4vw,1.25rem);
  --fs-xl:clamp(1.35rem,3.2vw,1.75rem);
  --fs-hero:clamp(1.85rem,5.5vw,3.15rem);
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:24px;
  --space-6:32px;
  --space-7:48px;
  --bar-h:56px;
}
*{box-sizing:border-box}
html{
  scroll-behavior:smooth;-webkit-text-size-adjust:100%;
  width:100%;max-width:100%;
  scroll-padding-top:calc(var(--bar-h) + env(safe-area-inset-top, 0px) + 8px);
}
body{
  margin:0;
  width:100%;
  max-width:100%;
  display:block;
  background:
    radial-gradient(1200px 500px at 10% -10%, #fde7ea 0%, transparent 55%),
    radial-gradient(900px 400px at 100% 0%, #e7f2ea 0%, transparent 50%),
    var(--cream);
  color:var(--ink);
  font-family:"Noto Sans SC",sans-serif;
  font-size:var(--fs-md);
  line-height:1.7;
  padding-bottom:calc(88px + env(safe-area-inset-bottom));
}
body.os-open{
  position:fixed;left:0;right:0;width:100%;overflow:hidden;
}
img{max-width:100%;height:auto;display:block;object-fit:cover}
a{color:var(--moss);font-weight:700}
button, .btn{font-family:inherit}
p,li,h2,h3,td,address{overflow-wrap:break-word;word-wrap:break-word}
.hotel p,.park p,.small{overflow-wrap:break-word}
.wrap{
  display:block;
  width:100%;
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
  padding-left:max(16px, env(safe-area-inset-left));
  padding-right:max(16px, env(safe-area-inset-right));
  box-sizing:border-box;
  overflow-x:clip;
}
.hero,.grid-2,.grid-3,.choice,.meta,.footer-check,.card,.photo,.hotel,.park{min-width:0}
.hero > *, .grid-2 > *, .grid-3 > *, .choice > *{min-width:0}
.site-bar{
  position:sticky;top:0;z-index:50;
  width:100%;
  background:rgba(247,240,230,.94);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(53,87,70,.12);
  padding-top:env(safe-area-inset-top);
}
.site-bar-in{
  display:flex;align-items:center;gap:var(--space-3);
  min-height:var(--bar-h);
}
.brand{
  font-family:"Fraunces",serif;font-style:italic;font-weight:700;
  font-size:var(--fs-lg);color:var(--moss);text-decoration:none;
  flex:0 0 auto;letter-spacing:-.02em;line-height:1;
}
.desk-links{
  display:none;flex:1;justify-content:flex-end;gap:var(--space-1);
}
.desk-links a{
  text-decoration:none;color:var(--moss);
  font-size:var(--fs-sm);font-weight:700;
  padding:10px 12px;min-height:44px;
  display:inline-flex;align-items:center;border-radius:999px;
}
.desk-links a:hover,.desk-links a.on{background:var(--pink)}
.plan-switch{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 8px
}
.plan-switch a{
  display:block;text-decoration:none;color:inherit;
  background:#fff;border:2px solid rgba(53,87,70,.14);
  border-radius:18px;padding:14px 16px;min-height:88px
}
.plan-switch a.on{
  border-color:var(--moss);background:var(--mint)
}
.plan-switch b{display:block;color:var(--moss);font-size:var(--fs-lg);margin-bottom:4px}
.plan-switch span{display:block;font-size:var(--fs-sm);color:var(--muted);font-weight:600;line-height:1.45}
.menu-btn{
  margin-left:auto;min-height:44px;min-width:44px;
  border:1px solid rgba(53,87,70,.16);border-radius:999px;
  background:#fff;color:var(--moss);font:inherit;
  font-size:var(--fs-sm);font-weight:800;padding:8px 16px;
}
.toc-mask{
  position:fixed;inset:0;z-index:48;background:rgba(42,56,48,.38);
}
.toc-mask[hidden],.toc-drawer[hidden]{display:none}
.toc-drawer{
  position:fixed;z-index:49;left:0;right:0;
  top:calc(var(--bar-h) + env(safe-area-inset-top, 0px));
  max-height:min(70dvh, calc(100dvh - var(--bar-h) - env(safe-area-inset-top, 0px) - 88px));
  overflow:auto;background:var(--cream);
  border-bottom:1px solid rgba(53,87,70,.12);
  box-shadow:var(--shadow);padding:var(--space-3) 0 var(--space-4);
}
.toc-k,.section-k{
  font-size:var(--fs-xs);font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);margin:var(--space-4) 0 var(--space-2);
}
.section-k{margin:var(--space-5) 0 var(--space-2)}
.toc-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:var(--space-2);
}
.toc-grid a{
  text-decoration:none;background:#fff;border:1px solid rgba(53,87,70,.12);
  border-radius:14px;padding:12px 14px;min-height:44px;
  display:flex;align-items:center;
  font-size:var(--fs-sm);font-weight:700;color:var(--moss);
}
.toc-grid a:hover{background:var(--pink)}
body.toc-open{overflow:hidden}
.hero{
  display:grid;grid-template-columns:1.15fr .85fr;gap:28px;
  padding:42px 0 18px;align-items:center;
}
.kicker{
  display:inline-flex;gap:8px;align-items:center;
  background:var(--sage);color:var(--moss);
  border-radius:999px;padding:6px 12px;font-size:var(--fs-sm);font-weight:700;
}
h1{
  font-family:"Noto Sans SC",sans-serif;
  font-size:var(--fs-hero);line-height:1.18;margin:14px 0 10px;color:var(--moss);
  font-weight:900;letter-spacing:-.02em;
}
.route{font-family:"Fraunces",serif;font-style:italic;font-size:var(--fs-lg);color:#7a4a44}
.meta{
  display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:10px;margin-top:22px;
}
.meta div{
  background:var(--gold);border-radius:18px;padding:14px 16px;
  box-shadow:0 8px 0 rgba(180,130,40,.18);
}
.meta b{display:block;font-size:var(--fs-sm);color:#6a4b12;font-weight:700}
.meta span{font-size:var(--fs-md);font-weight:800}
.polaroid{
  background:#fff;padding:12px 12px 28px;border-radius:6px;
  box-shadow:var(--shadow);transform:rotate(-2.2deg);
  max-width:100%;
}
.polaroid img{width:100%;aspect-ratio:4/3;height:auto;max-height:280px;object-fit:cover;border-radius:4px}
.polaroid.alt{transform:rotate(2.4deg);margin-top:18px}
.polaroid figcaption{
  font-family:"Fraunces",serif;font-style:italic;text-align:center;margin-top:8px;color:#8a5a52
}
.timeline{
  display:flex;gap:8px;overflow:auto;padding:4px 2px 8px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.timeline::-webkit-scrollbar{display:none}
.timeline a{
  min-width:108px;background:#fff;border-radius:18px;padding:12px;
  text-align:center;border:1px solid rgba(53,87,70,.1);
  text-decoration:none;color:inherit;flex:0 0 auto;
}
.timeline a:hover{background:var(--pink)}
.timeline b{display:block;color:var(--coral);font-size:var(--fs-sm)}
.timeline span{font-size:var(--fs-sm);font-weight:700;color:var(--ink)}
.card{
  background:var(--white);border-radius:28px;padding:28px;
  box-shadow:var(--shadow);margin:22px 0;
}
.day{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px;flex-wrap:wrap}
.pill{
  background:var(--pink);color:#7a3140;border-radius:999px;
  padding:6px 12px;font-weight:900;letter-spacing:.04em;white-space:nowrap
}
h2{font-family:"Noto Sans SC",sans-serif;font-size:var(--fs-xl);margin:0;color:var(--moss);font-weight:800;flex:1 1 200px;line-height:1.35}
h3{font-size:var(--fs-lg);margin:24px 0 12px;color:var(--moss);font-weight:800}
.grid-2{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:18px}
.grid-3{display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:14px}
.photo{
  border-radius:22px;overflow:hidden;position:relative;
  box-shadow:0 10px 0 rgba(255,255,255,.4), var(--shadow);
}
.photo img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;display:block}
.fluid-pic{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:18px;margin:0 0 12px}
.loc-tag{
  display:inline-block;background:var(--sage);color:var(--moss);
  border-radius:999px;padding:3px 10px;font-size:var(--fs-xs);font-weight:800;margin:0 0 8px;
  max-width:100%;line-height:1.4
}
.polaroid{position:relative}
.polaroid:after{
  content:"";position:absolute;top:-10px;left:28%;width:90px;height:22px;
  background:rgba(246,208,214,.72);transform:rotate(-8deg);
}
.badge{
  position:absolute;left:10px;bottom:10px;right:10px;width:fit-content;max-width:calc(100% - 20px);
  background:rgba(255,252,247,.92);
  border-radius:999px;padding:6px 10px;font-size:var(--fs-xs);font-weight:800
}
.price{
  display:inline-block;background:#fff1ee;color:var(--coral);
  border-radius:999px;padding:2px 8px;font-weight:900
}
.pub-park-icon-inline{font-size:1.15em;vertical-align:-2px}
.pub-park-grid{display:grid;gap:14px;margin:14px 0}
@media (min-width:720px){.pub-park-grid{grid-template-columns:1fr 1fr}}
.pub-park{
  background:#fff;border:2px solid var(--gold);border-radius:18px;padding:16px 18px 14px;
  position:relative;padding-top:44px;min-width:0
}
.pub-park-icon{
  position:absolute;top:10px;left:14px;font-size:30px;line-height:1
}
.pub-park-badge{
  position:absolute;top:16px;left:50px;
  display:inline-block;background:#fff8e6;color:#8a5a00;
  border-radius:999px;padding:3px 10px;font-size:var(--fs-xs);font-weight:900;letter-spacing:.02em
}
.pub-park h4{margin:6px 0 4px;font-size:var(--fs-lg);color:var(--moss)}
.pub-park .addr{font-weight:700;margin:0 0 6px;font-size:var(--fs-sm);color:#1f4d78}
.pub-park-dist{margin:8px 0 10px;padding-left:18px;font-size:var(--fs-sm);line-height:1.55}
.pub-park-dist li{margin:5px 0}
a.btn.pub-nav{background:var(--gold);color:#4a3800!important;border:none;font-weight:900}
a.btn.pub-nav:hover{filter:brightness(.96)}
td .pub-park-icon-inline{margin-right:2px}
.warn{
  background:#fff3d8;border-left:5px solid var(--gold);padding:14px 16px;border-radius:12px;margin:14px 0
}
.ok{
  background:var(--mint);border-left:5px solid var(--moss);padding:14px 16px;border-radius:12px;margin:14px 0
}
.bad{
  background:#fde8e4;border-left:5px solid var(--coral);padding:14px 16px;border-radius:12px;margin:14px 0
}
.must{
  background:#fde8e4;border:2px solid var(--coral);padding:16px 18px;border-radius:16px;margin:16px 0
}
.must h3{margin:0 0 8px;font-size:var(--fs-lg)}
.hard{color:#9a2f22;font-weight:900}
.hard-line{
  background:#9a2f22;color:#fff;border-radius:14px;padding:10px 14px;margin:10px 0;
  font-weight:800;font-size:var(--fs-md);line-height:1.4
}
.donts{
  background:#fff;border:1px dashed #c0392b;border-radius:14px;padding:10px 12px;margin:10px 0;
  font-size:var(--fs-sm);font-weight:700;color:#9a2f22
}
.fold{margin:12px 0;background:#fff;border-radius:14px;padding:4px 12px 8px;border:1px solid rgba(53,87,70,.12)}
.fold > summary{
  font-weight:800;cursor:pointer;min-height:44px;display:flex;align-items:center;list-style:none
}
.fold > summary::-webkit-details-marker{display:none}
.act-row{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px
}
.act-row .btn{margin:0;width:100%}
.act-row .btn:only-child{max-width:220px}
.gas{
  background:#fff;border:1px solid rgba(53,87,70,.12);border-radius:16px;padding:14px 16px
}
.gas-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}
.gas-head strong{font-size:var(--fs-sm);color:var(--coral)}
.gas h3{margin:0 0 4px;font-size:var(--fs-lg)}
.gas .addr{margin:0 0 8px;font-weight:700}
.gas-list{display:grid;gap:12px}
@media (min-width:800px){
  .gas-list{grid-template-columns:1fr 1fr}
  .act-row{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.gas .alt{margin:8px 0 0;font-size:var(--fs-sm);color:var(--muted)}
.gas.backup{opacity:.96;border-style:dashed}
.pub-park-grid{display:grid;gap:14px;margin:14px 0}
@media (min-width:800px){.pub-park-grid{grid-template-columns:1fr 1fr}}
.pub-park{
  background:#fff;border:2px solid #1f6feb;border-radius:18px;
  padding:16px 16px 14px 54px;position:relative;box-shadow:0 8px 0 rgba(31,111,235,.08)
}
.pub-park-icon{
  position:absolute;left:14px;top:16px;width:34px;height:34px;
  background:linear-gradient(145deg,#2563eb,#1d4ed8);color:#fff;border-radius:11px;
  display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:900;
  box-shadow:0 4px 0 rgba(29,78,216,.25)
}
.pub-park-tag{
  display:inline-flex;align-items:center;gap:4px;
  background:#e8f0fe;color:#1e40af;border-radius:999px;padding:4px 10px;
  font-size:var(--fs-xs);font-weight:800;margin:0 0 6px
}
.pub-park h3{margin:0 0 4px;font-size:var(--fs-lg);color:var(--ink)}
.pub-park .addr{margin:0 0 8px;font-weight:700;font-size:var(--fs-sm)}
.pub-park-times{margin:0 0 10px;padding:0;list-style:none}
.pub-park-times li{
  margin:4px 0;font-size:var(--fs-sm);padding-left:18px;position:relative
}
.pub-park-times li:before{
  content:"→";position:absolute;left:0;color:#1f6feb;font-weight:900
}
.pub-park-times strong{color:var(--coral);font-weight:900}
.pub-park .act-row{margin-top:10px}
.nav-pick{
  position:fixed;left:0;right:0;
  bottom:calc(64px + env(safe-area-inset-bottom));
  z-index:95;
  background:var(--cream);border-radius:22px 22px 0 0;
  box-shadow:0 -18px 40px rgba(42,56,48,.22);
  padding:16px;
}
.nav-pick[hidden]{display:none}
.nav-pick p{margin:0 0 12px;font-weight:800;color:var(--moss)}
.nav-pick .act-row{margin:0 0 8px}
.nav-mask{
  position:fixed;inset:0;z-index:94;background:rgba(42,56,48,.38)
}
.nav-mask[hidden]{display:none}
.cockpit{
  display:grid;gap:8px;margin:16px 0 8px;
  background:linear-gradient(180deg,#fff,#f4eee4);border:1px solid rgba(53,87,70,.12);
  border-radius:18px;padding:12px 14px
}
.cockpit-nav{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:6px}
.cockpit-nav button{
  min-height:48px;border:0;border-radius:14px;background:#fff;color:var(--moss);
  font:inherit;font-weight:800;font-size:var(--fs-sm)
}
.cockpit-nav button.on{background:var(--moss);color:#fff}
.cockpit-label{margin:0;font-size:var(--fs-sm);font-weight:600;color:var(--muted);line-height:1.5}
.trip-views{
  margin:18px 0 10px;padding:14px;
  background:color-mix(in srgb,var(--sage) 52%,var(--paper));
  border:1px solid color-mix(in srgb,var(--moss) 16%,transparent);
  border-radius:18px
}
.trip-views p{margin:0 0 10px;font-size:var(--fs-sm);font-weight:700;color:var(--moss)}
.trip-views p span{display:block;font-family:"Fraunces",serif;font-size:var(--fs-lg);font-style:italic}
.trip-view-actions{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.trip-view-actions::-webkit-scrollbar{display:none}
.trip-view-actions button{
  flex:0 0 auto;min-height:44px;border:1px solid rgba(53,87,70,.16);border-radius:999px;
  background:var(--white);padding:8px 13px;color:var(--moss);font:inherit;font-size:var(--fs-sm);font-weight:800
}
.trip-view-actions button.on{background:var(--moss);border-color:var(--moss);color:var(--white)}
[data-trip-section][hidden],section.card[hidden]{display:none!important}
.trip-stage{
  margin-top:18px;margin-bottom:8px;padding-top:20px;padding-bottom:18px;
  color:var(--white);background:var(--moss);position:relative;overflow:hidden
}
.trip-stage:before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-210px;top:-220px;background:var(--gold);opacity:.35}
.stage-topline,.stage-main,.stage-actions,.stage-rail{position:relative;z-index:1}
.stage-topline{display:flex;justify-content:space-between;gap:12px;font-size:var(--fs-xs);font-weight:900;letter-spacing:.12em;color:var(--sage)}
.stage-main{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin:12px 0}
.stage-date{margin:0 0 2px;font-family:"Fraunces",serif;font-size:var(--fs-lg);font-style:italic;color:var(--gold)}
.stage-main h2{color:var(--white);font-size:clamp(1.5rem,6vw,2.2rem);max-width:680px}
.stage-main p:not(.stage-date){margin:5px 0 0;color:var(--sage);font-size:var(--fs-sm);font-weight:600}
.stage-commands{display:flex;gap:6px}.stage-commands button{min-width:58px;min-height:44px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:transparent;color:var(--white);font:inherit;font-size:var(--fs-xs);font-weight:800}.stage-commands button:disabled{opacity:.35}
.stage-actions{display:grid;grid-template-columns:1.35fr 1fr;gap:8px}.stage-actions button,.stage-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:0;border-radius:4px;font:inherit;font-size:var(--fs-sm);font-weight:900;text-decoration:none}.stage-open{background:var(--gold);color:#4b3b10}.stage-road{background:rgba(255,255,255,.12);color:var(--white)!important;border:1px solid rgba(255,255,255,.28)!important}
.stage-status{position:relative;z-index:1;margin-top:12px;border-top:1px solid rgba(255,255,255,.2);padding-top:10px}.stage-status summary{cursor:pointer;color:var(--white);font-size:var(--fs-sm);font-weight:800;list-style:none}.stage-status summary::-webkit-details-marker{display:none}.stage-status summary span{color:var(--sage);font-weight:600}.stage-status .env-strip{margin:10px 0 0}.stage-status .env-strip button{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22)}.stage-status .env-strip b{color:var(--sage)}.stage-status .env-strip strong{color:var(--white)}.stage-status p{margin:8px 0 0;color:var(--sage);font-size:var(--fs-xs);line-height:1.5}
.stage-rail{display:flex;gap:6px;overflow:auto;margin-top:16px;padding-bottom:3px;scrollbar-width:none;scroll-snap-type:x proximity}.stage-rail::-webkit-scrollbar{display:none}
.stage-day{flex:0 0 auto;min-width:58px;min-height:44px;scroll-snap-align:center;background:transparent;border:0;border-top:2px solid rgba(255,255,255,.3);border-radius:0 0 10px 10px;padding:6px 6px 5px;color:var(--sage);text-align:left;font:inherit;font-size:var(--fs-xs);font-weight:700;line-height:1.35;-webkit-tap-highlight-color:transparent}.stage-day b{display:block;color:var(--white);font-size:var(--fs-sm)}.stage-day i{display:inline-block;margin-left:4px;padding:0 5px;border-radius:999px;background:rgba(230,195,106,.22);color:var(--gold);font-style:normal;font-size:10px;line-height:1.6;vertical-align:1px}.stage-day.today{border-top-style:dashed;border-top-color:var(--gold)}.stage-day.on{border-top-style:solid;border-color:var(--gold);background:rgba(255,255,255,.1);color:var(--gold)}.stage-day.on b{color:var(--gold)}.stage-day.on i{background:var(--gold);color:#4b3b10}
.stage-mini{display:none;position:fixed;z-index:47;left:0;right:0;top:calc(var(--bar-h) + env(safe-area-inset-top,0px));align-items:center;gap:4px;padding:5px max(10px,env(safe-area-inset-right)) 6px max(10px,env(safe-area-inset-left));background:var(--moss);color:var(--white);box-shadow:0 10px 24px rgba(42,56,48,.2)}
.stage-mini > button{flex:0 0 auto;width:40px;min-height:40px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:transparent;color:var(--white);font:inherit;font-size:1.25rem;font-weight:800;line-height:1}
.stage-mini .stage-rail{flex:1;margin:0;padding-bottom:0}.stage-mini .stage-day{min-width:0;min-height:40px;padding:8px 8px 6px;white-space:nowrap}.stage-mini .stage-day b{display:inline;margin-right:4px}
html.stage-away .stage-mini{display:flex}@media (max-width:900px){html.stage-away{scroll-padding-top:calc(var(--bar-h) + env(safe-area-inset-top,0px) + 62px)}}
body.os-open .stage-mini,body.toc-open .stage-mini{display:none!important}
.reference-drawer{margin:16px 0;border:1px solid rgba(53,87,70,.14);border-radius:16px;background:var(--paper);padding:0 14px}.reference-drawer summary{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;font-weight:900;color:var(--moss);list-style:none}.reference-drawer summary::-webkit-details-marker{display:none}.reference-drawer summary span{font-size:var(--fs-xs);font-weight:600;color:var(--muted)}
#top > .env-strip,#top > .env-strip + .small{display:none}
@media (max-width:900px){
  #top .hero{padding-top:18px}.hero .route{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:10px}.hero .meta{grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.hero .meta div:last-child{grid-column:span 2}.hero .plan-switch{margin-top:12px}.hero .small{margin-bottom:0}.hero .polaroid,.hero .polaroid.alt{display:none}
  .trip-stage{margin-left:0;margin-right:0;width:100%;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right))}
}
@media (min-width:901px){.trip-stage{border-radius:26px;padding-left:32px;padding-right:32px}.stage-main h2{font-size:clamp(1.8rem,3.5vw,2.8rem)}.trip-stage .stage-rail{max-width:720px}.stage-mini{display:none!important}}
.tool-home{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
.hotel,.park{
  background:var(--paper);border-radius:20px;padding:16px;border:1px solid rgba(53,87,70,.08)
}
.hotel img,.park img{width:100%;aspect-ratio:16/10;height:auto;object-fit:cover;border-radius:14px;margin-bottom:10px}
.stars{color:#d4a017;letter-spacing:1px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;
  background:var(--moss);color:#fff!important;border-radius:999px;
  padding:12px 16px;font-size:var(--fs-sm);margin:6px 8px 0 0;
  min-height:44px;line-height:1.2
}
.btn.ghost{background:#fff;color:var(--moss)!important;border:1px solid var(--moss)}
.btn.coral{background:var(--coral)}
.speak-place{
  display:inline-flex;align-items:center;justify-content:center;gap:4px;
  min-height:36px;margin:6px 8px 0 0;padding:7px 10px;
  border:1px solid color-mix(in srgb,var(--moss) 28%,transparent);border-radius:999px;
  background:var(--mint);color:var(--moss);font:inherit;font-size:var(--fs-xs);font-weight:900;
  cursor:pointer;line-height:1.2
}
.speak-place.compact{vertical-align:middle}
.speak-place.is-speaking{background:var(--coral);border-color:var(--coral);color:#fff}
.table-wrap{
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  margin:12px 0 18px;padding-bottom:4px;max-width:100%;
}
.table-wrap::before{
  content:"表格可左右滑动";
  display:none;font-size:var(--fs-xs);color:var(--muted);margin-bottom:6px;
}
table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);min-width:0}
th,td{padding:10px 8px;text-align:left;border-bottom:1px solid rgba(53,87,70,.12);vertical-align:top}
th{color:var(--moss);font-size:var(--fs-sm);white-space:nowrap}
.clock{display:grid;gap:8px}
.clock li{list-style:none;background:var(--blush);border-radius:14px;padding:10px 14px}
.clock li p{margin:6px 0 0}
ul.clock{margin:0;padding:0}
.small{font-size:var(--fs-sm);color:var(--muted);font-weight:500}
.place{
  display:block;color:var(--moss);font-size:var(--fs-md);font-weight:900;line-height:1.3;margin:2px 0 4px
}
.addr{
  color:#1f4d78;font-weight:800;font-size:var(--fs-sm);line-height:1.45;margin:0 0 6px
}
.why{margin:0;font-weight:500;color:var(--ink);font-size:var(--fs-md);line-height:1.65}
.clock li > strong{
  color:var(--coral);font-weight:900;font-variant-numeric:tabular-nums;font-size:var(--fs-md)
}
.clock-step{
  display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:start
}
.idshot{
  width:72px;height:72px;object-fit:cover;border-radius:14px;
  background:#e8eee9;box-shadow:0 4px 0 rgba(53,87,70,.08)
}
.spot-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.spot-card{
  background:#fff;border-radius:16px;overflow:hidden;
  border:1px solid rgba(53,87,70,.1)
}
.spot-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.spot-card strong{display:block;padding:8px 10px 0;font-size:var(--fs-sm);color:var(--moss)}
.spot-card p{margin:0;padding:4px 10px 10px;font-size:var(--fs-sm);font-weight:600;color:var(--muted);line-height:1.45}
.ok strong,.warn strong,.bad strong,.must h3{font-weight:900}
@media (max-width:720px){
  .spot-row{grid-template-columns:1fr 1fr}
  .idshot{width:64px;height:64px}
  .clock-step{grid-template-columns:64px 1fr}
}
.footer-check{display:grid;grid-template-columns:repeat(4, minmax(0,1fr));gap:10px}
.footer-check div{background:#fff;border-radius:16px;padding:12px;text-align:center;font-weight:700;font-size:var(--fs-sm)}
.toc a{text-decoration:none}
.ride{background:var(--paper);border-radius:16px;padding:14px 16px;margin:10px 0;border:1px solid rgba(53,87,70,.08)}
.ride h4{margin:0 0 6px;color:var(--moss);font-size:var(--fs-md)}
.mins{display:inline-block;background:var(--sage);color:var(--moss);border-radius:999px;padding:2px 8px;font-size:var(--fs-xs);font-weight:800;white-space:nowrap}
.choice .win{outline:3px solid var(--moss)}
@media (min-width:1400px){
  .wrap{max-width:1240px;margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px}
  .hero{padding:52px 0 22px;gap:36px}
}
@media (max-width:1080px){
  .grid-3{grid-template-columns:repeat(2, minmax(0,1fr))}
  .footer-check{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .hero,.grid-2,.choice,.meta,.grid-3{grid-template-columns:1fr}
  .hero{gap:16px;padding:22px 0 8px;overflow:hidden}
  .polaroid,.polaroid.alt{transform:none;margin-top:0}
  .polaroid:after{display:none}
  .polaroid img{max-height:220px}
  .card{padding:16px;border-radius:20px;margin:14px 0}
  .table-wrap::before{display:block}
  .btn{max-width:100%}
}
@media (max-width:720px){
  .wrap{padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right))}
  .grid-3,.footer-check,.choice{grid-template-columns:1fr}
  .kicker{font-size:var(--fs-sm);max-width:100%;white-space:normal;line-height:1.4}
  .meta div{padding:12px}
  .hotel,.park{padding:14px}
  .btn{width:auto;max-width:100%;margin:6px 8px 0 0}
  .clock .act-row .btn,.hotel .act-row .btn,.park .act-row .btn,.gas .act-row .btn{width:100%;margin:0}
  .clock > .btn,.hotel > .btn,.park > .btn{width:100%;margin:6px 0 0}
  table, .table-wrap table{min-width:0!important;font-size:var(--fs-sm)}
  .table-wrap::before{display:none}
  .table-wrap table,.table-wrap tbody{display:block;width:100%}
  .table-wrap tr{display:block;background:#fff;border:1px solid rgba(53,87,70,.12);border-radius:14px;padding:10px 12px;margin:0 0 10px;width:100%}
  .table-wrap tr:first-child{display:none}
  .table-wrap th,.table-wrap td{display:block;width:100%;border:0;padding:3px 0;white-space:normal}
  .table-wrap td[data-label]::before{content:attr(data-label) " · ";font-weight:800;color:var(--moss)}
  .clock li{padding:12px}
  .timeline a{min-width:96px}
  .hard-line{font-size:var(--fs-sm)}
}
@media (max-width:480px){
  body{font-size:16px}
  .card{padding:14px;border-radius:16px}
  .pill{font-size:var(--fs-xs)}
  .photo img,.fluid-pic,.hotel img,.park img{aspect-ratio:4/3}
  .badge{font-size:var(--fs-xs);white-space:normal}
  .footer-check{grid-template-columns:1fr 1fr}
  h1{font-size:var(--fs-hero)}
}
/* Time boundaries stay visible; optional routes use progressive disclosure. */
.deadline{margin:18px 0;padding:16px 18px;border:2px solid #a95428;border-radius:14px;background:#fff5e9;color:#4b2b18}
.deadline h3{margin:0 0 8px;color:#853913;font-size:1.1rem}
.deadline .ops-pri{display:block;margin:0;line-height:1.8;color:inherit}
.route-stop{min-width:0;margin:18px 0;padding:18px;border:1px solid #cbd8cd;border-radius:14px;background:#f8fbf7;overflow-wrap:anywhere}
.route-stop h3{margin-top:0;color:#234a37}
.route-stop dl{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px 16px;margin:12px 0}
.route-stop dt{font-weight:750;color:#325b46}
.route-stop dd{margin:0;line-height:1.75;color:#263d32;min-width:0}
.route-option{margin:16px 0;border:1px solid #b9cbbb;border-radius:14px;padding:0 16px;overflow-wrap:anywhere}
.route-option>summary{min-height:48px;padding:14px 0;font-size:1rem;line-height:1.6;font-weight:750;color:#234a37;cursor:pointer}
.route-option[open]>summary{border-bottom:1px solid #d6e1d7;margin-bottom:12px}
.route-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.route-links .btn{min-height:48px;max-width:100%;white-space:normal;text-align:center;justify-content:center}
.offline-deadline{padding:12px;border-left:4px solid #a95428;background:#fff5e9;line-height:1.7}
.route-option summary:focus-visible,.route-links a:focus-visible{outline:3px solid #286bae;outline-offset:3px}
@media(max-width:720px){
  .deadline,.route-stop{padding:14px}
  .route-stop dl{grid-template-columns:minmax(0,1fr);gap:5px}
  .route-stop dd{margin-bottom:10px;font-size:16px}
  .route-option{padding:0 12px}
  .route-links{display:block}
  .route-option>summary{font-size:16px}
  #off-list .phrase>div{min-width:0;overflow-wrap:anywhere}
  #off-list .copy{flex-shrink:0;min-width:48px;min-height:44px}
}
/* Phone-first containment: long Chinese labels, addresses, and touch actions stay inside cards. */
@media (max-width:720px){
  body{overflow-x:clip}
  .card,.hotel,.park,.gas,.tool-card,.clock li{min-width:0;overflow-wrap:anywhere}
  .day{gap:9px;align-items:center}
  .day h2{flex-basis:100%;font-size:clamp(1.35rem,6vw,1.6rem);letter-spacing:-.015em}
  .pill,.loc-tag,.badge,.ops-meta span,.km,.p-must,.p-should,.p-opt,.p-skip{
    display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:100%;
    min-height:32px;text-align:center;white-space:normal;line-height:1.25
  }
  .ops-meta{gap:7px}
  .ops-meta span,.km{padding:6px 10px}
  .ops-pri{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start}
  .ops-pri .p-must,.ops-pri .p-should,.ops-pri .p-opt,.ops-pri .p-skip{margin:0}
  .btn,.clock > p .btn,.hotel > p .btn,.park > p .btn,.gas > p .btn{width:100%;min-height:48px;margin:10px 0 0;text-align:center;white-space:normal}
  .speak-place{width:auto;min-height:44px;max-width:100%;margin:8px 6px 0 0;white-space:normal}
  .btn + .btn{margin-top:8px}
  .clock li{padding:14px;background:color-mix(in srgb,var(--blush) 72%,var(--white))}
  .clock-step{grid-template-columns:56px minmax(0,1fr)}
  .idshot{width:56px;height:56px}
  .table-wrap{overflow:visible}
  .table-wrap a{overflow-wrap:anywhere}
  .addr{color:#16466f;font-size:.93rem;line-height:1.5}
  .why{color:#33463b;font-size:1rem;line-height:1.72}
  .small{color:#55685e}
}
@media (min-width:900px){
  .desk-links{display:flex}
  .menu-btn{margin-left:0}
}
@media print{
  .site-bar,.no-print,.nav-pick,.nav-mask,.toc-drawer,.toc-mask{display:none!important}
  .card{break-inside:avoid;box-shadow:none;border:1px solid #ddd}
  body{background:#fff}
}
