html { scroll-behavior: smooth; }

body {
  font-family: 'Inter', sans-serif;
  background: #0B0F0C;
  color: #fff;
}

.font-display { font-family: 'Sora', sans-serif; }

.hero-grid {
  background-image:
    linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(ellipse 80% 70% at 50% 30%, black 60%, transparent 100%);
}

.glow {
  box-shadow:
    0 0 0 1px rgba(29, 191, 115, .4),
    0 20px 80px -20px rgba(29, 191, 115, .55);
}

.marquee { animation: marquee 22s linear infinite; }

@keyframes marquee {
  to { transform: translateX(-50%); }
}

@keyframes float {
  0%, 100% { transform: translateY(0) rotate(-6deg); }
  50% { transform: translateY(-14px) rotate(-6deg); }
}

.float { animation: float 5s ease-in-out infinite; }

@keyframes pulse-cta {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.03); }
}

.cta-pulse { animation: pulse-cta 2s infinite; }

.tick { font-variant-numeric: tabular-nums; }

details[open] summary .plus { transform: rotate(45deg); }

.plus { transition: .2s; }

.book-3d {
  transform: perspective(1200px) rotateY(-18deg) rotateX(6deg);
  transform-style: preserve-3d;
}

.strike { position: relative; }

.strike::after {
  content: '';
  position: absolute;
  left: -4px;
  right: -4px;
  top: 48%;
  height: 3px;
  background: #ff4d4d;
  transform: rotate(-6deg);
  border-radius: 99px;
}

/* Gumroad checkout popup */
.gumroad-modal {
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}

.gumroad-modal.open {
  opacity: 1;
  pointer-events: auto;
}

.gumroad-modal .gumroad-card {
  transform: translateY(12px) scale(.97);
  transition: transform .25s ease;
}

.gumroad-modal.open .gumroad-card {
  transform: none;
}

/* Header language dropdown menu */
.langdrop {
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
}

.langdrop.open {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}
