.pd-site .reveal{
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.75s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.75s cubic-bezier(0.4, 0, 0.2, 1);
}
.pd-site .reveal.visible{
  opacity: 1;
  transform: translateY(0);
}
.pd-site .reveal-left{
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.75s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.75s cubic-bezier(0.4, 0, 0.2, 1);
}
.pd-site .reveal-left.visible{
  opacity: 1;
  transform: translateX(0);
}
.pd-site .reveal-right{
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.75s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.75s cubic-bezier(0.4, 0, 0.2, 1);
}
.pd-site .reveal-right.visible{
  opacity: 1;
  transform: translateX(0);
}
.pd-site .reveal-scale{
  opacity: 0;
  transform: scale(0.94);
  transition: opacity 0.75s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.75s cubic-bezier(0.4, 0, 0.2, 1);
}
.pd-site .reveal-scale.visible{
  opacity: 1;
  transform: scale(1);
}
.pd-site .delay-1{ transition-delay: 0.10s !important; }
.pd-site .delay-2{ transition-delay: 0.20s !important; }
.pd-site .delay-3{ transition-delay: 0.30s !important; }
.pd-site .delay-4{ transition-delay: 0.40s !important; }
.pd-site .delay-5{ transition-delay: 0.50s !important; }
.pd-site .delay-6{ transition-delay: 0.60s !important; }
@keyframes heroFadeUp{
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes heroFade{
  from { opacity: 0; }
  to   { opacity: 1; }
}
.pd-site .hero-animate-1{
  animation: heroFadeUp 1s cubic-bezier(0.4, 0, 0.2, 1) 0.2s both;
}
.pd-site .hero-animate-2{
  animation: heroFadeUp 1s cubic-bezier(0.4, 0, 0.2, 1) 0.45s both;
}
.pd-site .hero-animate-3{
  animation: heroFadeUp 1s cubic-bezier(0.4, 0, 0.2, 1) 0.65s both;
}
.pd-site .hero-animate-4{
  animation: heroFade 1s cubic-bezier(0.4, 0, 0.2, 1) 0.9s both;
}
@keyframes pageIn{
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
.pd-site .page-enter{
  animation: pageIn 0.5s cubic-bezier(0.4, 0, 0.2, 1) both;
}
@keyframes blob1{
  0%, 100% { transform: translate(0, 0) scale(1); }
  33%       { transform: translate(30px, -20px) scale(1.05); }
  66%       { transform: translate(-20px, 15px) scale(0.96); }
}
@keyframes blob2{
  0%, 100% { transform: translate(0, 0) scale(1); }
  33%       { transform: translate(-25px, 20px) scale(1.04); }
  66%       { transform: translate(20px, -15px) scale(0.97); }
}
.pd-site .blob-1{ animation: blob1 12s ease-in-out infinite; }
.pd-site .blob-2{ animation: blob2 15s ease-in-out infinite; }
.pd-site .parallax-bg{
  will-change: transform;
}
.pd-site .counter-num{
  display: inline-block;
  transition: none;
}
@keyframes shimmer{
  from { background-position: -200% 0; }
  to   { background-position: 200% 0; }
}
.pd-site .shimmer{
  background: linear-gradient(90deg, var(--gray-100) 25%, var(--white) 50%, var(--gray-100) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}
@keyframes scrollBounce{
  0%, 100% { transform: translateY(0); opacity: 1; }
  50%       { transform: translateY(6px); opacity: 0.5; }
}
.pd-site .scroll-indicator{
  animation: scrollBounce 2s ease-in-out infinite;
}
.pd-site .gradient-border{
  position: relative;
  border-radius: var(--r-lg);
}
.pd-site .gradient-border::before{
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: calc(var(--r-lg) + 2px);
  background: var(--g-brand);
  z-index: -1;
}
@keyframes spin{
  to { transform: rotate(360deg); }
}
.pd-site .spin{ animation: spin 0.8s linear infinite; }
@keyframes navLogoShine{
  0% { filter: brightness(1); }
  50% { filter: brightness(1.15); }
  100% { filter: brightness(1); }
}
@keyframes imgReveal{
  from { transform: scale(1.08); opacity: 0; }
  to   { transform: scale(1); opacity: 1; }
}
.pd-site .img-reveal{
  animation: imgReveal 1.2s cubic-bezier(0.4, 0, 0.2, 1) both;
}
.pd-site .hover-line{
  position: relative;
}
.pd-site .hover-line::after{
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1.5px;
  background: currentColor;
  transition: width var(--ease);
}
.pd-site .hover-line:hover::after{ width: 100%; }
.pd-site .cursor{
  position: fixed;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--teal);
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%, -50%);
  transition: transform 0.08s linear, width var(--ease), height var(--ease), opacity var(--ease);
  mix-blend-mode: multiply;
}
.pd-site .cursor-follower{
  position: fixed;
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1.5px solid rgba(110,197,207,0.45);
  pointer-events: none;
  z-index: 9998;
  transform: translate(-50%, -50%);
  transition: transform 0.2s cubic-bezier(0.4,0,0.2,1),
              width var(--ease), height var(--ease), border-color var(--ease);
}
.pd-site .cursor.expanded{
  width: 20px; height: 20px;
  background: var(--pink);
}
.pd-site .cursor-follower.expanded{
  width: 60px; height: 60px;
  border-color: rgba(233,101,163,0.3);
}
@media (pointer: coarse){.pd-site .cursor,.pd-site .cursor-follower{ display: none; }
}
