.promo-page {
  min-height: 100vh;
  background: #08080a;
  display: flex;
  flex-direction: column;
  font-family: "DM Sans", system-ui, sans-serif;
  color: #f5f5f7;
}

.promo-page::before {
  content: "";
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background:
    radial-gradient(ellipse 60% 40% at 15% 10%, var(--accent-soft, rgba(91,141,239,0.12)), transparent 55%),
    radial-gradient(ellipse 50% 35% at 85% 20%, rgba(0,120,212,0.08), transparent 50%),
    radial-gradient(ellipse 40% 30% at 50% 90%, rgba(124,58,237,0.06), transparent 50%);
}

.promo-viewport { position: relative; z-index: 1; }

.promo-stage-wrap { width: 100%; max-width: 920px; padding-bottom: 32px; margin: 0 auto; }

.stage { position: relative; padding: 8px 0; }

.grid-bg {
  position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: 40px 40px;
  mask-image: radial-gradient(ellipse 85% 75% at 50% 35%, black, transparent);
}

.layout {
  position: relative; z-index: 2;
  display: flex; flex-direction: column; align-items: center; text-align: center;
}

.brand { display: flex; flex-direction: column; align-items: center; gap: 8px; opacity: 0; animation: promo-rise 0.5s ease forwards; }
.brand img { width: 52px; height: 52px; filter: drop-shadow(0 0 18px var(--accent-soft, rgba(91,141,239,0.25))); }
.brand-name { font-size: 12px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; background: linear-gradient(90deg, #fff, #94a3b8); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

.hero { margin-top: 24px; opacity: 0; animation: promo-rise 0.6s ease 0.08s forwards; }
.headline { font-size: clamp(40px, 8vw, 56px); font-weight: 900; line-height: 1.02; letter-spacing: -0.04em; }
.headline .w { background: linear-gradient(180deg, #fff, #94a3b8); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.headline .b { background: linear-gradient(135deg, #93c5fd, var(--accent)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.tagline { margin-top: 12px; font-size: 14px; color: #8e8e98; max-width: 520px; line-height: 1.55; }

.hero-pills { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.hpill {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 600; color: #8e8e98;
  padding: 6px 12px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.02);
}
.hpill .ico, .ico { width: 16px; height: 16px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.hpill .ico svg, .ico svg { width: 16px; height: 16px; display: block; }
.ico.multi { width: auto; gap: 2px; }
.ico.multi svg { width: 13px; height: 13px; }

@keyframes promo-rise { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes rise { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes glow { 0%,100% { box-shadow:0 0 0 transparent; } 50% { box-shadow:0 0 28px rgba(91,141,239,0.14); } }
body.playing * { animation-play-state: running !important; }
