/* inplux.co/deck · capa de movimiento sobre el brochure (solo pantalla; el PDF no la carga) */
html.wow{background:#0a0a0a;scroll-snap-type:y mandatory;scroll-behavior:auto}
html.wow body{display:block;gap:0;padding:0;background:#0a0a0a}
html.wow .s{margin:0 auto;box-shadow:none;border-radius:0}
html.wow .stage{min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;scroll-snap-align:center;scroll-snap-stop:always}

/* ── interfaz fija ── */
.wow-bar{position:fixed;left:0;top:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,#0d7d74,#00d7ca);z-index:50;transition:transform .5s cubic-bezier(.2,.8,.2,1);box-shadow:0 0 18px rgba(0,215,202,.6)}
.wow-hud{transition:opacity .5s,transform .5s;position:fixed;right:18px;bottom:16px;z-index:50;display:flex;gap:10px;align-items:center;font:500 11px/1 "Rethink",system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#f8f8f7;background:rgba(19,19,17,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(248,248,247,.12);border-radius:999px;padding:8px 8px 8px 14px}
.wow-hud b{font-weight:500;color:#00d7ca;font-variant-numeric:tabular-nums}
.wow-hud .t{opacity:.7;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wow-hud button{all:unset;cursor:pointer;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(248,248,247,.18);font-size:13px}
.wow-hud button:hover{border-color:#00d7ca;color:#00d7ca}
.wow-dots{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:50;display:flex;flex-direction:column;gap:7px}
.wow-dots a{width:6px;height:6px;border-radius:50%;background:rgba(248,248,247,.28);transition:all .3s}
.wow-dots a.on{background:#00d7ca;height:18px;border-radius:4px}
.wow-dots a:hover{background:#f8f8f7}
.wow-hint{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:50;font:500 11px/1 "Rethink",system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:rgba(248,248,247,.75);display:flex;flex-direction:column;align-items:center;gap:8px;transition:opacity .6s;pointer-events:none}
.wow-hint i{width:1px;height:28px;background:linear-gradient(#00d7ca,transparent);animation:hint 1.8s ease-in-out infinite}
.wow-hint.off{opacity:0}
@keyframes hint{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media (max-width:760px){.wow-dots{display:none}.wow-hud .t{display:none}}

/* ── entradas escalonadas ── */
html.wow:not(.calm) .rv{opacity:0;transform:translateY(26px);filter:blur(8px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1),filter .9s;transition-delay:calc(var(--i,0)*70ms + 120ms)}
html.wow:not(.calm) .in .rv{opacity:1;transform:none;filter:none}
/* palabras de los titulares */
html.wow:not(.calm) .w{display:inline-block;opacity:0;transform:translateY(.55em) rotate(2deg);filter:blur(10px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1),filter .8s;transition-delay:calc(var(--w,0)*55ms + 80ms)}
html.wow:not(.calm) .in .w{opacity:1;transform:none;filter:none}

/* ── fondos: zoom lento tipo Ken Burns ── */
html.wow:not(.calm) .photo .bg>*{transform:scale(1.12);transition:transform 9s cubic-bezier(.15,.6,.2,1)}
html.wow:not(.calm) .photo.in .bg>*{transform:scale(1)}

/* ── foco que sigue el cursor en láminas oscuras ── */
html.wow .dark::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;opacity:0;transition:opacity .5s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(0,215,202,.13),transparent 60%);mix-blend-mode:screen}
html.wow .dark:hover::after{opacity:1}

/* ── números de los separadores con brillo ── */
html.wow:not(.calm) .sep .big{background:linear-gradient(100deg,#00d7ca 0%,#00d7ca 40%,#eafffd 50%,#00d7ca 60%,#00d7ca 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;background-position:100% 0}
html.wow:not(.calm) .sep.in .big{animation:shine 2.4s .6s cubic-bezier(.3,.6,.2,1) both}
@keyframes shine{to{background-position:-50% 0}}

/* ── cifras ── */
#cifras strong{font-variant-numeric:tabular-nums}
html.wow:not(.calm) #cifras .n{position:relative;overflow:hidden}
html.wow:not(.calm) #cifras .n::before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:#00d7ca;transform:scaleX(0);transform-origin:0 50%;transition:transform 1.4s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0)*90ms + 300ms)}
html.wow:not(.calm) #cifras.in .n::before{transform:scaleX(1)}

/* ── capturas de producto en 3D ── */
html.wow .prod-full .cols{perspective:1400px}
html.wow .prod-full .frame{transform-style:preserve-3d;transition:transform .9s cubic-bezier(.2,.8,.2,1),box-shadow .6s,opacity .9s,filter .9s;will-change:transform;position:relative}
html.wow:not(.calm) .prod-full .frame.rv{transform:rotateY(18deg) rotateX(6deg) translateX(-60px) scale(.94);filter:blur(6px)}
html.wow:not(.calm) .prod-full.in .frame.rv{transform:rotateY(var(--ry,0deg)) rotateX(var(--rx,0deg));filter:none}
html.wow .prod-full .frame::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(600px circle at var(--gx,30%) var(--gy,0%),rgba(255,255,255,.22),transparent 45%);opacity:0;transition:opacity .4s}
html.wow .prod-full .frame:hover::after{opacity:1}
html.wow .prod-full .frame:hover{box-shadow:0 40px 80px -30px rgba(0,0,0,.55),0 0 0 1px rgba(0,215,202,.35)}
html.wow:not(.calm) .prod-full .frame img{animation:none}
html.wow:not(.calm) .prod-full.in .name .st{animation:pulse 2.6s 1.2s ease-out 2}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(0,215,202,.55)}100%{box-shadow:0 0 0 14px rgba(0,215,202,0)}}

/* ── barra de líneas: subrayado que crece ── */
html.wow .linebar span{position:relative}
html.wow .linebar span::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:0 50%;transition:transform 1s .5s cubic-bezier(.2,.8,.2,1)}
html.wow .l1.in .linebar span:nth-child(1)::after,html.wow .l2.in .linebar span:nth-child(2)::after,html.wow .l3.in .linebar span:nth-child(3)::after{transform:scaleX(1)}

/* ── tarjetas: elevación al pasar ── */
html.wow .card,html.wow #sectores .sc,html.wow #formatos .f,html.wow .tile,html.wow #escenarios figure{transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s,border-color .45s}
html.wow .card:hover,html.wow #formatos .f:hover,html.wow .tile:hover{transform:translateY(-6px);box-shadow:0 22px 40px -24px rgba(0,0,0,.45);border-color:#00d7ca}
html.wow #sectores .sc .ph img,html.wow #escenarios figure img{transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
html.wow #sectores .sc:hover .ph img,html.wow #escenarios figure:hover img{transform:scale(1.07)}
html.wow .tile img{transition:filter .4s}

/* ── mapa: arcos que fluyen y ciudades que laten ── */
html.wow #mapa svg.map .arc{stroke-dasharray:4 5}
html.wow:not(.calm) #mapa.in svg.map .arc{animation:flow 1.2s linear infinite}
html.wow:not(.calm) #mapa svg.map .arc{clip-path:inset(0 100% 0 0);transition:clip-path 2.4s cubic-bezier(.4,0,.2,1) .4s}
html.wow:not(.calm) #mapa.in svg.map .arc{clip-path:inset(0 0 0 0)}
html.wow:not(.calm) #mapa svg.map .halo{transform-box:fill-box;transform-origin:center;animation:beat 2.2s ease-out infinite}
@keyframes flow{to{stroke-dashoffset:-18}}
@keyframes beat{0%{transform:scale(.7);opacity:.5}100%{transform:scale(1.7);opacity:0}}

/* ── cierre: halo detrás del titular ── */
html.wow:not(.calm) #cierre h2,html.wow:not(.calm) #cierre h1{text-shadow:0 0 60px rgba(0,215,202,.0);transition:text-shadow 2s 1s}
html.wow:not(.calm) #cierre.in h2,html.wow:not(.calm) #cierre.in h1{text-shadow:0 0 60px rgba(0,215,202,.35)}

/* ── grano de película en las fotos ── */
html.wow .photo::before{content:"";position:absolute;inset:-50%;z-index:1;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grain 1s steps(6) infinite}
html.calm .photo::before{animation:none}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-4%)}60%{transform:translate(-4%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* la interfaz se esconde cuando nadie la usa: no tapa los pies de lámina */
html.idle .wow-hud,html.idle .wow-dots{opacity:0;transform:translateY(6px);pointer-events:none}
html.idle .wow-dots{transform:translateY(-50%) translateX(6px)}
.wow-dots{transition:opacity .5s,transform .5s}
/* teléfono: sin inflado de letra y con aviso para girar */
html.wow{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.wow-rot{display:none}
@media (orientation:portrait) and (max-width:760px){.wow-rot{display:flex;position:fixed;left:50%;top:18px;transform:translateX(-50%);z-index:50;gap:8px;align-items:center;font:500 11px/1 "Rethink",system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#f8f8f7;background:rgba(19,19,17,.72);border:1px solid rgba(248,248,247,.12);border-radius:999px;padding:9px 14px;white-space:nowrap}.wow-hint{display:none}}
html.wow.tiny .stage{position:relative;height:100svh;overflow:hidden}
html.wow.tiny .s{position:absolute;left:50%;top:50%;transform-origin:50% 50%}
html.wow body{overflow-x:hidden}
