/* =====================================================
   INNOVATECH CALI 2026 — Base / Reset
   ===================================================== */

*,*::before,*::after{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}

body{
  font-family:'Exo 2', sans-serif;
  color:#fff;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img{
  max-width:100%;
  height:auto;
  display:block;
}

a{
  color:inherit;
  text-decoration:none;
}

button{
  font-family:inherit;
}

input,select,textarea{
  font-family:inherit;
}

/* ── Utility: screen-reader only ── */
.sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  border:0;
}

/* ── Stars (tech dots) ── */
.stars{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
}

.star{
  position:absolute;
  border-radius:50%;
  background:#c8a0ff;
  animation:twinkle var(--twinkleDur, 3s) ease-in-out infinite alternate;
}

@keyframes twinkle{
  0%  {opacity:.08; transform:scale(.7)}
  100%{opacity:.55;  transform:scale(1.3)}
}

/* ── Particles (floating data bits) ── */
.particles{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
}

.particle{
  position:absolute;
  width:2px;
  height:2px;
  background:rgba(160,80,255,.6);
  border-radius:50%;
  opacity:0;
  animation:particleFloat 14s infinite;
  box-shadow:0 0 6px rgba(140,60,255,.3);
}

.particle:nth-child(odd){
  width:1px;
  height:8px;
  border-radius:1px;
  background:rgba(120,60,255,.35);
  box-shadow:0 0 4px rgba(120,50,255,.2);
  animation-duration:10s;
}

@keyframes particleFloat{
  0%  {opacity:0;   transform:translateY(0)   scale(.5)}
  10% {opacity:.7}
  90% {opacity:.3}
  100%{opacity:0;   transform:translateY(-100vh) scale(0)}
}