* { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  background: #000;
  color: #fff;
  font-family: Helvetica, Arial, sans-serif;
  overflow-x: hidden;
}

.stage {
  position: relative;
  width: 100vw;
  min-height: 150vh;
}

.title {
  position: absolute;
  top: 50vh;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  font-size: clamp(48px, 10vw, 140px);
  font-weight: 900;
  letter-spacing: -.02em;
  line-height: 1;
  color: #fff;
  mix-blend-mode: difference;
  text-align: center;
  white-space: nowrap;
}

.tag {
  position: absolute;
  top: calc(50vh + clamp(48px, 10vw, 140px) * 0.6 + 40px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  font-size: 14px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: #fff;
  opacity: .6;
}

/* =========================================================
   FLOATERS
   ========================================================= */
.floater {
  position: absolute;
  object-fit: contain;
  z-index: 1;
  animation: float 12s ease-in-out infinite;
  will-change: transform;
}

/* --- specific placements --- */

/* top center, small, no bobbing */
.floater--15 { top: 2vh;   left: 50%; width: 5vw;  margin-left: -2.5vw; }

/* through the headline */
.floater--3  { top: 42vh;  left:  6%; width: 24vw; animation-delay: -2s; }
.floater--16 { top: 34vh;  right: 12%; width: 17vw; animation-delay: -4s; }

/* =========================================================
   THE THREE LOGOS — always visible across the lower half.
   CHOC and FRENDZ (NEA) are clickable links; BD is just the mark.
   ========================================================= */
.logo {
  top: 112vh;
  width: 14vw;
  opacity: 1;
  z-index: 2;
}
.logo--choc   { left: 20%;  margin-left: -7vw; animation-delay: -2s; }
.logo--bd     { left: 50%;  margin-left: -7vw; animation-delay: -4s; }
.logo--frendz { right: 20%; margin-right: -7vw; width: 14vw; animation-delay: -6s; }

/* anchors fill their slot and stay clickable */
a.logo { pointer-events: auto; cursor: pointer; }
a.logo img { width: 100%; display: block; }

/* --- modifiers --- */
.floater--static { animation: none; }
.floater--flip   { animation-name: float-flip; }
@keyframes float-flip {
  0%, 100% { transform: scaleX(-1) translate(0, 0)      rotate(-2deg); }
  25%      { transform: scaleX(-1) translate(10px,-14px) rotate(1.5deg); }
  50%      { transform: scaleX(-1) translate(-8px,-6px)  rotate(-1deg); }
  75%      { transform: scaleX(-1) translate(6px, 12px)  rotate(2deg); }
}

@keyframes float {
  0%, 100% { transform: translate(0, 0) rotate(-2deg); }
  25%      { transform: translate(10px, -14px) rotate(1.5deg); }
  50%      { transform: translate(-8px, -6px) rotate(-1deg); }
  75%      { transform: translate(6px, 12px) rotate(2deg); }
}

/* item on the LEFT, pointing inward (top leans right) */
@keyframes float-in-left {
  0%, 100% { transform: translate(0, 0)      rotate(28deg); }
  25%      { transform: translate(8px,-12px) rotate(31deg); }
  50%      { transform: translate(-6px,-4px) rotate(26deg); }
  75%      { transform: translate(6px, 10px) rotate(30deg); }
}

/* item on the RIGHT, pointing inward (top leans left) */
@keyframes float-in-right {
  0%, 100% { transform: translate(0, 0)      rotate(-28deg); }
  25%      { transform: translate(-8px,-12px) rotate(-31deg); }
  50%      { transform: translate(6px,-4px)   rotate(-26deg); }
  75%      { transform: translate(-6px, 10px) rotate(-30deg); }
}

@media (max-width: 720px) {
  .floater { width: 40vw !important; }
  .floater--15 { width: 16vw !important; margin-left: -8vw !important; }
  .title { white-space: normal; }

  /* phone: stack the three portal logos vertically, centred + tappable, no overlap */
  .logo { left: 50% !important; right: auto !important; width: 34vw !important; margin-left: -17vw !important; margin-right: 0 !important; }
  .logo--choc   { top: 80vh !important; }
  .logo--frendz { top: 102vh !important; }
  .logo--bd     { top: 124vh !important; }
}

@media (prefers-reduced-motion: reduce) {
  .floater { animation: none; }
}
