:root {
  --cream: #fff0a0;
  --red: #fe2d02;
  --blue: #034aad;
  --blue-deep: #012a68;
  --ink: #0a2144;
  --snow: #fffdf4;
  --white: #ffffff;
  --line: rgba(3, 74, 173, 0.18);
  --shadow: 0 24px 70px rgba(1, 42, 104, 0.18);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--blue);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.55;
}
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { max-width: 100%; }
::selection { background: var(--red); color: var(--white); }

.skip-link {
  position: fixed; z-index: 300; top: 10px; left: 10px; padding: 10px 14px; border-radius: 999px;
  background: var(--cream); color: var(--blue); font-weight: 900; transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }
.eyebrow { margin: 0; color: var(--red); font-size: .72rem; font-weight: 950; letter-spacing: .18em; text-transform: uppercase; }
.live-dot, .weather-live-dot { display: inline-block; width: 8px; height: 8px; margin-right: 7px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 5px rgba(254,45,2,.12); animation: pulse 1.8s infinite; }

.opening-wipe {
  position: fixed; z-index: 250; inset: 0; display: grid; place-content: center; gap: 16px; padding: 28px;
  background: var(--cream); text-align: center; pointer-events: none; animation: opening 850ms 1100ms cubic-bezier(.8,0,.2,1) forwards;
}
.opening-wipe::after { content:""; position:absolute; right:-20%; bottom:-32%; left:-20%; height:54%; background:var(--red); transform:rotate(-7deg); }
.opening-wipe img { position:relative; z-index:1; width:min(620px, 88vw); border:2px solid var(--blue); border-radius:24px; box-shadow:var(--shadow); animation:popIn 650ms ease both; }
.opening-wipe p { position:relative; z-index:1; margin:0; color:var(--blue); font-size:.76rem; font-weight:950; letter-spacing:.2em; }
@keyframes opening { to { visibility:hidden; transform:translateY(-105%); } }
@keyframes popIn { from { opacity:0; transform:translateY(18px) scale(.96); } }
@keyframes pulse { 50% { opacity:.45; transform:scale(.84); } }

.site-progress { position:fixed; z-index:170; top:0; left:0; width:100%; height:4px; background:rgba(255,255,255,.2); pointer-events:none; }
.site-progress span { display:block; width:100%; height:100%; background:linear-gradient(90deg,var(--cream),var(--red)); transform:scaleX(0); transform-origin:left; }

.site-header {
  position:fixed; z-index:60; top:0; left:0; display:flex; width:100%; align-items:center; justify-content:space-between;
  gap:14px; padding:16px 22px; pointer-events:none;
}
.brand { display:flex; width:210px; min-height:54px; align-items:center; gap:10px; padding:7px 12px 7px 8px; border:1px solid rgba(255,255,255,.5); border-radius:17px; background:rgba(255,240,160,.93); color:var(--blue); box-shadow:0 12px 35px rgba(1,42,104,.2); text-decoration:none; backdrop-filter:blur(14px); pointer-events:auto; }
.brand img { width:40px; height:40px; object-fit:contain; }
.brand span { display:flex; min-width:0; flex-direction:column; line-height:1.05; }
.brand strong { font-size:.9rem; font-weight:1000; letter-spacing:.04em; }
.brand small { margin-top:4px; font-size:.56rem; font-weight:850; letter-spacing:.1em; white-space:nowrap; }
.header-meta { display:flex; gap:8px; }
.header-meta span { padding:8px 12px; border:1px solid rgba(255,255,255,.35); border-radius:999px; background:rgba(1,42,104,.7); color:white; font-size:.7rem; font-weight:900; letter-spacing:.11em; backdrop-filter:blur(12px); }
.header-actions { display:flex; gap:8px; align-items:center; pointer-events:auto; }
.sound-toggle,.header-book { min-height:44px; border-radius:999px; font:inherit; font-size:.72rem; font-weight:950; letter-spacing:.06em; text-transform:uppercase; }
.sound-toggle { display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border:1px solid rgba(255,255,255,.4); background:rgba(1,42,104,.78); color:white; cursor:pointer; backdrop-filter:blur(12px); }
.header-book { display:inline-flex; align-items:center; gap:8px; padding:9px 16px; background:var(--red); color:white; text-decoration:none; box-shadow:0 12px 30px rgba(254,45,2,.3); }
.equalizer { display:flex; height:15px; gap:2px; align-items:flex-end; }
.equalizer i { width:2px; height:5px; border-radius:2px; background:var(--cream); }
body.sound-on .equalizer i { animation:equalize .55s ease-in-out infinite alternate; }
body.sound-on .equalizer i:nth-child(2){animation-delay:-.2s} body.sound-on .equalizer i:nth-child(3){animation-delay:-.4s}
@keyframes equalize { to { height:15px; } }

.party-overlay { position:fixed; z-index:45; inset:0; overflow:hidden; opacity:0; pointer-events:none; transition:opacity .35s ease; background:radial-gradient(circle at 15% 30%,rgba(255,240,160,.28),transparent 22%),radial-gradient(circle at 85% 35%,rgba(254,45,2,.24),transparent 20%),radial-gradient(circle at 50% 70%,rgba(3,74,173,.22),transparent 32%); }
body.sound-on .party-overlay { opacity:1; animation:partyWash 2.7s infinite alternate; }
.disco-ball { position:absolute; z-index:3; top:-50px; left:50%; width:clamp(150px,18vw,230px); opacity:0; transform:translate(-50%,-90px); filter:drop-shadow(0 20px 40px rgba(0,0,0,.42)); }
body.sound-on .disco-ball { opacity:1; animation:discoDrop .7s cubic-bezier(.18,.82,.22,1.15) forwards, discoSway 2.8s .7s infinite alternate ease-in-out; }
.party-stamp { position:absolute; z-index:4; top:185px; left:50%; display:flex; gap:8px; padding:8px 13px; border:1px solid rgba(255,255,255,.5); border-radius:999px; background:rgba(1,42,104,.84); color:white; font-size:.7rem; font-weight:950; letter-spacing:.14em; opacity:0; transform:translateX(-50%); }
.party-stamp strong { color:var(--cream); } body.sound-on .party-stamp { opacity:1; transition:.3s .45s; }
.party-beam { position:absolute; top:40px; left:50%; width:24vw; height:120vh; background:linear-gradient(rgba(255,255,255,.27),transparent 76%); clip-path:polygon(47% 0,53% 0,100% 100%,0 100%); filter:blur(9px); transform-origin:50% 0; animation-play-state:paused; }
body.sound-on .party-beam { animation-play-state:running; } .party-beam--one{animation:beam1 3.5s infinite alternate}.party-beam--two{animation:beam2 4.2s infinite alternate}.party-beam--three{animation:beam3 4.8s infinite alternate}
@keyframes discoDrop{to{transform:translate(-50%,0)}} @keyframes discoSway{from{transform:translate(-50%,0) rotate(-3deg)}to{transform:translate(-50%,0) rotate(3deg)}}
@keyframes partyWash{to{filter:saturate(1.35) hue-rotate(8deg)}} @keyframes beam1{from{transform:translateX(-50%) rotate(-35deg)}to{transform:translateX(-50%) rotate(32deg)}} @keyframes beam2{from{transform:translateX(-50%) rotate(18deg)}to{transform:translateX(-50%) rotate(-28deg)}} @keyframes beam3{from{transform:translateX(-50%) rotate(-8deg)}to{transform:translateX(-50%) rotate(40deg)}}

.mountain-journey { position:relative; height:420vh; background:var(--blue); }
.mountain-stage { position:sticky; top:0; height:100svh; min-height:620px; overflow:hidden; background:linear-gradient(#4584da,#c8ebff); color:white; }
.mountain-background { position:absolute; z-index:0; top:0; left:0; width:100%; height:230%; object-fit:cover; object-position:center top; transform-origin:center top; will-change:transform; }
.mountain-tint { position:absolute; z-index:1; inset:0; background:linear-gradient(180deg,rgba(1,42,104,.18),rgba(3,74,173,.08) 45%,rgba(1,42,104,.42)); }
.mountain-tint::after { content:""; position:absolute; inset:0; background:radial-gradient(circle at 50% 25%,transparent 0 28%,rgba(1,42,104,.26) 100%); }
.snow-canvas { position:absolute; z-index:5; inset:0; width:100%; height:100%; pointer-events:none; }
.journey-intro { position:absolute; z-index:6; top:22%; left:7vw; max-width:760px; will-change:transform,opacity; }
.journey-intro .eyebrow { color:var(--cream); text-shadow:0 2px 18px rgba(1,42,104,.3); }
.journey-intro h1 { margin:16px 0 18px; color:white; font-family:Impact,"Arial Black",sans-serif; font-size:clamp(4.4rem,10.2vw,10.5rem); font-weight:900; line-height:.82; letter-spacing:-.055em; text-transform:uppercase; text-shadow:0 10px 42px rgba(1,42,104,.28); }
.journey-intro h1 em { color:var(--cream); font-style:normal; }
.journey-intro > p:last-of-type { margin:0; font-size:clamp(1rem,1.8vw,1.25rem); font-weight:800; }
.scroll-prompt { display:flex; gap:12px; align-items:center; margin-top:32px; font-size:.72rem; font-weight:950; letter-spacing:.15em; text-transform:uppercase; }
.scroll-prompt i { display:block; width:76px; height:2px; background:white; position:relative; overflow:hidden; }
.scroll-prompt i::after { content:""; position:absolute; width:35px; height:100%; background:var(--red); animation:scrollLine 1.5s infinite ease-in-out; }
@keyframes scrollLine { from{transform:translateX(-38px)} to{transform:translateX(80px)} }
.skier { position:absolute; z-index:8; left:56%; top:18%; color:var(--blue); font-size:clamp(2.8rem,6vw,6rem); filter:drop-shadow(0 10px 8px rgba(1,42,104,.22)); will-change:top,left,transform; }
.journey-progress { position:absolute; z-index:7; right:24px; top:18%; width:3px; height:45%; overflow:hidden; background:rgba(255,255,255,.28); }
.journey-progress span { display:block; width:100%; height:100%; background:var(--red); transform:translateY(-100%); }
.descent-hud { position:absolute; z-index:7; right:42px; bottom:26px; display:grid; justify-items:end; text-shadow:0 2px 18px rgba(1,42,104,.5); }
.descent-hud span { font-size:.65rem; font-weight:950; letter-spacing:.16em; }
.descent-hud strong { font-family:Impact,"Arial Black",sans-serif; font-size:2.8rem; line-height:1; }
.slope-note { position:absolute; z-index:7; display:flex; flex-direction:column; padding:12px 16px; border-left:3px solid var(--red); background:rgba(255,240,160,.91); color:var(--blue); opacity:0; transform:translateY(15px); transition:.35s ease; box-shadow:0 14px 34px rgba(1,42,104,.2); backdrop-filter:blur(10px); }
.slope-note.is-visible { opacity:1; transform:translateY(0); }
.slope-note strong { font-size:1.25rem; font-weight:1000; }.slope-note span{font-size:.68rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.slope-note--one{left:10%;top:53%}.slope-note--two{right:12%;top:38%}.slope-note--three{left:16%;top:31%}
.arrival-message { position:absolute; z-index:9; left:50%; bottom:9%; display:grid; justify-items:center; width:min(620px,90vw); padding:28px; border:2px solid var(--blue); border-radius:28px; background:rgba(255,240,160,.94); color:var(--blue); text-align:center; opacity:0; transform:translate(-50%,25px); box-shadow:0 25px 80px rgba(1,42,104,.35); backdrop-filter:blur(16px); pointer-events:none; }
.arrival-message img { width:74px;height:74px;object-fit:contain}.arrival-message p{margin:7px 0 0;font-size:.68rem;font-weight:950;letter-spacing:.16em}.arrival-message h2{margin:4px 0 15px;font-size:clamp(2rem,4.2vw,4rem);line-height:1}.arrival-message a{padding:11px 18px;border-radius:999px;background:var(--red);color:white;font-size:.76rem;font-weight:950;text-decoration:none}

.basecamp { position:relative; z-index:10; overflow:hidden; background:var(--snow); }
.basecamp::before { content:""; position:absolute; inset:0; opacity:.05; pointer-events:none; background-image:linear-gradient(var(--blue) 1px,transparent 1px),linear-gradient(90deg,var(--blue) 1px,transparent 1px); background-size:42px 42px; }
.ticker { position:relative; z-index:1; overflow:hidden; border-block:3px solid var(--blue); background:var(--cream); color:var(--blue); }
.ticker div { display:flex; width:max-content; gap:28px; align-items:center; padding:12px 0; animation:ticker 24s linear infinite; font-size:.8rem; font-weight:1000; letter-spacing:.13em; }
.ticker b{color:var(--red)} @keyframes ticker{to{transform:translateX(-50%)}}
.section-rail { position:sticky; z-index:40; top:10px; display:flex; width:min(1180px,calc(100% - 30px)); min-height:58px; align-items:center; justify-content:space-between; gap:16px; margin:26px auto 0; padding:8px 10px 8px 16px; border:1px solid rgba(3,74,173,.18); border-radius:18px; background:rgba(255,253,244,.9); box-shadow:0 18px 50px rgba(1,42,104,.12); backdrop-filter:blur(16px); }
.section-rail__links,.section-rail__tools{display:flex;gap:8px;align-items:center}.section-rail a,.section-rail button{border:0;background:transparent;color:var(--blue);font:inherit;font-size:.71rem;font-weight:900;letter-spacing:.07em;text-decoration:none;text-transform:uppercase;cursor:pointer}.section-rail__links a{padding:9px;border-radius:9px}.section-rail__links a[aria-current="true"]{background:var(--cream)}.section-rail__tools button{padding:9px 12px;border:1px solid var(--line);border-radius:999px}
.basecamp-intro,.action-grid,.essentials,.red-alert,.weather-section,.steps,.packing-section,.vibe-picker,.committee,.countdown-section,.faq-section,.final-cta { position:relative; z-index:2; width:min(1180px,calc(100% - 38px)); margin-inline:auto; }
.basecamp-intro { display:grid; grid-template-columns:1.5fr .8fr; gap:60px; align-items:end; padding:110px 0 70px; }
.basecamp-intro h2,.section-heading h2,.packing-heading h2,.vibe-heading h2,.committee h2,.faq-intro h2 { margin:12px 0 0; color:var(--blue); font-family:Impact,"Arial Black",sans-serif; font-size:clamp(3.6rem,7.4vw,7.2rem); font-weight:900; line-height:.88; letter-spacing:-.045em; text-transform:uppercase; }
.basecamp-intro h2 em,.section-heading h2 em,.packing-heading h2 em,.vibe-heading h2 em,.committee h2 em,.faq-intro h2 em { color:var(--red); font-style:normal; }
.basecamp-intro > p { margin:0 0 8px; font-size:1.06rem; font-weight:650; }

.action-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; scroll-margin-top:95px; }
.action-card { position:relative; display:flex; min-height:380px; flex-direction:column; justify-content:space-between; padding:30px; overflow:hidden; border:2px solid var(--blue); border-radius:24px; background:white; box-shadow:var(--shadow); transform:perspective(900px) rotateX(var(--tilt-x,0)) rotateY(var(--tilt-y,0)); transition:transform .18s ease,box-shadow .2s ease; }
.action-card::after { content:""; position:absolute; right:-70px; bottom:-95px; width:220px; height:220px; border:38px solid var(--cream); border-radius:50%; opacity:.78; }
.action-card--hero { background:var(--blue); color:white; }.action-card--hero::after{border-color:var(--red)}.action-card--packing{background:linear-gradient(145deg,var(--cream),#fff9d7)}.action-card--packing::after{border-color:var(--red)}.action-card--spotify{background:var(--cream)}
.card-index { position:absolute; top:25px; right:28px; color:var(--red); font-size:.7rem; font-weight:950; letter-spacing:.14em; }
.card-label { color:var(--red); font-size:.68rem; font-weight:950; letter-spacing:.14em; }
.action-card--hero .card-label{color:var(--cream)}.action-card h3{max-width:470px;margin:40px 0 8px;font-family:Impact,"Arial Black",sans-serif;font-size:clamp(2.7rem,5vw,5.4rem);font-weight:900;line-height:.88;letter-spacing:-.035em;text-transform:uppercase}.action-card p{max-width:470px;margin:0;font-weight:600}.card-link{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;margin-top:32px;padding-top:18px;border-top:1px solid currentColor;font-size:.78rem;font-weight:1000;letter-spacing:.12em;text-decoration:none}.card-link span{font-size:1.2rem}

.essentials { padding:130px 0 60px; scroll-margin-top:100px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:48px; }
.fact-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.fact { display:flex; min-height:210px; flex-direction:column; justify-content:flex-end; padding:24px; border:2px solid var(--blue); border-radius:20px; background:white; }
.fact--price{background:var(--cream)}.fact span{margin-bottom:auto;color:var(--red);font-size:.68rem;font-weight:950;letter-spacing:.14em}.fact strong{color:var(--blue);font-family:Impact,"Arial Black",sans-serif;font-size:clamp(3rem,5vw,5rem);line-height:.9}.fact small{margin-top:6px;font-size:.8rem;font-weight:850;text-transform:uppercase}
.included-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:14px; }
.included-grid article { padding:34px; border-radius:22px; background:var(--blue); color:white; }
.included-grid article:last-child { background:var(--red); }
.mini-title{margin:0 0 18px!important;color:var(--cream);font-size:.68rem;font-weight:950;letter-spacing:.17em}.included-grid ul{display:grid;gap:12px;margin:0;padding:0;list-style:none}.included-grid li{position:relative;padding-left:24px;font-weight:700}.included-grid li::before{content:"✦";position:absolute;left:0;color:var(--cream)}
.detail-band { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:14px; overflow:hidden; border:2px solid var(--blue); border-radius:22px; background:var(--blue); }
.detail-band article{padding:28px;background:white}.detail-band span{color:var(--red);font-size:.66rem;font-weight:950;letter-spacing:.16em}.detail-band strong{display:block;margin:10px 0 8px;color:var(--blue);font-size:1.2rem}.detail-band p{margin:0;font-size:.9rem}.detail-band a{display:inline-block;margin-top:15px;color:var(--red);font-size:.74rem;font-weight:900;text-decoration:none}
.red-alert { display:grid; grid-template-columns:1.15fr 1fr auto; gap:36px; align-items:center; margin-top:70px; padding:38px; border-radius:26px; background:var(--red); color:white; box-shadow:0 28px 70px rgba(254,45,2,.22); }
.red-alert span{color:var(--cream);font-size:.68rem;font-weight:950;letter-spacing:.15em}.red-alert h2{margin:8px 0 0;font-size:clamp(2rem,3.8vw,4rem);line-height:.95}.red-alert p{margin:0;font-weight:650}.red-alert a{padding:14px 18px;border-radius:999px;background:var(--cream);color:var(--blue);font-size:.72rem;font-weight:950;letter-spacing:.1em;text-decoration:none;white-space:nowrap}

.weather-section { padding:130px 0 50px; scroll-margin-top:100px; }
.section-heading--weather { align-items:end; }.section-heading--weather>p{max-width:430px;margin:0 0 10px;font-weight:650}.weather-panel{display:grid;grid-template-columns:.8fr 1.2fr;overflow:hidden;border:2px solid var(--blue);border-radius:26px;background:var(--blue);box-shadow:var(--shadow)}
.weather-current{padding:36px;background:var(--cream);color:var(--blue)}.weather-current>span{font-size:.67rem;font-weight:950;letter-spacing:.13em;text-transform:uppercase}.weather-current>strong{display:block;margin:20px 0 0;font-family:Impact,"Arial Black",sans-serif;font-size:clamp(5.2rem,10vw,9rem);line-height:.8}.weather-current>p{margin:12px 0 25px;font-size:1.2rem;font-weight:900}.weather-current>div{display:flex;gap:16px;flex-wrap:wrap}.weather-current>div span{padding:8px 11px;border:1px solid var(--line);border-radius:999px;font-size:.75rem;font-weight:750}
.weather-forecast{display:grid;grid-template-columns:repeat(3,1fr);background:var(--blue);color:white}.weather-forecast>div{display:flex;min-height:330px;flex-direction:column;align-items:center;justify-content:center;gap:15px;padding:28px;border-left:1px solid rgba(255,255,255,.17);text-align:center}.weather-forecast span{color:var(--cream);font-size:.66rem;font-weight:950;letter-spacing:.14em}.weather-forecast strong{font-size:2.5rem}.weather-forecast small{font-weight:800}.weather-credit{margin:12px 4px 0;font-size:.72rem;color:rgba(10,33,68,.65)}

.steps { padding:130px 0 60px; }
.steps ol { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; padding:0; list-style:none; counter-reset:none; }
.steps li { min-height:270px; padding:27px; border:2px solid var(--blue); border-radius:20px; background:white; }
.steps li>span{display:inline-grid;width:38px;height:38px;place-items:center;border-radius:50%;background:var(--red);color:white;font-size:.72rem;font-weight:950}.steps h3{margin:50px 0 8px;color:var(--blue);font-size:1.6rem}.steps p{margin:0}.mega-cta{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding:24px 28px;border-radius:20px;background:var(--blue);color:white;font-family:Impact,"Arial Black",sans-serif;font-size:clamp(2rem,4vw,4.2rem);letter-spacing:-.02em;text-decoration:none}.mega-cta span:last-child{color:var(--cream)}

.packing-section { padding:130px 0 35px; scroll-margin-top:100px; }
.packing-heading { display:grid; grid-template-columns:1.2fr .7fr; gap:50px; align-items:end; margin-bottom:45px; }
.packing-heading>p { margin:0 0 8px; font-weight:650; }
.packing-layout { display:grid; grid-template-columns:320px 1fr; gap:18px; align-items:start; }
.packing-progress-card { --packing-progress:0; position:sticky; top:100px; display:grid; justify-items:center; padding:28px; border:2px solid var(--blue); border-radius:24px; background:var(--blue); color:white; box-shadow:var(--shadow); text-align:center; }
.packing-progress-card>img { width:76px; height:76px; object-fit:contain; margin-bottom:20px; }
.packing-ring { display:grid; width:184px; aspect-ratio:1; place-items:center; border-radius:50%; background:conic-gradient(var(--red) calc(var(--packing-progress) * 1%),rgba(255,255,255,.16) 0); transition:background .3s ease; }
.packing-ring>div { display:grid; width:142px; aspect-ratio:1; place-content:center; border-radius:50%; background:var(--blue-deep); }
.packing-ring strong { display:block; font-family:Impact,"Arial Black",sans-serif; font-size:3.2rem; line-height:.85; }
.packing-ring span { color:var(--cream); font-size:.63rem; font-weight:950; letter-spacing:.13em; text-transform:uppercase; }
.packing-progress-card>p { margin:20px 0 14px; color:var(--cream); font-size:.78rem; font-weight:900; letter-spacing:.04em; }
.packing-progress-card>button { min-height:44px; padding:10px 15px; border:1px solid rgba(255,255,255,.34); border-radius:999px; background:transparent; color:white; font:inherit; font-size:.68rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.packing-progress-card.is-complete { background:var(--red); }
.packing-progress-card.is-complete .packing-ring>div { background:var(--red); }
.packing-categories { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.packing-category { overflow:hidden; border:2px solid var(--blue); border-radius:20px; background:white; }
.packing-category header { display:flex; min-height:86px; align-items:center; justify-content:space-between; gap:15px; padding:18px; background:var(--cream); }
.packing-category header>div { display:flex; align-items:center; gap:11px; }
.packing-category header span { display:grid; width:34px; height:34px; flex:0 0 auto; place-items:center; border-radius:50%; background:var(--red); color:white; font-size:.65rem; font-weight:950; }
.packing-category h3 { margin:0; color:var(--blue); font-size:1rem; line-height:1.15; }
.packing-category header small { color:var(--red); font-size:.69rem; font-weight:950; white-space:nowrap; }
.packing-category label { display:flex; min-height:52px; align-items:center; gap:12px; padding:11px 16px; border-top:1px solid var(--line); font-size:.86rem; font-weight:700; cursor:pointer; }
.packing-category label:hover { background:rgba(255,240,160,.22); }
.packing-category input { appearance:none; width:23px; height:23px; flex:0 0 auto; margin:0; border:2px solid var(--blue); border-radius:7px; background:white; cursor:pointer; }
.packing-category input:checked { display:grid; place-items:center; border-color:var(--red); background:var(--red); }
.packing-category input:checked::after { content:"✓"; color:white; font-size:.85rem; font-weight:1000; }
.packing-category input:focus-visible { outline:3px solid rgba(254,45,2,.35); outline-offset:3px; }
.packing-category input:checked+span { opacity:.5; text-decoration:line-through; }

.vibe-picker { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; padding:130px 0; }
.vibe-heading>p:last-child{max-width:480px}.vibe-interactive{display:grid;gap:12px}.vibe-options{display:grid;gap:8px}.vibe-options button{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;width:100%;padding:18px;border:2px solid var(--blue);border-radius:16px;background:white;color:var(--blue);font:inherit;text-align:left;cursor:pointer}.vibe-options button[aria-pressed="true"]{background:var(--cream);box-shadow:8px 8px 0 var(--red)}.vibe-options button span{font-size:.7rem;font-weight:950}.vibe-options button strong{font-size:1rem}.vibe-options button small{font-weight:650}.vibe-result{padding:28px;border-radius:20px;background:var(--blue);color:white}.vibe-result>span{color:var(--cream);font-size:.66rem;font-weight:950;letter-spacing:.13em}.vibe-result h3{margin:16px 0 6px;font-size:1.75rem}.vibe-result p{margin:0}

.committee { display:grid; grid-template-columns:1.06fr .94fr; gap:60px; align-items:center; padding:110px 0; scroll-margin-top:100px; }
.committee-photo{position:relative;margin:0}.committee-photo::before{content:"";position:absolute;inset:18px -18px -18px 18px;border-radius:25px;background:var(--red)}.committee-photo img{position:relative;display:block;width:100%;border:2px solid var(--blue);border-radius:25px;aspect-ratio:4/3;object-fit:cover}.committee-photo figcaption{position:relative;margin-top:28px;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.committee-copy blockquote{margin:28px 0;padding-left:22px;border-left:4px solid var(--red);color:var(--blue);font-size:1.25rem;font-weight:850}.team-list{display:grid;gap:0;margin:30px 0 0;padding:0;border-top:1px solid var(--line);list-style:none}.team-list li{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--line)}.team-list span{font-size:.8rem;font-weight:750;text-align:right}.instagram-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding:17px 19px;border:2px solid var(--blue);border-radius:16px;background:var(--cream);color:var(--blue);text-decoration:none;box-shadow:7px 7px 0 var(--red);transition:transform .2s ease,box-shadow .2s ease}.instagram-cta:hover{transform:translate(-2px,-2px);box-shadow:10px 10px 0 var(--red)}.instagram-cta span{font-size:.66rem;font-weight:950;letter-spacing:.13em}.instagram-cta strong{font-size:1rem}
.countdown-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:55px;align-items:center;padding:70px 45px;border-radius:28px;background:var(--cream);box-shadow:var(--shadow)}.countdown-section h2{margin:8px 0 0;color:var(--blue);font-size:clamp(2rem,4vw,4.2rem);line-height:.95}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.countdown>div{display:flex;min-height:140px;flex-direction:column;align-items:center;justify-content:center;border-radius:18px;background:var(--blue);color:white}.countdown strong{font-family:Impact,"Arial Black",sans-serif;font-size:clamp(2.5rem,5vw,5rem);line-height:1}.countdown span{color:var(--cream);font-size:.68rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}

.faq-section { display:grid; grid-template-columns:.72fr 1.28fr; gap:70px; padding:140px 0 110px; scroll-margin-top:100px; }
.faq-intro{position:sticky;top:120px;align-self:start}.faq-intro>p:last-child{max-width:400px}.faq-list{display:grid;gap:8px}.faq-list details{border:2px solid var(--blue);border-radius:15px;background:white;overflow:hidden}.faq-list summary{position:relative;padding:19px 54px 19px 20px;color:var(--blue);font-weight:900;cursor:pointer;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:"+";position:absolute;right:20px;top:50%;font-size:1.5rem;transform:translateY(-52%);color:var(--red)}.faq-list details[open] summary{background:var(--cream)}.faq-list details[open] summary::after{content:"−"}.faq-list details>div{padding:20px;border-top:1px solid var(--line)}.faq-list a{color:var(--red);font-weight:850}
.final-cta{display:grid;grid-template-columns:220px 1fr auto;gap:35px;align-items:center;margin-bottom:90px;padding:34px;border:2px solid var(--blue);border-radius:28px;background:var(--cream);box-shadow:var(--shadow)}.final-cta img{border:2px solid var(--blue);border-radius:18px;aspect-ratio:894/390;object-fit:cover}.final-cta p{margin:0;color:var(--red);font-size:.68rem;font-weight:950;letter-spacing:.14em}.final-cta h2{margin:7px 0 0;color:var(--blue);font-family:Impact,"Arial Black",sans-serif;font-size:clamp(2.3rem,4.4vw,4.8rem);line-height:.88;text-transform:uppercase}.final-cta>a{padding:16px 20px;border-radius:999px;background:var(--red);color:white;font-size:.76rem;font-weight:950;letter-spacing:.08em;text-decoration:none;white-space:nowrap}

footer{position:relative;z-index:10;display:grid;grid-template-columns:auto 1fr auto;gap:36px;align-items:center;padding:34px max(24px,calc((100vw - 1180px)/2));background:var(--blue-deep);color:white}.footer-brand{display:flex;align-items:center;gap:10px}.footer-brand img{width:48px;height:48px;object-fit:contain}.footer-brand span{display:flex;flex-direction:column}.footer-brand strong{font-size:.84rem}.footer-brand small{color:var(--cream);font-size:.58rem;letter-spacing:.1em}.footer-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap}.footer-links a,.back-top{font-size:.7rem;font-weight:850;letter-spacing:.07em;text-decoration:none}.back-top{color:var(--cream)}
.sound-toast{position:fixed;z-index:180;right:20px;bottom:20px;max-width:calc(100vw - 40px);padding:13px 17px;border-radius:14px;background:var(--cream);color:var(--blue);font-size:.78rem;font-weight:900;box-shadow:var(--shadow);opacity:0;transform:translateY(20px);pointer-events:none;transition:.25s}.sound-toast.is-visible{opacity:1;transform:translateY(0)}
.reveal{opacity:0;transform:translateY(35px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}

@media (max-width: 980px) {
  .header-meta{display:none}.basecamp-intro,.section-heading--weather,.packing-heading,.packing-layout,.vibe-picker,.committee,.countdown-section,.faq-section{grid-template-columns:1fr}.basecamp-intro{gap:25px}.section-heading{align-items:flex-start}.fact-grid{grid-template-columns:repeat(2,1fr)}.detail-band{grid-template-columns:1fr}.red-alert{grid-template-columns:1fr}.weather-panel{grid-template-columns:1fr}.weather-forecast>div{min-height:210px}.packing-heading{gap:25px}.packing-progress-card{position:static;grid-template-columns:auto 184px 1fr;justify-items:start;align-items:center;text-align:left}.packing-progress-card>img{margin:0}.packing-progress-card>p{margin:0}.packing-progress-card>button{grid-column:3}.vibe-picker{gap:35px}.committee{gap:55px}.countdown-section{gap:30px}.faq-intro{position:static}.final-cta{grid-template-columns:170px 1fr}.final-cta>a{grid-column:1/-1;text-align:center}footer{grid-template-columns:1fr;text-align:center}.footer-brand{justify-content:center}.back-top{justify-self:center}
}

@media (max-width: 720px) {
  .site-header{gap:6px;padding:10px}.brand{width:54px;min-height:50px;padding:6px;justify-content:center;border-radius:14px}.brand img{width:31px;height:38px}.brand span{display:none}.header-actions{gap:5px}.sound-toggle,.header-book{min-height:48px}.sound-toggle{padding:8px 12px}.header-book{padding:9px 13px}.sound-toggle [data-sound-label]{display:inline;font-size:.64rem}.party-stamp{top:150px}.disco-ball{width:165px}.mountain-stage{min-height:560px}.journey-intro{top:20%;left:20px;right:20px}.journey-intro h1{font-size:clamp(3.65rem,18vw,6rem)}.journey-intro>p:last-of-type{font-size:.94rem}.skier{font-size:3.3rem}.journey-progress{right:12px}.descent-hud{right:20px;bottom:18px}.slope-note{padding:9px 12px}.slope-note--one{left:18px}.slope-note--two{right:28px}.slope-note--three{left:30px}.arrival-message{bottom:7%;padding:22px}.ticker div{padding:10px 0}.section-rail{top:8px;width:calc(100% - 18px);overflow-x:auto;justify-content:flex-start;padding:7px}.section-rail__links{min-width:max-content}.section-rail__tools{min-width:max-content;margin-left:auto}.section-rail a,.section-rail button{font-size:.65rem}.basecamp-intro,.action-grid,.essentials,.red-alert,.weather-section,.steps,.packing-section,.vibe-picker,.committee,.countdown-section,.faq-section,.final-cta{width:calc(100% - 24px)}.basecamp-intro{padding:75px 0 45px}.basecamp-intro h2,.section-heading h2,.packing-heading h2,.vibe-heading h2,.committee h2,.faq-intro h2{font-size:clamp(3rem,14vw,4.8rem)}.action-grid{grid-template-columns:1fr;gap:10px}.action-card{min-height:330px;padding:24px;border-radius:20px}.action-card h3{margin-top:36px;font-size:3.5rem}.essentials,.weather-section,.steps,.packing-section{padding-top:95px}.section-heading{display:block;margin-bottom:30px}.fact-grid{gap:8px}.fact{min-height:170px;padding:18px}.fact strong{font-size:3.1rem}.included-grid{grid-template-columns:1fr;gap:8px}.included-grid article{padding:26px}.detail-band article{padding:24px}.red-alert{width:calc(100% - 24px);gap:20px;margin-top:45px;padding:26px}.weather-current{padding:26px}.weather-current>strong{font-size:6rem}.weather-forecast{grid-template-columns:1fr}.weather-forecast>div{min-height:130px;flex-direction:row;justify-content:space-between;border-left:0;border-top:1px solid rgba(255,255,255,.18);text-align:left}.steps ol{grid-template-columns:1fr;gap:8px}.steps li{min-height:215px}.steps h3{margin-top:35px}.mega-cta{font-size:2rem}.packing-heading{display:block;margin-bottom:28px}.packing-categories{grid-template-columns:1fr;gap:9px}.packing-progress-card{display:grid;grid-template-columns:74px 1fr;gap:14px;justify-items:start;padding:20px;text-align:left}.packing-progress-card>img{width:68px;height:68px}.packing-ring{grid-row:1/4;grid-column:2;width:138px;justify-self:end}.packing-ring>div{width:104px}.packing-ring strong{font-size:2.35rem}.packing-progress-card>p{grid-column:1;margin:0}.packing-progress-card>button{grid-column:1/-1;width:100%}.packing-category header{min-height:76px;padding:15px}.packing-category label{min-height:54px}.vibe-picker{padding:95px 0;gap:30px}.vibe-options button{grid-template-columns:36px 1fr}.vibe-options button small{grid-column:2}.committee{padding:70px 0}.committee-photo::before{inset:12px -8px -12px 8px}.team-list li{display:grid;gap:2px}.team-list span{text-align:left}.instagram-cta{align-items:flex-start;flex-direction:column;gap:4px}.countdown-section{width:calc(100% - 24px);padding:28px 18px}.countdown{gap:5px}.countdown>div{min-height:90px;border-radius:12px}.countdown strong{font-size:2.25rem}.countdown span{font-size:.56rem}.faq-section{gap:35px;padding:100px 0 70px}.faq-list summary{padding:17px 48px 17px 17px}.final-cta{grid-template-columns:1fr;margin-bottom:60px;padding:20px}.final-cta img{width:100%}.final-cta>a{grid-column:auto}footer{padding:30px 18px}.footer-links{gap:12px}.sound-toast{right:10px;bottom:10px;max-width:calc(100vw - 20px)}
}

@media (max-width: 720px) {
  .brand { padding: 5px; }
  .brand img { width: 40px; height: 40px; }
}

@media (max-width: 390px) {
  .sound-toggle{width:49px;justify-content:center}.sound-toggle [data-sound-label]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.fact-grid{grid-template-columns:1fr 1fr}.fact{min-height:145px}.fact strong{font-size:2.55rem}.header-book{font-size:.66rem}.countdown strong{font-size:1.9rem}
}

@media (prefers-reduced-motion: reduce) {
  html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.opening-wipe{display:none}.reveal{opacity:1;transform:none}.ticker div{animation:none}.party-overlay{display:none}.mountain-background{transform:translateY(-38%)!important}
}
