/* =====================================================================
   PRIMEz HUB — PREMIUM FX  (css/premium-fx.css)
   Additive layer: ambient canvas backdrop, scroll progress, reveal,
   button shine, animated dividers. Nothing here hides content on its own
   (reveal classes are added by JS, so a JS failure never blanks the page).
   ===================================================================== */

/* ambient particle canvas — sits behind all content */
.prz-ambient { position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .55; }
body.prz-live-on .prz-ambient { display: none; }   /* Gojo live theme takes over */

/* top scroll progress bar */
.prz-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; z-index: 9999; pointer-events: none;
  background: linear-gradient(90deg, var(--gx-accent, #a855f7), var(--gx-accent2, #22d3ee));
  box-shadow: 0 0 12px rgba(168,85,247,.7); }

/* scroll reveal */
.fx-reveal { opacity: 0; transform: translateY(16px);
  transition: opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1); }
.fx-reveal.fx-in { opacity: 1; transform: none; }

/* button shine sweep */
.btn-primary-gradient { position: relative; overflow: hidden; }
.btn-primary-gradient::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(115deg, transparent 32%, rgba(255,255,255,.38) 50%, transparent 68%);
  transform: translateX(-130%); transition: transform .55s ease; }
.btn-primary-gradient:hover::before { transform: translateX(130%); }

/* animated section divider */
.fx-divider { height: 1px; border: 0; margin: 26px 0;
  background: linear-gradient(90deg, transparent, rgba(168,85,247,.55), rgba(34,211,238,.45), transparent);
  background-size: 200% 100%; animation: fxDivider 6s linear infinite; }
@keyframes fxDivider { 0% { background-position: 0% 0; } 100% { background-position: 200% 0; } }

/* glassy hover lift for interactive surfaces (extra polish) */
.script-card-r, .tool-card, .theme-pick-card { backface-visibility: hidden; }

/* respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .fx-reveal { opacity: 1 !important; transform: none !important; }
  .prz-ambient, .prz-progress { display: none !important; }
  .btn-primary-gradient::before { display: none; }
}
