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

:root {
  /* Playful system tokens */
  --gold:      #ff2e95;
  --gold-light: #d63aff;
  --rose:      #ff2e95;
  --ink:       #0f172a;
  --coal:      #202126;
  --slate:     #414040;
  --frost:     #f6f2ee;
  --cloud:     #ffffff;
  --graphite:  #111111;
  --card-shadow: rgba(0, 0, 0, 0.22) 0px 32px 80px 0px, rgba(0, 0, 0, 0.08) 0px 2px 8px 0px;
  --card-radius: 44px;
  --button-radius: 99px;
  /* Page surfaces */
  --cream:     #f0edf8;
  --cream-dim: #c4b8d8;
  --dark:      #0d0d0d;
  --dark-mid:  #111111;
  --dark-card: #0f0f13;
  --border:    rgba(255,46,149,0.16);
  /* Explicit accent aliases */
  --accent:    #ff2e95;
  --accent2:   #c473f3;
}

html { scroll-behavior: smooth; overflow-x: hidden; }

body {
  font-family: 'Inter', system-ui, sans-serif;
  letter-spacing: -0.002em;
  background:
    linear-gradient(225deg,
      #f6f2ee  0%,
      #ffc8c6  8%,
      #edd8f8 18%,
      #ddbef8 28%,
      #ce9afa 38%,
      #c473f3 48%,
      #b258e7 58%,
      #9c3ae7 68%,
      #7e24dd 78%,
      #5a19d0 88%,
      #2f07b8 100%
    );
  background-attachment: fixed;
  background-size: 180% 180%;
  background-position: 78% 0%;
  color: var(--ink);
  overflow-x: hidden;
  cursor: none;
}

/* ── CURSOR ── */
#cursor-dot {
  position: fixed; font-size: 20px; line-height: 1;
  background: none; border-radius: 0;
  pointer-events: none; z-index: 9999;
  transform: translate(-50%, -50%);
  transition: transform 0.1s, font-size 0.2s;
}
#cursor-dot::after {
  content: '♥';
  display: block;
  color: var(--accent);
  filter: drop-shadow(0 0 6px rgba(255,46,149,0.9)) drop-shadow(0 0 18px rgba(255,46,149,0.4));
  animation: heartbeat 1.8s ease-in-out infinite;
}
@keyframes heartbeat {
  0%,100% { transform: scale(1); }
  14%     { transform: scale(1.2); }
  28%     { transform: scale(1); }
  42%     { transform: scale(1.1); }
  56%     { transform: scale(1); }
}
#cursor-ring {
  position: fixed; width: 36px; height: 36px;
  border: 1px solid rgba(255,46,149,0.42); border-radius: 50%;
  pointer-events: none; z-index: 9998;
  transform: translate(-50%, -50%);
  transition: transform 0.12s ease-out, width 0.3s, height 0.3s, border-color 0.3s;
}

/* ── SCROLL REVEAL ── */
.reveal { opacity: 0; transform: translateY(36px); transition: opacity 0.8s ease, transform 0.8s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.22s; }
.reveal-delay-3 { transition-delay: 0.34s; }
.reveal-delay-4 { transition-delay: 0.46s; }

/* ── SECTION BASE ── */
section { padding: 120px 60px; }
.section-eyebrow {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.7rem; font-weight: 700;
  letter-spacing: 2px; text-transform: uppercase;
  color: var(--accent); margin-bottom: 20px;
}
.section-title {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: clamp(2.25rem, 5vw, 4.4rem); font-weight: 900;
  line-height: 1.08; margin-bottom: 20px;
  letter-spacing: -0.002em;
  color: var(--ink);
}
.section-title em {
  font-style: normal;
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent2) 62%, #7e24dd 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.section-body {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 1rem; line-height: 1.7;
  color: var(--coal); max-width: 620px; font-weight: 500;
}

.ornament-divider {
  text-align: center; padding: 16px 0;
  color: var(--accent2); font-size: 1.1rem;
  letter-spacing: 16px; opacity: 0.35;
}

/* ── NAV RIGHT WRAPPER ── */
.nav-right { display: flex; align-items: center; gap: 20px; }

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  nav { padding: 20px 30px; }
  .nav-links { display: none; }
  section, .how-section, .community-section, .waitlist-section { padding: 80px 30px; }
  .stats { padding: 40px 20px; }
  .stat { padding: 20px 40px; }
  .vision-wrap, .heritage-wrap { flex-direction: column; gap: 60px; }
  .vision-visual, .heritage-visual { width: 100%; max-width: 400px; margin: 0 auto; }
  .pillars-grid, .how-steps { grid-template-columns: repeat(2, 1fr); }
  footer { flex-direction: column; text-align: center; }
}
@media (max-width: 600px) {
  .pillars-grid { grid-template-columns: 1fr; }
  .bento-grid { grid-template-columns: 1fr; }
  .bento-wide { grid-column: 1; }
  .bento-wide-inner { flex-direction: column; gap: 28px; }
  .bento-card { padding: 32px 28px; }
  .stat { border-right: none; border-bottom: 1px solid var(--border); }
  .stat:last-child { border-bottom: none; }
  .waitlist-form { flex-direction: column; }
  .wq-overlay { padding: 12px; align-items: flex-end; }
  .wq-card { max-height: 94vh; padding: 30px 20px 22px; border-radius: 8px 8px 0 0; }
  .wq-progress-dots { margin-bottom: 24px; }
  .wq-step { min-height: 360px; }
  .wq-options { grid-template-columns: 1fr; }
  .wq-option { min-height: 52px; border-radius: 18px; }
  .wq-nav { flex-direction: column-reverse; }
  .wq-btn-back, .wq-btn-next { width: 100%; }
  .gallery-card { width: 200px; height: 260px; }
}
