/* ── MooviPlay Advanced Effects ── */

/* ── Holographic card shine ── */
.card-holo-shine {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 10;
    opacity: 0;
    border-radius: inherit;
    mix-blend-mode: screen;
    transition: opacity 0.15s;
}

/* ── CRT scanline overlay on cards ── */
.content-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        0deg,
        transparent,
        transparent 3px,
        rgba(0,0,0,0.08) 3px,
        rgba(0,0,0,0.08) 4px
    );
    pointer-events: none;
    z-index: 11;
    opacity: 0;
    transition: opacity 0.3s;
    border-radius: inherit;
}
.content-card:hover::after { opacity: 1; }

/* ── Glitch animation ── */
@keyframes glitch-distort {
    0%,100% { transform: none; filter: none; text-shadow: none; }
    8%  { transform: skewX(-6deg) translate(-4px,0);
          text-shadow: 4px 0 #ff00ea, -4px 0 #00ffff;
          filter: brightness(1.4); }
    16% { transform: skewX(4deg) translate(4px,0);
          text-shadow: -3px 0 #ff0036, 3px 0 #00ffcc; }
    24% { transform: none; text-shadow: none; filter: none; }
    32% { clip-path: inset(15% 0 70% 0);
          transform: translate(-6px,0);
          filter: hue-rotate(60deg) brightness(1.2); }
    40% { clip-path: inset(55% 0 8% 0);
          transform: translate(6px,0); }
    48% { clip-path: none; transform: none; filter: none; text-shadow: none; }
    56% { transform: skewX(2deg);
          filter: brightness(1.3) saturate(3);
          text-shadow: 2px 0 var(--color-primary); }
    64% { transform: none; filter: none; text-shadow: none; }
    72% { transform: translate(0,-3px); filter: hue-rotate(-40deg); }
    80% { transform: translate(0,3px); }
    88%,100% { transform: none; filter: none; text-shadow: none; }
}
.glitch-active { animation: glitch-distort 0.65s linear; }

/* ── Click ripple ── */
@keyframes rippleExpand {
    0%   { width: 0; height: 0; opacity: 0.9; border-width: 2px; }
    100% { width: 140px; height: 140px; opacity: 0; border-width: 1px; }
}
.click-ripple {
    position: fixed;
    border-radius: 50%;
    border: 2px solid var(--color-primary);
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 9997;
    animation: rippleExpand 0.65s cubic-bezier(0.2, 0.6, 0.4, 1) forwards;
}

/* ── Cursor ring velocity stretch ── */
#cursor-ring {
    transition: width 0.15s, height 0.15s, border-color 0.2s, border-radius 0.15s, opacity 0.3s;
    transform-origin: center;
}

/* ── Spotlight overlay ── */
.moovi-spotlight-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    opacity: 0;
    transition: opacity 0.4s;
    border-radius: inherit;
}
.moovi-section:hover .moovi-spotlight-overlay { opacity: 1; }

/* ── Hero parallax will-change hints ── */
.hero__bg, .hero__glow, .hero__glow-right,
.hero__badge, .hero__heading, .hero__description,
.hero__actions, .hero__stats {
    will-change: transform;
}

/* ── Magnetic button override (remove existing transition conflict) ── */
.btn-primary { will-change: transform; }

/* ── Text scramble: mono while scrambling ── */
.scrambling { font-variant-numeric: tabular-nums; }

/* ── Section reveal distortion ── */
@keyframes sectionWipe {
    0%   { clip-path: inset(0 100% 0 0 round 8px); }
    100% { clip-path: inset(0 0% 0 0 round 8px); }
}
.section-wipe-in { animation: sectionWipe 0.9s cubic-bezier(0.77,0,0.175,1) forwards; }

/* ── Holographic heading border pulse ── */
@keyframes borderFlicker {
    0%,100% { border-color: rgba(232,0,45,0.2); }
    50%      { border-color: rgba(232,0,45,0.8); box-shadow: 0 0 20px rgba(232,0,45,0.4); }
}
.hero__badge { animation: borderFlicker 2.5s ease-in-out infinite, badgePop 0.8s cubic-bezier(0.34,1.56,0.64,1) 0.3s both; }

/* ── Feature card beam effect on hover ── */
.feature-card { overflow: hidden; }
.feature-card::before {
    content: '';
    position: absolute;
    top: -100%;
    left: -50%;
    width: 60%;
    height: 300%;
    background: linear-gradient(90deg, transparent, rgba(232,0,45,0.06), transparent);
    transform: skewX(-20deg);
    transition: none;
    opacity: 0;
}
.feature-card:hover::before {
    opacity: 1;
    left: 150%;
    transition: left 0.6s ease, opacity 0.1s;
}

/* ── Pricing card shimmer sweep ── */
.pricing-card { overflow: hidden; }
.pricing-card--popular::before {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 60%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(232,0,45,0.08), transparent);
    transform: skewX(-20deg);
    animation: shimmerSweep 3s ease-in-out infinite;
}
@keyframes shimmerSweep {
    0%   { left: -100%; }
    50%  { left: 150%; }
    100% { left: 150%; }
}

/* ── Ghost cursor rings trail ── */
.ghost-ring {
    position: fixed;
    border-radius: 50%;
    border: 1px solid rgba(232,0,45,0.4);
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 9996;
}

/* ── Noise overlay ── */
#fire-trail-canvas { mix-blend-mode: screen; }
