/**
 * SCROLL EFFECTS - Efectos visuales de scroll y animaciones
 * =======================================================
 * Depende de: design-system.css (cargado por styles.css)
 * Este archivo NO debe importar design-system.css independientemente
 * para evitar duplicación de carga
 */

/* ===== VARIABLES ESPECÍFICAS ===== */
:root {
  --scroll-effect-duration: var(--duration-slow);
  --scroll-effect-easing: var(--easing-decelerate);
  --scroll-parallax-intensity: 0.5;
  --scroll-stagger-delay: 100ms;
  --scroll-threshold-default: 0.1;
  --scroll-indicator-height: 3px;
  --scroll-counter-duration: 2s;
}

/* ===== SCROLL EFFECTS BASE ===== */
[data-scroll-effect] {
  opacity: 0;
  transform: translateY(var(--space-6));
  transition:
    opacity var(--scroll-effect-duration) var(--scroll-effect-easing),
    transform var(--scroll-effect-duration) var(--scroll-effect-easing);
  will-change: opacity, transform;
  contain: layout style;
  backface-visibility: hidden;
  transform: translateZ(0);
}

[data-scroll-effect].visible {
  opacity: 1;
  transform: translateY(0);
}

/* ===== EFECTOS BÁSICOS ===== */
[data-scroll-effect="fade"] {
  opacity: 0;
  transform: none;
  transition: opacity var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-effect="fade"].visible {
  opacity: 1;
}

[data-scroll-effect="slide-up"] {
  opacity: 0;
  transform: translateY(var(--space-8));
  transition:
    opacity var(--scroll-effect-duration) var(--scroll-effect-easing),
    transform var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-effect="slide-up"].visible {
  opacity: 1;
  transform: translateY(0);
}

[data-scroll-effect="slide-down"] {
  opacity: 0;
  transform: translateY(calc(var(--space-8) * -1));
  transition:
    opacity var(--scroll-effect-duration) var(--scroll-effect-easing),
    transform var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-effect="slide-down"].visible {
  opacity: 1;
  transform: translateY(0);
}

[data-scroll-effect="slide-left"] {
  opacity: 0;
  transform: translateX(calc(var(--space-8) * -1));
  transition:
    opacity var(--scroll-effect-duration) var(--scroll-effect-easing),
    transform var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-effect="slide-left"].visible {
  opacity: 1;
  transform: translateX(0);
}

[data-scroll-effect="slide-right"] {
  opacity: 0;
  transform: translateX(var(--space-8));
  transition:
    opacity var(--scroll-effect-duration) var(--scroll-effect-easing),
    transform var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-effect="slide-right"].visible {
  opacity: 1;
  transform: translateX(0);
}

/* ===== EFECTOS DE ESCALA ===== */
[data-scroll-effect="scale-in"] {
  opacity: 0;
  transform: scale(0.8);
  transition:
    opacity var(--scroll-effect-duration) var(--scroll-effect-easing),
    transform var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-effect="scale-in"].visible {
  opacity: 1;
  transform: scale(1);
}

[data-scroll-effect="scale-out"] {
  opacity: 0;
  transform: scale(1.2);
  transition:
    opacity var(--scroll-effect-duration) var(--scroll-effect-easing),
    transform var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-effect="scale-out"].visible {
  opacity: 1;
  transform: scale(1);
}

/* ===== EFECTOS DE ROTACIÓN ===== */
[data-scroll-effect="rotate-in"] {
  opacity: 0;
  transform: rotate(-15deg) scale(0.9);
  transition:
    opacity var(--scroll-effect-duration) var(--scroll-effect-easing),
    transform var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-effect="rotate-in"].visible {
  opacity: 1;
  transform: rotate(0deg) scale(1);
}

[data-scroll-effect="flip-in"] {
  opacity: 0;
  transform: perspective(1000px) rotateX(-30deg);
  transition:
    opacity var(--scroll-effect-duration) var(--scroll-effect-easing),
    transform var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-effect="flip-in"].visible {
  opacity: 1;
  transform: perspective(1000px) rotateX(0deg);
}

/* ===== EFECTOS COMBINADOS ===== */
[data-scroll-effect="fade-slide-up"] {
  opacity: 0;
  transform: translateY(var(--space-6));
  transition:
    opacity var(--scroll-effect-duration) var(--scroll-effect-easing),
    transform var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-effect="fade-slide-up"].visible {
  opacity: 1;
  transform: translateY(0);
}

[data-scroll-effect="fade-scale"] {
  opacity: 0;
  transform: scale(0.9);
  transition:
    opacity var(--scroll-effect-duration) var(--scroll-effect-easing),
    transform var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-effect="fade-scale"].visible {
  opacity: 1;
  transform: scale(1);
}

/* ===== EFECTOS AVANZADOS ===== */
[data-scroll-effect="morph"] {
  clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
  transition: clip-path var(--scroll-effect-duration)
    var(--scroll-effect-easing);
}

[data-scroll-effect="morph"].visible {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

[data-scroll-effect="typewriter"] {
  overflow: hidden;
  white-space: nowrap;
  width: 0;
  transition: width var(--scroll-effect-duration) steps(40, end);
}

[data-scroll-effect="typewriter"].visible {
  width: 100%;
}

[data-scroll-effect="blur-focus"] {
  filter: blur(5px);
  transition: filter var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-effect="blur-focus"].visible {
  filter: blur(0);
}

[data-scroll-effect="color-shift"] {
  color: var(--color-on-surface-variant);
  transition: color var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-effect="color-shift"].visible {
  color: var(--color-primary-500);
}

/* ===== EFECTOS DE REVEAL AVANZADOS ===== */
[data-scroll-effect="reveal-mask"] {
  position: relative;
  overflow: hidden;
}

[data-scroll-effect="reveal-mask"]::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--color-surface);
  transform: translateY(0);
  transition: transform var(--scroll-effect-duration)
    var(--scroll-effect-easing);
  z-index: 1;
}

[data-scroll-effect="reveal-mask"].visible::before {
  transform: translateY(-100%);
}

[data-scroll-effect="reveal-mask"] > * {
  position: relative;
  z-index: 2;
}

/* ===== EFECTOS DE TEXTO AVANZADOS ===== */
[data-scroll-effect="text-reveal"] {
  position: relative;
  overflow: hidden;
}

[data-scroll-effect="text-reveal"] .word {
  display: inline-block;
  opacity: 0;
  transform: translateY(100%);
  transition:
    opacity var(--duration-normal) var(--scroll-effect-easing),
    transform var(--duration-normal) var(--scroll-effect-easing);
}

[data-scroll-effect="text-reveal"].visible .word {
  opacity: 1;
  transform: translateY(0);
}

[data-scroll-effect="text-reveal"].visible .word:nth-child(1) {
  transition-delay: 0ms;
}
[data-scroll-effect="text-reveal"].visible .word:nth-child(2) {
  transition-delay: 100ms;
}
[data-scroll-effect="text-reveal"].visible .word:nth-child(3) {
  transition-delay: 200ms;
}
[data-scroll-effect="text-reveal"].visible .word:nth-child(4) {
  transition-delay: 300ms;
}
[data-scroll-effect="text-reveal"].visible .word:nth-child(5) {
  transition-delay: 400ms;
}
[data-scroll-effect="text-reveal"].visible .word:nth-child(n + 6) {
  transition-delay: 500ms;
}

/* ===== EFECTOS DE PATH DRAWING ===== */
[data-scroll-effect="draw-path"] svg {
  overflow: visible;
}

[data-scroll-effect="draw-path"] svg path {
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
  transition: stroke-dashoffset var(--duration-extra-slow)
    var(--scroll-effect-easing);
}

[data-scroll-effect="draw-path"].visible svg path {
  stroke-dashoffset: 0;
}

[data-scroll-effect="draw-path"].visible svg path:nth-child(1) {
  transition-delay: 0ms;
}
[data-scroll-effect="draw-path"].visible svg path:nth-child(2) {
  transition-delay: 500ms;
}
[data-scroll-effect="draw-path"].visible svg path:nth-child(3) {
  transition-delay: 1000ms;
}
[data-scroll-effect="draw-path"].visible svg path:nth-child(4) {
  transition-delay: 1500ms;
}

/* ===== EFECTOS DE NÚMERO PROGRESIVO ===== */
[data-scroll-effect="number-count"] {
  font-variant-numeric: tabular-nums;
  transition: color var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-effect="number-count"].visible {
  color: var(--color-primary-600);
}

/* ===== ANIMACIONES STAGGERED ===== */
[data-scroll-stagger] [data-scroll-effect] {
  transition-delay: 0ms;
}

[data-scroll-stagger] [data-scroll-effect]:nth-child(1) {
  transition-delay: var(--scroll-stagger-delay);
}

[data-scroll-stagger] [data-scroll-effect]:nth-child(2) {
  transition-delay: calc(var(--scroll-stagger-delay) * 2);
}

[data-scroll-stagger] [data-scroll-effect]:nth-child(3) {
  transition-delay: calc(var(--scroll-stagger-delay) * 3);
}

[data-scroll-stagger] [data-scroll-effect]:nth-child(4) {
  transition-delay: calc(var(--scroll-stagger-delay) * 4);
}

[data-scroll-stagger] [data-scroll-effect]:nth-child(5) {
  transition-delay: calc(var(--scroll-stagger-delay) * 5);
}

[data-scroll-stagger] [data-scroll-effect]:nth-child(n + 6) {
  transition-delay: calc(var(--scroll-stagger-delay) * 6);
}

/* ===== EFECTOS DE PARALLAX ===== */
[data-scroll-parallax] {
  transform: translateY(0);
  transition: transform var(--duration-fast) linear;
  will-change: transform;
  contain: layout style paint;
  isolation: isolate;
}

[data-scroll-parallax="slow"] {
  transform: translateY(calc(var(--scroll-offset, 0) * 0.3));
}

[data-scroll-parallax="medium"] {
  transform: translateY(
    calc(var(--scroll-offset, 0) * var(--scroll-parallax-intensity))
  );
}

[data-scroll-parallax="fast"] {
  transform: translateY(calc(var(--scroll-offset, 0) * 0.8));
}

[data-scroll-parallax="reverse"] {
  transform: translateY(calc(var(--scroll-offset, 0) * -0.3));
}

/* ===== EFECTOS DE STICKY REVEAL ===== */
[data-scroll-sticky] {
  position: sticky;
  top: var(--space-16);
  z-index: var(--z-sticky);
}

[data-scroll-sticky].revealed {
  animation: stickyReveal var(--duration-normal) var(--scroll-effect-easing)
    forwards;
}

@keyframes stickyReveal {
  from {
    opacity: 0;
    transform: translateY(calc(var(--space-4) * -1));
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ===== EFECTOS DE PROGRESS BAR ===== */
[data-scroll-progress] {
  position: relative;
  overflow: hidden;
}

[data-scroll-progress]::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0;
  background: linear-gradient(
    90deg,
    var(--color-primary-500),
    var(--color-primary-300)
  );
  transition: width var(--scroll-effect-duration) var(--scroll-effect-easing);
  z-index: -1;
}

[data-scroll-progress].visible::before {
  width: 100%;
}

[data-scroll-progress="vertical"] {
  position: relative;
}

[data-scroll-progress="vertical"]::before {
  width: 100%;
  height: 0;
  transition: height var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-progress="vertical"].visible::before {
  height: 100%;
}

/* ===== EFECTOS DE COUNTER ===== */
[data-scroll-counter] {
  font-variant-numeric: tabular-nums;
  counter-reset: scroll-counter;
  transition: color var(--scroll-effect-duration) var(--scroll-effect-easing);
}

[data-scroll-counter].visible {
  animation: countUp var(--scroll-counter-duration) var(--scroll-effect-easing)
    forwards;
  color: var(--color-primary-600);
}

@keyframes countUp {
  from {
    counter-increment: scroll-counter 0;
  }
  to {
    counter-increment: scroll-counter var(--counter-end, 100);
  }
}

[data-scroll-counter]::after {
  content: counter(scroll-counter);
}

/* ===== EFECTOS DE MAGNETIC HOVER ===== */
[data-scroll-effect="magnetic"] {
  transition: transform var(--duration-fast) var(--easing-standard);
  cursor: pointer;
}

[data-scroll-effect="magnetic"]:hover {
  transform: scale(1.02) translateY(-2px);
}

[data-scroll-effect="magnetic"]:active {
  transform: scale(0.98) translateY(0);
}

/* ===== EFECTOS DE GLITCH ===== */
[data-scroll-effect="glitch"] {
  position: relative;
  overflow: hidden;
}

[data-scroll-effect="glitch"].visible {
  animation: glitchEffect 0.3s ease-in-out;
}

@keyframes glitchEffect {
  0%,
  100% {
    transform: translate(0);
  }
  20% {
    transform: translate(-2px, 2px);
  }
  40% {
    transform: translate(-2px, -2px);
  }
  60% {
    transform: translate(2px, 2px);
  }
  80% {
    transform: translate(2px, -2px);
  }
}

/* ===== EFECTOS DE WAVE ===== */
[data-scroll-effect="wave"] {
  position: relative;
  overflow: hidden;
}

[data-scroll-effect="wave"].visible {
  animation: waveEffect 1s ease-in-out;
}

@keyframes waveEffect {
  0% {
    transform: translateY(0) rotate(0deg);
  }
  25% {
    transform: translateY(-10px) rotate(1deg);
  }
  50% {
    transform: translateY(0) rotate(0deg);
  }
  75% {
    transform: translateY(-5px) rotate(-1deg);
  }
  100% {
    transform: translateY(0) rotate(0deg);
  }
}

/* ===== EFECTOS CRÍTICOS SIEMPRE VISIBLES ===== */
.section-divider [data-scroll-effect],
.use-case-icon-container [data-scroll-effect],
.section-divider .card [data-scroll-effect],
.critical-content [data-scroll-effect],
.navbar [data-scroll-effect],
.header [data-scroll-effect],
.footer [data-scroll-effect] {
  opacity: 1 !important;
  transform: translateY(0) !important;
  visibility: visible !important;
}

/* ===== INTERSECTION OBSERVER SUPPORT ===== */
.scroll-observer-root {
  position: relative;
  overflow: hidden;
}

[data-scroll-threshold="0.1"] {
  /* 10% visible */
}
[data-scroll-threshold="0.25"] {
  /* 25% visible */
}
[data-scroll-threshold="0.5"] {
  /* 50% visible */
}
[data-scroll-threshold="0.75"] {
  /* 75% visible */
}
[data-scroll-threshold="0.9"] {
  /* 90% visible */
}

/* ===== SCROLL INDICATORS ===== */
.scroll-indicator {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--scroll-indicator-height);
  background: var(--color-primary-500);
  transform-origin: left;
  transform: scaleX(0);
  transition: transform var(--duration-fast) linear;
  z-index: var(--z-max);
}

.scroll-indicator.active {
  transform: scaleX(var(--scroll-progress, 0));
}

.scroll-indicator-circular {
  position: fixed;
  bottom: var(--space-6);
  right: var(--space-6);
  width: 60px;
  height: 60px;
  background: var(--color-surface);
  border: 2px solid var(--color-primary-500);
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: var(--z-floating);
  transition: transform var(--duration-fast) var(--easing-standard);
}

.scroll-indicator-circular:hover {
  transform: scale(1.1);
}

.scroll-indicator-circular::before {
  content: "";
  position: absolute;
  top: -2px;
  left: -2px;
  width: 100%;
  height: 100%;
  border: 2px solid var(--color-primary-500);
  border-radius: var(--radius-full);
  border-top-color: transparent;
  border-right-color: transparent;
  transform: rotate(calc(var(--scroll-progress, 0) * 360deg));
  transition: transform var(--duration-fast) linear;
}

.scroll-indicator-text {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary-500);
}

/* ===== SCROLL TO TOP BUTTON ===== */
.scroll-to-top {
  position: fixed;
  bottom: var(--space-6);
  right: var(--space-6);
  width: 48px;
  height: 48px;
  background: var(--color-primary-500);
  color: var(--color-on-primary);
  border: none;
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(var(--space-4));
  transition:
    opacity var(--duration-normal) var(--easing-standard),
    visibility var(--duration-normal) var(--easing-standard),
    transform var(--duration-normal) var(--easing-standard);
  z-index: var(--z-floating);
}

.scroll-to-top.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.scroll-to-top:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: var(--shadow-lg);
}

.scroll-to-top:focus-visible {
  outline: 3px solid
    color-mix(in srgb, var(--color-primary-500) 40%, transparent);
  outline-offset: 2px;
}

.scroll-to-top:active {
  transform: translateY(0) scale(0.95);
}

/* ===== UTILITY CLASSES ===== */
.scroll-lock {
  overflow: hidden;
}

.scroll-smooth {
  scroll-behavior: smooth;
}

.scroll-auto {
  scroll-behavior: auto;
}

.scroll-snap-x {
  scroll-snap-type: x mandatory;
}

.scroll-snap-y {
  scroll-snap-type: y mandatory;
}

.scroll-snap-start {
  scroll-snap-align: start;
}

.scroll-snap-center {
  scroll-snap-align: center;
}

.scroll-snap-end {
  scroll-snap-align: end;
}

/* ===== RESPONSIVE ADJUSTMENTS ===== */
@media (max-width: 991.98px) {
  :root {
    --scroll-effect-duration: var(--duration-normal);
    --scroll-parallax-intensity: 0.3;
    --scroll-stagger-delay: 75ms;
  }

  [data-scroll-parallax] {
    transform: translateY(calc(var(--scroll-offset, 0) * 0.2));
  }

  .scroll-indicator-circular {
    width: 50px;
    height: 50px;
    bottom: var(--space-4);
    right: var(--space-4);
  }

  .scroll-to-top {
    width: 44px;
    height: 44px;
    bottom: var(--space-4);
    right: var(--space-4);
  }
}

@media (max-width: 767.98px) {
  :root {
    --scroll-effect-duration: var(--duration-fast);
    --scroll-stagger-delay: 50ms;
  }

  [data-scroll-effect] {
    transform: translateY(var(--space-4));
  }

  [data-scroll-effect="slide-up"] {
    transform: translateY(var(--space-4));
  }

  [data-scroll-effect="slide-left"],
  [data-scroll-effect="slide-right"] {
    transform: translateX(var(--space-4));
  }

  [data-scroll-stagger] [data-scroll-effect]:nth-child(1) {
    transition-delay: 50ms;
  }
  [data-scroll-stagger] [data-scroll-effect]:nth-child(2) {
    transition-delay: 100ms;
  }
  [data-scroll-stagger] [data-scroll-effect]:nth-child(3) {
    transition-delay: 150ms;
  }
  [data-scroll-stagger] [data-scroll-effect]:nth-child(4) {
    transition-delay: 200ms;
  }
  [data-scroll-stagger] [data-scroll-effect]:nth-child(5) {
    transition-delay: 250ms;
  }
  [data-scroll-stagger] [data-scroll-effect]:nth-child(n + 6) {
    transition-delay: 300ms;
  }
}

@media (max-width: 575.98px) {
  [data-scroll-effect] {
    transform: translateY(var(--space-3));
  }

  [data-scroll-effect="slide-up"] {
    transform: translateY(var(--space-3));
  }

  [data-scroll-effect="slide-left"],
  [data-scroll-effect="slide-right"] {
    transform: translateX(var(--space-3));
  }

  [data-scroll-parallax] {
    transform: none;
  }

  .scroll-indicator-circular {
    display: none;
  }
}

/* ===== ACCESSIBILITY - REDUCED MOTION ===== */
@media (prefers-reduced-motion: reduce) {
  [data-scroll-effect],
  [data-scroll-parallax],
  [data-scroll-sticky],
  [data-scroll-counter],
  .scroll-indicator,
  .scroll-indicator-circular,
  .scroll-to-top {
    animation: none;
    transition: none;
    transform: none;
  }

  [data-scroll-effect] {
    opacity: 1;
  }

  [data-scroll-progress]::before {
    width: 100%;
    transition: none;
  }

  [data-scroll-effect="typewriter"] {
    width: 100%;
  }

  [data-scroll-effect="morph"] {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }

  [data-scroll-effect="blur-focus"] {
    filter: none;
  }

  [data-scroll-effect="reveal-mask"]::before {
    display: none;
  }

  [data-scroll-effect="draw-path"] svg path {
    stroke-dasharray: none;
    stroke-dashoffset: 0;
  }

  .scroll-smooth {
    scroll-behavior: auto;
  }
}

/* ===== DARK MODE SUPPORT ===== */
[data-bs-theme="dark"] {
  --scroll-indicator-height: 3px;
}

[data-bs-theme="dark"] [data-scroll-progress]::before {
  background: linear-gradient(
    90deg,
    var(--color-primary-400),
    var(--color-primary-200)
  );
}

[data-bs-theme="dark"] .scroll-indicator {
  background: var(--color-primary-400);
}

[data-bs-theme="dark"] .scroll-indicator-circular {
  background: var(--color-surface);
  border-color: var(--color-primary-400);
}

[data-bs-theme="dark"] .scroll-indicator-circular::before {
  border-color: var(--color-primary-400);
}

[data-bs-theme="dark"] .scroll-to-top {
  background: var(--color-primary-400);
}

[data-bs-theme="dark"] [data-scroll-effect="reveal-mask"]::before {
  background: var(--color-surface);
}

/* ===== HIGH CONTRAST MODE ===== */
@media (prefers-contrast: high) {
  [data-scroll-effect] {
    transition-duration: var(--duration-fast);
  }

  [data-scroll-progress]::before {
    background: var(--color-primary-500);
  }

  .scroll-indicator {
    background: var(--color-primary-500);
    height: 4px;
  }

  .scroll-indicator-circular {
    border-width: 3px;
  }

  .scroll-to-top {
    box-shadow: var(--shadow-lg);
  }
}

/* ===== FORCED COLORS MODE ===== */
@media (forced-colors: active) {
  [data-scroll-effect] {
    forced-color-adjust: none;
  }

  .scroll-indicator {
    background: Highlight;
  }

  .scroll-indicator-circular {
    background: Canvas;
    border-color: CanvasText;
  }

  .scroll-to-top {
    background: ButtonFace;
    color: ButtonText;
    border: 1px solid ButtonText;
  }

  [data-scroll-progress]::before {
    background: Highlight;
  }
}

/* ===== PRINT STYLES ===== */
@media print {
  [data-scroll-effect],
  [data-scroll-parallax],
  [data-scroll-sticky],
  [data-scroll-counter] {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }

  [data-scroll-progress]::before {
    display: none;
  }

  .scroll-indicator,
  .scroll-indicator-circular,
  .scroll-to-top {
    display: none;
  }

  [data-scroll-effect="typewriter"] {
    width: 100%;
  }

  [data-scroll-effect="morph"] {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }

  [data-scroll-effect="blur-focus"] {
    filter: none;
  }

  [data-scroll-effect="reveal-mask"]::before {
    display: none;
  }

  [data-scroll-effect="draw-path"] svg path {
    stroke-dasharray: none;
    stroke-dashoffset: 0;
  }
}

/* ===== PERFORMANCE OPTIMIZATIONS ===== */
[data-scroll-effect] {
  contain: layout style;
  backface-visibility: hidden;
  transform: translateZ(0);
}

[data-scroll-parallax] {
  contain: layout style paint;
  isolation: isolate;
  will-change: transform;
}

[data-scroll-progress] {
  contain: layout style;
}

.scroll-indicator {
  contain: layout style;
  will-change: transform;
}

.scroll-indicator-circular {
  contain: layout style;
  will-change: transform;
}

.scroll-to-top {
  contain: layout style;
  will-change: transform, opacity;
}

/* ===== DEBUGGING ===== */
@media screen and (max-width: 0px) {
  .debug-scroll-effects::before {
    content: "🎬 Scroll ELITE";
    position: fixed;
    top: 260px;
    right: 10px;
    background: var(--color-purple-500);
    color: var(--color-on-purple);
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    z-index: var(--z-debug);
    opacity: 0.8;
  }
}

/* ===== INTERSECTION OBSERVER JAVASCRIPT HELPER ===== */
/*
// Ejemplo de uso con JavaScript:
const observerOptions = {
  root: null,
  rootMargin: '0px',
  threshold: [0.1, 0.5, 0.9]
};

const observer = new IntersectionObserver((entries) => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      entry.target.classList.add('visible');
    }
  });
}, observerOptions);

// Observar elementos con efectos de scroll
document.querySelectorAll('[data-scroll-effect]').forEach(el => {
  observer.observe(el);
});
*/
