/* ================================
   Start Paddle360 Reveal CSS
   Blur-to-sharp scroll effect
================================ */

html.p360-reveal-ready img:not(.p360-no-reveal),
html.p360-reveal-ready p:not(.p360-no-reveal) {
  opacity: 0;
  filter: blur(20px);
  transform: translateY(55px) scale(0.94);
  will-change: opacity, filter, transform;
}

html.p360-reveal-ready img.p360-in-view:not(.p360-no-reveal) {
  animation: p360-image-reveal 1.45s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

html.p360-reveal-ready p.p360-in-view:not(.p360-no-reveal) {
  animation: p360-text-reveal 1.15s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

html.p360-reveal-ready img.p360-out-view:not(.p360-no-reveal),
html.p360-reveal-ready p.p360-out-view:not(.p360-no-reveal) {
  opacity: 0;
  filter: blur(20px);
  transform: translateY(55px) scale(0.94);
}

@keyframes p360-image-reveal {
  0% {
    opacity: 0;
    filter: blur(24px) brightness(1.12);
    transform: translateY(70px) scale(0.9);
  }

  55% {
    opacity: 0.9;
    filter: blur(7px) brightness(1.05);
    transform: translateY(-6px) scale(1.025);
  }

  100% {
    opacity: 1;
    filter: blur(0) brightness(1);
    transform: translateY(0) scale(1);
  }
}

@keyframes p360-text-reveal {
  0% {
    opacity: 0;
    filter: blur(16px);
    transform: translateY(42px) scale(0.97);
  }

  60% {
    opacity: 0.9;
    filter: blur(5px);
    transform: translateY(-3px) scale(1.01);
  }

  100% {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0) scale(1);
  }
}

html.p360-reveal-ready img:not(.p360-no-reveal) {
  display: block;
}

@media (prefers-reduced-motion: reduce) {
  html.p360-reveal-ready img,
  html.p360-reveal-ready p {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    animation: none !important;
  }
}

/* ================================
   End Paddle360 Reveal CSS
================================ */

/* ================================
   Start Paddle360 Linked Image Overlay
================================ */

a:has(img) {
  position: relative;
  display: inline-block;
  overflow: hidden;
  isolation: isolate;
}

a:has(img)::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--color2);
  opacity: 0;
  z-index: 2;
  pointer-events: none;
  transition: opacity 0.35s ease;
}

a:has(img) img {
  transition: transform 0.35s ease, filter 0.35s ease;
}

a:has(img):hover::after,
a:has(img):focus-visible::after {
  opacity: 0.55;
}

a:has(img):hover img,
a:has(img):focus-visible img {
  transform: scale(1.04);
  filter: brightness(0.85);
}

/* Logo hard reset */
a:has(img#websiteLogo) {
  position: static !important;
  display: inline-block !important;
  overflow: visible !important;
  isolation: auto !important;
}

a:has(img#websiteLogo)::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
}

img#websiteLogo,
a:has(img#websiteLogo):hover img#websiteLogo,
a:has(img#websiteLogo):focus-visible img#websiteLogo {
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
  transform: none !important;
  filter: none !important;
  animation: none !important;
  transition: none !important;
  z-index: 9999 !important;
}

/* Also protects logo from the scroll reveal system */
html.p360-reveal-ready img#websiteLogo,
html.p360-reveal-ready img#websiteLogo.p360-in-view,
html.p360-reveal-ready img#websiteLogo.p360-out-view {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  filter: none !important;
  animation: none !important;
}

/* ================================
   End Paddle360 Linked Image Overlay
================================ */