#wapu-pg-effects-mount{--wapu-pg-fx-accent:#7c3aed;position:relative;z-index:auto;pointer-events:none}
.wapu-pg-fx-particles{position:fixed;inset:0;z-index:9996;overflow:hidden;pointer-events:none}
.wapu-pg-fx-particles i{position:absolute;top:-10vh;left:var(--x);font-size:var(--size);font-style:normal;color:var(--wapu-pg-fx-particle,var(--wapu-pg-fx-accent));opacity:.45;filter:drop-shadow(0 2px 5px rgba(15,23,42,.08));animation:wapuPgFall var(--duration) linear var(--delay) infinite;will-change:transform}
#wapu-pg-effects-mount.is-paused .wapu-pg-fx-particles i{animation-play-state:paused}
@keyframes wapuPgFall{0%{transform:translate3d(0,-12vh,0) rotate(0);opacity:0}12%{opacity:.48}100%{transform:translate3d(8vw,115vh,0) rotate(420deg);opacity:0}}
.wapu-pg-fx-particles--soft-dots i,.wapu-pg-fx-particles--bubbles i{opacity:.26}
.wapu-pg-fx-particles--confetti i:nth-child(3n){color:#ec4899}.wapu-pg-fx-particles--confetti i:nth-child(3n+1){color:var(--wapu-pg-fx-accent)}.wapu-pg-fx-particles--confetti i:nth-child(3n+2){color:#f59e0b}
.wapu-pg-has-custom-cursor,.wapu-pg-has-custom-cursor :where(a,button,[role="button"]){cursor:none!important}
.wapu-pg-fx-cursor{position:fixed;top:0;left:0;z-index:2147483000;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#111827;opacity:0;pointer-events:none;transform:translate3d(-100px,-100px,0);transition:width .16s,height .16s,margin .16s,opacity .12s,background .16s,border .16s;will-change:transform}
.wapu-pg-fx-cursor.is-visible{opacity:1}.wapu-pg-fx-cursor.is-hover{width:24px;height:24px;margin:-12px 0 0 -12px;opacity:.78}
.wapu-pg-fx-cursor--wapu-dot{background:var(--wapu-pg-fx-cursor-color,var(--wapu-pg-fx-accent));box-shadow:0 0 0 4px rgba(124,58,237,.16);box-shadow:0 0 0 4px color-mix(in srgb,var(--wapu-pg-fx-accent) 18%,transparent)}
.wapu-pg-fx-cursor--ring{background:transparent;border:2px solid var(--wapu-pg-fx-cursor-color,var(--wapu-pg-fx-accent))}
.wapu-pg-fx-cursor--spark{background:transparent}.wapu-pg-fx-cursor--spark:before{content:"✦";position:absolute;top:-4px;left:-4px;color:var(--wapu-pg-fx-cursor-color,var(--wapu-pg-fx-accent));font-size:20px;line-height:1}
@media(pointer:coarse){.wapu-pg-fx-cursor{display:none!important}}
@media(prefers-reduced-motion:reduce){.wapu-pg-fx-particles{display:none}.wapu-pg-fx-cursor{transition:none}}

.wapu-pg-fx-particles--soft-petals i{opacity:.18;color:var(--wapu-pg-fx-particle,var(--wapu-pg-fx-accent));font-size:calc(var(--size) * .8);animation-name:wapuPgPetal;animation-timing-function:ease-in-out;filter:none}
.wapu-pg-fx-particles--soft-petals i:nth-child(2n){color:#94a3b8;opacity:.22}
.wapu-pg-fx-particles--soft-petals i:nth-child(3n){color:#f9a8d4;opacity:.16}
@keyframes wapuPgPetal{0%{transform:translate3d(-4vw,-12vh,0) rotate(0deg)}45%{transform:translate3d(5vw,45vh,0) rotate(150deg)}100%{transform:translate3d(-3vw,112vh,0) rotate(330deg)}}

/* Fase 4.1 · rescate del cursor expresivo sin recuperar el motor retirado. */
.wapu-pg-fx-trail,.wapu-pg-fx-click{position:fixed;z-index:2147482999;pointer-events:none;color:var(--wapu-pg-fx-cursor-color,var(--wapu-pg-fx-accent));will-change:transform,opacity}
.wapu-pg-fx-trail{width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:999px;background:currentColor;box-shadow:0 0 12px color-mix(in srgb,var(--wapu-pg-fx-accent) 28%,transparent);animation:wapuPgTrail .62s ease-out forwards}
.wapu-pg-fx-trail--ring{background:transparent;border:1.5px solid currentColor}.wapu-pg-fx-trail--spark{width:auto;height:auto;margin:-8px 0 0 -6px;background:transparent;box-shadow:none}.wapu-pg-fx-trail--spark:before{content:"✦";font-size:13px;line-height:1}
@keyframes wapuPgTrail{0%{transform:scale(1);opacity:.62}100%{transform:translate3d(0,12px,0) scale(.2);opacity:0}}
.wapu-pg-fx-click{width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:999px;background:currentColor;animation:wapuPgClick .52s cubic-bezier(.2,.8,.2,1) forwards}.wapu-pg-fx-click--ring{background:transparent;border:1.5px solid currentColor}.wapu-pg-fx-click--spark{background:transparent}.wapu-pg-fx-click--spark:before{content:"✦";position:absolute;inset:-4px;font-size:12px;line-height:1}
@keyframes wapuPgClick{0%{transform:translate3d(0,0,0) scale(.55);opacity:.92}100%{transform:translate3d(var(--dx),var(--dy),0) scale(.15);opacity:0}}

/* Arc · Fase 4.2: presets visuales sobre un único runtime canónico. */
.wapu-pg-fx-arc{--wapu-pg-arc-safe-shift:0px;--wapu-pg-arc-pointer-x:0px;--wapu-pg-arc-pointer-y:0px;position:fixed;z-index:9998;width:var(--wapu-pg-arc-size,80px);height:var(--wapu-pg-arc-size,80px);pointer-events:auto;opacity:0;transform:scale(.94);transition:opacity .28s ease,transform .28s cubic-bezier(.2,.8,.2,1);isolation:isolate}
.wapu-pg-fx-arc.is-visible{opacity:1;transform:scale(1)}.wapu-pg-fx-arc.waits-scroll:not(.is-visible),.wapu-pg-fx-arc.is-footer-hidden{opacity:0;pointer-events:none;transform:scale(.92)}
.wapu-pg-fx-arc--br{right:max(24px,env(safe-area-inset-right));bottom:calc(max(24px,env(safe-area-inset-bottom)) + var(--wapu-pg-arc-safe-shift))}.wapu-pg-fx-arc--bl{left:max(24px,env(safe-area-inset-left));bottom:calc(max(24px,env(safe-area-inset-bottom)) + var(--wapu-pg-arc-safe-shift))}.wapu-pg-fx-arc--tr{right:max(24px,env(safe-area-inset-right));top:calc(max(24px,env(safe-area-inset-top)) + var(--wapu-pg-arc-safe-shift))}.wapu-pg-fx-arc--tl{left:max(24px,env(safe-area-inset-left));top:calc(max(24px,env(safe-area-inset-top)) + var(--wapu-pg-arc-safe-shift))}
.wapu-pg-fx-arc__link{position:relative;display:block;width:100%;height:100%;border-radius:50%;text-decoration:none;outline-offset:5px}.wapu-pg-fx-arc__link:focus-visible{outline:3px solid color-mix(in srgb,var(--wapu-pg-fx-accent) 44%,#fff)}
.wapu-pg-fx-arc__svg{position:relative;z-index:2;display:block;width:100%;height:100%;filter:drop-shadow(0 8px 24px rgba(15,23,42,.16));transition:transform .2s ease}.wapu-pg-fx-arc:hover .wapu-pg-fx-arc__svg{transform:scale(1.04)}
.wapu-pg-fx-arc__disc{fill:var(--wapu-pg-arc-bg,var(--wapu-pg-fx-accent))}.wapu-pg-fx-arc__rotating{transform-origin:center;animation:wapuPgArcSpin var(--wapu-pg-arc-speed,10s) linear infinite;will-change:transform}.wapu-pg-fx-arc--dir-ccw .wapu-pg-fx-arc__rotating{animation-direction:reverse}.wapu-pg-fx-arc__rotating.is-static,#wapu-pg-effects-mount.is-paused .wapu-pg-fx-arc__rotating{animation-play-state:paused}.wapu-pg-fx-arc.pause-hover:hover .wapu-pg-fx-arc__rotating{animation-play-state:paused}
.wapu-pg-fx-arc__text{fill:var(--wapu-pg-arc-text,#fff);font:700 32px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:4px;text-transform:uppercase}
.wapu-pg-fx-arc__center{--wapu-pg-arc-center-scale:1;position:absolute;z-index:4;left:50%;top:50%;display:grid;place-items:center;max-width:48%;max-height:48%;color:var(--wapu-pg-arc-center,#fff);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Segoe UI Emoji",sans-serif;line-height:1;transform:translate(calc(-50% + var(--wapu-pg-arc-pointer-x)),calc(-50% + var(--wapu-pg-arc-pointer-y))) scale(var(--wapu-pg-arc-center-scale));transition:transform .18s ease;will-change:transform}.wapu-pg-fx-arc:hover .wapu-pg-fx-arc__center{--wapu-pg-arc-center-scale:1.07}.wapu-pg-fx-arc__center--emoji,.wapu-pg-fx-arc__center--icon{font-size:calc(var(--wapu-pg-arc-size,80px) * .31)}.wapu-pg-fx-arc__center--text{font-size:calc(var(--wapu-pg-arc-size,80px) * .12);font-weight:900;letter-spacing:.06em;text-transform:uppercase}.wapu-pg-fx-arc__center img{display:block;width:calc(var(--wapu-pg-arc-size,80px) * .38);height:calc(var(--wapu-pg-arc-size,80px) * .38);object-fit:contain;border-radius:50%}
@keyframes wapuPgArcSpin{to{transform:rotate(360deg)}}

/* Presets: cambian personalidad, no crean motores paralelos. */
.wapu-pg-fx-arc--soft .wapu-pg-fx-arc__svg{filter:drop-shadow(0 8px 22px rgba(15,23,42,.14))}
.wapu-pg-fx-arc--glow .wapu-pg-fx-arc__link:before{content:"";position:absolute;z-index:0;inset:-8px;border-radius:50%;background:color-mix(in srgb,var(--wapu-pg-fx-accent) 22%,transparent);filter:blur(10px);opacity:.38;animation:wapuPgArcGlow 3.2s ease-in-out infinite}.wapu-pg-fx-arc--glow .wapu-pg-fx-arc__svg{filter:drop-shadow(0 8px 26px color-mix(in srgb,var(--wapu-pg-fx-accent) 25%,transparent))}@keyframes wapuPgArcGlow{50%{opacity:.72;transform:scale(1.08)}}
.wapu-pg-fx-arc--float .wapu-pg-fx-arc__link{animation:wapuPgArcFloat 4.4s ease-in-out infinite}@keyframes wapuPgArcFloat{50%{transform:translateY(-4px)}}
.wapu-pg-fx-arc--orbit .wapu-pg-fx-arc__svg{filter:drop-shadow(0 9px 24px rgba(15,23,42,.15))}
.wapu-pg-fx-arc__orbit{position:absolute;z-index:5;inset:-5px;display:block;color:var(--wapu-pg-fx-accent);font-style:normal;font-size:calc(var(--wapu-pg-arc-size,80px) * .13);line-height:1;text-align:center;pointer-events:none;animation:wapuPgArcOrbit 5.8s linear infinite;filter:drop-shadow(0 2px 5px rgba(15,23,42,.14))}@keyframes wapuPgArcOrbit{to{transform:rotate(360deg)}}
.wapu-pg-fx-arc--spark .wapu-pg-fx-arc__svg{filter:drop-shadow(0 8px 22px color-mix(in srgb,var(--wapu-pg-fx-accent) 16%,transparent))}
.wapu-pg-fx-arc__spark{position:absolute;z-index:5;right:-2%;top:2%;color:var(--wapu-pg-fx-accent);font-style:normal;font-size:calc(var(--wapu-pg-arc-size,80px) * .18);line-height:1;pointer-events:none;opacity:0;animation:wapuPgArcSpark 3.6s ease-in-out infinite}@keyframes wapuPgArcSpark{0%,62%,100%{opacity:0;transform:scale(.4) rotate(-10deg)}72%{opacity:.95;transform:scale(1.15) rotate(8deg)}82%{opacity:.45;transform:scale(.82) rotate(0)}}
.wapu-pg-fx-arc--glass .wapu-pg-fx-arc__disc{fill:color-mix(in srgb,var(--wapu-pg-fx-accent) 14%,rgba(255,255,255,.72));stroke:color-mix(in srgb,var(--wapu-pg-fx-accent) 38%,rgba(255,255,255,.8));stroke-width:6}.wapu-pg-fx-arc--glass .wapu-pg-fx-arc__text{fill:var(--wapu-pg-fx-accent)}.wapu-pg-fx-arc--glass .wapu-pg-fx-arc__svg{filter:drop-shadow(0 10px 26px rgba(15,23,42,.13))}
.wapu-pg-fx-arc--cta .wapu-pg-fx-arc__link{animation:wapuPgArcCta 4.6s ease-in-out infinite}@keyframes wapuPgArcCta{0%,78%,100%{transform:scale(1)}84%{transform:scale(1.055)}90%{transform:scale(.985)}}

/* Entrada elegible; sólo se aplica al pasar a visible. */
.wapu-pg-fx-arc.is-visible.wapu-pg-fx-arc--entry-pop{animation:wapuPgArcEntryPop .46s cubic-bezier(.34,1.56,.64,1)}.wapu-pg-fx-arc.is-visible.wapu-pg-fx-arc--entry-float{animation:wapuPgArcEntryFloat .48s ease-out}.wapu-pg-fx-arc.is-visible.wapu-pg-fx-arc--entry-soft{animation:wapuPgArcEntrySoft .34s ease-out}.wapu-pg-fx-arc--entry-none{transition:none}@keyframes wapuPgArcEntryPop{from{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@keyframes wapuPgArcEntryFloat{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes wapuPgArcEntrySoft{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}

@media(max-width:767px){.wapu-pg-fx-arc:not(.show-mobile){display:none!important}.wapu-pg-fx-arc.show-mobile{width:min(72px,var(--wapu-pg-arc-size,80px));height:min(72px,var(--wapu-pg-arc-size,80px))}.wapu-pg-fx-arc--br,.wapu-pg-fx-arc--tr{right:max(16px,env(safe-area-inset-right))}.wapu-pg-fx-arc--bl,.wapu-pg-fx-arc--tl{left:max(16px,env(safe-area-inset-left))}.wapu-pg-fx-arc--br,.wapu-pg-fx-arc--bl{bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--wapu-pg-arc-safe-shift))}.wapu-pg-fx-arc--tr,.wapu-pg-fx-arc--tl{top:calc(max(16px,env(safe-area-inset-top)) + var(--wapu-pg-arc-safe-shift))}}
@media(prefers-reduced-motion:reduce){.wapu-pg-fx-trail,.wapu-pg-fx-click{display:none}.wapu-pg-fx-arc{transition:none;animation:none!important}.wapu-pg-fx-arc__rotating,.wapu-pg-fx-arc__link,.wapu-pg-fx-arc__link:before,.wapu-pg-fx-arc__orbit,.wapu-pg-fx-arc__spark{animation:none!important}.wapu-pg-fx-arc__center{transition:none!important}}
.wapu-pg-fx-arc.is-no-motion{transition:none}.wapu-pg-fx-arc.is-no-motion,.wapu-pg-fx-arc.is-no-motion .wapu-pg-fx-arc__rotating,.wapu-pg-fx-arc.is-no-motion .wapu-pg-fx-arc__link,.wapu-pg-fx-arc.is-no-motion .wapu-pg-fx-arc__link:before,.wapu-pg-fx-arc.is-no-motion .wapu-pg-fx-arc__orbit,.wapu-pg-fx-arc.is-no-motion .wapu-pg-fx-arc__spark{animation:none!important}
.wapu-pg-has-custom-cursor :where(input,select,textarea){cursor:none!important}
