/* ================================================
   STARTIQOS.AI — Animations & Reveal System
================================================ */

@keyframes fadeUp   { from { opacity:0; transform:translateY(32px);  } to { opacity:1; transform:translateY(0); } }
@keyframes fadeIn   { from { opacity:0; }                               to { opacity:1; } }
@keyframes fadeLeft { from { opacity:0; transform:translateX(40px);  } to { opacity:1; transform:translateX(0); } }
@keyframes heroTag  { from { opacity:0; transform:translateY(16px);  } to { opacity:1; transform:translateY(0); } }
@keyframes scaleIn  { from { opacity:0; transform:scale(0.92);       } to { opacity:1; transform:scale(1); } }

@keyframes pulse {
  0%,100% { box-shadow:0 0 0 0 rgba(255,45,107,.6); transform:scale(1); }
  70%      { box-shadow:0 0 0 10px transparent;      transform:scale(.9); }
}
@keyframes breathe {
  0%,100% { transform:translate(-50%,-50%) scale(1);    opacity:.6; }
  50%      { transform:translate(-50%,-50%) scale(1.15); opacity:1; }
}
@keyframes scan {
  0%,100% { left:15%; opacity:0; } 10% { opacity:.18; } 90% { opacity:.18; } 100% { left:82%; }
}
@keyframes ticker {
  0%   { transform:translateX(0); }
  100% { transform:translateX(-50%); }
}
@keyframes throb {
  0%,100% { box-shadow:0 0 0 0 rgba(255,45,107,.7); }
  70%      { box-shadow:0 0 0 9px transparent; }
}
@keyframes spinSlow { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
@keyframes float    { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
@keyframes loaderFill { from { left:-100%; } to { left:0; } }
@keyframes progressBar { from { width:0%; } to { width:100%; } }
@keyframes dashDraw { to { stroke-dashoffset: 0; } }
@keyframes countUp  { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes glowPulse {
  0%,100% { box-shadow: 0 0 20px rgba(255,45,107,.2); }
  50%      { box-shadow: 0 0 60px rgba(255,45,107,.5); }
}

/* Scroll Reveal */
.rv {
  opacity: 0; transform: translateY(38px);
  transition: opacity var(--trans-reveal), transform var(--trans-reveal);
}
.rv.in { opacity:1; transform:translateY(0); }
.rv.from-left  { transform: translateX(-38px); }
.rv.from-right { transform: translateX(38px); }
.rv.from-scale { transform: scale(0.94); }
.rv.from-left.in, .rv.from-right.in { transform:translateX(0); }
.rv.from-scale.in { transform:scale(1); }

.d1 { transition-delay:.08s; } .d2 { transition-delay:.16s; }
.d3 { transition-delay:.24s; } .d4 { transition-delay:.32s; }
.d5 { transition-delay:.40s; } .d6 { transition-delay:.48s; }
.d7 { transition-delay:.56s; }

/* Hover */
.lift { transition: transform var(--trans-base), box-shadow var(--trans-base); }
.lift:hover { transform: translateY(-6px); }

.underline-reveal { position: relative; }
.underline-reveal::after {
  content:''; position:absolute; bottom:-2px; left:0; right:0;
  height:1px; background:var(--rose); transform:scaleX(0);
  transform-origin:right; transition:transform var(--trans-base);
}
.underline-reveal:hover::after { transform:scaleX(1); transform-origin:left; }

.border-top-reveal { position:relative; }
.border-top-reveal::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--rose); transform:scaleX(0); transform-origin:left;
  transition:transform 0.4s var(--ease-out);
}
.border-top-reveal:hover::before { transform:scaleX(1); }
