/* ===== SCROLL REVEAL ===== */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}
.reveal.active{opacity:1;transform:translateY(0)}
.reveal-left{opacity:0;transform:translateX(-40px);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}
.reveal-left.active{opacity:1;transform:translateX(0)}
.reveal-right{opacity:0;transform:translateX(40px);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}
.reveal-right.active{opacity:1;transform:translateX(0)}
.reveal-scale{opacity:0;transform:scale(.8);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}
.reveal-scale.active{opacity:1;transform:scale(1)}

/* ===== DELAYS ===== */
.delay-1{transition-delay:.1s}
.delay-2{transition-delay:.2s}
.delay-3{transition-delay:.3s}
.delay-4{transition-delay:.4s}
.delay-5{transition-delay:.5s}
.delay-6{transition-delay:.6s}

/* ===== HOVER GLOW ===== */
.hover-glow{transition:var(--transition)}
.hover-glow:hover{box-shadow:0 0 30px rgba(181,18,27,.2)}

/* ===== CARD LIFT ===== */
.card-lift{transition:transform .3s,box-shadow .3s}
.card-lift:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}

/* ===== TYPING CURSOR ===== */
.typing-cursor{display:inline-block;width:3px;height:1em;background:var(--primary);margin-left:4px;animation:blink .8s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

/* ===== GRADIENT TEXT ===== */
.gradient-text{background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

/* ===== FLOATING ===== */
.floating{animation:float 6s ease-in-out infinite}
.floating-slow{animation:float 8s ease-in-out infinite}

/* ===== FADE IN UP ===== */
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.fade-in-up{animation:fadeInUp .8s ease forwards}

/* ===== ZOOM IN ===== */
@keyframes zoomIn{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}
.zoom-in{animation:zoomIn .6s ease forwards}

/* ===== SHIMMER ===== */
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);background-size:200% 100%;animation:shimmer 2s infinite}
