@font-face{font-family:'Work Sans';src:url('work-sans.woff2') format('woff2');font-weight:300 600;font-display:swap}
:root{--bg:#e5e1d8;--surface:#dad5ca;--ink:#2a1d17;--muted:#6b5b51;--accent:#456f3a;--accent-ink:#fff;--caption:14px;--body:17px;--lead:24px;--heading:clamp(32px,4.45vw,64px);--display:clamp(32px,3.05vw,44px);--gutter:32px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--bg);color:var(--ink);font:400 var(--body)/1.6 'Work Sans','Microsoft YaHei',sans-serif}a{color:inherit;text-underline-offset:5px}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible+span,summary:focus-visible{outline:3px solid currentColor;outline-offset:5px}::selection{background:var(--accent);color:var(--accent-ink)}h1,h2,h3,p,figure,dl{margin:0}h1,h2{font-weight:400;letter-spacing:-.035em;line-height:1.16}h1{font-size:var(--display)}h2{font-size:var(--heading)}h3{font-size:var(--lead);font-weight:500;line-height:1.4}p+p{margin-top:18px}img{display:block;width:100%;height:100%;object-fit:cover}figure{min-width:0}figcaption,.caption{font-size:var(--caption);line-height:1.55;color:var(--muted)}figcaption{margin-top:12px}section{scroll-margin-top:32px}main>section,main>.data-note{margin-left:var(--gutter);margin-right:var(--gutter)}.masthead{padding:24px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{text-decoration:none;font-weight:500}.masthead nav{display:flex;gap:32px}.masthead nav a{text-decoration:none;padding:8px 0}.print{border:0;background:none;color:inherit;padding:10px 0}.masthead a:hover,.print:hover{text-decoration:underline}.hero{display:grid;grid-template-columns:3fr 4.2fr 3.3fr;gap:4%;padding-top:54px;padding-bottom:100px;align-items:start}.small-print{width:67%;}.small-print img{aspect-ratio:1;object-position:60% center}.hero-copy{margin-top:32px}.hero-copy .dates{font-size:var(--lead);margin-top:32px}.hero-copy>p:not(.dates){margin-top:20px;max-width:23em}.primary{display:flex;justify-content:space-between;align-items:center;gap:24px;background:var(--accent);color:var(--accent-ink);padding:16px 20px;text-decoration:none;margin-top:28px;min-height:56px;transition:background .2s,transform .2s}.primary:hover{background:var(--ink);transform:translateY(-2px)}.drift-frame{overflow:hidden;aspect-ratio:3/4}.drift-frame img{object-position:center;animation:drift 18s ease-in-out infinite alternate}.wide-print img{aspect-ratio:1.45;object-position:center}.hero-note{font-size:var(--lead);line-height:1.5;margin-top:48px}.hero-right>.caption{margin-top:28px}.shutter{animation:shutter 1.1s cubic-bezier(.2,.7,.2,1) both}.hero-left .shutter{animation-delay:.08s}.hero-right .shutter{animation-delay:.22s}
.decision{display:grid;grid-template-columns:4fr 7fr;gap:8%;padding:32px 0 0}.decision-intro>p{margin-top:32px;max-width:26em}.plan{padding:36px;background:var(--accent);color:var(--accent-ink)}fieldset{border:0;padding:0;margin:0}legend{padding:0;margin-bottom:16px}.switch{display:flex;gap:6px;background:rgba(0,0,0,.14);padding:5px;max-width:430px}.switch label{position:relative;flex:1;cursor:pointer}.switch input{position:absolute;opacity:0}.switch span{display:block;min-height:48px;padding:11px 14px;text-align:center;transition:background .2s,color .2s}.switch input:checked+span{background:var(--bg);color:var(--ink)}.plan-result{display:grid;grid-template-columns:1fr 1.4fr;gap:30px;margin:32px 0}.total>span{font-size:var(--heading);font-weight:300;letter-spacing:-.05em;line-height:1}.total p{font-size:var(--caption);margin-top:10px}.plan-facts p{font-size:var(--body)}.plan>p{max-width:47em}.plan>a{display:inline-block;padding:16px 0 0}.plan-result.changed{animation:result .35s ease}.data-note{max-width:100%;padding:24px 0 0;font-size:var(--caption);color:var(--muted)}
.hotels{padding-top:120px}.section-heading{display:grid;grid-template-columns:4fr 7fr;gap:8%;align-items:end;margin-bottom:48px}.section-heading p{max-width:35em}.hotel{display:grid;grid-template-columns:4fr 7fr;gap:8%;padding:40px 0}.hotel-heading>p{max-width:30em}.hotel-heading>p:first-child{margin-bottom:20px}.name-price{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline;justify-content:space-between}.room-price{font-size:var(--heading);font-weight:300;letter-spacing:-.055em}.hotel-heading>p:last-child{margin-top:14px}.hotel-body{min-width:0}.facts{display:grid;grid-template-columns:1fr 1fr;gap:28px 36px}.fact dt{font-size:var(--lead);margin-bottom:8px;font-weight:500}.fact dd{margin:0}.hotel-body>.caption{margin-top:28px}.book{display:flex;justify-content:space-between;align-items:center;min-height:56px;margin-top:24px;padding:14px 20px;text-decoration:none;background:var(--ink);color:var(--bg);transition:background .2s,transform .2s}.book:hover{background:var(--accent);transform:translateY(-2px)}.lead-hotel{background:var(--surface);padding:36px;margin-bottom:40px;grid-template-columns:3.65fr 7fr;gap:8%}.alt-hotel{padding:40px 0 24px}.alt-hotel+.alt-hotel{margin-top:36px}
.route-section{padding-top:120px}.route-top{display:grid;grid-template-columns:6fr 4fr;gap:12%;align-items:end}.route-top p{max-width:32em}.route-friday{display:grid;grid-template-columns:3fr 5fr;gap:12%;padding:56px 0;max-width:1100px}.day{font-size:var(--lead)}.route-friday h3{margin-bottom:20px}.route-saturday{display:grid;grid-template-columns:5fr 5fr;gap:12%;align-items:start}.route-photo{margin-top:60px}.route-photo img{aspect-ratio:4/5;object-position:50% center}.route-copy>h3{margin:18px 0 28px}.schedule{list-style:none;padding:0;margin:0}.schedule li+li{margin-top:26px}.schedule time{display:block;font-size:var(--lead);margin-bottom:6px}.route-sunday{display:grid;grid-template-columns:5fr 4fr;gap:20%;align-items:center;margin-top:84px}.route-sunday .route-copy{max-width:34em}.sunday-photo img{aspect-ratio:1.1;object-position:30% 45%}.panorama{margin-top:80px}.panorama img{aspect-ratio:2.8;object-position:50% 70%}
.practical{display:grid;grid-template-columns:6fr 4fr;gap:12%;padding-top:120px;align-items:center}.practical h2{margin-bottom:32px}details{margin-top:20px}summary{cursor:pointer;font-size:var(--lead);line-height:1.5;padding:8px 0;list-style:none}summary::-webkit-details-marker{display:none}summary:after{content:'＋';display:inline-block;margin-left:12px;transition:transform .25s}details[open]>summary:after{transform:rotate(45deg)}details p{margin-top:16px}details p+p{margin-top:14px}.parking-photo img{aspect-ratio:3/4;object-position:65% center}.friends{padding-top:120px;padding-bottom:100px;display:grid;grid-template-columns:4fr 7fr;gap:8%}.friends .lead{font-size:var(--lead);line-height:1.5}.friends-columns{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:32px}.friends-columns h3{margin-bottom:16px}.friends-columns a{display:inline-block}.friends-body>.caption{margin-top:28px}
footer{padding:60px var(--gutter) 24px;background:var(--ink);color:var(--bg)}.footer-top{display:grid;grid-template-columns:4fr 7fr;gap:8%;align-items:end}.footer-top h2{font-size:var(--heading)}.footer-top p{font-size:var(--lead)}.footer-print{margin-top:20px}.footer-columns{display:grid;grid-template-columns:1fr 1fr;gap:8%;margin-top:60px}.footer-columns h3{margin-bottom:20px}.footer-columns p{max-width:36em}.footer-columns summary{font-size:var(--body)}.footer-columns ul{padding-left:20px;font-size:var(--caption)}.footer-columns li{margin:14px 0;overflow-wrap:anywhere}.footer-columns .caption{color:var(--bg)}.footer-word{font-size:clamp(32px,9.6vw,140px);font-weight:300;letter-spacing:-.04em;line-height:1.2;margin-top:64px}.back{display:inline-block;padding:24px 0 0}.reveal{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}.fact:nth-child(2n),.schedule li:nth-child(2n){animation-name:slide}.reveal:nth-child(2n){animation-delay:.1s}.reveal:nth-child(3n){animation-delay:.18s}@keyframes shutter{from{clip-path:inset(0 0 100% 0);transform:translateY(14px)}to{clip-path:inset(0);transform:translateY(0)}}@keyframes drift{from{transform:scale(1.01)}to{transform:scale(1.09) translateY(-1%)}}@keyframes rise{from{opacity:.3;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes slide{from{opacity:.3;transform:translateX(18px)}to{opacity:1;transform:none}}@keyframes result{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(min-width:1600px){body{max-width:1800px;margin:auto}}@media(max-width:1000px){:root{--gutter:24px}.masthead nav{gap:16px}.hero{gap:3%;grid-template-columns:3.5fr 4fr 3fr;padding-top:32px}.hero-note{margin-top:28px;font-size:var(--body)}.hero-copy>p:not(.dates){font-size:var(--body)}.small-print{width:90%}.decision,.section-heading,.hotel,.friends,.footer-top{gap:6%;grid-template-columns:4fr 6fr}.plan{padding:24px}.plan-result{grid-template-columns:1fr;gap:18px}.plan-facts{display:grid;grid-template-columns:1fr 1fr;gap:20px}.plan-facts p+p{margin:0}.facts{grid-template-columns:1fr}.lead-hotel{padding:24px}.route-saturday,.practical{gap:7%;grid-template-columns:1fr 1fr}.route-sunday{gap:10%}.friends-columns{grid-template-columns:1fr}.hero-copy .dates{font-size:var(--body)}}
@media(max-width:600px){:root{--gutter:20px;--heading:36px;--display:36px;--lead:24px}.masthead{padding-top:16px;padding-bottom:16px;gap:12px;flex-wrap:wrap}.brand{font-size:var(--body)}.masthead nav{order:3;width:100%;justify-content:space-between;gap:12px}.masthead nav a{font-size:var(--caption)}.masthead .print{font-size:var(--caption)}.hero{padding:24px 0 64px;grid-template-columns:1fr 1fr;column-gap:16px;row-gap:24px}.hero-left{display:contents}.hero-copy{grid-column:1/-1;grid-row:1;margin:0}.hero-copy h1{font-size:44px}.hero-copy .dates{margin-top:24px;font-size:var(--lead)}.hero-copy>p:not(.dates){max-width:none;margin-top:16px}.primary{margin-top:24px}.tall-print{grid-column:1;grid-row:2}.drift-frame{aspect-ratio:3/4}.hero-right{grid-column:2;grid-row:2}.wide-print img{aspect-ratio:1}.hero-note{margin-top:22px;font-size:var(--body)}.hero-right>.caption{display:none}.small-print{grid-row:3;grid-column:1/-1;display:none}.decision,.section-heading,.hotel,.friends,.footer-top{display:block}.decision-intro>p{margin:24px 0 28px;max-width:none}.plan{padding:24px}.switch{max-width:none}.switch span{padding:11px 8px}.plan-result{margin:28px 0}.plan-facts{display:block}.plan-facts p+p{margin-top:18px}.total>span{font-size:64px}.data-note{padding-top:20px}.hotels,.route-section,.practical,.friends{padding-top:72px}.section-heading{margin-bottom:32px}.section-heading>p{margin-top:24px}.hotel-heading{margin-bottom:28px}.hotel-heading>p:first-child{margin-bottom:14px}.name-price{flex-wrap:nowrap}.room-price{font-size:44px}.facts{gap:24px;grid-template-columns:1fr}.fact{display:grid;grid-template-columns:52px 1fr;gap:16px}.fact dt{font-size:var(--body)}.fact dd{min-width:0}.lead-hotel{padding:24px 20px;margin-left:-20px;margin-right:-20px;margin-bottom:24px}.alt-hotel{padding:24px 0}.alt-hotel+.alt-hotel{margin-top:24px}.route-top{display:block}.route-top p{margin-top:24px}.route-friday{display:block;padding:32px 0}.route-friday .day{margin-bottom:18px}.route-saturday{display:flex;flex-direction:column;gap:28px}.route-photo{margin-top:0;width:100%}.route-photo img{aspect-ratio:1.3}.route-sunday{display:flex;flex-direction:column;gap:28px;margin-top:48px;align-items:stretch}.route-sunday .route-copy{max-width:none}.sunday-photo{width:76%;align-self:flex-end}.sunday-photo img{aspect-ratio:3/4}.panorama{margin-top:40px}.panorama img{aspect-ratio:1.25;object-position:60% center}.practical{display:flex;flex-direction:column;gap:32px;align-items:stretch}.parking-photo img{aspect-ratio:1.4}.practical h2{margin-bottom:24px}.friends{padding-bottom:64px}.friends-body{margin-top:28px}.friends-columns{margin-top:28px;gap:28px}.friends .lead{font-size:var(--body)}footer{padding-top:40px}.footer-top>div{margin-top:28px}.footer-top p{font-size:var(--body)}.footer-columns{grid-template-columns:1fr;gap:36px;margin-top:36px}.footer-word{font-size:44px;margin-top:40px}.footer-columns h3{font-size:var(--lead)} }
:root{--body:18px;--caption:18px;--muted:var(--ink)}.hotel-heading>p:first-child{margin-bottom:0}.hotel-heading>p:last-child{margin-top:24px}.hero-copy>p:not(.dates){font-size:var(--body)}
@media(min-width:601px) and (max-width:1000px){.hotel{display:block}.hotel-heading{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:32px}.hotel-heading>p:last-child{margin-top:0;grid-column:1/-1}.hotel-heading>p{margin-top:0}.facts{grid-template-columns:1fr 1fr}.hero{padding-bottom:64px}.hero-note{font-size:var(--body)}}
@media(max-width:600px){.alt-hotel{padding-top:64px}.practical,.friends{padding-top:96px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}@media print{html{scroll-behavior:auto}body{background:white;color:#222;font-size:12pt}.masthead nav,.print,.switch,.back{display:none}main>section{margin:0 20px;padding:24px 0}.hero{display:block}.hero-copy{margin:0}.hero figure,.hero-right,.small-print{display:none}.hero h1 br{display:none}.hero h1{font-size:28pt}.decision,.section-heading,.hotel,.route-top,.route-saturday,.route-sunday,.practical,.friends,.footer-top,.footer-columns{display:block}.plan,.lead-hotel,footer{background:none;color:#222;padding:20px}.facts{grid-template-columns:1fr 1fr}.fact{break-inside:avoid}.book{background:none;color:#222;padding:10px 0}.route-photo,.sunday-photo,.panorama,.parking-photo{display:none}.reveal,.shutter,.drift-frame img{animation:none}.hotel,.friends{break-inside:avoid}details:not([open])>*:not(summary){display:block}footer{margin-top:20px}.footer-word{font-size:32pt}.caption,figcaption{color:#444}}
