/* OMA Landing — Iron Man cinematic entrance (world-class) */

.ax-hero-v2__char-stage.ax-di-stage {
  perspective: 1600px;
  perspective-origin: 50% 38%;
}

/* ── Hero copy — always visible (never gated on OMA entrance) ── */
.ax-hero-v2__copy .ax-hero-v2__title,
.ax-hero-v2__copy .ax-hero-v2__desc,
.ax-hero-v2__copy .ax-hero-v2__actions,
.ax-hero-v2__copy .ax-hero-v2__trust,
.ax-hero-v2__copy .ax-hero-v2__ticker {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  visibility: visible !important;
}

/* ── Character hidden until play ── */
.ax-di-stage:not(.oma-entrance-settled):not(.oma-entrance-play):not(.oma-entrance-deploy) .ax-hero-v2__char.ax-di-char,
.ax-di-stage:not(.oma-entrance-settled):not(.oma-entrance-play):not(.oma-entrance-deploy) .ax-di-fx {
  opacity: 0;
}

/* ── Pending (pre-launch) ── */
.ax-di-stage.oma-entrance-pending .oma-entrance-rig {
  opacity: 0;
  transform: translate3d(18%, -42%, 24px) scale3d(0.72, 0.78, 1) rotateY(-8deg);
  filter: brightness(1.35) saturate(0.85);
}

.ax-di-stage.oma-entrance-pending .ax-di-eye,
.ax-di-stage.oma-entrance-pending .ax-di-wing-glow {
  opacity: 0;
  animation: none;
}

.ax-di-stage.oma-entrance-pending .ax-hero-v2__char-spotlight,
.ax-di-stage.oma-entrance-pending .ax-hero-v2__char-pedestal-glow {
  opacity: 0;
  animation: none;
}

/* ── Phase 1: Fly-in (snappy enterprise) ── */
.ax-di-stage.oma-entrance-play .oma-entrance-rig {
  animation: omaIronManFlyIn 0.38s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

/* ── Phase 2: Wing deploy + power settle ── */
.ax-di-stage.oma-entrance-deploy .oma-entrance-rig {
  animation: omaRigSettle 0.16s cubic-bezier(0.22, 1.08, 0.36, 1) forwards;
}

.ax-di-stage.oma-entrance-deploy .ax-hero-v2__char.ax-di-char {
  animation: omaWingDeploy 0.16s cubic-bezier(0.22, 1.12, 0.36, 1) forwards;
}

.ax-di-stage.oma-entrance-deploy .ax-di-wing-glow {
  animation: omaWingPowerUp 0.18s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

/* ── Settled idle ── */
.ax-di-stage.oma-entrance-settled .oma-entrance-rig {
  opacity: 1;
  transform: none;
  filter: none;
}

.ax-di-stage.oma-entrance-settled .ax-hero-v2__char.ax-di-char {
  animation: axDiCharFloat 5.5s ease-in-out infinite;
}

.ax-di-stage.oma-entrance-settled .ax-di-eye {
  animation: axDiEyePulse 2.4s ease-in-out infinite;
}

.ax-di-stage.oma-entrance-settled .ax-di-wing-glow {
  animation: axDiWingShimmer 4s ease-in-out infinite;
}

.ax-di-stage.oma-entrance-settled .ax-hero-v2__char-spotlight,
.ax-di-stage.oma-entrance-settled .ax-hero-v2__char-pedestal-glow {
  animation: axCharSpotlight 4s ease-in-out infinite, omaPedestalReveal 0.8s ease forwards;
}

.oma-entrance-rig {
  position: absolute;
  inset: 0;
  z-index: 3;
  transform-style: preserve-3d;
  will-change: transform, opacity, filter;
  backface-visibility: hidden;
}

/* ══ Stage-fixed landing VFX ══ */
.oma-entrance-vfx {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: visible;
}

.oma-vfx-hex-pulse {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 42%;
  height: 14%;
  transform: translateX(-50%) scale(0.3);
  opacity: 0;
  background:
    conic-gradient(from 0deg, rgba(168, 85, 247, 0.5) 0deg 60deg, transparent 60deg 120deg, rgba(212, 168, 83, 0.4) 120deg 180deg, transparent 180deg 240deg, rgba(168, 85, 247, 0.35) 240deg 300deg, transparent 300deg 360deg);
  clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
  filter: blur(1px);
}

.ax-di-stage.oma-entrance-play .oma-vfx-hex-pulse {
  animation: omaHexPulse 0.52s cubic-bezier(0.18, 0.89, 0.32, 1.1) 0.48s forwards;
}

.oma-vfx-shockwave {
  position: absolute;
  left: 50%;
  bottom: 3%;
  width: 22%;
  height: 9%;
  transform: translateX(-50%) scale(0.1);
  border-radius: 50%;
  border: 2px solid rgba(168, 85, 247, 0.8);
  box-shadow: 0 0 32px rgba(168, 85, 247, 0.6), inset 0 0 20px rgba(212, 168, 83, 0.4);
  opacity: 0;
}

.oma-vfx-shockwave--2 {
  bottom: 4%;
  border-color: rgba(96, 165, 250, 0.55);
  animation-delay: 0.52s !important;
}

.oma-vfx-shockwave--3 {
  bottom: 5%;
  border-color: rgba(212, 168, 83, 0.45);
  animation-delay: 0.56s !important;
}

.ax-di-stage.oma-entrance-play .oma-vfx-shockwave {
  animation: omaShockwave 0.55s cubic-bezier(0.15, 0.85, 0.25, 1.1) 0.46s forwards;
}

.oma-vfx-dust {
  position: absolute;
  left: 50%;
  bottom: 2%;
  width: 70%;
  height: 20%;
  transform: translateX(-50%);
  opacity: 0;
  background: radial-gradient(ellipse 80% 40% at 50% 100%, rgba(168, 85, 247, 0.15) 0%, transparent 70%);
  filter: blur(8px);
}

.ax-di-stage.oma-entrance-play .oma-vfx-dust {
  animation: omaDustSettle 0.62s ease-out 0.48s forwards;
}

.oma-vfx-sparks {
  position: absolute;
  inset: 0;
  opacity: 0;
}

.oma-vfx-sparks span {
  position: absolute;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #f0e6ff;
  box-shadow: 0 0 10px #a855f7, 0 0 4px #fff;
}

.oma-vfx-sparks span:nth-child(1) { left: 36%; bottom: 11%; }
.oma-vfx-sparks span:nth-child(2) { left: 50%; bottom: 9%; }
.oma-vfx-sparks span:nth-child(3) { left: 60%; bottom: 13%; }
.oma-vfx-sparks span:nth-child(4) { left: 42%; bottom: 7%; }
.oma-vfx-sparks span:nth-child(5) { left: 56%; bottom: 15%; }
.oma-vfx-sparks span:nth-child(6) { left: 46%; bottom: 17%; }
.oma-vfx-sparks span:nth-child(7) { left: 33%; bottom: 10%; }
.oma-vfx-sparks span:nth-child(8) { left: 67%; bottom: 12%; }
.oma-vfx-sparks span:nth-child(9) { left: 38%; bottom: 14%; }
.oma-vfx-sparks span:nth-child(10) { left: 62%; bottom: 8%; }

.ax-di-stage.oma-entrance-play .oma-vfx-sparks {
  animation: omaSparksBurst 0.45s ease-out 0.49s forwards;
}

.ax-di-stage.oma-entrance-play .oma-vfx-sparks span {
  animation: omaSparkFly 0.4s cubic-bezier(0.22, 1, 0.36, 1) 0.49s forwards;
}

.oma-vfx-sparks span:nth-child(2) { animation-delay: 0.51s; }
.oma-vfx-sparks span:nth-child(3) { animation-delay: 0.5s; }
.oma-vfx-sparks span:nth-child(4) { animation-delay: 0.53s; }
.oma-vfx-sparks span:nth-child(5) { animation-delay: 0.505s; }
.oma-vfx-sparks span:nth-child(6) { animation-delay: 0.535s; }
.oma-vfx-sparks span:nth-child(7) { animation-delay: 0.515s; }
.oma-vfx-sparks span:nth-child(8) { animation-delay: 0.54s; }
.oma-vfx-sparks span:nth-child(9) { animation-delay: 0.508s; }
.oma-vfx-sparks span:nth-child(10) { animation-delay: 0.545s; }

/* ══ Rig-mounted flight VFX ══ */
.oma-vfx-rig {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: visible;
}

.oma-vfx-glow-core {
  position: absolute;
  left: 50%;
  top: 36%;
  width: 60%;
  height: 48%;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, rgba(168, 85, 247, 0.45) 0%, rgba(96, 165, 250, 0.15) 35%, rgba(212, 168, 83, 0.1) 55%, transparent 72%);
  opacity: 0;
  filter: blur(14px);
}

.ax-di-stage.oma-entrance-play .oma-vfx-glow-core {
  animation: omaGlowCore 0.88s ease-out forwards;
}

.oma-vfx-wing-deploy {
  position: absolute;
  top: 16%;
  width: 38%;
  height: 50%;
  opacity: 0;
  filter: blur(16px);
  pointer-events: none;
}

.oma-vfx-wing-deploy--l {
  left: 2%;
  background: radial-gradient(ellipse 90% 70% at 80% 50%, rgba(168, 85, 247, 0.55) 0%, transparent 68%);
}

.oma-vfx-wing-deploy--r {
  right: 2%;
  background: radial-gradient(ellipse 90% 70% at 20% 50%, rgba(168, 85, 247, 0.55) 0%, transparent 68%);
}

.ax-di-stage.oma-entrance-deploy .oma-vfx-wing-deploy--l {
  animation: omaWingBurstL 0.38s cubic-bezier(0.22, 1.1, 0.36, 1) forwards;
}

.ax-di-stage.oma-entrance-deploy .oma-vfx-wing-deploy--r {
  animation: omaWingBurstR 0.38s cubic-bezier(0.22, 1.1, 0.36, 1) 0.04s forwards;
}

.oma-vfx-boost {
  position: absolute;
  bottom: 0;
  width: 14%;
  height: 46%;
  opacity: 0;
  transform: scaleY(0.1);
  transform-origin: center bottom;
}

.oma-vfx-boost--l { left: 35%; }
.oma-vfx-boost--r { right: 35%; }
.oma-vfx-boost--c {
  left: 50%;
  width: 8%;
  height: 38%;
  transform: translateX(-50%) scaleY(0.1);
}

.oma-vfx-boost::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(96, 165, 250, 0.15) 15%,
    rgba(168, 85, 247, 0.25) 28%,
    rgba(192, 132, 252, 0.95) 54%,
    rgba(212, 168, 83, 0.98) 78%,
    rgba(255, 255, 255, 0.98) 100%
  );
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  border-radius: 0 0 50% 50%;
}

.oma-vfx-boost::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -12%;
  width: 180%;
  height: 38%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(212, 168, 83, 0.7) 0%, rgba(168, 85, 247, 0.3) 50%, transparent 75%);
  filter: blur(12px);
}

.ax-di-stage.oma-entrance-play .oma-vfx-boost {
  animation: omaRepulsorBoost 0.85s cubic-bezier(0.18, 0.92, 0.28, 1) forwards;
}

.oma-vfx-boost--r { animation-delay: 0.05s !important; }
.oma-vfx-boost--c { animation-delay: 0.02s !important; }

.oma-vfx-trail {
  position: absolute;
  left: 50%;
  bottom: -4%;
  width: 8px;
  height: 0;
  transform: translateX(-50%);
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.95) 0%,
    rgba(192, 132, 252, 0.98) 12%,
    rgba(168, 85, 247, 0.85) 40%,
    rgba(96, 165, 250, 0.4) 65%,
    rgba(212, 168, 83, 0.3) 82%,
    transparent 100%
  );
  box-shadow:
    0 0 28px rgba(168, 85, 247, 0.95),
    0 0 56px rgba(96, 165, 250, 0.35),
    0 0 90px rgba(124, 58, 237, 0.2);
  opacity: 0;
  border-radius: 4px;
}

.ax-di-stage.oma-entrance-play .oma-vfx-trail {
  animation: omaRepulsorTrail 0.82s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.oma-vfx-trail--ghost {
  width: 20px;
  filter: blur(8px);
  opacity: 0;
}

.ax-di-stage.oma-entrance-play .oma-vfx-trail--ghost {
  animation: omaRepulsorTrailGhost 0.82s ease-out forwards;
}

.oma-vfx-speedlines {
  position: absolute;
  inset: -25% -35%;
  opacity: 0;
}

.oma-vfx-speedlines span {
  position: absolute;
  width: 2px;
  height: 32%;
  background: linear-gradient(180deg, transparent 0%, rgba(192, 132, 252, 0.85) 45%, rgba(96, 165, 250, 0.5) 70%, transparent 100%);
  transform: rotate(-16deg);
  opacity: 0;
}

.oma-vfx-speedlines span:nth-child(1) { left: 14%; top: 0; }
.oma-vfx-speedlines span:nth-child(2) { left: 28%; top: -12%; height: 40%; }
.oma-vfx-speedlines span:nth-child(3) { left: 44%; top: -4%; }
.oma-vfx-speedlines span:nth-child(4) { left: 58%; top: -10%; height: 38%; }
.oma-vfx-speedlines span:nth-child(5) { left: 72%; top: 2%; }
.oma-vfx-speedlines span:nth-child(6) { left: 86%; top: -6%; height: 30%; }
.oma-vfx-speedlines span:nth-child(7) { left: 36%; top: 6%; height: 26%; }

.ax-di-stage.oma-entrance-play .oma-vfx-speedlines {
  animation: omaSpeedlinesFade 0.72s ease-out forwards;
}

.ax-di-stage.oma-entrance-play .oma-vfx-speedlines span {
  animation: omaSpeedlineStreak 0.42s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.oma-vfx-speedlines span:nth-child(2) { animation-delay: 0.05s; }
.oma-vfx-speedlines span:nth-child(3) { animation-delay: 0.1s; }
.oma-vfx-speedlines span:nth-child(4) { animation-delay: 0.03s; }
.oma-vfx-speedlines span:nth-child(5) { animation-delay: 0.08s; }
.oma-vfx-speedlines span:nth-child(6) { animation-delay: 0.12s; }
.oma-vfx-speedlines span:nth-child(7) { animation-delay: 0.06s; }

.oma-vfx-heat-haze {
  position: absolute;
  inset: -5%;
  opacity: 0;
  background: radial-gradient(ellipse 60% 80% at 50% 60%, rgba(168, 85, 247, 0.08) 0%, transparent 65%);
  mix-blend-mode: screen;
}

.ax-di-stage.oma-entrance-play .oma-vfx-heat-haze {
  animation: omaHeatHaze 0.88s ease-out forwards;
}

/* ══ HUD frame boot (hero stage) ══ */
.oma-hud-frame {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  overflow: hidden;
}

.oma-hud-bracket {
  position: absolute;
  width: 22px;
  height: 22px;
  opacity: 0;
  border-color: rgba(96, 165, 250, 0.75);
  border-style: solid;
  border-width: 0;
  box-shadow: 0 0 12px rgba(96, 165, 250, 0.35);
}

.oma-hud-bracket--tl { top: 10px; left: 10px; border-top-width: 2px; border-left-width: 2px; }
.oma-hud-bracket--tr { top: 10px; right: 10px; border-top-width: 2px; border-right-width: 2px; }
.oma-hud-bracket--bl { bottom: 10px; left: 10px; border-bottom-width: 2px; border-left-width: 2px; }
.oma-hud-bracket--br { bottom: 10px; right: 10px; border-bottom-width: 2px; border-right-width: 2px; }

.ax-hero-v2__stage.oma-hud-booting .oma-hud-bracket {
  animation: omaBracketIn 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.ax-hero-v2__stage.oma-hud-booting .oma-hud-bracket--tr { animation-delay: 0.06s; }
.ax-hero-v2__stage.oma-hud-booting .oma-hud-bracket--bl { animation-delay: 0.1s; }
.ax-hero-v2__stage.oma-hud-booting .oma-hud-bracket--br { animation-delay: 0.14s; }

.oma-hud-scanline,
.oma-hud-grid-pulse {
  display: none !important;
}

.oma-hud-scanline {
  position: absolute;
  left: 0;
  right: 0;
  top: -4px;
  height: 3px;
  opacity: 0;
  background: linear-gradient(90deg, transparent, rgba(96, 165, 250, 0.9) 20%, rgba(168, 85, 247, 0.85) 50%, rgba(96, 165, 250, 0.9) 80%, transparent);
  box-shadow: 0 0 16px rgba(96, 165, 250, 0.6), 0 0 32px rgba(168, 85, 247, 0.3);
}

.ax-hero-v2__stage.oma-hud-booting .oma-hud-scanline {
  animation: omaHudScan 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.1s forwards;
}

.oma-hud-grid-pulse {
  position: absolute;
  inset: 0;
  opacity: 0;
  background:
    linear-gradient(rgba(96, 165, 250, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(96, 165, 250, 0.04) 1px, transparent 1px);
  background-size: 24px 24px;
}

.ax-hero-v2__stage.oma-hud-booting .oma-hud-grid-pulse {
  animation: omaGridPulse 0.7s ease-out 0.05s forwards;
}

/* ── Stage impact ── */
.oma-vfx-rig-lite {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

.oma-vfx-rig-lite .oma-vfx-glow-core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 120px;
  height: 120px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(168, 85, 247, 0.35), transparent 70%);
  opacity: 0;
  animation: omaGlowCoreLite 0.45s ease-out forwards;
}

.ax-di-stage.oma-entrance-settled .oma-vfx-rig-lite .oma-vfx-glow-core {
  opacity: 0;
  animation: none;
}

@keyframes omaGlowCoreLite {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(0.6); }
  40% { opacity: 0.85; transform: translate(-50%, -50%) scale(1.05); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(1.2); }
}

.ax-hero-v2__stage.oma-entrance-impact {
  animation: omaStageImpact 0.22s cubic-bezier(0.34, 1.2, 0.64, 1) 0.28s;
}

.ax-hero-v2__stage.oma-entrance-impact .ax-hero-v2__stage-glow {
  animation: omaStageGlowBurst 0.45s ease-out 0.46s;
}

/* ── HUD + status reveal (instant — no gate on character) ── */
.ax-hero-v2__stage.oma-entrance-pending .ax-di-command-bar,
.ax-hero-v2__stage.oma-entrance-pending .ax-hero-v2__hud {
  opacity: 1;
  transform: none;
  filter: none;
  animation: omaHudGlitchIn 0.32s cubic-bezier(0.22, 1, 0.36, 1) 0.04s forwards;
}

.ax-hero-v2__stage.oma-entrance-pending .ax-threat-radar {
  opacity: 0.08;
  transform: translate(-50%, 0) rotateX(82deg);
  filter: blur(1.5px);
}

.ax-hero-v2__stage.oma-hud-booting .ax-di-command-bar {
  animation: omaHudGlitchIn 0.42s cubic-bezier(0.22, 1, 0.36, 1) 0.05s forwards;
}

.ax-hero-v2__stage.oma-hud-booting .ax-hero-v2__hud {
  animation: omaHudGlitchIn 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.14s forwards;
}

.ax-hero-v2__stage.oma-hud-booting .ax-threat-radar {
  animation: omaRadarFadeIn 0.5s ease-out 0.2s forwards;
}

.ax-hero-v2__stage.oma-hud-booting .ax-hero-v2__hud-row {
  opacity: 0;
  animation: omaHudRowIn 0.45s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.ax-hero-v2__stage.oma-hud-booting .ax-hero-v2__hud-row:nth-child(1) { animation-delay: 0.18s; }
.ax-hero-v2__stage.oma-hud-booting .ax-hero-v2__hud-row:nth-child(2) { animation-delay: 0.24s; }
.ax-hero-v2__stage.oma-hud-booting .ax-hero-v2__hud-row:nth-child(3) { animation-delay: 0.3s; }

.ax-hero-v2__stage.oma-entrance-settled .ax-di-command-bar,
.ax-hero-v2__stage.oma-entrance-settled .ax-hero-v2__hud {
  opacity: 1;
  transform: none;
  filter: none;
}

.ax-hero-v2__stage.oma-entrance-settled .ax-threat-radar {
  opacity: 0.11;
  transform: translate(-50%, 0) rotateX(82deg);
  filter: blur(1.5px);
}

.ax-hero-v2__stage.oma-hud-booting .ax-threat-dot {
  animation: omaDotPowerOn 0.4s ease 0.4s forwards, axHeroDotBlink 2.2s ease-in-out 0.8s infinite;
}

/* ── Hero copy reveal — copy always visible, no OMA gate ── */
.ax-hero-v2__copy.oma-entrance-pending .ax-hero-v2__title,
.ax-hero-v2__copy.oma-entrance-pending .ax-hero-v2__desc,
.ax-hero-v2__copy.oma-entrance-pending .ax-hero-v2__actions,
.ax-hero-v2__copy.oma-entrance-pending .ax-hero-v2__trust {
  opacity: 1 !important;
  transform: none !important;
}

.ax-hero-v2__copy.oma-entrance-settled .ax-hero-v2__title,
.ax-hero-v2__copy.oma-entrance-settled .ax-hero-v2__desc,
.ax-hero-v2__copy.oma-entrance-settled .ax-hero-v2__actions,
.ax-hero-v2__copy.oma-entrance-settled .ax-hero-v2__trust {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
}

/* ── Eye power-on ── */
.ax-di-stage.oma-entrance-settled .ax-di-eye--l {
  animation: omaEyePowerOn 0.45s cubic-bezier(0.22, 1.2, 0.36, 1) forwards, axDiEyePulse 2.4s ease-in-out 0.45s infinite;
}

.ax-di-stage.oma-entrance-settled .ax-di-eye--c {
  animation: omaEyePowerOn 0.45s cubic-bezier(0.22, 1.2, 0.36, 1) 0.12s forwards, axDiEyePulse 2.4s ease-in-out 0.57s infinite;
}

.ax-di-stage.oma-entrance-settled .ax-di-eye--r {
  animation: omaEyePowerOn 0.45s cubic-bezier(0.22, 1.2, 0.36, 1) 0.24s forwards, axDiEyePulse 2.4s ease-in-out 0.69s infinite;
}

.ax-di-stage.oma-entrance-deploy .ax-di-eye--l,
.ax-di-stage.oma-entrance-deploy .ax-di-eye--c,
.ax-di-stage.oma-entrance-deploy .ax-di-eye--r {
  opacity: 0;
}

/* ══ Keyframes ══ */
@keyframes omaIronManFlyIn {
  0% {
    opacity: 0;
    transform: translate3d(18%, -42%, 24px) scale3d(0.72, 0.78, 1) rotateY(-8deg);
    filter: brightness(1.35) saturate(0.85);
  }
  55% {
    opacity: 1;
    transform: translate3d(-2%, 2%, 0) scale3d(1.03, 1.01, 1) rotateY(2deg);
    filter: brightness(1.12) saturate(1.05);
  }
  100% {
    opacity: 1;
    transform: none;
    filter: none;
  }
}

@keyframes omaRigSettle {
  0% { transform: translate3d(0, 0, 0) scale(1); }
  35% { transform: translate3d(0, 3px, 0) scale(0.995); }
  65% { transform: translate3d(0, -1px, 0) scale(1.005); }
  100% { transform: none; }
}

@keyframes omaWingDeploy {
  0% {
    transform: scale3d(0.9, 1.04, 1);
    filter: brightness(1.45) contrast(1.12) saturate(1.25)
      drop-shadow(0 8px 32px rgba(0, 0, 0, 0.65))
      drop-shadow(0 0 64px rgba(168, 85, 247, 0.55));
  }
  40% {
    transform: scale3d(1.08, 0.96, 1);
    filter: brightness(1.65) contrast(1.15) saturate(1.35)
      drop-shadow(0 12px 40px rgba(0, 0, 0, 0.7))
      drop-shadow(0 0 80px rgba(168, 85, 247, 0.65));
  }
  100% {
    transform: scale3d(1, 1, 1);
    filter: brightness(1.08) contrast(1.08) saturate(1.12)
      drop-shadow(0 8px 32px rgba(0, 0, 0, 0.65))
      drop-shadow(0 0 48px rgba(124, 58, 237, 0.28));
  }
}

@keyframes omaWingPowerUp {
  0% { opacity: 0; transform: scale(0.85); }
  35% { opacity: 1; transform: scale(1.15); }
  100% { opacity: 1; transform: scale(1); }
}

@keyframes omaWingBurstL {
  0% { opacity: 0; transform: translateX(12%) scale(0.6); }
  30% { opacity: 0.95; transform: translateX(-4%) scale(1.1); }
  100% { opacity: 0; transform: translateX(-8%) scale(1.25); }
}

@keyframes omaWingBurstR {
  0% { opacity: 0; transform: translateX(-12%) scale(0.6); }
  30% { opacity: 0.95; transform: translateX(4%) scale(1.1); }
  100% { opacity: 0; transform: translateX(8%) scale(1.25); }
}

@keyframes omaRepulsorBoost {
  0% { opacity: 0; transform: scaleY(0.1); }
  6% { opacity: 1; transform: scaleY(1.35); }
  30% { opacity: 0.98; transform: scaleY(1.12); }
  70% { opacity: 0.75; transform: scaleY(0.88); }
  100% { opacity: 0; transform: scaleY(0.15); }
}

@keyframes omaRepulsorTrail {
  0% { height: 0; opacity: 0; width: 4px; }
  8% { opacity: 1; height: 62%; width: 10px; }
  50% { opacity: 0.9; height: 42%; width: 7px; }
  100% { height: 0; opacity: 0; width: 3px; }
}

@keyframes omaRepulsorTrailGhost {
  0% { height: 0; opacity: 0; }
  8% { opacity: 0.5; height: 70%; }
  100% { height: 0; opacity: 0; }
}

@keyframes omaGlowCore {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(0.4); }
  20% { opacity: 0.9; transform: translate(-50%, -50%) scale(1.2); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(1.55); }
}

@keyframes omaHeatHaze {
  0% { opacity: 0; }
  25% { opacity: 0.6; }
  100% { opacity: 0; }
}

@keyframes omaSpeedlinesFade {
  0% { opacity: 0; }
  12% { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes omaSpeedlineStreak {
  0% { opacity: 0; transform: rotate(-16deg) translateY(-70%); }
  25% { opacity: 0.9; }
  100% { opacity: 0; transform: rotate(-16deg) translateY(90%); }
}

@keyframes omaHexPulse {
  0% { opacity: 0; transform: translateX(-50%) scale(0.3); }
  25% { opacity: 0.85; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0; transform: translateX(-50%) scale(1.6); }
}

@keyframes omaShockwave {
  0% { opacity: 0.95; transform: translateX(-50%) scale(0.1); border-width: 3px; }
  100% { opacity: 0; transform: translateX(-50%) scale(4.2); border-width: 0.5px; }
}

@keyframes omaDustSettle {
  0% { opacity: 0; transform: translateX(-50%) scaleY(0.3); }
  30% { opacity: 0.7; transform: translateX(-50%) scaleY(1); }
  100% { opacity: 0; transform: translateX(-50%) scaleY(1.3); }
}

@keyframes omaSparksBurst {
  0% { opacity: 0; }
  12% { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes omaSparkFly {
  0% { opacity: 1; transform: translate(0, 0) scale(1); }
  100% { opacity: 0; transform: translate(var(--sx, 20px), var(--sy, -40px)) scale(0); }
}

.oma-vfx-sparks span:nth-child(1) { --sx: -36px; --sy: -62px; }
.oma-vfx-sparks span:nth-child(2) { --sx: 26px; --sy: -56px; }
.oma-vfx-sparks span:nth-child(3) { --sx: 42px; --sy: -46px; }
.oma-vfx-sparks span:nth-child(4) { --sx: -24px; --sy: -52px; }
.oma-vfx-sparks span:nth-child(5) { --sx: 52px; --sy: -38px; }
.oma-vfx-sparks span:nth-child(6) { --sx: -46px; --sy: -42px; }
.oma-vfx-sparks span:nth-child(7) { --sx: -58px; --sy: -32px; }
.oma-vfx-sparks span:nth-child(8) { --sx: 62px; --sy: -34px; }
.oma-vfx-sparks span:nth-child(9) { --sx: -14px; --sy: -68px; }
.oma-vfx-sparks span:nth-child(10) { --sx: 18px; --sy: -72px; }

@keyframes omaStageImpact {
  0%, 100% { transform: translateY(0); }
  28% { transform: translateY(7px); }
  52% { transform: translateY(-3px); }
  72% { transform: translateY(1px); }
}

@keyframes omaStageGlowBurst {
  0% { opacity: 0.6; }
  35% { opacity: 1; }
  100% { opacity: 0.7; }
}

@keyframes omaBracketIn {
  from { opacity: 0; transform: scale(1.4); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes omaHudScan {
  0% { opacity: 0; top: -4px; }
  8% { opacity: 1; }
  92% { opacity: 0.85; }
  100% { opacity: 0; top: calc(100% + 4px); }
}

@keyframes omaGridPulse {
  0% { opacity: 0; }
  30% { opacity: 0.55; }
  100% { opacity: 0; }
}

@keyframes omaHudGlitchIn {
  0% { opacity: 0; transform: translateY(10px) skewX(-3deg); clip-path: inset(0 100% 0 0); filter: blur(6px); }
  25% { opacity: 0.6; clip-path: inset(0 30% 0 0); transform: translateY(5px) skewX(2deg); filter: blur(2px); }
  45% { opacity: 0.35; transform: translateY(-2px) skewX(-1deg); }
  70% { opacity: 0.85; clip-path: inset(0 0 0 0); filter: blur(0); }
  100% { opacity: 1; transform: none; clip-path: inset(0 0 0 0); filter: none; }
}

@keyframes omaHudRowIn {
  from { opacity: 0; transform: translateX(-8px); }
  to { opacity: 1; transform: none; }
}

@keyframes omaDotPowerOn {
  from { opacity: 0; transform: scale(0.3); box-shadow: none; }
  to { opacity: 1; transform: scale(1); box-shadow: 0 0 10px #2563eb; }
}

@keyframes omaRadarFadeIn {
  from { opacity: 0; }
  to { opacity: 0.11; }
}

@keyframes omaCopyReveal {
  from { opacity: 0; transform: translateY(20px); filter: blur(3px); }
  to { opacity: 1; transform: none; filter: none; }
}

@keyframes omaEyePowerOn {
  from { opacity: 0; transform: scale(0.3); box-shadow: 0 0 4px rgba(168, 85, 247, 0.3); }
  to { opacity: 1; transform: scale(1); box-shadow: 0 0 16px rgba(168, 85, 247, 0.95), 0 0 32px rgba(124, 58, 237, 0.55); }
}

@keyframes omaPedestalReveal {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* ═══ Premium entrance — fast, no blur hang ═══ */
.ax-di-stage.oma-entrance-play .oma-entrance-rig {
  animation-duration: 0.38s !important;
  animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.ax-di-stage.oma-entrance-deploy .oma-entrance-rig,
.ax-di-stage.oma-entrance-deploy .ax-hero-v2__char.ax-di-char {
  animation-duration: 0.16s !important;
}

.ax-di-stage.oma-entrance-deploy .ax-di-wing-glow {
  animation-duration: 0.18s !important;
}

.oma-entrance-vfx,
.oma-vfx-speedlines,
.oma-vfx-heat-haze,
.oma-vfx-dust,
.oma-vfx-sparks,
.oma-vfx-shockwave,
.oma-vfx-trail,
.oma-vfx-boost {
  display: none !important;
}

.ax-hero-v2__stage.oma-hud-booting .oma-hud-bracket,
.ax-hero-v2__stage.oma-hud-booting .oma-hud-scanline,
.ax-hero-v2__stage.oma-hud-booting .oma-hud-grid-pulse {
  animation: none !important;
  opacity: 1 !important;
}

@media (prefers-reduced-motion: reduce) {
  .ax-di-stage:not(.oma-entrance-settled):not(.oma-entrance-play):not(.oma-entrance-deploy) .ax-hero-v2__char.ax-di-char,
  .ax-di-stage:not(.oma-entrance-settled):not(.oma-entrance-play):not(.oma-entrance-deploy) .ax-di-fx {
    opacity: 1;
  }

  .ax-di-stage.oma-entrance-pending .oma-entrance-rig {
    opacity: 1;
    transform: none;
    filter: none;
  }

  .oma-entrance-vfx,
  .oma-vfx-rig,
  .oma-hud-frame,
  .oma-vfx-boost,
  .oma-vfx-trail,
  .oma-vfx-shockwave,
  .oma-vfx-sparks,
  .oma-vfx-speedlines,
  .oma-vfx-glow-core,
  .oma-vfx-hex-pulse,
  .oma-vfx-dust,
  .oma-vfx-heat-haze,
  .oma-vfx-wing-deploy {
    display: none !important;
  }

  .ax-di-stage.oma-entrance-play .oma-entrance-rig,
  .ax-di-stage.oma-entrance-deploy .oma-entrance-rig,
  .ax-hero-v2__stage.oma-entrance-impact {
    animation: none !important;
  }
}
