
:root {
  --navy: #102f55;
  --aqua: #83d8dd;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--aqua);
  color: white;
  font-family: Arial, Helvetica, sans-serif;
}

.scroll-hero {
  height: 360vh;
  background: var(--aqua);
}

.hero-sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
  background: #65cdd2;
}

.hero-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hero-canvas { position: absolute; inset: 0; opacity: 0; }
.hero-canvas.is-ready { opacity: 1; }

.hero-vignette {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 0 0, rgba(7, 45, 65, .28), transparent 42%),
    linear-gradient(0deg, rgba(7, 40, 58, .16), transparent 28%);
}

.hero-copy {
  position: absolute;
  z-index: 2;
  top: clamp(24px, 4vw, 58px);
  left: clamp(22px, 4.5vw, 72px);
  color: white;
  transition: opacity .08s linear;
}

.eyebrow {
  margin: 0 0 10px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .25em;
}

.hero-copy h1 {
  margin: 0;
  font-size: clamp(38px, 5vw, 76px);
  line-height: .88;
  letter-spacing: -.065em;
  font-weight: 900;
  text-shadow: 0 4px 28px rgba(20, 77, 91, .12);
}

.hero-cta {
  position: absolute;
  z-index: 3;
  left: clamp(20px, 4.5vw, 72px);
  bottom: 24px;
  display: flex;
  gap: 16px;
  align-items: center;
  padding: 10px 11px 10px 17px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .94);
  color: var(--navy);
  font-size: 11px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 10px 34px rgba(0, 69, 82, .14);
  backdrop-filter: blur(8px);
}

.hero-cta span {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #ef493b;
  color: white;
}

.scroll-meter {
  position: absolute;
  z-index: 2;
  right: 22px;
  top: 50%;
  width: 2px;
  height: 110px;
  background: rgba(255, 255, 255, .35);
  transform: translateY(-50%);
}

.scroll-meter span {
  position: absolute;
  inset: 0;
  background: white;
  transform-origin: top;
}

.video-loader {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%);
  padding: 8px 12px;
  border-radius: 99px;
  background: rgba(16, 47, 85, .65);
  color: white;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: opacity .3s ease;
}

.video-loader.is-ready {
  opacity: 0;
  pointer-events: none;
}

@media (max-width: 760px) {
  .hero-video { object-position: 58% center; }
  .hero-copy {
    top: 20px;
    left: 18px;
  }
  .hero-copy h1 {
    font-size: clamp(36px, 12vw, 56px);
  }
  .hero-cta {
    left: 18px;
    bottom: 18px;
  }
  .scroll-meter { right: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

.flavour-section { height: 650vh; background: #91dce3; color: white; font-family: "Coiny", system-ui, sans-serif; }
.flavour-sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; background: #91dce3; }
.flavour-heading { position: absolute; top: clamp(34px, 7vh, 80px); width: 100%; text-align: center; padding: 0 20px; }
.flavour-heading span, .flavour-caption span { font-size: 10px; font-weight: 800; letter-spacing: .2em; }
.flavour-heading h2 { font-size: clamp(30px, 4vw, 57px); letter-spacing: -.055em; margin: 12px 0 5px; line-height: 1; }
.flavour-heading p { font-size: 13px; opacity: .75; }
.flavour-wheel { position: absolute; inset: 0; pointer-events: none; }
.flavour-item { position: absolute; left: 50%; top: 49%; width: clamp(145px, 15vw, 205px); aspect-ratio: 1; transition: transform .7s ease, opacity .5s ease; filter: drop-shadow(0 16px 17px rgba(11, 83, 101, .16)); pointer-events: auto; }
.flavour-item img { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: 12px; }
.flavour-caption { position: absolute; bottom: max(7vh, 28px); left: 0; width: 100%; padding: 0 20px; text-align: center; }
.flavour-caption h3 { font-size: clamp(23px, 3vw, 38px); letter-spacing: -.04em; margin: 9px 0; }
.flavour-caption p { font-size: 11px; letter-spacing: .13em; opacity: .65; }
.flavour-controls { display: flex; justify-content: center; align-items: center; gap: 24px; }
.flavour-controls button { border: 1px solid rgba(255,255,255,.8); background: transparent; color: inherit; border-radius: 50%; width: 38px; height: 38px; cursor: pointer; font-size: 20px; }
.flavour-controls button:hover, .flavour-controls button:focus-visible { background: white; color: #123c5d; }
@media (max-width: 760px) {
  .flavour-item { width: 150px; top: 48%; }
  .flavour-heading { top: 7vh; }
}
