:root{
  /* signal — electric lime, identical in both themes */
  --lime:#C8FF00;
  --maxw:1180px;

  /* dark (default) */
  --bg:#0B0B0C; --bg-2:#121214;
  --fg:#fff;
  --accent:#C8FF00;                 /* signal as readable text accent */
  --muted:rgba(255,255,255,.52); --muted-2:rgba(255,255,255,.34);
  --line:rgba(255,255,255,.12);
  --grain-blend:overlay; --grain-opacity:.05;
  /* "Señal del día" card — inverts to light paper on the dark page */
  --card-bg:#F3F2EC; --card-fg:#0B0B0C; --card-sub:#33332c;
  --card-tag:#6b6b60; --card-line:rgba(0,0,0,.1);
  --card-shadow:0 40px 120px rgba(0,0,0,.5);
  color-scheme:dark;
}
html[data-theme="light"]{
  /* light — same directive: paper page, lime stays the signal,
     the sample card inverts the other way (to ink) to keep the contrast */
  --bg:#FFFFFF; --bg-2:#F4F3EF;
  --fg:#15150F;
  --accent:#5C7A00;                 /* darkened signal so it reads on white */
  --muted:rgba(20,20,12,.60); --muted-2:rgba(20,20,12,.40);
  --line:rgba(11,11,12,.12);
  --grain-blend:multiply; --grain-opacity:.035;
  --card-bg:#0B0B0C; --card-fg:#F3F2EC; --card-sub:#cdccc2;
  --card-tag:#8a8a7e; --card-line:rgba(255,255,255,.14);
  --card-shadow:0 18px 44px rgba(20,20,15,.13);
  color-scheme:light;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font-family:Inter,system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;line-height:1.5;
  transition:background-color .45s ease,color .45s ease}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.mono{font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.18em;font-size:11px}

/* grain overlay */
.grain{position:fixed;inset:0;pointer-events:none;z-index:60;opacity:var(--grain-opacity);mix-blend-mode:var(--grain-blend);
  background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22120%22 height=%22120%22%3E%3Cfilter id=%22n%22%3E%3CfeTurbulence type=%22fractalNoise%22 baseFrequency=%220.9%22 numOctaves=%222%22/%3E%3C/filter%3E%3Crect width=%22100%25%22 height=%22100%25%22 filter=%22url(%23n)%22/%3E%3C/svg%3E")}

/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:20px 28px;mix-blend-mode:difference}
nav .brand{font-family:"Space Mono",monospace;font-weight:700;letter-spacing:.02em;font-size:14px;color:#fff}
nav .brand b{color:var(--lime)}
nav .navcta{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid #fff;border-radius:100px;padding:8px 16px;color:#fff;transition:.25s}
nav .nav-right{display:flex;align-items:center;gap:14px}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  border:1px solid #fff;border-radius:50%;background:transparent;color:#fff;cursor:pointer;padding:0;
  transition:transform .25s,background-color .25s}
.theme-toggle:hover{transform:rotate(20deg) scale(1.06)}
.theme-toggle svg{width:17px;height:17px;display:block}
.theme-toggle .ico-moon{display:none}
html[data-theme="light"] .theme-toggle .ico-sun{display:none}
html[data-theme="light"] .theme-toggle .ico-moon{display:block}

/* HERO */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden}
.hero-inner{position:relative;z-index:3;width:100%;text-align:center}
.hero .kicker{color:var(--accent);margin-bottom:26px;display:flex;align-items:center;justify-content:center;gap:12px}
.hero .kicker span.dot{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 14px var(--lime);
  animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
/* the signal phrase is the hero — centred, two deliberate lines, "Señal" set apart in lime */
.hero h1.hero-h1{font-family:Fraunces,serif;font-weight:300;font-size:clamp(46px,9vw,108px);line-height:.98;
  letter-spacing:-.02em;margin:0 0 14px;text-align:center}
.hero h1.hero-h1 em{font-style:italic;font-weight:600;color:var(--accent)}
.hero .brandline{color:var(--muted-2);margin:2px 0 26px}
/* intro — the sea of noise that fills the screen, then is body-checked off every
   edge by the shockwave (Onda de Choque) so the signal resolves at the cleared centre */
#intro{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden;will-change:transform,opacity}
.intro-frag{position:absolute;font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.04em;
  color:var(--fg);white-space:nowrap;will-change:transform,opacity,filter}
/* the shockwave ring + reactor bloom — drawn in canvas, above the noise, below nothing else */
#shock{position:fixed;inset:0;width:100%;height:100%;z-index:6;pointer-events:none}
html.intro .hero-inner{opacity:0}
/* safety: if the intro errors out, force the hero copy visible past any inline GSAP styles */
html.no-intro .hero-h1,html.no-intro .hero-step{visibility:visible!important;opacity:1!important;transform:none!important;filter:none!important}
.hero p.sub{max-width:560px;margin:0 auto;font-size:clamp(15px,1.5vw,18px);color:var(--muted);line-height:1.6;text-wrap:pretty}
.hero .actions{margin-top:40px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:center}
.btn{font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.12em;font-size:12px;
  padding:16px 26px;border-radius:100px;display:inline-flex;align-items:center;gap:10px;transition:.25s;cursor:pointer;border:1px solid transparent}
.btn-lime{background:var(--lime);color:#0B0B0C;font-weight:700}
.btn-ghost{border-color:var(--line);color:var(--fg)}
.btn-lime:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(200,255,0,.28)}
.btn-ghost:hover{border-color:var(--fg)}
.hero .arrow{transition:transform .25s}
.btn:hover .arrow{transform:translateX(4px)}
.scrollcue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:3;color:var(--muted-2);
  font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px}
.scrollcue i{width:1px;height:34px;background:linear-gradient(var(--accent),transparent);display:block;animation:cue 1.8s infinite}
@keyframes cue{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}}

/* reveal */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* sections */
section{position:relative;z-index:3}
.band{padding:120px 0;border-top:1px solid var(--line)}
.eyebrow{color:var(--accent);margin-bottom:22px}
.h2{font-family:Fraunces,serif;font-weight:300;font-size:clamp(34px,5.5vw,68px);line-height:1.02;letter-spacing:-.02em}
.h2 em{font-style:italic;font-weight:600;color:var(--accent)}
.lead{max-width:620px;color:var(--muted);font-size:clamp(16px,1.7vw,19px);margin-top:24px;line-height:1.65}

.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:70px;background:var(--line);border:1px solid var(--line)}
.cell{background:var(--bg);padding:40px 34px;min-height:300px;display:flex;flex-direction:column;transition:background-color .4s}
.cell:hover{background:var(--bg-2)}
.cell .num{font-family:"Space Mono",monospace;color:var(--accent);font-size:12px;letter-spacing:.1em}
.cell h3{font-family:Fraunces,serif;font-weight:400;font-size:30px;margin:auto 0 14px;line-height:1.05}
.cell p{color:var(--muted);font-size:15px;line-height:1.6}

/* señal sample */
.sample{background:var(--card-bg);color:var(--card-fg);border-radius:22px;padding:clamp(28px,4vw,52px);max-width:720px;margin:60px auto 0;
  box-shadow:var(--card-shadow);position:relative;transition:background-color .45s ease,color .45s ease}
.sample .tag{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--card-tag);display:flex;justify-content:space-between}
.sample .tag b{color:var(--card-fg)}
.sample h4{font-family:Fraunces,serif;font-weight:600;font-size:clamp(24px,3.4vw,34px);line-height:1.12;margin:18px 0 16px;letter-spacing:-.01em}
.sample .body{font-size:16px;line-height:1.7;color:var(--card-sub)}
.sample .hl{background:var(--lime);padding:0 4px;border-radius:3px;color:#0B0B0C;font-weight:500}

/* curadores */
.people{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:70px;background:var(--line);border:1px solid var(--line)}
.person{background:var(--bg);padding:44px 38px;transition:background-color .4s}
.person:hover{background:var(--bg-2)}
.person .av{width:clamp(160px,22vw,200px);height:clamp(160px,22vw,200px);border-radius:50%;object-fit:cover;object-position:center top;display:block;
  margin-bottom:28px;border:1px solid var(--line)}
.person h3{font-family:Fraunces,serif;font-weight:400;font-size:26px;margin-bottom:4px}
.person .role{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.person p{color:var(--muted);font-size:15px;line-height:1.6}
.person .socials{display:flex;gap:18px;margin-top:18px}
.person .socials a{display:inline-flex;opacity:.7;transition:opacity .2s,transform .2s}
.person .socials a:hover{opacity:1;transform:translateY(-2px)}
.person .socials img{height:20px;width:auto;display:block}
[data-theme="light"] .person .socials img{filter:invert(1)}  /* white glyphs → black on paper */

/* CTA */
.cta{padding:140px 0;text-align:center;border-top:1px solid var(--line);position:relative;overflow:hidden}
.cta .big{font-family:Fraunces,serif;font-weight:300;font-size:clamp(40px,8vw,96px);line-height:.98;letter-spacing:-.02em}
.cta .big em{font-style:italic;font-weight:600;color:var(--accent)}
.cta p{max-width:520px;margin:28px auto 40px;color:var(--muted);font-size:17px;line-height:1.6}
.cta .fomo{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-top:30px}

footer{border-top:1px solid var(--line);padding:46px 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
footer .fl{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}
footer .fl b{color:var(--accent)}

@media(max-width:820px){
  .grid3{grid-template-columns:1fr}.people{grid-template-columns:1fr}
  .band{padding:84px 0}.cta{padding:100px 0}
  nav .navcta{display:none}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1!important;filter:none!important;transform:none!important}
  #intro,#shock{display:none}
}

/* Señal del día — mazo apilado que se baraja (efecto carrusel 3D) */
.deck{width:min(400px,84vw);margin:52px auto 0;--deck-gap:clamp(40px,13vw,170px)}
.deck-stage{position:relative;height:clamp(490px,72vh,520px);perspective:1400px}
.deck-stage .sample{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;
  display:flex;flex-direction:column;overflow:hidden;cursor:pointer;
  transform-style:preserve-3d;will-change:transform,opacity;
  transition:transform .8s cubic-bezier(.34,1.32,.36,1),opacity .55s ease}
.deck-stage .sample h4{font-size:clamp(22px,3vw,30px);margin:16px 0 14px}
.deck-stage .sample .body{font-size:15px}
.deck-nav{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:34px}
.deck-arrow{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:var(--bg-2);
  color:var(--fg);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;
  transition:transform .2s,background-color .25s,border-color .25s,color .25s}
.deck-arrow:hover{background:var(--lime);color:#0B0B0C;border-color:var(--lime);transform:translateY(-2px)}
.deck-arrow svg{width:18px;height:18px;display:block}
.deck-count{color:var(--muted);min-width:62px;text-align:center;letter-spacing:.18em}
