/* ASTRAL 3.3.4 · quiet depth and clear interaction on the public observatory. */
@media (prefers-reduced-motion: no-preference) {
  @keyframes atlas-reveal {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
  }
  @keyframes atlas-orbit { to { transform: rotate(360deg); } }
  @keyframes atlas-core-glow {
    0%, 100% { box-shadow: 0 0 34px #a7dfcd05, inset 0 0 35px #a7dfcd05; }
    50% { box-shadow: 0 0 50px #a7dfcd12, inset 0 0 40px #a7dfcd0c; }
  }
  .astral-public .hero-copy > * {
    animation: atlas-reveal .7s cubic-bezier(.22,1,.36,1) both;
  }
  .astral-public .hero-copy > :nth-child(2) { animation-delay: 80ms; }
  .astral-public .hero-copy > :nth-child(3) { animation-delay: 150ms; }
  .astral-public .hero-copy > :nth-child(4) { animation-delay: 210ms; }
  .astral-public .hero-copy > :nth-child(5) { animation-delay: 270ms; }
  .astral-public .orbit-outer { animation: atlas-orbit 90s linear infinite; }
  .astral-public .orbital-core { animation: atlas-core-glow 9s ease-in-out infinite; }
}

.astral-public :is(.header-link,.login-link,.hero-actions a,.product-entry,.info-action) {
  transition: color .22s ease, background-color .22s ease, border-color .22s ease, box-shadow .22s ease, transform .22s cubic-bezier(.22,1,.36,1);
}
.astral-public .header-link:hover,
.astral-public :is(.hero-actions .secondary,.product-entry,.info-action):hover { color: #e0f5e9; }
.astral-public .login-link:hover,
.astral-public .primary:hover { box-shadow: 0 8px 25px #a7dfcd1b; }
.astral-public :is(.product-steps article,.info-panel,.stat-strip > div) {
  transition: background-color .25s ease, border-color .25s ease, box-shadow .25s ease, transform .25s cubic-bezier(.22,1,.36,1);
}
.astral-public .product-steps article:hover { border-color: #a7dfcd70; }
.astral-public .stat-strip > div:hover { background: #a7dfcd08; }
.astral-public :is(button,a):focus-visible { outline: 2px solid #b1e7d1; outline-offset: 4px; }

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .astral-public .info-panel:hover { box-shadow: 0 14px 36px #00000026; transform: translateY(-3px); }
  .astral-public .product-entry:hover span,
  .astral-public .info-action:hover { transform: translateX(2px); }
}
@media (max-width: 780px), (prefers-reduced-motion: reduce) {
  .astral-public .orbit-outer,
  .astral-public .orbital-core { animation: none; }
}
@media (forced-colors: active) {
  .astral-public :is(button,a):focus-visible { outline-color: Highlight; }
}
