/* ── Animations ────────────────────────────────────────────
   All @keyframes, scroll-reveal classes, timing delays,
   chart draw, float digits, pulse glow, avatar spin.
───────────────────────────────────────────────────────── */

/* ── Scroll reveal ──────────────────────────────────────── */
.rev    { opacity: 0; transform: translateY(32px); transition: opacity 0.75s cubic-bezier(0.16,1,0.3,1), transform 0.75s cubic-bezier(0.16,1,0.3,1); }
.rev.in { opacity: 1; transform: translateY(0); }
.rev-r    { opacity: 0; transform: translateX(32px); transition: opacity 0.75s cubic-bezier(0.16,1,0.3,1), transform 0.75s cubic-bezier(0.16,1,0.3,1); }
.rev-r.in { opacity: 1; transform: translateX(0); }
.rev-l    { opacity: 0; transform: translateX(-32px); transition: opacity 0.75s cubic-bezier(0.16,1,0.3,1), transform 0.75s cubic-bezier(0.16,1,0.3,1); }
.rev-l.in { opacity: 1; transform: translateX(0); }

/* Stagger delays */
.d1 { transition-delay: 0.1s; }
.d2 { transition-delay: 0.2s; }
.d3 { transition-delay: 0.3s; }
.d4 { transition-delay: 0.4s; }
.d5 { transition-delay: 0.5s; }

/* ── Floating 3-6-9 digits ──────────────────────────────── */
@keyframes float {
    0%,100% { transform: translateY(0) rotate(0deg); }
    40%      { transform: translateY(-18px) rotate(2deg); }
    70%      { transform: translateY(9px) rotate(-1.5deg); }
}
.digit { animation: float var(--dur,9s) ease-in-out infinite var(--delay,0s); }

/* ── NASDAQ chart draw ──────────────────────────────────── */
.chart-draw {
    stroke-dasharray: 1300;
    stroke-dashoffset: 1300;
    animation: draw 3.5s cubic-bezier(0.4,0,0.1,1) forwards 1s;
}
@keyframes draw { to { stroke-dashoffset: 0; } }

/* ── Pulse glow for CTA / badge ─────────────────────────── */
@keyframes pulse-glow {
    0%,100% { box-shadow: 0 0 22px rgba(201,168,76,0.26); }
    50%      { box-shadow: 0 0 50px rgba(201,168,76,0.52), 0 0 90px rgba(201,168,76,0.16); }
}
.pulse { animation: pulse-glow 3.2s ease-in-out infinite; }

/* ── Avatar conic spin ──────────────────────────────────── */
@keyframes spin { to { transform: rotate(360deg); } }

/* ── Ticker tape scroll ─────────────────────────────────── */
@keyframes ticker { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

/* ── Reduced motion overrides ───────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    .rev, .rev-r, .rev-l { opacity: 1; transform: none; transition: none; }
    .digit           { animation: none; }
    .chart-draw      { animation: none; stroke-dashoffset: 0; }
    .ticker-inner    { animation: none; }
    .btn             { transition: box-shadow 0.1s; }
    .pulse           { animation: none; }
    .avatar::before  { animation: none; }
    .terminal-bar    { transition: none; transform: scaleX(1); }
}
