/* Progressive-enhancement motion: content stays visible without JavaScript. */
@media (prefers-reduced-motion: no-preference) {
  html.p-motion-ready [data-p-reveal] {
    opacity: 0;
    translate: 0 22px;
    transition: opacity .72s cubic-bezier(.2, .8, .2, 1),
                translate .76s cubic-bezier(.16, 1, .3, 1);
    transition-delay: var(--p-motion-delay, 0ms);
  }

  html.p-motion-ready [data-p-reveal].p-in-view {
    opacity: 1;
    translate: 0 0;
  }

  html.p-motion-ready .p-hero-art[data-p-reveal],
  html.p-motion-ready .ps-hero-art[data-p-reveal] {
    translate: -20px 12px;
  }

  html.p-motion-ready .p-hero-art[data-p-reveal].p-in-view,
  html.p-motion-ready .ps-hero-art[data-p-reveal].p-in-view {
    translate: 0 0;
  }

  .p-hero .p-float-one {
    animation: p-gentle-drift 6.5s ease-in-out infinite;
  }

  .p-hero .p-float-two {
    animation: p-gentle-drift 7.5s ease-in-out -3.4s infinite;
  }

  .p-hero .p-orbit::before,
  .p-hero .p-orbit::after {
    animation: p-orbit-breathe 7s ease-in-out infinite;
  }

  .p-hero .p-orbit::after { animation-delay: -3.5s; }

  @keyframes p-gentle-drift {
    0%, 100% { translate: 0 0; }
    50% { translate: 0 -8px; }
  }

  @keyframes p-orbit-breathe {
    0%, 100% { opacity: .65; }
    50% { opacity: 1; }
  }
}

/* Tactile interaction states are distinct from scroll reveals. */
.p-article-card,
.ps-feature-link,
.ps-faq-item,
.ps-plan-card,
.ps-term-row {
  transition: transform .32s cubic-bezier(.2, .8, .2, 1),
              box-shadow .32s ease,
              border-color .32s ease,
              background-color .32s ease;
}

.p-article-card:is(:hover, :focus-within),
.ps-feature-link:is(:hover, :focus-within),
.ps-faq-item:hover,
.ps-term-row:hover {
  transform: translateY(-5px);
  border-color: #cfdef4;
  box-shadow: 0 24px 48px rgba(21, 66, 130, .12);
}

.ps-plan-card:hover {
  border-color: #bcd7fc;
  box-shadow: 0 22px 48px rgba(24, 119, 255, .15);
}

.p-article-visual,
.ps-blog-cover::before,
.ps-blog-cover::after {
  transition: transform .55s cubic-bezier(.2, .8, .2, 1);
}

.p-article-card:is(:hover, :focus-within) .p-article-visual {
  transform: scale(1.025);
}

.ps-blog-grid > .wp-block-post:hover .ps-blog-cover::before {
  transform: translateY(-9px) rotate(-12deg);
}

.ps-blog-grid > .wp-block-post:hover .ps-blog-cover::after {
  transform: translateY(7px) rotate(-24deg);
}

.ps-contact-form button,
.ps-preview-button {
  transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease;
}

.ps-contact-form button:hover,
.ps-preview-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(24, 119, 255, .2);
}

.ps-contact-form button:active,
.ps-preview-button:active,
.wp-block-button__link:active {
  transform: translateY(0) scale(.98);
}

@media (prefers-reduced-motion: reduce) {
  html.p-motion-ready [data-p-reveal] {
    opacity: 1 !important;
    translate: 0 0 !important;
    transition: none !important;
  }

  .p-hero .p-float-one,
  .p-hero .p-float-two,
  .p-hero .p-orbit::before,
  .p-hero .p-orbit::after {
    animation: none !important;
  }

  .p-article-card,
  .ps-feature-link,
  .ps-faq-item,
  .ps-term-row,
  .ps-plan-card,
  .p-article-visual,
  .ps-blog-cover::before,
  .ps-blog-cover::after,
  .ps-contact-form button,
  .ps-preview-button {
    transition-duration: .01ms !important;
  }

  .p-article-card:is(:hover, :focus-within),
  .ps-feature-link:is(:hover, :focus-within),
  .ps-faq-item:hover,
  .ps-term-row:hover,
  .p-article-card:is(:hover, :focus-within) .p-article-visual,
  .ps-contact-form button:hover,
  .ps-preview-button:hover,
  .ps-contact-form button:active,
  .ps-preview-button:active,
  .wp-block-button__link:is(:hover, :active) {
    transform: none !important;
  }

  .ps-blog-grid > .wp-block-post:hover .ps-blog-cover::before,
  .ps-blog-grid > .wp-block-post:hover .ps-blog-cover::after {
    transform: rotate(-18deg) !important;
  }
}
