/* Capa fina (lo que Tailwind no cubre): efectos, canvas, cursor, hooks JS */
.has-cur,.has-cur *{cursor:none!important}
.cd,.cr{position:fixed;left:0;top:0;z-index:9999;pointer-events:none;border-radius:50%;mix-blend-mode:difference}
.cd{width:7px;height:7px;background:#fff;margin:-3.5px}
.cr{width:40px;height:40px;margin:-20px;border:1px solid #fff;opacity:.6;transition:width .25s,height .25s,margin .25s,opacity .25s}
.cur-on .cr{width:74px;height:74px;margin:-37px;opacity:1}
@media(pointer:coarse){.cd,.cr{display:none}}
.loader{transition:transform 1s cubic-bezier(.76,0,.24,1)}
.loader.done{transform:translateY(-100%)}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.htitle .ln{display:block;overflow:hidden;padding-bottom:.04em}
.htitle .w{display:inline-block;transform:translateY(110%)}
.mani .big span{color:#c3c5cd;transition:color .5s}
.mani .big span.on{color:#0b0c10}
.mani .big em{color:#2b34ff!important;font-style:normal}
.eco-track{will-change:transform}
.eco.nopin .eco-pin{overflow-x:auto}
.panel{transition:background .4s}
.panel .pn{color:var(--c,#2b34ff);font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.1em;font-size:12px}
.panel .pdot{width:13px;height:13px;border-radius:50%;background:var(--c,#2b34ff);box-shadow:0 0 30px var(--c,#2b34ff);margin-top:18px}
.panel:hover{background:color-mix(in srgb,var(--c,#2b34ff) 15%,transparent)}
.srow{position:relative;transition:padding .4s}
.srow::after{content:"\2197";position:absolute;right:6px;font-size:1.4rem;opacity:0;transform:translateX(-10px);transition:.4s;color:#2b34ff}
.srow:hover{padding-left:24px}.srow:hover::after{opacity:1;transform:none}.srow:hover .snm{color:#2b34ff}
.cue .d{position:relative;overflow:hidden}
.cue .d::after{content:"";position:absolute;inset:0;background:#0b0c10;animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}
.rv{opacity:0;transform:translateY(30px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
::selection{background:#2b34ff;color:#fff}
@media(prefers-reduced-motion:reduce){.htitle .w{transform:none}.rv{opacity:1!important;transform:none!important}.loader{display:none}.cue .d::after{animation:none}}

/* ===== MÓVIL ===== */
.navtoggle{display:none;font-size:24px;line-height:1;background:none;border:none;color:inherit;cursor:pointer}
.mmenu{position:fixed;inset:0;z-index:90;background:#0b0c10;color:#fff;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:0 28px;transform:translateY(-100%);transition:transform .6s cubic-bezier(.76,0,.24,1)}
.mmenu.open{transform:none}
.mmenu a{font-family:"Space Grotesk",sans-serif;font-weight:500;font-size:12vw;letter-spacing:-.02em;padding:6px 0;color:#fff}
.mmenu .mclose{position:absolute;top:22px;right:26px;font-size:30px;cursor:pointer}
.mmenu .mmono{font-family:"JetBrains Mono",monospace;text-transform:uppercase;letter-spacing:.16em;font-size:11px;color:#7e828e;margin-bottom:26px}
body.menu-open{overflow:hidden}
@media(max-width:860px){
  .navtoggle{display:inline-flex}
  /* Ecosistema en estrecho: lista vertical, sin scroll lateral */
  .eco.nopin .eco-pin{overflow:visible}
  .eco.nopin .eco-track{flex-direction:column;width:auto}
  .eco.nopin .panel{width:auto;min-height:0;border-right:none;border-bottom:1px solid #20222e;padding:34px clamp(20px,5vw,42px)}
  /* bolita de color al lado del nombre del producto (no encima) */
  .eco.nopin .panel .pdot{display:none}
  .eco.nopin .panel .pname{display:flex;align-items:center;gap:14px}
  .eco.nopin .panel .pname::before{content:"";flex:none;width:14px;height:14px;border-radius:50%;background:var(--c,#2b34ff);box-shadow:0 0 16px 2px var(--c,#2b34ff)}
  .eco-head{flex-direction:column;align-items:flex-start;gap:16px}
}

.hide-m{}
@media(max-width:860px){.hide-m{display:none!important}header.nav>nav{display:none!important}}

/* fix: menú móvil oculto por defecto (evita el "Contacto" gigante) */
.mmenu{display:none!important;transform:none!important}
.mmenu.open{display:flex!important}
.loader{position:relative;overflow:hidden}
.loader canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.7}
.loader .lg,.loader .pc{position:relative;z-index:1}
.srow::after{display:none!important}

/* cursor normal (revertido) */
.cd,.cr{display:none!important}
.has-cur,.has-cur *{cursor:auto!important}

/* ===== HERO · estrellas-producto (constelación de color, clicable, se mueven algo) ===== */
.hero .pcon{position:absolute;inset:0;z-index:3;pointer-events:none}
.hero .pstar{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:14px;height:14px;text-decoration:none;pointer-events:auto;animation:pfloat var(--fd,9s) ease-in-out infinite;animation-delay:var(--d,0s);will-change:transform}
.hero .pstar i{width:11px;height:11px;border-radius:50%;background:var(--c,#2b34ff);box-shadow:0 0 14px 3px var(--c,#2b34ff);transition:transform .25s,box-shadow .25s}
.hero .pstar b{position:absolute;top:calc(100% + 5px);left:50%;transform:translateX(-50%);font-family:'Space Grotesk',sans-serif;font-weight:500;font-size:14px;color:#fff;opacity:.85;white-space:nowrap;transition:opacity .25s,color .25s,text-shadow .25s;pointer-events:none;text-shadow:0 1px 8px rgba(0,0,0,.7)}
.hero .pstar:hover i,.hero .pstar:focus-visible i{transform:scale(1.5);box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 25%,transparent),0 0 22px 5px var(--c)}
.hero .pstar:hover b,.hero .pstar:focus-visible b{opacity:1;color:var(--c);text-shadow:0 1px 8px rgba(0,0,0,.7),0 0 16px var(--c)}
.hero .pstar:focus-visible{outline:none}
@keyframes pfloat{0%,100%{transform:translate(-50%,-50%)}33%{transform:translate(-50%,-50%) translate(8px,-9px)}66%{transform:translate(-50%,-50%) translate(-7px,7px)}}
@media(max-width:860px){.hero .pcon{display:none}}
@media(prefers-reduced-motion:reduce){.hero .pstar{animation:none}}
