﻿
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --ivory:#FAF8F4;
  --champagne:#F5EFE0;
  --sand:#E8DEC8;
  --gold:#C9A96E;
  --gold-light:#E8C98A;
  --gold-dark:#A8843E;
  --navy:#0D1B2A;
  --black:#0A0A0A;
  --text-dark:#1A1714;
  --text-mid:#5A5349;
  --text-light:#9A8E83;
  --glass-bg:rgba(250,248,244,0.06);
  --glass-border:rgba(201,169,110,0.25);
  --nav-h:94px;
}
/* ─── LOADER ─── */
#loader{
  position:fixed;inset:0;z-index:99999;
  background:var(--black);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:32px;
  transition:opacity 1s cubic-bezier(0.16,1,0.3,1);
  overflow:hidden;
}
#loader.hidden{opacity:0;pointer-events:none;}
.loader-logo{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(28px,4vw,48px);
  letter-spacing:0.18em;text-transform:uppercase;
  color:#fff;
  animation:loaderPulse 2.4s ease-in-out infinite;
}
.loader-logo em{color:var(--gold);font-style:normal;}
.loader-track{
  width:clamp(160px,28vw,260px);height:1px;
  background:rgba(255,255,255,0.1);
  position:relative;overflow:hidden;
}
.loader-fill{
  position:absolute;top:0;left:0;height:100%;
  background:var(--gold);
  width:0%;
  transition:width 0.3s linear;
}
.loader-pct{
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:0.6rem;letter-spacing:0.28em;
  color:rgba(201,169,110,0.55);
}
/* Facts ticker at the bottom */
.loader-facts{
  position:absolute;top:calc(50% + 80px);left:0;right:0;
  display:flex;flex-direction:column;align-items:center;
  gap:10px;
  pointer-events:none;
}
.loader-fact{
  font-family:'Cormorant Garamond',serif;font-weight:300;font-style:italic;
  font-size:clamp(13px,1.4vw,17px);
  color:rgba(255,255,255,0.38);
  letter-spacing:0.04em;
  text-align:center;
  max-width:clamp(280px,52vw,600px);
  padding:0 24px;
  opacity:0;
  transform:translateY(10px);
  transition:opacity 1s ease, transform 1s ease;
  position:absolute;
}
.loader-fact.active{
  opacity:1;transform:translateY(0);
}
.loader-fact.out{
  opacity:0;transform:translateY(-10px);
}
@keyframes loaderPulse{
  0%,100%{opacity:0.65}50%{opacity:1}
}
@keyframes loaderSpin{
  to{transform:rotate(360deg)}
}
.loader-spinner{
  width:36px;height:36px;
  border:2px solid rgba(201,169,110,0.2);
  border-top-color:var(--gold);
  border-radius:50%;
  animation:loaderSpin 0.8s linear infinite;
  display:none;
}
#loaderWave{
  position:absolute;bottom:0;left:0;width:100%;height:200px;
  pointer-events:none;opacity:1;
}

html{scroll-behavior:auto;font-size:16px}
body{
  background:var(--ivory);
  color:var(--text-dark);
  font-family:'Jost',sans-serif;
  font-weight:300;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  padding-top:var(--nav-h);
}

/* ─── SCROLLBAR ─── */
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:var(--black)}
::-webkit-scrollbar-thumb{background:var(--gold);border-radius:2px}

/* ─── SELECTION ─── */
::selection{background:var(--gold);color:var(--black)}

/* ─── NAVIGATION ─── */
nav{
  position:fixed;top:16px;left:24px;right:24px;z-index:1000;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 24px;
  border:none;
  background:transparent;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  transition:all 0.6s cubic-bezier(0.16,1,0.3,1),box-shadow 0.6s cubic-bezier(0.16,1,0.3,1);
}
nav::after{
  content:none;
}
nav.scrolled{
  background:transparent;
  padding:12px 22px;
  box-shadow:none;
}
.nav-brand{
  width:50px;height:50px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(255,255,255,0.14);
  background:rgba(7,10,14,0.24);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  text-decoration:none;
}
.nav-logo{
  height:27px;
  opacity:0.95;
  transition:opacity 0.3s;
  filter:brightness(0) invert(1);
}
.nav-logo:hover{opacity:1}
.nav-links{
  display:flex;gap:36px;list-style:none;
  background:rgba(7,10,14,0.22);
  border:1px solid rgba(255,255,255,0.12);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  padding:10px 18px;
}
.nav-links a{
  color:rgba(255,255,255,0.82);
  text-decoration:none;
  font-family:'Jost',sans-serif;
  font-weight:300;
  font-size:0.8rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  transition:color 0.3s;
  position:relative;
}
.nav-links a::after{
  content:'';position:absolute;bottom:-4px;left:0;right:0;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:right;
  transition:transform 0.4s cubic-bezier(0.16,1,0.3,1);
}
.nav-links a:hover{color:#fff}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-links a.active{color:var(--gold-light);}
.nav-links a.active::after{transform:scaleX(1);transform-origin:left;}
.nav-hamburger{
  display:none;flex-direction:column;gap:6px;cursor:pointer;padding:4px;
  border:none;
}
.nav-hamburger span{
  display:block;width:26px;height:1px;background:#fff;
  transition:all 0.35s cubic-bezier(0.16,1,0.3,1);
}
.nav-hamburger.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-hamburger.active span:nth-child(2){opacity:0;}
.nav-hamburger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-menu{
  display:none;position:fixed;inset:0;z-index:999;
  background:rgba(10,10,10,0.97);backdrop-filter:blur(30px);
  flex-direction:column;align-items:center;justify-content:center;gap:44px;
}
.mobile-menu.open{display:flex}
.mobile-menu a{
  color:rgba(255,255,255,0.8);text-decoration:none;
  font-family:'Cormorant Garamond',serif;font-size:2.4rem;font-weight:300;
  letter-spacing:0.05em;transition:color 0.3s;
}
.mobile-menu a:hover{color:var(--gold)}
.mobile-menu a.active{color:var(--gold);}
.mobile-close{
  position:absolute;top:32px;right:44px;
  color:#fff;font-size:1.8rem;cursor:pointer;opacity:0.6;transition:opacity 0.3s;
  background:none;border:none;font-family:'Jost',sans-serif;
}
.mobile-close:hover{opacity:1}

/* ─── HERO ─── */
#home{
  position:relative;height:100svh;min-height:700px;
  margin-top:calc(-1 * var(--nav-h));
  overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;
  overflow:hidden;
}
.hero-bg video{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
}
.hero-bg-fallback{
  position:absolute;inset:0;
  z-index:-1;
}
.hero-overlay{
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 78% 18%,rgba(201,169,110,0.2),transparent 42%),
    linear-gradient(to top,rgba(0,0,0,0.42),transparent 48%);
  transition:opacity 1.6s ease;
}
.hero-overlay.clear{
  opacity:0.72;
}
.hero-content{
  position:absolute;
  top:50%;left:clamp(24px,8vw,120px);
  transform:translateY(-50%);
  z-index:2;
  text-align:left;padding:0 24px 0 0;
  max-width:900px;width:min(92%,900px);
  transition:top 2s cubic-bezier(0.16,1,0.3,1),
             transform 2s cubic-bezier(0.16,1,0.3,1),
             opacity 0.6s ease;
  will-change:transform,top;
  user-select:text;
  -webkit-user-select:text;
}
.hero-content.shrunk{
  top:calc(100% - 56px);
  transform:translateY(-100%);
  opacity:1;
  pointer-events:auto;
  user-select:text;
  -webkit-user-select:text;
}
/* hide subtitle and buttons when shrunk */
.hero-content.shrunk .hero-subtitle,
.hero-content.shrunk .hero-buttons{
  opacity:0;
  transition:opacity 0.4s ease;
}
/* fade scroll indicator independently */
#home.revealed .scroll-indicator{
  opacity:0;
  transition:opacity 0.6s ease;
}

/* ─── HERO VIDEO 2 ─── */
#hero2{
  position:relative;height:calc(100svh - var(--nav-h));min-height:700px;
  overflow:hidden;
}
.hero2-bg{
  position:absolute;inset:0;
}
.hero2-bg video{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
}
.hero2-overlay{
  position:absolute;inset:0;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,0.22) 0%,
    rgba(0,0,0,0.55) 100%
  );
}
.hero-eyebrow{
  display:inline-block;
  font-family:'Jost',sans-serif;font-weight:400;
  font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--black);
  background:var(--gold);
  padding:10px 28px;
  margin-bottom:40px;
  opacity:0;transform:translateY(20px);
  animation:fadeUp 1.2s cubic-bezier(0.16,1,0.3,1) 0.4s forwards;
}
.hero-title{
  font-family:'Cormorant Garamond',serif;
  font-weight:300;line-height:0.93;
  font-size:clamp(66px,8.5vw,136px);
  color:#fff;letter-spacing:-0.01em;
  text-shadow:0 16px 40px rgba(0,0,0,0.42),0 3px 14px rgba(0,0,0,0.32);
  opacity:0;transform:translateY(40px);
  animation:fadeUp 1.4s cubic-bezier(0.16,1,0.3,1) 0.7s forwards;
  margin-bottom:20px;
}
.hero-title em{font-style:italic;font-weight:300}
.hero-subtitle{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:clamp(0.92rem,1.4vw,1.12rem);
  color:rgba(255,255,255,0.78);
  letter-spacing:0.12em;margin-top:8px;
  max-width:680px;
  text-shadow:0 3px 14px rgba(0,0,0,0.42);
  opacity:0;transform:translateY(20px);
  animation:fadeUp 1.2s cubic-bezier(0.16,1,0.3,1) 1.1s forwards;
}
.hero-buttons{
  display:flex;gap:14px;justify-content:flex-start;flex-wrap:wrap;margin-top:30px;
  opacity:0;transform:translateY(20px);
  animation:fadeUp 1.2s cubic-bezier(0.16,1,0.3,1) 1.4s forwards;
}
.btn-primary{
  padding:16px 44px;
  background:var(--gold);color:var(--black);
  font-family:'Jost',sans-serif;font-weight:400;
  font-size:0.75rem;letter-spacing:0.22em;text-transform:uppercase;
  text-decoration:none;border:1px solid var(--gold);
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
  position:relative;overflow:hidden;
}
.btn-primary::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.18) 50%,transparent 100%);
  transform:translateX(-100%);transition:transform 0.6s cubic-bezier(0.16,1,0.3,1);
}
.btn-primary:hover{background:var(--gold-light);border-color:var(--gold-light)}
.btn-primary:hover::before{transform:translateX(100%)}
.btn-ghost{
  padding:16px 44px;
  background:transparent;color:#fff;
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:0.75rem;letter-spacing:0.22em;text-transform:uppercase;
  text-decoration:none;border:1px solid rgba(255,255,255,0.4);
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.scroll-indicator{
  position:absolute;bottom:38px;right:clamp(22px,6vw,90px);
  display:flex;flex-direction:column;align-items:center;gap:8px;
  opacity:0;animation:fadeIn 1s ease 2.2s forwards;
}
.scroll-indicator span{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.65rem;letter-spacing:0.3em;text-transform:uppercase;
  color:rgba(255,255,255,0.45);
}
.scroll-line{
  width:1px;height:48px;background:rgba(201,169,110,0.5);
  position:relative;overflow:hidden;
}
.scroll-line::after{
  content:'';position:absolute;top:-100%;left:0;right:0;height:100%;
  background:var(--gold);
  animation:scrollDrop 2s cubic-bezier(0.4,0,0.6,1) infinite 2.5s;
}
@keyframes scrollDrop{
  0%{top:-100%}
  100%{top:100%}
}

/* ─── MANIFESTO ─── */
#manifesto{
  background:
    radial-gradient(circle at 50% -10%,rgba(201,169,110,0.2),transparent 55%),
    linear-gradient(170deg,#f7f2e8 0%,#efe6d3 62%,#e8ddc7 100%);
  display:flex;align-items:center;justify-content:center;
  padding:0 24px;
  text-align:center;
  position:relative;overflow:hidden;
}
/* Flowing wave canvas sits behind content */
#manifesto-canvas{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0.18;pointer-events:none;
}
.manifesto-inner{max-width:920px;margin:0 auto;position:relative;z-index:1;}
.manifesto-line{
  font-family:'Cormorant Garamond',serif;
  font-style:italic;font-weight:300;
  font-size:clamp(36px,5.5vw,84px);
  line-height:1.18;color:var(--text-dark);
  letter-spacing:-0.015em;
  opacity:0;transform:translateY(36px);
  transition:opacity 0.9s cubic-bezier(0.16,1,0.3,1),transform 0.9s cubic-bezier(0.16,1,0.3,1);
}
.manifesto-line.visible{opacity:1;transform:translateY(0)}
.manifesto-line + .manifesto-line{margin-top:28px}
.manifesto-divider{
  display:none;
}
.manifesto-secondary{
  display:flex;justify-content:center;
  gap:clamp(20px,3.5vw,52px);flex-wrap:wrap;margin-top:clamp(48px,6.5vw,88px);
}
.manifesto-word{
  font-family:'Cormorant Garamond',serif;
  font-style:italic;font-weight:300;
  font-size:clamp(30px,4.2vw,62px);
  color:var(--text-mid);letter-spacing:-0.01em;
  opacity:0;transform:translateY(24px);
  transition:opacity 0.8s cubic-bezier(0.16,1,0.3,1),transform 0.8s cubic-bezier(0.16,1,0.3,1);
}
.manifesto-word.visible{opacity:1;transform:translateY(0)}
.manifesto-word:nth-child(1){transition-delay:0s}
.manifesto-word:nth-child(2){transition-delay:0.12s}
.manifesto-word:nth-child(3){transition-delay:0.24s}

/* ─── SECTION SHARED ─── */
.section-eyebrow{
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:0.7rem;letter-spacing:0.32em;text-transform:uppercase;
  color:var(--gold);margin-bottom:28px;
  display:block;
}
.section-title{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  line-height:1.08;letter-spacing:-0.01em;
  font-size:clamp(40px,5.5vw,84px);
  margin-bottom:clamp(18px,2vw,30px);
}
.section-body{
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:clamp(0.95rem,1.3vw,1.1rem);
  line-height:1.9;color:var(--text-mid);
  letter-spacing:0.03em;
  max-width:540px;
}
.section-title + .section-body{margin-top:clamp(20px,2.2vw,34px);}
.print-only-media{display:none;}
.reveal{
  opacity:0;transform:translateY(44px);
  transition:opacity 0.9s cubic-bezier(0.16,1,0.3,1),transform 0.9s cubic-bezier(0.16,1,0.3,1);
}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:0.12s}
.reveal-delay-2{transition-delay:0.24s}
.reveal-delay-3{transition-delay:0.36s}
.reveal-delay-4{transition-delay:0.48s}

/* ─── STORY SECTION ─── */
#story{
  display:grid;grid-template-columns:1fr 1fr;
}
.story-image{
  position:relative;overflow:hidden;
}
.story-image img{
  width:100%;height:100%;object-fit:cover;
  display:block;
  transform:scale(1.04);
  transition:transform 1.8s cubic-bezier(0.16,1,0.3,1);
}
.story-image.visible img{transform:scale(1.0)}
.story-text{
  background:var(--champagne);
  padding:clamp(60px,8vw,120px) clamp(40px,7vw,100px);
  display:flex;flex-direction:column;justify-content:center;
}
.story-gold-line{
  width:40px;height:1px;background:var(--gold);margin-bottom:32px;
}
.story-title{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(36px,4vw,64px);
  line-height:1.12;color:var(--text-dark);
  letter-spacing:-0.01em;margin-bottom:32px;
}
.story-body{
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:1rem;line-height:2;
  letter-spacing:0.02em;
  color:var(--text-mid);
}

/* ─── PRODUCT SECTION ─── */
#product{
  position:relative;height:100svh;min-height:600px;
  overflow:hidden;display:flex;align-items:flex-end;
}
.product-bg{
  position:absolute;inset:0;
  background:url('/img/03-hero-close.webp') center center/cover no-repeat;
  transform:scale(1.04);
  transition:transform 0.1s linear;
}
.product-overlay{
  position:absolute;inset:0;
  background:none;
}
.product-content{
  position:relative;z-index:2;
  padding:clamp(48px,7vw,100px) clamp(32px,7vw,100px);
  max-width:860px;
}
.product-label{
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:0.7rem;letter-spacing:0.32em;text-transform:uppercase;
  color:var(--gold);margin-bottom:24px;display:block;
}
.product-title{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(44px,6vw,96px);
  line-height:1.04;color:#fff;letter-spacing:-0.01em;
}

/* ─── DESTINATIONS — cinematic full-screen ─── */
#destinations{
  position:relative;   /* GSAP pin temporarily overrides to fixed; restored on exit */
  overflow:hidden;
  background:#0a0c0f;
  display:flex;
  align-items:flex-end;
  padding:0;
  height:100svh;
}

/* Background media layer */
.dest-bg{
  position:absolute;inset:0;z-index:0;
}
.dest-canvas{
  position:absolute;inset:0;
  width:100%;height:100%;
  display:block;
  object-fit:cover;
  will-change:transform;
}
.dest-bg-fallback{
  position:absolute;inset:0;
  opacity:0;
  transition:opacity 0.8s ease;
}
@media(prefers-reduced-motion:reduce){
  .dest-canvas{display:none;}
  .dest-bg-fallback{opacity:1 !important;}
}

/* Gradient overlay — bottom-weighted scrim for text legibility across all frames */
.dest-overlay{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(
    to top,
    rgba(0,0,0,0.84) 0%,
    rgba(0,0,0,0.62) 18%,
    rgba(0,0,0,0.30) 38%,
    rgba(0,0,0,0.08) 55%,
    transparent 72%
  );
}

/* Loading state */

/* Text overlay — bottom-left anchor with generous breathing room */
.dest-content{
  position:relative;z-index:2;width:100%;
  padding:0 clamp(40px,6vw,96px) clamp(56px,6.5vw,88px);
  display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;
  min-height:100svh;
  max-width:680px;
}

/* Eyebrow — "Your World, Anywhere" section label */
.dest-eyebrow{
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:0.88rem;letter-spacing:0.28em;text-transform:uppercase;
  color:rgba(201,169,110,0.90);
  margin-bottom:clamp(32px,4vw,52px);
  text-shadow:0 1px 16px rgba(0,0,0,0.7);
}

/* Counter: 01 / 05 */
.dest-counter{
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:0.98rem;letter-spacing:0.22em;
  color:rgba(255,255,255,0.70);
  margin-bottom:clamp(14px,1.5vw,22px);
  text-shadow:0 1px 12px rgba(0,0,0,0.65);
}
.dest-counter-current{
  color:var(--gold);font-weight:400;
}
.dest-counter-total{
  color:rgba(255,255,255,0.55);
}

/* Title — dominant focal point */
.dest-title{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(52px,6.5vw,100px);line-height:1.04;
  letter-spacing:-0.015em;color:#fff;
  margin-bottom:clamp(16px,1.8vw,24px);
  text-shadow:0 2px 40px rgba(0,0,0,0.5),0 1px 8px rgba(0,0,0,0.35);
}
.dest-title em{font-style:italic;font-weight:300;}

/* Subtitle — clearly readable supporting copy, not fine print */
.dest-subtitle{
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:clamp(1.05rem,1.5vw,1.25rem);letter-spacing:0.05em;
  line-height:1.75;color:rgba(255,255,255,0.82);
  margin-bottom:clamp(40px,5vw,64px);
  text-shadow:0 1px 20px rgba(0,0,0,0.6),0 0px 6px rgba(0,0,0,0.4);
}

/* Progress row — orientation indicator */
.dest-progress-row{
  display:flex;align-items:center;gap:20px;
}

/* Thin progress track */
.dest-progress-track{
  position:relative;
  width:clamp(120px,14vw,180px);
  height:1px;
  background:rgba(255,255,255,0.22);
}
.dest-progress-fill{
  position:absolute;left:0;top:0;height:1px;
  background:var(--gold);
  width:20%; /* updated by JS */
  transition:width 0.5s cubic-bezier(0.25,0,0,1);
  box-shadow:0 0 6px rgba(201,169,110,0.5);
}

/* Index label */
.dest-index-label{
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:0.72rem;letter-spacing:0.24em;
  color:rgba(255,255,255,0.50);
  text-shadow:0 1px 8px rgba(0,0,0,0.5);
  white-space:nowrap;
}

/* Screen reader only */
.dest-sr-only{
  position:absolute;width:1px;height:1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;
}

/* ── Animated text layers ───────────────────────────────────────────────── */
/* Each animatable group is wrapped; we swap .dest-out / .dest-in on it */
.dest-anim{
  will-change:opacity,transform,filter;
}
/* Default: fully visible, no transition (initial load) */
.dest-anim.dest-out{
  animation:destFadeOut 0.38s cubic-bezier(0.4,0,0.6,1) forwards;
}
.dest-anim.dest-in{
  animation:destFadeIn 0.55s cubic-bezier(0.16,1,0.3,1) forwards;
}

@keyframes destFadeOut{
  from{ opacity:1; transform:translateY(0);   filter:blur(0px);   }
  to  { opacity:0; transform:translateY(-11px); filter:blur(4px); }
}
@keyframes destFadeIn{
  from{ opacity:0; transform:translateY(12px); filter:blur(3px);  }
  to  { opacity:1; transform:translateY(0);   filter:blur(0px);   }
}

@media(prefers-reduced-motion:reduce){
  .dest-anim.dest-out{ animation:none;opacity:0; }
  .dest-anim.dest-in { animation:none;opacity:1; }
  .dest-progress-fill{ transition:none; }
}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media(max-width:1024px){
  .dest-content{ max-width:580px; }
  .dest-title{ font-size:clamp(44px,6.5vw,84px); }
  .dest-subtitle{ font-size:clamp(1.15rem,1.6vw,1.4rem); }
}
@media(max-width:768px){
  .dest-content{
    padding:0 clamp(28px,5.5vw,48px) clamp(48px,8vw,68px);
    max-width:100%;
  }
  .dest-title{ font-size:clamp(40px,9.5vw,68px); }
  .dest-eyebrow{ font-size:clamp(0.9rem,2.2vw,1.05rem); }
  .dest-counter{ font-size:clamp(1rem,2.5vw,1.2rem); }
  .dest-subtitle{ font-size:clamp(1.05rem,2.8vw,1.25rem); color:rgba(255,255,255,0.88); }
  .dest-progress-track{ width:clamp(100px,22vw,150px); }
}
@media(max-width:480px){
  .dest-title{ font-size:clamp(34px,9vw,56px); }
  .dest-eyebrow{ margin-bottom:24px; font-size:0.92rem; }
  .dest-counter{ font-size:1rem; }
  .dest-subtitle{ font-size:clamp(1rem,4vw,1.15rem); }
}

/* ─── FEATURES SCRUB ─── */
#features-scrub{
  position:relative;overflow:hidden;background:#0a0c0f;
  display:flex;align-items:flex-end;height:100svh;padding:0;
}
.feat-bg{position:absolute;inset:0;z-index:0;}
.feat-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;will-change:transform;}
.feat-bg-fallback{
  position:absolute;inset:0;
  opacity:0;transition:opacity 0.8s;
}
@media(prefers-reduced-motion:reduce){
  .feat-canvas{display:none}.feat-bg-fallback{opacity:1 !important}
}
.feat-overlay{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(to top,
    rgba(0,0,0,0.84) 0%,rgba(0,0,0,0.60) 28%,
    rgba(0,0,0,0.20) 52%,transparent 72%);
}
.feat-content{
  position:relative;z-index:2;width:100%;
  padding-left:clamp(40px,6vw,96px);padding-right:clamp(40px,6vw,96px);
  padding-bottom:clamp(56px,6.5vw,88px);
  display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;
  min-height:100svh;max-width:680px;
}
.feat-eyebrow{
  font-family:'Jost',sans-serif;font-weight:300;font-size:0.78rem;
  letter-spacing:0.22em;text-transform:uppercase;color:var(--gold);
  margin-bottom:24px;
}
.feat-title{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(38px,7vw,72px);line-height:1.05;
  color:#fff;margin:0 0 14px;letter-spacing:-0.01em;
}
.feat-subtitle{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:clamp(1rem,2vw,1.15rem);line-height:1.6;
  color:rgba(255,255,255,0.72);max-width:420px;margin:0;
}
.feat-anim{will-change:opacity,transform,filter;}
.feat-anim.feat-out{animation:featFadeOut 0.38s cubic-bezier(0.4,0,0.6,1) forwards;}
.feat-anim.feat-in{animation:featFadeIn 0.55s cubic-bezier(0.16,1,0.3,1) forwards;}
@keyframes featFadeOut{
  from{opacity:1;transform:translateY(0);filter:blur(0px)}
  to{opacity:0;transform:translateY(-8px);filter:blur(3px)}
}
@keyframes featFadeIn{
  from{opacity:0;transform:translateY(8px);filter:blur(2px)}
  to{opacity:1;transform:translateY(0);filter:blur(0px)}
}
.feat-progress-row{
  display:flex;align-items:center;gap:16px;margin-top:32px;width:100%;
}
.feat-progress-track{
  flex:1;height:1px;background:rgba(255,255,255,0.12);max-width:200px;
}
.feat-progress-fill{
  height:100%;background:var(--gold);width:0%;
  transition:width 0.7s cubic-bezier(0.16,1,0.3,1);
}
.feat-sr-only{
  position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;list-style:none;
}
@media(max-width:768px){
  .feat-content{max-width:100%;}
  .feat-title{font-size:clamp(30px,9vw,48px);}
}
@media(max-width:480px){
  .feat-title{font-size:clamp(26px,9vw,40px);}
  .feat-eyebrow{font-size:0.72rem;}
}

/* ─── FEATURES VIDEO ─── */
#features{
  background:var(--navy);
  position:relative;
  overflow:hidden;
}
.features-video{
  position:absolute;inset:0;
}
.features-video video{
  width:100%;height:100%;object-fit:cover;display:block;
}
.features-video-overlay{display:none;}
/* ─── FEATURES DETAIL (carousel) ─── */
#features-detail{
  background:var(--navy);
  display:flex;flex-direction:column;justify-content:center;
  padding:clamp(32px,4vw,56px) 0 clamp(32px,4vw,56px) 0;
  overflow:hidden;
}
.features-header{
  text-align:center;
  margin-bottom:clamp(20px,2.5vw,36px);
  padding:0 clamp(24px,5vw,80px);
  flex-shrink:0;
}
.features-header .section-title{color:#fff}
.features-header .section-eyebrow{color:var(--gold)}

/* Domino carousel */
.features-carousel{
  position:relative;
  padding:0 clamp(24px,5vw,80px);
  overflow:hidden;
  flex:1;min-height:0;
  display:flex;flex-direction:column;
}
.features-track{
  display:flex;
  gap:2px;
  transition:transform 0.9s cubic-bezier(0.16,1,0.3,1);
  will-change:transform;
  flex:1;min-height:0;
}
.feature-card{
  flex:0 0 calc(33.333% - 2px);
  min-width:0;
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(201,169,110,0.12);
  backdrop-filter:blur(10px);
  padding:0;
  overflow:hidden;
  transition:border-color 0.5s,box-shadow 0.5s,opacity 0.5s;
  cursor:pointer;
  opacity:0.45;
  display:flex;flex-direction:column;
}
.feature-card.active{
  border-color:rgba(201,169,110,0.4);
  box-shadow:0 0 40px rgba(201,169,110,0.08);
  opacity:1;
}
.feature-card-image{
  width:100%;flex:1;min-height:0;overflow:hidden;
}
.feature-card-image img{
  width:100%;height:100%;object-fit:cover;
  display:block;
  filter:brightness(0.88) saturate(0.85);
  transition:filter 0.7s;
}
.feature-card.active .feature-card-image img{
  filter:brightness(0.95) saturate(1);
}
.feature-card-body{padding:16px 20px 20px;flex-shrink:0;}
.feature-gold-line{
  width:20px;height:1px;background:var(--gold);
  margin-bottom:10px;
}
.feature-card-title{
  font-family:'Cormorant Garamond',serif;font-weight:400;
  font-size:clamp(14px,1.2vw,18px);
  color:rgba(255,255,255,0.9);
  margin-bottom:4px;letter-spacing:0.01em;
}
.feature-card-desc{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.72rem;line-height:1.6;
  color:rgba(255,255,255,0.45);letter-spacing:0.03em;
}
.features-dots{
  display:flex;justify-content:center;gap:10px;
  margin-top:20px;
}
.features-dot{
  width:6px;height:6px;border-radius:50%;
  background:rgba(255,255,255,0.2);
  border:none;cursor:pointer;
  transition:all 0.4s;padding:0;
}
.features-dot.active{background:var(--gold);transform:scale(1.3)}

/* ─── CONNECTED ─── */
#connected{
  display:grid;grid-template-columns:1fr 1fr;
}
.connected-text{
  background:var(--ivory);
  padding:clamp(60px,8vw,120px) clamp(40px,7vw,100px);
  display:flex;flex-direction:column;justify-content:center;
}
.connected-image{
  position:relative;overflow:hidden;
}
.connected-image img{
  width:100%;height:100%;object-fit:cover;display:block;
  clip-path:inset(0 0 0 100%);
  transition:clip-path 1.2s cubic-bezier(0.16,1,0.3,1);
}
.connected-image.visible img{clip-path:inset(0 0 0 0%)}

/* ─── VIDEOS ─── */
#videos{
  background:var(--champagne);
  display:flex;flex-direction:column;
  padding:clamp(40px,5vw,72px) clamp(24px,5vw,80px) clamp(32px,4vw,56px);
}
.videos-header{text-align:center;margin-bottom:clamp(24px,3vw,40px);flex-shrink:0;}
.video-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
  max-width:1200px;margin:0 auto;
  flex:1;min-height:0;width:100%;
}
.video-card{
  position:relative;overflow:hidden;cursor:pointer;
  background:var(--black);min-height:0;
}
.video-card img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 0.7s cubic-bezier(0.16,1,0.3,1),filter 0.5s;
  filter:brightness(0.75);
}
.video-card:hover img{transform:scale(1.04);filter:brightness(0.6)}
.video-card-overlay{
  position:absolute;inset:0;
  background:rgba(0,0,0,0.22);
  transition:background 0.4s;
}
.video-card:hover .video-card-overlay{background:rgba(0,0,0,0.38)}
.video-play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:72px;height:72px;
  border:1.5px solid var(--gold);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
}
.video-play::before{
  content:'';
  border-left:18px solid var(--gold);
  border-top:11px solid transparent;
  border-bottom:11px solid transparent;
  margin-left:4px;
}
.video-card:hover .video-play{
  transform:translate(-50%,-50%) scale(1.12);
  background:rgba(201,169,110,0.15);
  box-shadow:0 0 40px rgba(201,169,110,0.3);
}
.video-card-label{
  position:absolute;bottom:24px;left:28px;
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.72rem;letter-spacing:0.25em;text-transform:uppercase;
  color:rgba(255,255,255,0.7);
  transform:translateY(8px);opacity:0;
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
}
.video-card:hover .video-card-label{transform:translateY(0);opacity:1}

/* ─── VIDEO MODAL ─── */
.video-modal{
  display:none;position:fixed;inset:0;z-index:9999;
  background:rgba(0,0,0,0.94);
  backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);
  align-items:center;justify-content:center;
}
.video-modal.open{display:flex}
.modal-inner{
  position:relative;width:min(86vw,1200px);
  padding-top:56px;
  animation:modalIn 0.5s cubic-bezier(0.16,1,0.3,1);
}
@keyframes modalIn{
  from{opacity:0;transform:scale(0.92)}
  to{opacity:1;transform:scale(1)}
}
.modal-inner iframe{
  width:100%;aspect-ratio:16/9;border:none;display:block;
}
.modal-close{
  position:absolute;top:8px;right:0;
  background:none;border:none;cursor:pointer;
  color:rgba(255,255,255,0.6);
  font-family:'Jost',sans-serif;font-size:0.7rem;
  letter-spacing:0.2em;text-transform:uppercase;
  display:flex;align-items:center;gap:10px;
  transition:color 0.3s;
}
.modal-close:hover{color:var(--gold)}
.modal-close::before{
  content:'';display:block;width:28px;height:28px;
  border:1px solid currentColor;border-radius:50%;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9A96E' stroke-width='1.5'%3E%3Cpath d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E") center/14px no-repeat;
}

/* ─── NIGHT SECTION ─── */
#night{
  position:relative;height:100svh;min-height:600px;
  display:flex;align-items:flex-start;justify-content:flex-start;
  overflow:hidden;
}
.night-bg{
  position:absolute;inset:0;
}
.night-overlay{
  position:absolute;inset:0;
  background:rgba(0,0,0,0);
}
.night-content{
  position:relative;z-index:2;
  text-align:left;padding:clamp(40px,6vw,80px) clamp(40px,6vw,96px);
}
.night-title{
  font-family:'Cormorant Garamond',serif;
  font-style:italic;font-weight:300;
  font-size:clamp(44px,6.5vw,100px);
  color:#fff;line-height:1.1;letter-spacing:-0.01em;
}
.night-subtitle{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.78rem;letter-spacing:0.3em;text-transform:uppercase;
  color:rgba(255,255,255,0.45);margin-top:28px;
}
/* Stars */
.stars{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.star{
  position:absolute;background:#fff;border-radius:50%;
  animation:twinkle var(--d,3s) ease-in-out infinite var(--delay,0s);
}
@keyframes twinkle{
  0%,100%{opacity:var(--min-op,0.15)}
  50%{opacity:var(--max-op,0.7)}
}

/* ─── HOSPITALITY ─── */
#hospitality{
  background:var(--navy);
  overflow:hidden;
  position:relative;
  height:100svh;
}
.hospitality-image-side{
  position:absolute;
  inset:0;
  overflow:hidden;
}
.hospitality-image-side img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  clip-path:inset(0 100% 0 0);
  transition:clip-path 1.2s cubic-bezier(0.16,1,0.3,1);
}
.hospitality-image-side.visible img{clip-path:inset(0 0 0 0);}
.hospitality-text{
  position:relative;
  z-index:2;
  min-height:100svh;
  padding:clamp(60px,8vw,120px) clamp(40px,7vw,100px);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:flex-start;
  background:linear-gradient(
    to top,
    rgba(0,0,0,0.58) 0%,
    rgba(0,0,0,0.34) 40%,
    rgba(0,0,0,0.00) 72%
  );
}
.hospitality-text .section-eyebrow{
  width:min(100%,560px);
  color:rgba(201,169,110,0.95);
}
.hospitality-title{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-style:italic;
  font-size:clamp(40px,5.8vw,86px);
  line-height:1.1;letter-spacing:-0.01em;
  color:#fff;
  width:min(100%,560px);
  text-shadow:0 10px 30px rgba(0,0,0,0.5);
  margin-bottom:clamp(18px,2vw,30px);
}
.hospitality-body{
  font-family:'Jost',sans-serif;
  font-weight:300;
  font-size:clamp(0.92rem,1.25vw,1.06rem);
  line-height:1.9;
  letter-spacing:0.03em;
  color:rgba(255,255,255,0.84);
  width:min(100%,560px);
  text-shadow:0 5px 16px rgba(0,0,0,0.45);
}

/* ─── HOSPITALITY VENUES ─── */
#hospitality-venues{
  background:var(--ivory);
  display:flex;align-items:center;justify-content:center;
  padding:0 clamp(24px,6vw,80px);
  padding-bottom:clamp(74px,10vw,110px);
  overflow:hidden;
  position:relative;
}
#venues-canvas{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0.18;pointer-events:none;
}
.venues-inner{
  max-width:960px;width:100%;
  display:flex;flex-direction:column;
  align-items:center;
  text-align:center;
  gap:clamp(24px,4vw,56px);
  position:relative;z-index:1;
}
.venues-eyebrow{color:var(--gold);}
.venues-words{
  display:flex;flex-direction:column;
  align-items:center;
  gap:0;
}
.venues-line{
  display:block;
  font-family:'Cormorant Garamond',serif;
  font-weight:300;
  font-size:clamp(52px,7.5vw,120px);
  line-height:1.05;
  color:var(--text-dark);
  letter-spacing:-0.01em;
  opacity:0;transform:translateY(36px);
  transition:opacity 0.95s cubic-bezier(0.16,1,0.3,1),transform 0.95s cubic-bezier(0.16,1,0.3,1);
}
.venues-line-italic{font-style:italic;color:var(--text-dark);}
.venues-line.visible{opacity:1;transform:translateY(0)}
.venues-line:nth-child(1){transition-delay:0s}
.venues-line:nth-child(2){transition-delay:0.14s}
.venues-line:nth-child(3){transition-delay:0.28s}
.venues-bottom{
  display:flex;flex-direction:column;align-items:center;
  gap:clamp(20px,2.5vw,32px);
}
.venues-body{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:clamp(0.82rem,1.2vw,1rem);
  line-height:1.8;letter-spacing:0.04em;
  color:var(--text-mid);
}
.venues-founder-note{
  font-family:'Jost',sans-serif;
  font-weight:300;
  font-size:clamp(0.72rem,1vw,0.92rem);
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:rgba(26,23,20,0.58);
}
.venues-founder-note-bottom{
  position:absolute;
  left:50%;
  bottom:clamp(18px,3vw,34px);
  transform:translateX(-50%);
  width:100%;
  text-align:center;
  padding:0 24px;
}
.venues-bottom .btn-gold{color:var(--black);}
.btn-gold{
  display:inline-block;
  padding:16px 44px;
  background:transparent;color:rgba(255,255,255,0.85);
  font-family:'Jost',sans-serif;font-weight:400;
  font-size:0.75rem;letter-spacing:0.22em;text-transform:uppercase;
  text-decoration:none;border:1px solid var(--gold);
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
  position:relative;overflow:hidden;
  cursor:pointer;
}
.btn-gold::before{
  content:'';position:absolute;inset:0;
  background:var(--gold);
  transform:translateX(-101%);
  transition:transform 0.5s cubic-bezier(0.16,1,0.3,1);
  z-index:-1;
}
.btn-gold:hover{color:var(--black);border-color:var(--gold)}
.btn-gold:hover::before{transform:translateX(0)}

/* ─── DESTINATION LIGHTBOX ─── */
.dest-lightbox{
  display:none;position:fixed;inset:0;z-index:8000;
  background:rgba(0,0,0,0.94);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  align-items:center;justify-content:center;
  padding:24px;
}
.dest-lightbox.open{display:flex;}
.dest-lightbox-inner{
  position:relative;
  max-width:min(90vw,1100px);width:100%;
  animation:modalIn 0.45s cubic-bezier(0.16,1,0.3,1);
}
.dest-lightbox-inner img{
  width:100%;max-height:80vh;
  object-fit:cover;display:block;
}
.dest-lightbox-caption{
  position:absolute;bottom:0;left:0;right:0;
  padding:clamp(20px,4vw,44px);
  background:linear-gradient(to top,rgba(0,0,0,0.82) 0%,transparent 100%);
}
.dest-lightbox-label{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.65rem;letter-spacing:0.32em;text-transform:uppercase;
  color:var(--gold);display:block;margin-bottom:8px;
}
.dest-lightbox-title{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(28px,4vw,52px);
  color:#fff;line-height:1.1;letter-spacing:-0.01em;
}
.dest-lightbox-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  background:none;border:1px solid rgba(255,255,255,0.2);
  color:rgba(255,255,255,0.6);font-size:1.4rem;
  width:52px;height:52px;border-radius:50%;
  cursor:pointer;z-index:10;
  display:flex;align-items:center;justify-content:center;
  transition:all 0.3s;
}
.dest-lightbox-nav:hover{border-color:var(--gold);color:var(--gold);}
.dest-lightbox-prev{left:16px;}
.dest-lightbox-next{right:16px;}
.dest-lightbox-close{
  position:absolute;top:-48px;right:0;
  background:none;border:none;cursor:pointer;
  color:rgba(255,255,255,0.55);
  font-family:'Jost',sans-serif;font-size:0.68rem;
  letter-spacing:0.2em;text-transform:uppercase;
  display:flex;align-items:center;gap:10px;transition:color 0.3s;
}
.dest-lightbox-close:hover{color:var(--gold);}
.dest-lightbox-close::before{
  content:'';display:block;width:26px;height:26px;
  border:1px solid currentColor;border-radius:50%;flex-shrink:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9A96E' stroke-width='1.5'%3E%3Cpath d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E") center/12px no-repeat;
}

/* ─── FEATURE LIGHTBOX ─── */
.feature-lightbox{
  display:none;position:fixed;inset:0;z-index:8500;
  background:rgba(0,0,0,0.96);
  backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);
  align-items:center;justify-content:center;padding:24px;
}
.feature-lightbox.open{display:flex;}
.feature-lightbox-inner{
  position:relative;
  max-width:min(88vw,960px);width:100%;
  padding-top:56px;
  animation:modalIn 0.45s cubic-bezier(0.16,1,0.3,1);
}
.feature-lightbox-inner img{
  width:100%;max-height:72vh;
  object-fit:cover;display:block;
}
.feature-lightbox-caption{
  padding:clamp(16px,3vw,32px) 0 0;
}
.feature-lightbox-title{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(22px,3vw,38px);
  color:#fff;line-height:1.1;letter-spacing:-0.01em;
  margin-bottom:10px;
}
.feature-lightbox-desc{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.82rem;line-height:1.7;
  color:rgba(255,255,255,0.45);letter-spacing:0.04em;
}
.feature-lightbox-close{
  position:absolute;top:12px;right:12px;
  background:none;border:none;cursor:pointer;
  color:rgba(255,255,255,0.65);
  font-family:'Jost',sans-serif;font-size:0.68rem;
  letter-spacing:0.2em;text-transform:uppercase;
  display:flex;align-items:center;gap:8px;transition:color 0.3s;
  z-index:10;
}
.feature-lightbox-close:hover{color:var(--gold);}
.feature-lightbox-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  background:rgba(0,0,0,0.4);border:1px solid rgba(255,255,255,0.2);
  color:rgba(255,255,255,0.6);font-size:1.4rem;
  width:52px;height:52px;border-radius:50%;
  cursor:pointer;z-index:8600;
  display:flex;align-items:center;justify-content:center;
  transition:all 0.3s;
}
.feature-lightbox-nav:hover{border-color:var(--gold);color:var(--gold);}
.feature-lightbox-prev{left:16px;}
.feature-lightbox-next{right:16px;}

/* ─── CONTACT PORTRAIT ─── */
.contact-portrait{
  width:72px;height:72px;overflow:hidden;border-radius:50%;
  margin-bottom:20px;
  border:1px solid rgba(201,169,110,0.3);
  flex-shrink:0;
}
.contact-portrait img{
  width:100%;height:100%;object-fit:cover;object-position:top center;
  filter:sepia(0.08) saturate(0.9) brightness(0.95);
}

/* ─── SECTION LABEL (fixed bottom-left indicator) ─── */
.section-label{
  position:fixed;bottom:28px;left:60px;z-index:200;
  font-family:'Jost',sans-serif;font-size:0.6rem;
  letter-spacing:0.28em;text-transform:uppercase;
  color:var(--gold);opacity:0;
  transition:opacity 0.5s;pointer-events:none;
}
.section-label.visible{opacity:0.55;}

/* ─── FUTURE VIDEO SECTION ─── */
#future-video{
  position:relative;
  height:100svh;min-height:600px;
  overflow:hidden;
  background:#000;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding-bottom:clamp(120px,16vh,160px);
}
#future-video .future-bg{
  position:absolute;inset:0;
}
#future-video video{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  display:block;
}
.future-overlay{
  position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(0,0,0,0.52) 0%,rgba(0,0,0,0.28) 35%,rgba(0,0,0,0.48) 100%);
  pointer-events:none;
}
.future-play-btn{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  z-index:10;
  width:72px;height:72px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,0.7);
  background:rgba(0,0,0,0.45);
  color:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;justify-content:center;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  transition:transform 0.2s ease, background 0.2s ease;
}
.future-play-btn:active{
  transform:translate(-50%,-50%) scale(0.93);
  background:rgba(0,0,0,0.65);
}
#future-video .future-content{
  position:relative;z-index:2;
  max-width:720px;width:100%;
  padding:clamp(32px,6vw,64px);
  text-align:center;
}
.future-title{
  font-family:'Cormorant Garamond',serif;
  font-weight:300;
  font-size:clamp(48px,8vw,80px);
  color:#fff;
  line-height:1.05;
  letter-spacing:-0.015em;
  margin-bottom:clamp(24px,3vw,36px);
  text-shadow:0 10px 40px rgba(0,0,0,0.6);
}
.future-title em{font-style:italic;color:var(--gold);}
.future-body{
  font-family:'Jost',sans-serif;
  font-weight:300;
  font-size:clamp(0.88rem,1.3vw,1.08rem);
  line-height:1.72;
  color:rgba(255,255,255,0.78);
  letter-spacing:0.02em;
  margin-bottom:clamp(20px,2vw,28px);
  text-shadow:0 4px 12px rgba(0,0,0,0.5);
}
.future-vision{
  font-family:'Jost',sans-serif;
  font-weight:400;
  font-size:clamp(0.92rem,1.5vw,1.16rem);
  color:var(--gold);
  letter-spacing:0.08em;
  text-transform:uppercase;
  text-shadow:0 4px 12px rgba(0,0,0,0.5);
}
@media(max-width:768px){
  #future-video{
    min-height:480px;
    padding-bottom:clamp(32px,6vh,64px);
  }
  #future-video .future-content{
    text-align:center;
  }
  .future-title{
    margin-bottom:20px;
  }
}

/* ─── FINAL CTA ─── */
#cta{
  position:relative;
  background:
    radial-gradient(circle at 15% 20%,rgba(201,169,110,0.16),transparent 40%),
    radial-gradient(circle at 85% 85%,rgba(201,169,110,0.12),transparent 45%),
    linear-gradient(150deg,#0f1318 0%,#0b0f14 55%,#090d12 100%);
  display:flex;align-items:center;justify-content:center;
  padding:clamp(44px,7vw,96px) 24px;
  overflow:hidden;
}
.cta-pulse{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:900px;height:900px;
  background:radial-gradient(circle,rgba(201,169,110,0.18) 0%,transparent 62%);
  border-radius:50%;
  animation:pulse 8s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{transform:translate(-50%,-50%) scale(0.9);opacity:0.7}
  50%{transform:translate(-50%,-50%) scale(1.08);opacity:1}
}
.cta-inner{position:relative;z-index:2;max-width:1120px;margin:0 auto;width:100%;}
.cta-shell{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,0.85fr);
  gap:clamp(28px,4vw,56px);
  background:linear-gradient(145deg,rgba(255,255,255,0.05) 0%,rgba(255,255,255,0.01) 100%);
  border:1px solid rgba(201,169,110,0.24);
  padding:clamp(28px,4.4vw,56px);
  backdrop-filter:blur(14px);
}
.cta-copy{display:flex;flex-direction:column;justify-content:center}
.cta-portrait{
  width:clamp(72px,10vh,110px);height:clamp(72px,10vh,110px);border-radius:50%;overflow:hidden;
  border:1px solid rgba(201,169,110,0.6);
  margin:0 auto 16px;
  box-shadow:0 8px 32px rgba(150,120,70,0.18);
}
.cta-portrait img{width:100%;height:100%;object-fit:cover;object-position:top center;}
.cta-contact-name{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(24px,2.4vw,30px);color:#fff;
  text-align:center;
  letter-spacing:0.02em;margin-bottom:4px;
}
.cta-contact-role{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.68rem;letter-spacing:0.28em;text-transform:uppercase;
  text-align:center;
  color:var(--gold);margin-bottom:24px;
}
.cta-contact-links{
  display:flex;flex-direction:column;gap:10px;margin-bottom:clamp(20px,3vh,34px);
}
.cta-contact-links a{
  display:block;
  width:100%;
  font-family:'Jost',sans-serif;font-weight:300;font-size:0.84rem;
  color:rgba(255,255,255,0.72);text-decoration:none;letter-spacing:0.1em;text-transform:uppercase;
  transition:color 0.3s,border-color 0.3s,background 0.3s;
  border:1px solid rgba(201,169,110,0.2);
  background:rgba(255,255,255,0.02);
  padding:12px 14px;
  text-align:center;
}
.cta-contact-links a:hover{color:var(--gold);border-color:rgba(201,169,110,0.55);background:rgba(201,169,110,0.08)}
/* Contact/Newsletter modal overlays */
.cta-modal{
  display:none;position:fixed;inset:0;z-index:9000;
  background:rgba(10,10,10,0.92);backdrop-filter:blur(28px);
  align-items:center;justify-content:center;padding:24px;
}
.cta-modal.open{display:flex;}
.cta-modal-inner{
  background:var(--black);border:1px solid rgba(201,169,110,0.18);
  padding:clamp(36px,5vw,56px);width:100%;max-width:480px;
  position:relative;
  animation:modalIn 0.4s cubic-bezier(0.16,1,0.3,1);
}
.cta-modal-close{
  position:absolute;top:16px;right:20px;
  background:none;border:none;cursor:pointer;
  color:rgba(255,255,255,0.4);font-size:1.1rem;
  font-family:'Jost',sans-serif;transition:color 0.3s;
}
.cta-modal-close:hover{color:var(--gold);}
.cta-modal-title{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(22px,2.5vw,30px);color:#fff;
  margin-bottom:6px;letter-spacing:0.01em;
}
.cta-modal-sub{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.78rem;letter-spacing:0.1em;
  color:rgba(255,255,255,0.38);margin-bottom:28px;
}
.cta-eyebrow{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.7rem;letter-spacing:0.36em;text-transform:uppercase;
  color:var(--gold);margin-bottom:36px;display:block;
}
.cta-title{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(38px,5.4vw,78px);
  line-height:1.06;color:#fff;letter-spacing:-0.01em;
  margin-bottom:22px;
}
.cta-title em{color:var(--gold);font-style:italic;}
.cta-description{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.92rem;line-height:1.9;
  color:rgba(255,255,255,0.5);
  letter-spacing:0.05em;
  max-width:500px;
}
.cta-contact-card{
  border:1px solid rgba(201,169,110,0.24);
  background:rgba(9,12,16,0.7);
  padding:clamp(24px,3.6vw,40px);
}
.cta-buttons{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
}
.cta-contact-card .btn-white,
.cta-contact-card .btn-outline-white{
  width:100%;
  text-align:center;
  padding-left:14px;
  padding-right:14px;
}
.btn-white{
  display:inline-block;
  padding:17px 48px;
  background:var(--gold);color:var(--black);
  font-family:'Jost',sans-serif;font-weight:400;
  font-size:0.75rem;letter-spacing:0.22em;text-transform:uppercase;
  text-decoration:none;border:1px solid var(--gold);
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
  position:relative;overflow:hidden;
}
.btn-white::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.2),transparent);
  transform:translateX(-100%);
  transition:transform 0.6s;
}
.btn-white:hover{background:var(--gold-light);border-color:var(--gold-light)}
.btn-white:hover::before{transform:translateX(100%)}
.btn-outline-white{
  display:inline-block;
  padding:17px 48px;
  background:transparent;color:rgba(255,255,255,0.78);
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:0.75rem;letter-spacing:0.22em;text-transform:uppercase;
  text-decoration:none;border:1px solid rgba(255,255,255,0.28);
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
}
.btn-outline-white:hover{border-color:var(--gold);color:var(--gold)}

@media (hover:hover){
  .btn-primary,.btn-ghost,.btn-gold,.btn-white,.btn-outline-white,.cta-contact-links a{
    transition:transform 0.28s cubic-bezier(0.16,1,0.3,1),box-shadow 0.28s cubic-bezier(0.16,1,0.3,1),color 0.3s,border-color 0.3s,background 0.3s;
  }
  .btn-primary:hover,.btn-ghost:hover,.btn-gold:hover,.btn-white:hover,.btn-outline-white:hover,.cta-contact-links a:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 26px rgba(0,0,0,0.24);
  }
}

/* ─── FOOTER ─── */
.cta-legal-link{
  margin-top:26px;
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.62rem;letter-spacing:0.22em;text-transform:uppercase;
  color:rgba(255,255,255,0.32);
  background:none;border:none;cursor:pointer;padding:0;
  transition:color 0.3s;display:block;text-align:center;width:100%;
}
.cta-legal-link:hover{color:rgba(255,255,255,0.64);}

/* ─── IMPRESSUM OVERLAY ─── */
.impressum-modal{
  display:none;position:fixed;inset:0;z-index:9500;
  background:rgba(8,8,8,0.96);backdrop-filter:blur(32px);
  overflow-y:auto;padding:clamp(48px,6vw,80px) clamp(24px,5vw,80px);
}
.impressum-modal.open{display:block;}
.impressum-inner{
  max-width:720px;margin:0 auto;position:relative;
}
.impressum-close{
  position:absolute;top:0;right:0;
  background:none;border:none;cursor:pointer;
  color:rgba(255,255,255,0.4);font-size:1rem;font-family:'Jost',sans-serif;
  letter-spacing:0.15em;text-transform:uppercase;transition:color 0.3s;
}
.impressum-close:hover{color:var(--gold);}
.impressum-title{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(32px,4vw,52px);color:#fff;
  letter-spacing:-0.01em;margin-bottom:48px;
}
.impressum-section{margin-bottom:36px;}
.impressum-section h3{
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:0.68rem;letter-spacing:0.28em;text-transform:uppercase;
  color:var(--gold);margin-bottom:12px;
}
.impressum-section p,.impressum-section a{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.88rem;line-height:1.85;
  color:rgba(255,255,255,0.45);letter-spacing:0.03em;
}
.impressum-section a{color:rgba(255,255,255,0.45);text-decoration:none;transition:color 0.3s;}
.impressum-section a:hover{color:var(--gold);}

/* ─── ANIMATIONS ─── */
@keyframes fadeUp{
  to{opacity:1;transform:translateY(0)}
}
@keyframes fadeIn{
  to{opacity:1}
}

/* ─── CURSOR GLOW ─── */
.cursor-glow{
  position:fixed;pointer-events:none;z-index:9998;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(201,169,110,0.07) 0%,transparent 70%);
  transform:translate(-50%,-50%);
  transition:opacity 0.4s;
  will-change:left,top;
}

@media (min-width: 769px){
  body.pc-scrub-active .dest-anim,
  body.pc-scrub-active .feat-anim{
    filter:none !important;
  }
  body.pc-scrub-active .nav-brand,
  body.pc-scrub-active .nav-links{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
}

/* ─── RESPONSIVE ─── */
/* ─── CONTACT / NEWSLETTER ─── */
.cta-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(32px,5vw,80px);
  max-width:1100px;margin:0 auto;
  text-align:left;
}
.cta-col-title{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(20px,2vw,28px);
  color:#fff;margin-bottom:8px;letter-spacing:0.01em;
}
.cta-col-sub{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.8rem;letter-spacing:0.1em;
  color:rgba(255,255,255,0.4);margin-bottom:28px;
}
.contact-detail{
  display:flex;flex-direction:column;gap:6px;
  margin-bottom:36px;
}
.contact-detail a{
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:0.9rem;color:var(--gold);text-decoration:none;
  letter-spacing:0.04em;transition:color 0.3s;
}
.contact-detail a:hover{color:var(--gold-light)}
.contact-detail span{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.75rem;color:rgba(255,255,255,0.35);
  letter-spacing:0.12em;text-transform:uppercase;
}
.luxury-form{display:flex;flex-direction:column;gap:16px}
.luxury-input,.luxury-textarea{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(201,169,110,0.2);
  color:#fff;
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:0.85rem;letter-spacing:0.06em;
  padding:14px 18px;
  outline:none;
  transition:border-color 0.3s,background 0.3s;
  width:100%;
}
.luxury-input::placeholder,.luxury-textarea::placeholder{
  color:rgba(255,255,255,0.28);
}
.luxury-input:focus,.luxury-textarea:focus{
  border-color:var(--gold);
  background:rgba(255,255,255,0.07);
}
.luxury-textarea{resize:vertical;min-height:110px}
.luxury-check{
  display:flex;align-items:flex-start;gap:12px;cursor:pointer;
}
.luxury-check input[type=checkbox]{
  appearance:none;-webkit-appearance:none;
  width:16px;height:16px;flex-shrink:0;margin-top:2px;
  border:1px solid rgba(201,169,110,0.4);
  background:transparent;cursor:pointer;
  transition:all 0.3s;position:relative;
}
.luxury-check input[type=checkbox]:checked{
  background:var(--gold);border-color:var(--gold);
}
.luxury-check input[type=checkbox]:checked::after{
  content:'';position:absolute;top:2px;left:5px;
  width:4px;height:7px;
  border:1px solid var(--black);border-top:none;border-left:none;
  transform:rotate(45deg);
}
.luxury-check-label{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.75rem;line-height:1.6;
  color:rgba(255,255,255,0.38);
}
.cta-divider{
  display:none;width:1px;
  background:rgba(201,169,110,0.15);
  align-self:stretch;
}
.form-success{
  display:none;
  text-align:center;padding:24px 0;
}
.form-success-icon{
  font-size:2rem;margin-bottom:12px;
  color:var(--gold);
}
.form-success p{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:0.85rem;color:rgba(255,255,255,0.5);
  letter-spacing:0.06em;
}

/* ─── PRINT STYLES ─── */
@media print{
  @page{margin:14mm;}
  *{
    animation:none !important;
    transition:none !important;
  }
  html,body{
    background:#fff !important;
    color:#111 !important;
    overflow:visible !important;
  }
  body{
    padding-top:0 !important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  nav,#loader,.cursor-glow,.section-label,.mobile-menu,.scroll-indicator,
  .video-modal,.dest-lightbox,.feature-lightbox,.cta-modal,.impressum-modal{
    display:none !important;
  }
  section{
    min-height:auto !important;
    height:auto !important;
    page-break-inside:avoid;
    break-inside:avoid;
    margin:0 0 12mm 0 !important;
    padding:0 !important;
  }
  .reveal,.reveal.visible{
    opacity:1 !important;
    transform:none !important;
  }
  .story-image img,.connected-image img,.hospitality-image-side img,
  .feature-card-image img,.video-card img{
    clip-path:none !important;
    transform:none !important;
    filter:none !important;
    opacity:1 !important;
    max-width:100% !important;
    height:auto !important;
  }
  .hero-bg video,.hero2-bg video,.feat-canvas,.dest-canvas,#manifesto-canvas,#venues-canvas{
    display:none !important;
  }
  .print-only-media{
    display:block !important;
    width:100% !important;
    height:auto !important;
  }
  .feat-bg-fallback,.dest-bg-fallback{
    display:none !important;
  }
  #home{
    margin-top:0 !important;
  }
  .hero-bg{
    position:relative !important;
    min-height:80mm;
  }
  .hero-bg-fallback{
    z-index:1 !important;
  }
  .hero-content{
    position:relative !important;
    left:auto !important;
    top:auto !important;
    transform:none !important;
    width:100% !important;
    max-width:100% !important;
    text-align:left !important;
    padding:6mm 0 0 0 !important;
  }
  .hero-title,.hero-subtitle,.section-title,.story-title,.hospitality-title,.cta-title{
    color:#111 !important;
    text-shadow:none !important;
  }
  .hero-buttons,.cta-buttons,.btn-primary,.btn-ghost,.btn-gold,.btn-white,.btn-outline-white{
    display:none !important;
  }
  #features-scrub,#destinations,#night,#manifesto,#hospitality-venues{
    display:block !important;
  }
  #manifesto,#hospitality-venues{
    background:#fff !important;
    padding:8mm 0 !important;
  }
  #features-scrub,#destinations{
    background:#fff !important;
  }
  .feat-bg,.dest-bg{
    position:relative !important;
    inset:auto !important;
    height:auto !important;
    margin-bottom:5mm !important;
  }
  .feat-overlay,.dest-overlay{
    display:none !important;
  }
  .feat-content,.dest-content{
    min-height:auto !important;
    max-width:100% !important;
    padding:0 !important;
  }
  .feat-title,.feat-subtitle,.dest-title,.dest-subtitle,.dest-eyebrow,.feat-eyebrow{
    color:#111 !important;
    text-shadow:none !important;
  }
  .feat-progress-row,.dest-progress-row{
    display:none !important;
  }
  #story,#connected{
    display:block !important;
  }
  #hospitality{
    display:block !important;
  }
  .hospitality-image-side{
    position:relative !important;
    inset:auto !important;
  }
  .story-text,.connected-text,.hospitality-text,#cta,.cta-shell,.cta-contact-card{
    background:#fff !important;
    color:#111 !important;
    border:none !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
  .cta-contact-links a,.impressum-section a{
    color:#111 !important;
    border:1px solid #bbb !important;
    background:#fff !important;
  }
  .hospitality-text{
    min-height:auto !important;
    align-items:flex-start !important;
  }
}

/* ─── SCROLL SNAP ─── */
/* Scroll-snap is disabled globally — GSAP ScrollTrigger pin+pinSpacing
   handles section sequencing.  Browser mandatory snap and GSAP pinning
   cannot co-exist: mandatory snap skips the destinations pin spacer entirely. */
section{
  position:relative;
  min-height:100svh;
}
section + section::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:72px;
  pointer-events:none;
  z-index:2;
  background:linear-gradient(to bottom,rgba(0,0,0,0.11),transparent);
}
/* GSAP injects .pin-spacer divs after pinned sections; give them the
   same background as their section so no ivory body bleeds through */
#features-scrub + .pin-spacer,
.pin-spacer:has(> #features-scrub){background:#0a0c0f;}
#destinations + .pin-spacer,
.pin-spacer:has(> #destinations){background:#0a0c0f;}

@media(max-width:1024px){
  nav{left:16px;right:16px;padding:12px 18px}
  nav.scrolled{padding:10px 16px}
  #story{grid-template-columns:1fr}
  #connected{grid-template-columns:1fr}
  .connected-image{height:60vw;min-height:320px}
  .feature-card{flex:0 0 calc(50% - 2px)}
}
@media(max-width:768px){
  :root{--nav-h:78px;}
  nav{top:12px;left:12px;right:12px;padding:10px 14px}
  nav.scrolled{padding:9px 12px}
  .nav-brand{width:48px;height:48px}
  .nav-logo{height:24px}
  .nav-links{display:none}
  .nav-hamburger{
    display:flex;
    padding:10px;
    border:1px solid rgba(255,255,255,0.16);
    background:rgba(7,10,14,0.28);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
  }
.video-grid{grid-template-columns:1fr;grid-template-rows:1fr 1fr}
  .feature-card{flex:0 0 calc(100% - 2px)}
  .cta-shell{grid-template-columns:1fr}
  .cta-grid{grid-template-columns:1fr}
  .section-label{left:24px;bottom:20px}
  section + section::before{height:44px;opacity:0.8;}
  .hero-content{
    left:50%;
    transform:translate(-50%,-50%);
    text-align:center;
    padding:0 20px;
    width:100%;
  }
  .hero-content.shrunk{transform:translate(-50%,-100%);}
  .hero-buttons{justify-content:center;}
  .hero-subtitle{margin-left:auto;margin-right:auto;}
  .scroll-indicator{right:auto;left:50%;transform:translateX(-50%);}

  /* Show full image in mobile like the Vision image layout */
  #product{
    background:transparent;
  }
  .product-bg{
    background-size:cover;
    background-repeat:no-repeat;
    background-position:38% center;
    transform:none;
  }
  .product-content{
    background:transparent;
  }
  .product-label{color:var(--gold);}
  .product-title{
    color:#fff;
    text-shadow:none;
  }
  .hospitality-image-side img{
    object-fit:cover;
    object-position:center center;
    transform:none;
    clip-path:inset(0 0 0 0);
    transition:none;
  }
  .hospitality-text{
    background:linear-gradient(
      to top,
      rgba(0,0,0,0.64) 0%,
      rgba(0,0,0,0.40) 42%,
      rgba(0,0,0,0.00) 78%
    );
  }
  .hospitality-title{
    text-shadow:0 10px 28px rgba(0,0,0,0.55);
  }
  .hospitality-body{
    color:rgba(255,255,255,0.86);
    text-shadow:0 6px 18px rgba(0,0,0,0.5);
  }
}
@media(max-width:480px){
  .hero-buttons{flex-direction:column;align-items:center}
  .manifesto-secondary{flex-direction:column;gap:12px}
  .cta-buttons{flex-direction:column;align-items:stretch}
  .venues-line{font-size:clamp(36px,10vw,72px)}
  .btn-white,.btn-outline-white{width:100%;text-align:center}
}
