/* Calibración M5: números sin unidad, salvo las propiedades derivadas por el motor.
   Se pueden sobrescribir en :root o en la sección; recargar tras ajustar valores JS. */
:root{--astra-mov-intensidad:1;--astra-mov-fondo:.08;--astra-mov-equipo-subida:110px;--astra-mov-equipo-zoom:.12;--astra-mov-respiracion:.01;--astra-mov-flotacion:5;--astra-mov-ondas-periodo:2.4;--astra-mov-ondas-borde:72px;--astra-mov-ondas-golpe:.95;--astra-mov-ondas-expansion:1.25;--astra-mov-foto-zoom:.15;--astra-mov-foto-parallax:24;--astra-mov-inclinacion:8;--astra-mov-reflejo:.55;--astra-mov-firma-enfoque:.85;--astra-mov-firma-obturador:.45;--astra-mov-firma-destello:.9;--astra-mov-firma-brillo:.65;--astra-mov-firma-halo:.7}
.astra-capas-texto{pointer-events:none}
.astra-capas-texto a,.astra-capas-texto button,
.astra-capas-titulo,.astra-capas-frase,.astra-capas-logo{pointer-events:auto}
/* Astra — capas independientes. Las transformaciones de Apple no se sobrescriben. */
.astra-mov-firma{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;contain:layout paint}
.astra-mov-ondas{z-index:0;-webkit-mask-image:linear-gradient(to right,transparent 32%,#000 57%);mask-image:linear-gradient(to right,transparent 32%,#000 57%)}
.astra-mov-ondas-marco{position:absolute;inset:0;-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - min(var(--astra-mov-ondas-borde),14%)),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - min(var(--astra-mov-ondas-borde),14%)),transparent)}
@media(max-width:734px){.astra-mov-ondas{-webkit-mask-image:linear-gradient(to bottom,transparent var(--astra-mov-ondas-corte,38%),#000 calc(var(--astra-mov-ondas-corte,38%) + 48px));mask-image:linear-gradient(to bottom,transparent var(--astra-mov-ondas-corte,38%),#000 calc(var(--astra-mov-ondas-corte,38%) + 48px))}}
/* Una máscara evita otra pasada de composición; las reglas anidadas quedan de respaldo. */
@supports (mask-composite:intersect){
  .astra-mov-ondas{-webkit-mask-image:linear-gradient(to right,transparent 32%,#000 57%),linear-gradient(to bottom,#000 calc(100% - min(var(--astra-mov-ondas-borde),14%)),transparent);mask-image:linear-gradient(to right,transparent 32%,#000 57%),linear-gradient(to bottom,#000 calc(100% - min(var(--astra-mov-ondas-borde),14%)),transparent);mask-composite:intersect}
  .astra-mov-ondas-marco{-webkit-mask-image:none;mask-image:none}
  @media(max-width:734px){.astra-mov-ondas{-webkit-mask-image:linear-gradient(to bottom,transparent var(--astra-mov-ondas-corte,38%),#000 calc(var(--astra-mov-ondas-corte,38%) + 48px)),linear-gradient(to bottom,#000 calc(100% - min(var(--astra-mov-ondas-borde),14%)),transparent);mask-image:linear-gradient(to bottom,transparent var(--astra-mov-ondas-corte,38%),#000 calc(var(--astra-mov-ondas-corte,38%) + 48px)),linear-gradient(to bottom,#000 calc(100% - min(var(--astra-mov-ondas-borde),14%)),transparent);mask-composite:intersect}}
}
 .astra-mov-ondas-lienzo{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.astra-mov-onda{opacity:0;transform-origin:0 0;pointer-events:none}
.astra-mov-onda circle{fill:none;vector-effect:non-scaling-stroke}
.astra-mov-onda-borde{stroke:#0006;stroke-width:4px}
.astra-mov-onda-trazo{stroke:#fff;stroke-width:2px}
@media(max-width:734px){.astra-mov-onda-borde{stroke-width:3px}.astra-mov-onda-trazo{stroke-width:1.5px}}
.astra-mov-onda-fuerte .astra-mov-onda-borde{stroke-width:6px}
.astra-mov-onda-fuerte .astra-mov-onda-trazo{stroke-width:3px}
.astra-capas-claro:not(.astra-capas-foto) .astra-mov-onda-trazo{stroke:none}
.astra-capas-claro:not(.astra-capas-foto) .astra-mov-onda-borde{stroke:#00000073;stroke-width:2px}
.astra-capas-claro:not(.astra-capas-foto) .astra-mov-onda-fuerte .astra-mov-onda-borde{stroke:#0000008c;stroke-width:4px}
@media(max-width:734px){
  .astra-mov-onda-fuerte .astra-mov-onda-borde{stroke-width:5px}
  .astra-mov-onda-fuerte .astra-mov-onda-trazo{stroke-width:2.5px}
  .astra-capas-claro:not(.astra-capas-foto) .astra-mov-onda-borde{stroke-width:1.5px}
  .astra-capas-claro:not(.astra-capas-foto) .astra-mov-onda-fuerte .astra-mov-onda-borde{stroke-width:3px}
}
.astra-capas.astra-mov-sin-toque .astra-capas-texto a,
.astra-capas.astra-mov-sin-toque .astra-capas-texto button{pointer-events:none}
.astra-capas.astra-mov-texto-fuera .astra-capas-texto{visibility:hidden}
@media(max-width:734px) and (prefers-reduced-motion:no-preference){
  .astra-capas.lista.astra-mov-viva .astra-capas-texto{opacity:calc(1 - var(--p,0) * 3);transform:translateY(calc(var(--p,0) * (var(--astra-mov-equipo-subida) * var(--astra-mov-intensidad) + var(--astra-mov-texto-zoom,0px)) * -1))}
}
/* Fotos cortadas en origen: no revelar su base con flotación mientras llega material completo. */
.astra-capas:has(.astra-capas-equipo[src*="/dji-osmo-pocket-3/"]){--astra-mov-flotacion:0}
@media(max-width:734px){.astra-capas:has(.astra-capas-equipo[src*="/jbl-flip-7/"]){--astra-mov-flotacion:0}}
.astra-mov-foto{position:absolute;inset:0;pointer-events:none;transform-origin:50% 50%}
.astra-mov-reflejo{position:absolute;inset:-30%;pointer-events:none;background:radial-gradient(ellipse at center,#fff9,transparent 55%);opacity:0;transition:opacity .25s}
@media(prefers-reduced-motion:no-preference){
  .astra-capas.lista.astra-mov-viva .astra-capas-fondo{scale:calc(1 + var(--p,0) * var(--astra-mov-fondo) * var(--astra-mov-intensidad))}
  .astra-capas.lista.astra-mov-viva .astra-capas-equipo-caja{transform:translate3d(0,calc(var(--p,0) * var(--astra-mov-equipo-subida) * -1 * var(--astra-mov-intensidad)),0) scale(calc(1 + var(--p,0) * var(--astra-mov-equipo-zoom) * var(--astra-mov-intensidad)));transform-origin:50% 100%}
  /* Compensa el borde inferior que gana scale desde el origen 80 %, sin cambiar ese origen. */
  .astra-capas.lista.astra-mov-viva:not(.astra-mov-equipo-firmado) .astra-capas-equipo{scale:var(--astra-mov-respiro,1);translate:0 calc(var(--astra-mov-flota,0px) - max(0,var(--astra-mov-respiro,1) - 1) * 20%);transform-origin:50% 80%}
  /* Recorte estático: conserva la descripción accesible de la imagen original. */
  .astra-mov-original{clip-path:inset(50%)}
  /* La inclinación vive en la foto activa; las salientes quedan quietas mientras funden.
     Se conserva el suavizado de 200 ms; solo cambia su destino si cambia el valor. */
  .astra-mov-escena .astra-colores-foto{transform:perspective(1100px) rotateX(var(--astra-mov-rx,0deg)) rotateY(var(--astra-mov-ry,0deg));transition:opacity .45s ease,transform .2s ease-out}
  .astra-mov-aparece{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1)}
  .astra-mov-aparece.astra-mov-presente{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){
  .astra-mov-firma,.astra-mov-foto,.astra-mov-reflejo{display:none}
  .astra-mov-aparece{opacity:1;transform:none}
  /* La inclinación vive en la foto activa; las salientes quedan quietas mientras funden.
     Se conserva el suavizado de 200 ms; solo cambia su destino si cambia el valor. */
  .astra-mov-escena .astra-colores-foto{transform:none;scale:none;rotate:none;transition:none}
}
