.reveal { opacity: 0; transform: translateY(36px); transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .3s; }
.char-reveal { overflow: hidden; }
.char-reveal .word { display: inline-block; transform: translateY(110%); transition: transform .85s cubic-bezier(.2,.75,.2,1); }
.char-reveal.is-visible .word { transform: none; }
.float-slow { animation: floatSlow 6s ease-in-out infinite; }
.float-reverse { animation: floatReverse 7s ease-in-out infinite; }
.pulse-dot { animation: pulseDot 2s ease-in-out infinite; }
.tilt-card { transform-style: preserve-3d; will-change: transform; }
.tilt-card > * { transform: translateZ(24px); }
@keyframes floatSlow { 50% { transform: translateY(-13px) rotate(1deg); } }
@keyframes floatReverse { 50% { transform: translateY(12px) rotate(-1deg); } }
@keyframes pulseDot { 50% { box-shadow: 0 0 0 10px rgba(125,255,178,.04); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
  .cursor-dot, .cursor-ring { display: none; }
}
