/* Entrances, chart drawing, and reduced-motion fallbacks. */

  .hero-kicker,.hero-title,.hero-identity,.hero-facts,.hero-console-wrap{
    opacity:0; transform:translateY(18px);
  }
  body.is-ready .hero-kicker,
  body.is-ready .hero-title,
  body.is-ready .hero-identity,
  body.is-ready .hero-facts,
  body.is-ready .hero-console-wrap{
    opacity:1; transform:none;
    transition:opacity 1s var(--ease),transform 1s var(--ease);
  }
  body.is-ready .hero-title{ transition-delay:.06s; }
  body.is-ready .hero-identity{ transition-delay:.15s; }
  body.is-ready .hero-facts{ transition-delay:.24s; }
  body.is-ready .hero-console-wrap{ transition-delay:.18s; }

  .hero-dial{ opacity:0; transform:translateY(-50%) scale(.94); }
  body.is-ready .hero-dial{
    opacity:.72; transform:translateY(-50%) scale(1);
    transition:opacity 1.5s .25s ease,transform 1.5s .25s var(--ease);
  }

  [data-reveal]{
    opacity:0; transform:translateY(22px);
    transition:opacity .9s var(--ease),transform .9s var(--ease);
    transition-delay:var(--delay,0s);
  }
  [data-reveal].is-in{ opacity:1; transform:none; }

  .metric-card .series-line.primary{
    stroke-dasharray:1;
    stroke-dashoffset:1;
  }
  .metric-card .series-line.secondary{ opacity:0; }
  .metric-card.is-revealed .series-line.primary{
    animation:drawLine 1.3s var(--ease) forwards;
    animation-delay:var(--draw-delay,.12s);
  }
  .metric-card.is-revealed .series-line.secondary{
    animation:lineFade .85s .72s var(--ease) forwards;
  }
  .metric-card.is-revealed .area{
    animation:areaIn 1s .24s var(--ease) forwards;
  }
  .metric-card.is-revealed .node{
    animation:nodeIn .5s var(--ease) both;
    animation-delay:calc(.48s + var(--i,0) * .045s);
  }
  .metric-chart.no-anim .series-line.primary{
    animation:none !important;
    stroke-dasharray:none !important;
    stroke-dashoffset:0 !important;
  }
  .metric-chart.no-anim .series-line.secondary{
    animation:none !important;
    opacity:.72 !important;
  }
  .metric-chart.no-anim .area,
  .metric-chart.no-anim .node{
    animation:none !important;
    opacity:1 !important;
  }

  @keyframes spin{ to{ transform:rotate(360deg); } }
  @keyframes statusPulse{
    0%,100%{ opacity:.45; transform:scale(.86); }
    50%{ opacity:1; transform:scale(1); }
  }
  @keyframes nebulaDrift{
    0%{ transform:translate3d(-.8%,0,0) scale(1); }
    100%{ transform:translate3d(1.2%,1.2%,0) scale(1.045); }
  }
  @keyframes drawLine{ to{ stroke-dashoffset:0; } }
  @keyframes lineFade{ from{ opacity:0; } to{ opacity:.72; } }
  @keyframes areaIn{ from{ opacity:0; } to{ opacity:1; } }
  @keyframes nodeIn{
    from{ opacity:0; }
    to{ opacity:1; }
  }

  @media (prefers-reduced-motion:reduce){
    html{ scroll-behavior:auto; }
    *,*::before,*::after{
      animation-duration:.001ms !important;
      animation-iteration-count:1 !important;
      transition-duration:.001ms !important;
    }
    .hero-kicker,.hero-title,.hero-identity,.hero-facts,.hero-console-wrap,.hero-dial,[data-reveal]{
      opacity:1 !important;
      transform:none !important;
    }
    .hero-dial{ opacity:.72 !important; transform:translateY(-50%) !important; }
    .metric-card .series-line{ stroke-dashoffset:0 !important; }
    .metric-card .series-line.secondary{ opacity:.72 !important; }
    .metric-card .area,.metric-card .node{ opacity:1 !important; }
  }
