/* A single scene from edge to edge; native scroll keeps the original movement reversible. */
.landing-home .topline { display:none; }
.uppercut { --progress:0; --settle:0; --header:90px; --travel:600px; --stage:max(620px,calc(100svh - var(--header))); position:relative; background:#101112; }
.uppercut.is-active { height:calc(var(--stage) + var(--travel)); }
.uppercut-stage { position:relative; height:var(--stage); isolation:isolate; background:#101112; }
.uppercut.is-active .uppercut-stage { position:sticky; top:var(--header); }
.uppercut-film { position:absolute; inset:0; overflow:hidden; pointer-events:none; background:#101112; }
.uppercut-film:after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#101112c9 0%,#10111250 45%,transparent 78%),linear-gradient(0deg,#101112 0%,#101112ad 12%,transparent 43%,#10111215 82%,#10111245); }
.uppercut-ambient { position:absolute; inset:-8%; width:116%; height:116%; object-fit:cover; filter:blur(50px) brightness(.38); opacity:.48; }
.uppercut-poster { position:absolute; right:2%; top:-4%; width:auto; height:112%; max-width:none; mask-image:linear-gradient(90deg,transparent,#000 18%,#000 94%,transparent); }
.uppercut-canvas { position:absolute; inset:0; width:100%; height:100%; opacity:0; }
.uppercut-canvas.is-painted { opacity:1; }
.uppercut-tools { position:absolute; top:24px; inset-inline:0; z-index:3; }
.uppercut-tools>span { font-size:9px; letter-spacing:.2em; color:#bac7ce; }
.uppercut-copy { position:absolute; top:22%; inset-inline:0; z-index:2; pointer-events:none; transform:translateY(calc(var(--settle) * -24px)); opacity:calc(1 - var(--settle) * .18); }
.uppercut-copy h1 { font:700 clamp(72px,8vw,122px)/.92 var(--display); letter-spacing:-.025em; color:#f0ede7; margin:20px 0; text-shadow:0 3px 26px #050c1260; }
.uppercut-copy em { font-style:normal; color:#ff8ac5; }
.uppercut-copy .eyebrow { color:#8ae8ef; font-size:10px; letter-spacing:.22em; }
.uppercut-invitation { max-width:360px; font-size:15px; color:#c7cecf; line-height:1.6; }
.uppercut-destination { position:absolute; inset-inline:0; bottom:32px; z-index:4; }
.uppercut-nav-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:16px; }
.uppercut-nav-heading p { margin:0; color:#d6dce0; font-size:10px; letter-spacing:.2em; }
.uppercut-beat { color:#bdc7ce; font:500 10px var(--body); display:flex; align-items:center; gap:8px; }
.uppercut-beat b { color:#8ae8ef; font-size:17px; }
.uppercut-beat i { width:48px; height:2px; background:linear-gradient(90deg,#30d9eb,#ff5aa7); transform:scaleX(calc(.35 + var(--progress)*.65)); transform-origin:left; }
.uppercut-paths { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; scroll-margin-top:calc(var(--header) + 24px); }
.uppercut-paths>a { --path-accent:#76e6f0; position:relative; display:grid; grid-template-columns:1fr auto; align-content:start; gap:15px 10px; padding:17px 16px; min-height:132px; min-width:0; border:1px solid #83cbd149; border-radius:7px; background:linear-gradient(135deg,#1530399c,#0d1117de); box-shadow:inset 0 1px #ccf6ff14,0 4px 0 #070c1180; transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease; }
.uppercut-paths>a:nth-child(2n) { --path-accent:#fca0cd; background:linear-gradient(135deg,#3923379c,#0d1117de); border-color:#f2a1cb40; }
.uppercut-paths svg { width:23px; height:23px; color:var(--path-accent); grid-column:1; grid-row:1; }
.uppercut-paths>a>span { min-width:0; grid-column:1/-1; grid-row:2; }
.uppercut-paths strong { display:block; color:#f0ede7; font:700 clamp(20px,1.85vw,28px)/1 var(--display); }
.uppercut-paths small { display:block; color:#bdc7ce; font-size:11px; line-height:1.4; margin-top:8px; }
.uppercut-paths b { grid-column:2; grid-row:1; color:var(--path-accent); font:400 22px/1 var(--body); transition:transform .2s ease; }
.uppercut-paths a:focus-visible { outline:3px solid #b4f4ff; outline-offset:4px; }
.uppercut-status { position:absolute; top:54px; inset-inline:0; margin:0; font-size:12px; color:#c7cecf; pointer-events:none; z-index:4; }
.uppercut-status:empty { display:none; }
.uppercut-progress { height:1px; position:absolute; bottom:0; inset-inline:0; background:#d9e4ec12; }
.uppercut-progress span { display:block; width:100%; height:100%; transform:scaleX(var(--progress)); transform-origin:left; background:linear-gradient(90deg,#30d9eb,#ff5aa7); }
/* A new title level preserves the existing editorial composition after the opening h1. */
.editorial-hero #editorial-title { margin:0; font:700 clamp(72px,8vw,130px)/.94 var(--display); letter-spacing:-.025em; text-transform:uppercase; }
@media(hover:hover) {
 .uppercut-paths a:hover { transform:translateY(-5px); border-color:var(--path-accent); background:linear-gradient(120deg,#173841,#2d1a2c); box-shadow:inset 0 1px #dffcff55,0 6px 0 #060b11,0 10px 30px #41d4ec19; }
 .uppercut-paths a:hover b { transform:translate(2px,-2px); }
}
@media(min-width:1600px) { .uppercut-copy { top:24%; } .uppercut-copy h1 { font-size:136px; } }
@media(max-width:1050px) {
 .uppercut { --stage:max(650px,calc(100svh - var(--header))); }
 .uppercut-copy { top:18%; } .uppercut-copy h1 { font-size:clamp(64px,8.7vw,90px); }
 .uppercut-paths { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .uppercut-paths>a { grid-template-columns:24px 1fr auto; align-items:center; align-content:center; gap:12px; min-height:68px; padding:14px; }
 .uppercut-paths>a>span { grid-column:2; grid-row:1; }.uppercut-paths b { grid-column:3; }.uppercut-paths small { display:none; }
 .uppercut-paths strong { font-size:25px; }
}
@media(max-width:700px) {
 .uppercut { --travel:400px; --stage:max(440px,calc(100svh - var(--header))); }
 .uppercut-film:after { background:linear-gradient(90deg,#101112a0,transparent 85%),linear-gradient(0deg,#101112,#101112d9 14%,transparent 49%,#10111235); }
 .uppercut-poster { height:100%; top:0; right:-3%; }
 .uppercut-tools { top:18px; }.uppercut-tools>span { font-size:8px; letter-spacing:.12em; }
 .uppercut-copy { top:12%; }.uppercut-copy h1 { font-size:clamp(50px,12.6vw,76px); margin:14px 0; }
 .uppercut-copy .eyebrow { font-size:8px; letter-spacing:.12em; }
 .uppercut-invitation { max-width:225px; font-size:12px; }
 .uppercut-destination { bottom:23px; }.uppercut-nav-heading { margin-bottom:12px; }.uppercut-nav-heading p { font-size:9px; letter-spacing:.13em; }
 .uppercut-beat { gap:5px; }.uppercut-beat i { width:22px; }
 .uppercut-paths { gap:8px; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .uppercut-paths>a { min-height:55px; padding:12px 10px; gap:9px; grid-template-columns:20px 1fr auto; }
 .uppercut-paths svg { width:20px; height:20px; }.uppercut-paths strong { font-size:21px; }.uppercut-paths b { font-size:16px; }
 .editorial-hero #editorial-title { font-size:clamp(54px,13vw,78px); }
}
@media(max-height:740px) and (min-width:1051px) {
 .uppercut { --stage:max(510px,calc(100svh - var(--header))); }
 .uppercut-copy { top:16%; }.uppercut-copy h1 { font-size:76px; }.uppercut-copy .eyebrow { margin-bottom:12px; }
 .uppercut-invitation { margin-top:12px; }.uppercut-paths>a { min-height:95px; gap:10px; padding:12px; }.uppercut-paths small { display:none; }
}
@media(prefers-reduced-motion:reduce) {
 .uppercut-copy,.uppercut-beat i { transform:none; opacity:1; }.uppercut-invitation,.uppercut-beat { display:none; }
 .uppercut-paths a,.uppercut-paths b { transition:none; }.uppercut-paths a:hover,.uppercut-paths a:hover b { transform:none; }
}
.editorial-hero #editorial-title em { display:inline; font-style:normal; color:#ee97b8; }

/* Keep every destination within the opening screen on compact phones and landscape. */
@media(max-width:700px) and (max-height:650px) {
 .uppercut-copy { top:9%; }.uppercut-copy h1 { font-size:44px; margin:10px 0; }
 .uppercut-tools { top:12px; }.uppercut-copy .eyebrow { margin-bottom:8px; }
 .uppercut-invitation { font-size:11px; max-width:185px; }.uppercut-destination { bottom:16px; }
}
@media(min-width:481px) and (max-height:620px) {
 .uppercut { --stage:calc(100svh - var(--header)); --travel:400px; }
 .uppercut-tools,.uppercut-invitation { display:none; }.uppercut-copy { top:10%; }
 .uppercut-copy h1 { font-size:44px; margin:8px 0; }.uppercut-copy .eyebrow { font-size:8px; margin-bottom:8px; }
 .uppercut-destination { bottom:14px; }.uppercut-nav-heading { margin-bottom:8px; }
 .uppercut-paths>a { min-height:44px; padding:10px; gap:8px; }.uppercut-paths strong { font-size:20px; }
 .uppercut-paths svg { width:18px; height:18px; }
}

@media(min-width:481px) and (max-width:700px) and (max-height:450px){
 .uppercut-copy{top:4%}.uppercut-copy h1{font-size:32px;margin:6px 0}.uppercut-copy .eyebrow{font-size:7px;margin:0}
 .uppercut-paths{grid-template-columns:repeat(3,minmax(0,1fr))}.uppercut-paths strong{font-size:18px}
 .uppercut-paths>a{padding:8px;gap:6px}.uppercut-nav-heading p{font-size:8px}.uppercut-destination{bottom:10px}
}
/* Owner-supplied still replaces all frame-driven animation. */
.uppercut-static{height:auto!important}.uppercut-static .uppercut-stage{position:relative!important;top:auto!important;height:max(640px,calc(100svh - 90px))}.uppercut-still{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% 40%}.uppercut-static .uppercut-copy{transform:none;opacity:1}.uppercut-static .uppercut-film:after{background:linear-gradient(90deg,#101112c9,transparent 78%),linear-gradient(0deg,#101112 0%,#101112b0 12%,transparent 48%)}
@media(max-width:700px){.uppercut-static .uppercut-stage{height:max(640px,calc(100svh - 80px))}.uppercut-still{object-position:57% center}.uppercut-static .uppercut-copy{top:19%}.uppercut-static .uppercut-film:after{background:linear-gradient(90deg,#1011128c,transparent),linear-gradient(0deg,#101112 0%,#10111290 25%,transparent 75%)}.uppercut-static .uppercut-destination{bottom:25px}}
