/* ---------- Animations ---------- */
@keyframes intro-up {
  from { opacity: 0; transform: translateY(18px); filter: blur(6px); }
  to   { opacity: 1; transform: none; filter: blur(0); }
}
.intro > * {
  animation: intro-up 1100ms var(--ease) both;
  opacity: 0;
}
.intro > *:nth-child(1) { animation-delay: 80ms; }
.intro > *:nth-child(2) { animation-delay: 220ms; }
.intro > *:nth-child(3) { animation-delay: 380ms; }
.intro > *:nth-child(4) { animation-delay: 520ms; }
.intro > *:nth-child(5) { animation-delay: 660ms; }

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 900ms var(--ease), transform 900ms var(--ease);
  will-change: opacity, transform;
}
.reveal.is-visible { opacity: 1; transform: none; }

.reveal-stagger > * {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 700ms var(--ease), transform 700ms var(--ease);
}
.reveal-stagger.is-visible > * { opacity: 1; transform: none; }
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0ms; }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 90ms; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 180ms; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 270ms; }
.reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 360ms; }
.reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 450ms; }
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0ms; }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 90ms; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 180ms; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 270ms; }
.reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 360ms; }
.reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 450ms; }

@keyframes pulse-dot {
  0%, 100% { box-shadow: 0 0 0 0 oklch(82% 0.05 250 / 0.55); }
  70%      { box-shadow: 0 0 0 8px oklch(82% 0.05 250 / 0); }
}
.status-dot {
  display: inline-block;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: oklch(85% 0.05 250);
  margin-right: 0.55em;
  vertical-align: 0.05em;
  animation: pulse-dot 2.4s ease-out infinite;
}
.status-dot.small { width: 6px; height: 6px; }

.hero-note {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
  padding-top: var(--space-2);
}

.x-icon { display: inline-block; flex: 0 0 auto; }
.btn-icon { display: inline-flex; align-items: center; gap: 0.55em; }
.btn .x-icon { transition: transform var(--dur) var(--ease); }
.btn:hover .x-icon { transform: scale(1.1) rotate(-4deg); }

.status-pill {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  padding: 0.45rem 0.85rem;
  border: 1px solid var(--border-strong);
  border-radius: 100px;
  color: var(--text);
  background: oklch(100% 0 0 / 0.025);
  margin-bottom: 0.6rem;
}
.small-note { font-size: var(--text-xs); line-height: 1.5; max-width: 28ch; }
.footer-link { display: inline-flex; align-items: center; gap: 0.45em; }

.btn .arrow { transition: transform var(--dur) var(--ease); display: inline-block; }
.btn:hover .arrow { transform: translateX(4px); }

/* ---------- Hover refinements ---------- */
.logo-mark { transition: transform var(--dur) var(--ease), filter var(--dur) var(--ease); }
.logo:hover .logo-mark {
  transform: scale(1.08) translateY(-1px);
  filter: drop-shadow(0 4px 14px oklch(82% 0.025 250 / 0.45));
}

nav[aria-label="Primary"] a { position: relative; padding: 0.25rem 0; }
nav[aria-label="Primary"] a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  height: 1px;
  width: 100%;
  background: linear-gradient(90deg, var(--silver-1), var(--silver-3));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--dur) var(--ease);
}
nav[aria-label="Primary"] a:not([aria-disabled="true"]):hover::after { transform: scaleX(1); }

.btn-primary.is-disabled { cursor: not-allowed; opacity: 0.7; filter: saturate(0.8); }
.btn-primary.is-disabled::before { display: none; }
.btn-primary.is-disabled:hover { transform: none; }
.btn-primary { position: relative; overflow: hidden; isolation: isolate; }
.btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 35%, oklch(100% 0 0 / 0.55) 50%, transparent 65%);
  transform: translateX(-110%);
  transition: transform 700ms var(--ease);
  pointer-events: none;
  z-index: 0;
}
.btn-primary > * { position: relative; z-index: 1; }
.btn-primary:hover::before { transform: translateX(110%); }

.ticker-glyph { transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease), transform var(--dur) var(--ease); }
.hero-headline:hover .ticker-glyph {
  border-color: oklch(100% 0 0 / 0.4);
  background: oklch(100% 0 0 / 0.06);
  transform: translateY(-1px);
}

.step { transition: background var(--dur) var(--ease); border-radius: 8px; }
.step:hover { background: oklch(100% 0 0 / 0.018); }
.step h3 { color: var(--text); transition: color var(--dur) var(--ease); }
.step:hover h3 { color: var(--silver-1); }
.step-num { transition: transform 600ms var(--ease); }
.step:hover .step-num { transform: translateX(-4px); }

.spec-list > div {
  transition: border-bottom-color var(--dur) var(--ease);
}
.spec-list > div:hover { border-bottom-color: var(--border-strong); }
.spec-list > div dd { transition: color var(--dur) var(--ease); }
.spec-list > div:hover dd { color: var(--silver-1); }
.spec-list > div dt { transition: color var(--dur) var(--ease); }
.spec-list > div:hover dt { color: var(--text-dim); }

@keyframes bar-shimmer {
  0%   { transform: translateX(-120%); }
  60%  { transform: translateX(120%); }
  100% { transform: translateX(120%); }
}
.bar-card-inner::before { animation: bar-shimmer 6s ease-in-out infinite; }
.bar-card-inner { will-change: transform; }
.bar-card:hover .bar-card-inner {
  transform: rotate(0deg) translateY(-6px) scale(1.01);
  box-shadow:
    inset 0 1px 0 oklch(100% 0 0 / 0.7),
    inset 0 -2px 8px oklch(0% 0 0 / 0.18),
    inset 0 0 0 1px oklch(100% 0 0 / 0.22),
    0 40px 90px -20px oklch(0% 0 0 / 0.75),
    0 12px 28px -10px oklch(82% 0.03 250 / 0.25);
}

.footer-cols a { position: relative; transition: color var(--dur) var(--ease); }
.footer-cols a:not([aria-disabled="true"]):hover { color: var(--silver-1); }
.footer-cols a:not([aria-disabled="true"]):hover .x-icon { transform: scale(1.15) rotate(-6deg); }

.closing-stack { display: flex; flex-direction: column; }

:focus-visible {
  outline: 2px solid var(--silver-2);
  outline-offset: 3px;
  border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: 0ms !important; }
  html { scroll-behavior: auto; }
  .intro > *, .reveal, .reveal-stagger > * { opacity: 1 !important; transform: none !important; filter: none !important; }
}
