/* index.css - Extracted from inline styles */

/* ------- Site BG ------- */
html { scroll-behavior: smooth; }
.starfield{position:fixed;inset:0;z-index:-1;overflow:hidden;background:radial-gradient(ellipse at top, rgba(30,27,75,.45), transparent 65%)}
.starfield::before{content:"";position:absolute;inset:-20% -10%;filter:blur(90px);background:radial-gradient(circle at 20% 20%, rgba(79,70,229,.28), transparent 50%), radial-gradient(circle at 80% 30%, rgba(236,72,153,.24), transparent 50%)}

/* ------- Intro Animation ------- */
#introAnim{background:rgba(6,9,20,.98)}
@keyframes envFly { from { transform: translate(-60vw,20vh) scale(.9); opacity:.0;} 60% {opacity:1;} to { transform: translate(0,0) scale(1);} }
@keyframes tgPulse { 0%,100% { transform: scale(1); opacity:.85;} 50% { transform: scale(1.08); opacity:1; } }
@keyframes msgPop { from { transform: translateY(20px) scale(.96); opacity:0; } to { transform: translateY(0) scale(1); opacity:1; } }
@keyframes overlayOut { to { opacity:0; visibility:hidden; } }
.anim-env { animation: envFly 1.6s cubic-bezier(.22,1,.36,1) .1s both; }
.anim-tg { animation: tgPulse 1.2s ease-in-out 1.2s 2 both; }
.anim-msg { animation: msgPop .5s ease-out 2.1s both; }
.anim-hide { animation: overlayOut .6s ease 2.9s forwards; }
@media (prefers-reduced-motion: reduce) {
  .anim-env,.anim-tg,.anim-msg,.anim-hide { animation: none !important; }
  #introAnim { display:none !important; }
}
/* Reveal-on-scroll base styles */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
