.reveal {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .6s cubic-bezier(0.16, 1, 0.3, 1), transform .6s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-left {
  opacity: 1;
  transform: translateX(0);
  transition: opacity .6s cubic-bezier(0.16, 1, 0.3, 1), transform .6s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-right {
  opacity: 1;
  transform: translateX(0);
  transition: opacity .6s cubic-bezier(0.16, 1, 0.3, 1), transform .6s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-scale {
  opacity: 1;
  transform: scale(1);
  transition: opacity .6s cubic-bezier(0.16, 1, 0.3, 1), transform .6s cubic-bezier(0.16, 1, 0.3, 1);
}

.gpu-card,.feature-card,.pricing-card,.testimonial-card,.blog-card,.usecase-card,.step-card,.stat-item{transition:transform .4s cubic-bezier(.4,0,.2,1),border-color .3s ease,background .3s ease,box-shadow .4s ease}

.card-glow{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .4s ease;border-radius:inherit}
.card-glow::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.04),transparent 50%)}

.hero-float{animation:hero-float 6s ease-in-out infinite}
@keyframes hero-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}

.btn-primary,.btn-secondary{position:relative;overflow:hidden}
.btn-ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.3);transform:scale(0);animation:ripple .6s linear;pointer-events:none}
@keyframes ripple{to{transform:scale(4);opacity:0}}

@keyframes spin{to{transform:rotate(360deg)}}
.loading-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.1);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}

.fade-in{animation:fadeIn .8s ease forwards}
.slide-up{animation:slideUp .8s ease forwards}

.typewriter{overflow:hidden;border-right:2px solid #fff;white-space:nowrap;animation:typewriter 2s steps(30) 1s forwards,blink-caret .75s step-end infinite;width:0}
@keyframes typewriter{to{width:100%}}
@keyframes blink-caret{50%{border-color:transparent}}

.shimmer{background:linear-gradient(90deg,var(--bg-card) 25%,rgba(255,255,255,.04) 50%,var(--bg-card) 75%);background-size:200% 100%;animation:shimmer 2s ease infinite}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

.splash-overlay{display:none !important}