  /* ── Base ── */
  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { margin: 0; }

  /* ── Geometric shapes ── */
  .geo-circle {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
  }
  .geo-circle-1 {
    width: 400px; height: 400px;
    background: radial-gradient(circle, rgba(20,184,166,0.15) 0%, transparent 70%);
    top: -80px; left: -100px;
    animation: float-slow 12s ease-in-out infinite;
  }
  .geo-circle-2 {
    width: 250px; height: 250px;
    border: 2px solid rgba(20,184,166,0.1);
    bottom: 15%; right: 10%;
    animation: float-slow 9s ease-in-out infinite reverse;
  }
  .geo-circle-3 {
    width: 120px; height: 120px;
    background: rgba(20,184,166,0.08);
    top: 40%; left: 5%;
    animation: float-slow 7s ease-in-out infinite;
  }
  .geo-triangle {
    position: absolute;
    width: 0; height: 0;
    border-left: 60px solid transparent;
    border-right: 60px solid transparent;
    border-bottom: 104px solid rgba(20,184,166,0.07);
    top: 20%; right: 38%;
    transform: rotate(15deg);
    animation: float-slow 10s ease-in-out infinite;
  }
  .geo-diamond {
    position: absolute;
    width: 80px; height: 80px;
    background: rgba(20,184,166,0.06);
    border: 1px solid rgba(20,184,166,0.12);
    top: 60%; left: 8%;
    transform: rotate(45deg);
    animation: float-slow 8s ease-in-out infinite reverse;
  }

  @keyframes float-slow {
    0%, 100% { transform: translateY(0) rotate(var(--rot, 0deg)); }
    50% { transform: translateY(-20px) rotate(var(--rot, 0deg)); }
  }
  .geo-triangle { --rot: 15deg; }
  .geo-diamond { --rot: 45deg; }

  /* ── Flavor cards ── */
  .flavor-card {
    will-change: transform;
  }

  /* ── Scroll reveal (below-the-fold only) ── */
  .reveal {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  @media (prefers-reduced-motion: no-preference) {
    .reveal {
      opacity: 0;
      transform: translateY(30px);
    }
    .reveal.revealed {
      opacity: 1;
      transform: translateY(0);
    }
  }

  /* ── Navbar scroll state ── */
  #navbar.scrolled {
    background: rgba(2, 6, 23, 0.92);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(20,184,166,0.1);
  }

  /* ── Selection ── */
  ::selection {
    background: rgba(20,184,166,0.3);
    color: #fff;
  }
</style>
