/* ===========================================================================
   RUIDO CERO TRADING — sistema del sitio
   Dirección aprobada (memoria maestra, 26-ago-2026). Solo estos colores:
   Obsidian #070909 · Obsidian 2 #080A0B · Graphite #14171A
   Bone #F2F1EC · Secundario #A3ACAA · Línea #28312F · Signal Green #B9FF32
   Sin colores inventados: --line2 y --ti2 se derivan de los tokens de arriba.
   Space Grotesk (branding/UI) · IBM Plex Mono (datos/terminal)
   Nada de naranja/ámbar. Nada de acentos fuera de esta lista.
   ========================================================================= */

:root{
  --ob:#070909;          /* fondo principal canónico */
  --ob2:#080A0B;         /* obsidian secundario / superficie */
  --graphite:#14171A;    /* paneles */
  --line:#28312F;        /* border / UI line (BRAND SOURCE OF TRUTH §5) */
  --line2:#3A4442;       /* línea de énfasis, derivada de --line */
  --bone:#F2F1EC;        /* texto principal */
  --ti:#A3ACAA;          /* texto secundario (BRAND SOURCE OF TRUTH §5) */
  --ti2:color-mix(in srgb, #A3ACAA 60%, #070909);  /* terciario, derivado de --ti */
  --sg:#B9FF32;          /* Signal Green */
  --sg-dim:rgba(185,255,50,.10);
  --sg-line:rgba(185,255,50,.26);
  --nav:78px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:calc(var(--nav) + 16px); background:var(--ob);}
body{
  margin:0; background:var(--ob); color:var(--bone);
  font-family:"Space Grotesk","Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--sg); color:var(--ob);}
a{color:inherit;}
:focus-visible{outline:2px solid var(--sg); outline-offset:3px;}
img,svg,video{max-width:100%;}

/* ---------- tipografía ---------- */
h1,h2,h3,h4{margin:0; font-weight:700; line-height:.92; letter-spacing:-.055em; text-wrap:balance;}
h1{font-size:clamp(3.1rem,7.4vw,6.6rem); text-transform:uppercase;}
h2{font-size:clamp(2.3rem,5.4vw,4.6rem); text-transform:uppercase;}
h3{font-size:1.45rem; letter-spacing:-.035em; line-height:1.05;}
h4{font-size:1rem; letter-spacing:-.02em;}
p{margin:0;}
.mono{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}
.kicker{
  font-family:"IBM Plex Mono",monospace; font-size:.66rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--sg);
  display:inline-flex; align-items:center; gap:9px;
}
.kicker.mute{color:var(--ti2);}
.lbl{font-family:"IBM Plex Mono",monospace; font-size:.63rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--ti2);}
.lead{font-size:clamp(1rem,1.35vw,1.12rem); line-height:1.68; color:var(--ti);}
.lead strong{color:var(--bone); font-weight:500;}
.small{font-size:.9rem; line-height:1.62; color:var(--ti);}
.tiny{font-size:.78rem; line-height:1.55; color:var(--ti2);}
.sg{color:var(--sg);}
.dot{width:6px; height:6px; border-radius:50%; background:var(--sg); flex:0 0 auto;}
.dot.off{background:var(--ti2);}

/* ---------- estructura ---------- */
.shell{width:min(1420px,92vw); margin:0 auto;}
section{padding:clamp(84px,10vw,140px) 0; border-top:1px solid var(--line);}
.sec-head{display:grid; gap:7vw; grid-template-columns:1fr; align-items:end; margin-bottom:clamp(38px,5vw,64px);}
@media(min-width:920px){ .sec-head{grid-template-columns:1.18fr .82fr;} }
.sec-head h2{margin-top:18px;}
.sec-intro{color:var(--ti); font-size:.94rem; line-height:1.72; max-width:46ch;}
.grid{display:grid; gap:12px;}
.g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.g4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));}
.panel{background:var(--ob2); border:1px solid var(--line);}
.pad{padding:clamp(22px,2.4vw,32px);}

/* ---------- topline ---------- */
.topline{height:32px; border-bottom:1px solid var(--line); overflow:hidden; display:flex; align-items:center;}
.tape{display:flex; gap:30px; white-space:nowrap; animation:tape 34s linear infinite;
  font-family:"IBM Plex Mono",monospace; font-size:.6rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ti2);}
.tape b{font-weight:500; color:var(--ti);} .tape i{font-style:normal; color:var(--sg);}
@keyframes tape{from{transform:translateX(0)} to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){ .tape{animation:none;} }

/* ---------- nav ---------- */
nav.bar{position:sticky; top:0; z-index:60; height:var(--nav);
  background:rgba(7,9,9,.9); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.bar-in{width:min(1420px,92vw); margin:0 auto; height:var(--nav);
  display:flex; align-items:center; gap:26px;}
.brand{display:flex; align-items:center; text-decoration:none; flex:0 0 auto;}
.brand img{height:26px; width:auto; display:block;}
.bar-links{display:none; gap:26px; margin-left:10px;}
@media(min-width:1040px){ .bar-links{display:flex;} }
.bar-links a{font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ti2); text-decoration:none; padding:4px 0;
  border-bottom:1px solid transparent; transition:color .16s,border-color .16s;}
.bar-links a:hover{color:var(--bone);}
.bar-links a.act{color:var(--bone); border-bottom-color:var(--sg);}
.bar-right{margin-left:auto; display:flex; align-items:center; gap:14px;}
.bar-status{display:none; align-items:center; gap:8px;}
@media(min-width:720px){ .bar-status{display:flex;} }

/* ---------- botones ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:15px 20px; text-decoration:none; border:1px solid transparent;
  font-family:"IBM Plex Mono",monospace; font-size:.7rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:.18s;}
.btn.primary{background:var(--sg); color:var(--ob); border-color:var(--sg);}
.btn.primary:hover{transform:translateY(-2px);}
.btn.ghost{border-color:var(--line2); color:var(--bone); background:transparent;}
.btn.ghost:hover{border-color:var(--ti2);}
.btn.small{padding:11px 15px; font-size:.65rem;}
/* enlace todavía sin url: nunca es un <a> muerto */
.pending{display:inline-flex; align-items:center; gap:9px; padding:15px 20px;
  border:1px dashed var(--line2); color:var(--ti2); cursor:default;
  font-family:"IBM Plex Mono",monospace; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;}
.pending::after{content:"PRONTO"; color:var(--sg); font-size:.58rem; letter-spacing:.14em;
  border:1px solid var(--sg-line); padding:2px 6px;}
.pending.small{padding:11px 15px; font-size:.65rem;}

/* ---------- hero ---------- */
.hero{border-top:0; display:grid; gap:6vw; grid-template-columns:1fr;
  padding:clamp(52px,6vw,84px) 0 clamp(70px,8vw,110px); align-items:center;}
@media(min-width:1040px){ .hero{grid-template-columns:.94fr 1.06fr;} }
.hero h1{margin:24px 0 16px;}
/* La señal del hero: el mismo gesto del intro animado, nativo y sin video.
   Corre una vez al cargar y queda en reposo como una regla Signal Green. */
#heroSignal{display:block; width:100%; max-width:520px; height:30px; margin:0 0 22px;}
.hero h1 .sg{color:var(--sg);}
.actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:30px;}
.metadata{margin-top:clamp(40px,5vw,64px); display:grid; grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.metadata div{padding:17px 0; border-right:1px solid var(--line);}
.metadata div:nth-child(n+2){padding-left:18px;}
.metadata div:last-child{border-right:0;}
.metadata span{display:block; font-family:"IBM Plex Mono",monospace; font-size:.58rem;
  letter-spacing:.13em; color:var(--ti2);}
.metadata b{display:block; margin-top:7px; font-family:"IBM Plex Mono",monospace;
  font-size:.76rem; font-weight:700; color:var(--bone);}
@media(max-width:600px){ .metadata{grid-template-columns:1fr}
  .metadata div,.metadata div:nth-child(n+2){padding:13px 0; border-right:0; border-bottom:1px solid var(--line);} }

/* ---------- terminal R0 DESK ---------- */
.term{border:1px solid var(--line2); background:linear-gradient(180deg,var(--graphite),var(--ob2));
  font-family:"IBM Plex Mono",monospace; position:relative;}
.term-head{display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:14px 16px;
  border-bottom:1px solid var(--line); font-size:.63rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ti2);}
.term-head b{color:var(--bone); font-weight:600;}
.chip{border:1px solid var(--sg-line); color:var(--sg); padding:3px 7px; font-size:.56rem; letter-spacing:.14em;}
.chip.mute{border-color:var(--line2); color:var(--ti2);}
.term-market{display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:22px 18px 10px;}
.term-market small{display:block; font-size:.58rem; letter-spacing:.13em; color:var(--ti2); text-transform:uppercase;}
.term-market h3{font-family:"IBM Plex Mono",monospace; font-size:1.3rem; margin-top:8px; letter-spacing:-.01em;}
.term-market .q{text-align:right;}
.term-market .q strong{display:block; font-size:1.4rem; font-weight:600; font-variant-numeric:tabular-nums;}
.term-market .q em{font-style:normal; font-size:.7rem; color:var(--sg);}
#deskChart{display:block; width:100%; height:clamp(200px,26vw,290px);}
.term-row{display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line);}
.term-row div{padding:15px 16px; border-right:1px solid var(--line);}
.term-row div:last-child{border-right:0;}
.term-row span{display:block; font-size:.57rem; letter-spacing:.12em; color:var(--ti2); text-transform:uppercase;}
.term-row b{display:block; margin-top:7px; font-size:.86rem; font-weight:700; font-variant-numeric:tabular-nums;}
@media(max-width:620px){ .term-row{grid-template-columns:1fr 1fr}
  .term-row div:nth-child(2){border-right:0} .term-row div:nth-child(-n+2){border-bottom:1px solid var(--line)} }

/* ---------- señal contra ruido ---------- */
.signal-grid{display:grid; gap:6vw; grid-template-columns:1fr; align-items:center;}
@media(min-width:920px){ .signal-grid{grid-template-columns:.82fr 1.18fr;} }
.noise-box{border:1px solid var(--line); background:var(--ob2); position:relative; overflow:hidden;}
.noise-bar{display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:11px 15px;
  border-bottom:1px solid var(--line); font-family:"IBM Plex Mono",monospace;
  font-size:.62rem; letter-spacing:.11em; text-transform:uppercase; color:var(--ti2);}
#noiseChart{display:block; width:100%; height:clamp(270px,34vw,400px);}
.noise-ctrl{display:flex; align-items:center; gap:16px; padding:16px 15px; border-top:1px solid var(--line);}
.noise-ctrl .lbl{white-space:nowrap;}
.noise-ctrl input[type=range]{flex:1; accent-color:var(--sg); height:22px; cursor:pointer;}
.noise-ctrl output{font-family:"IBM Plex Mono",monospace; font-size:1.5rem; font-weight:700;
  color:var(--sg); min-width:2.4ch; text-align:right; font-variant-numeric:tabular-nums;}
.ovl-list{display:flex; flex-wrap:wrap; gap:5px; padding:0 15px 15px;}
.ovl-list span{font-family:"IBM Plex Mono",monospace; font-size:.58rem; letter-spacing:.09em;
  text-transform:uppercase; padding:3px 8px; border:1px solid var(--line2); color:var(--ti2);
  transition:opacity .2s;}
.ovl-list span.dead{opacity:.25; text-decoration:line-through;}

/* ---------- the system ---------- */
.flow{font-family:"IBM Plex Mono",monospace; font-size:.72rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ti2); margin-bottom:22px;}
.flow b{color:var(--bone); font-weight:600;} .flow i{font-style:normal; color:var(--sg); margin:0 8px;}
.cards3{display:grid; gap:12px; grid-template-columns:1fr;}
@media(min-width:860px){ .cards3{grid-template-columns:repeat(3,1fr);} }
.card{border:1px solid var(--line); background:var(--ob2); padding:28px; min-height:330px;
  display:flex; flex-direction:column; position:relative; overflow:hidden; transition:.22s;}
.card:hover{border-color:var(--line2); transform:translateY(-3px);}
.card .idx{font-family:"IBM Plex Mono",monospace; font-size:.62rem; letter-spacing:.12em; color:var(--ti2);}
.card h3{margin-top:auto; margin-bottom:12px;}
.card p{color:var(--ti); font-size:.93rem; line-height:1.65;}
.card .tag{margin-top:20px; font-family:"IBM Plex Mono",monospace; font-size:.58rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--sg);}
.card.featured{border-color:var(--sg-line); background:linear-gradient(160deg,var(--ob2),var(--ob2) 62%,var(--sg-dim));}

/* ---------- desk / funded / lab ---------- */
.split{display:grid; gap:6vw; grid-template-columns:1fr; align-items:start;}
@media(min-width:920px){ .split{grid-template-columns:.82fr 1.18fr;} }
.split.rev{grid-template-columns:1fr;}
@media(min-width:920px){ .split.rev{grid-template-columns:1.18fr .82fr;} }
.stepline{display:grid; gap:0;}
.step{display:grid; grid-template-columns:118px 1fr; gap:18px; padding:20px 0;
  border-bottom:1px solid var(--line); align-items:start;}
.step:last-child{border-bottom:0;}
.step .k{font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.13em;
  text-transform:uppercase; color:var(--sg);}
.step h4{margin-bottom:6px;}
.tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:24px;}
.tags span{border:1px solid var(--line2); padding:8px 11px; color:var(--ti);
  font-family:"IBM Plex Mono",monospace; font-size:.6rem; letter-spacing:.11em; text-transform:uppercase;}
.acct{border:1px solid var(--line2); background:var(--ob2); font-family:"IBM Plex Mono",monospace;}
.acct-head{display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:13px 16px; border-bottom:1px solid var(--line);
  font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ti2);}
.acct-row{padding:20px 16px; border-bottom:1px solid var(--line);}
.acct-row:last-child{border-bottom:0;}
.acct-row small{display:block; font-size:.58rem; letter-spacing:.13em; color:var(--ti2); text-transform:uppercase;}
.acct-row strong{display:block; margin-top:8px; font-size:2rem; font-weight:700; font-variant-numeric:tabular-nums;}
.acct-row.key strong{color:var(--sg);}
.acct-row p{margin-top:8px; font-size:.72rem; color:var(--ti2); font-family:"Space Grotesk",sans-serif;}
.acct-mini div{display:flex; justify-content:space-between; padding:13px 16px;
  border-bottom:1px solid var(--line); font-size:.72rem;}
.acct-mini div:last-child{border-bottom:0;}
.acct-mini span{color:var(--ti2);}
.acct-mini b{font-weight:700; font-variant-numeric:tabular-nums;}

/* ---------- lab ---------- */
.lab{display:grid; gap:11px; grid-template-columns:1fr;}
@media(min-width:760px){ .lab{grid-template-columns:1fr 1fr;} }
@media(min-width:1080px){ .lab{grid-template-columns:1.5fr repeat(3,1fr);} }
.labcard{border:1px solid var(--line); background:var(--ob2); padding:24px; min-height:220px;
  display:flex; flex-direction:column; font-family:"IBM Plex Mono",monospace;}
.labcard small{font-size:.58rem; letter-spacing:.13em; text-transform:uppercase; color:var(--ti2);}
.labcard>strong{display:block; margin-top:auto; font-size:2.1rem; font-weight:700; font-variant-numeric:tabular-nums;}
.labcard p{margin-top:10px; font-family:"Space Grotesk",sans-serif; font-size:.8rem;
  line-height:1.6; color:var(--ti2);}
.labcard.main{padding:0; grid-column:1/-1;}
@media(min-width:1080px){ .labcard.main{grid-column:auto;} }
.labtop{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:13px 16px;
  border-bottom:1px solid var(--line); font-size:.58rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ti2);}
.labstat{padding:24px 16px 8px;}
.labstat b{display:block; font-size:3.1rem; font-weight:700; color:var(--sg); line-height:1; font-variant-numeric:tabular-nums;}
.labstat span{display:block; margin-top:8px; font-size:.58rem; letter-spacing:.13em; color:var(--ti2); text-transform:uppercase;}
.spark{display:flex; align-items:flex-end; gap:4px; height:78px; padding:0 16px 20px;}
.spark i{flex:1; background:var(--graphite); border-top:1px solid var(--sg); min-width:3px;}
.ninja{margin-top:14px; border:1px solid var(--sg-line); background:var(--sg-dim); padding:18px 20px;}

/* ---------- productos ---------- */
.prod{display:grid; gap:12px; grid-template-columns:1fr;}
@media(min-width:820px){ .prod{grid-template-columns:1fr 1fr;} }
.prod .card{min-height:0;}
.prod .card h3{margin-top:0;}
ul.bul{margin:16px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px;}
ul.bul li{position:relative; padding-left:18px; color:var(--ti); font-size:.9rem; line-height:1.55;}
ul.bul li::before{content:""; position:absolute; left:0; top:.66em; width:9px; height:2px; background:var(--sg);}
ul.bul li strong{color:var(--bone); font-weight:500;}

/* ---------- manifiesto ---------- */
.manifesto{padding:clamp(100px,13vw,180px) 0;}
.manifesto h2{font-size:clamp(2.6rem,7.4vw,6.4rem);}
.manifesto .outline{color:transparent; -webkit-text-stroke:1px var(--ti2);}
.manfoot{display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap;
  margin-top:clamp(40px,5vw,72px); font-family:"IBM Plex Mono",monospace;
  font-size:.65rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ti2);}

/* ---------- cierre ---------- */
.join{display:grid; gap:6vw; grid-template-columns:1fr; align-items:end;}
@media(min-width:920px){ .join{grid-template-columns:1.15fr .85fr;} }

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line); background:var(--ob2);
  padding:clamp(34px,4vw,52px) 0 clamp(44px,5vw,66px);}
.foot{display:grid; gap:28px; grid-template-columns:1fr;}
@media(min-width:820px){ .foot{grid-template-columns:1.3fr .7fr .7fr 1.3fr;} }
.foot a{display:block; color:var(--ti); text-decoration:none; font-size:.86rem; padding:3px 0;}
.foot a:hover{color:var(--sg);}
.foot .pending{padding:3px 0; border:0; display:flex; gap:8px; font-size:.72rem;}
.foot .pending::after{padding:1px 5px;}
.disclaimer{margin-top:clamp(30px,4vw,46px); padding-top:22px; border-top:1px solid var(--line);}

/* ---------- entrada ---------- */
.rv{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.rv.in{opacity:1; transform:none;}
@media(prefers-reduced-motion:reduce){ .rv{opacity:1; transform:none; transition:none;} }
