:root {
  --gold: #FEAF00;
  --ink: #12253B;
  --night: #030721;
  --paper: #FAF9F5;
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Inter, Roboto, "Helvetica Neue", sans-serif;
  --ease: cubic-bezier(.2, .8, .2, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--font); color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
img { display: block; max-width: 100%; height: auto; }

/* Entrance: materialize from soft blur + slight scale, staggered, no bounce */
.reveal { opacity: 0; filter: blur(8px); transform: scale(.98); animation: materialize .7s var(--ease) forwards; animation-delay: calc(var(--i, 0) * 120ms + 80ms); }
@keyframes materialize { to { opacity: 1; filter: blur(0); transform: none; } }

/* Primary action */
.cta {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  min-height: 48px; padding: 0 1.5rem; border-radius: 999px;
  font: 500 1rem/1 var(--font); letter-spacing: .01em; text-decoration: none;
  transition: transform .12s var(--ease), background-color .2s var(--ease), border-color .2s var(--ease);
}
.cta:active { transform: scale(.98); }
.cta:focus-visible, a:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.cta--glass { color: #fff; background: rgba(255, 255, 255, .08); border: 1px solid rgba(254, 175, 0, .55); -webkit-backdrop-filter: blur(12px) saturate(140%); backdrop-filter: blur(12px) saturate(140%); }
.cta--glass:hover { background: rgba(255, 255, 255, .14); border-color: var(--gold); }
.cta--solid { color: #fff; background: var(--ink); border: 1px solid var(--ink); }
.cta--solid:hover { background: var(--night); }

.rule { width: 48px; height: 2px; background: var(--gold); border: 0; margin: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
  .reveal { animation: none; opacity: 1; filter: none; transform: none; }
  .cta { transition: none; }
}
