/* EL ARSENAL PROBATORIO — Inmersión Sobria (design system JRCH web-alto-valor) */
:root{
  --carbon:#0A0A0B; --carbon2:#131315; --hueso:#F4F1EA; --hueso2:#C9C4B8;
  --oro:#C9A961; --oro-dim:rgba(201,169,97,.35); --linea:rgba(244,241,234,.12);
  --f-display:"Fraunces",Georgia,serif; --f-body:"Inter",system-ui,sans-serif;
  --f-mono:"IBM Plex Mono",monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
@media (prefers-reduced-motion: no-preference){ html{scroll-behavior:smooth} }
.skip{position:fixed;top:-100%;left:1rem;z-index:99;background:var(--oro);color:var(--carbon);
  padding:.6rem 1rem;font-family:var(--f-mono);font-size:.75rem;text-decoration:none;border-radius:2px;
  transition:top .2s}
.skip:focus{top:1rem}
.mininav{position:fixed;top:1.1rem;right:1.2rem;z-index:50;display:flex;gap:1rem}
.mininav a{color:var(--hueso2);text-decoration:none;font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;padding:.3rem .1rem;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.mininav a:hover,.mininav a:focus-visible{color:var(--oro);border-color:var(--oro);outline:none}
body{background:var(--carbon);color:var(--hueso);font-family:var(--f-body);
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.mono{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--oro)}
h1,h2{font-family:var(--f-display);font-weight:600;line-height:1.08}
h2{font-size:clamp(1.7rem,4vw,2.8rem);letter-spacing:-.01em}
a{color:var(--oro)}
section{position:relative}
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
[data-reveal].on{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  [data-reveal]{opacity:1;transform:none;transition:none}
}

/* ---------- HERO ---------- */
.hero{height:300vh}
.hero__sticky{position:sticky;top:0;height:100svh;overflow:hidden}
.hero__canvas,.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero__scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(10,10,11,.42) 0%,rgba(10,10,11,.18) 45%,rgba(10,10,11,.78) 100%)}
.hero__copy{position:absolute;z-index:2;left:clamp(1.2rem,7vw,7rem);bottom:clamp(3rem,12vh,8rem);max-width:44rem}
.kicker{display:block;margin-bottom:1.1rem}
.hero__title{font-size:clamp(2.6rem,8.5vw,6.4rem);font-weight:900;max-width:14ch}
.hero__lede{margin-top:1.2rem;max-width:34rem;color:var(--hueso2);font-size:clamp(.95rem,1.4vw,1.12rem)}
.hero__anchor{display:block;margin-top:1.4rem;opacity:0;transition:opacity 1.1s ease}

/* ---------- TESIS ---------- */
.tesis{padding:clamp(4rem,12vh,9rem) clamp(1.2rem,7vw,7rem)}
.tesis__card{max-width:52rem;margin:0 auto;border:1px solid var(--linea);
  border-left:3px solid var(--oro);padding:clamp(1.6rem,4vw,3rem);background:var(--carbon2)}
.tesis__card h2{margin:.7rem 0 1rem}
.tesis__card p{color:var(--hueso2)}
.tesis__card strong{color:var(--hueso)}

/* ---------- TEMAS ---------- */
.temas{padding:clamp(3rem,10vh,7rem) clamp(1.2rem,7vw,7rem)}
.temas__head{max-width:52rem;margin-bottom:2.4rem}
.temas__head h2{margin:.6rem 0 .8rem}
.temas__lede{color:var(--hueso2);max-width:38rem}
.temas__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1px;
  background:var(--linea);border:1px solid var(--linea)}
.tcard{background:var(--carbon);padding:1.3rem 1.2rem;cursor:pointer;border:0;text-align:left;
  color:var(--hueso);font-family:var(--f-body);transition:background .25s ease}
.tcard:hover,.tcard:focus-visible{background:var(--carbon2);outline:none}
.tcard:focus-visible{box-shadow:inset 0 0 0 2px var(--oro)}
.tcard__num{font-family:var(--f-mono);font-size:.68rem;color:var(--oro);letter-spacing:.12em}
.tcard__nom{display:block;font-family:var(--f-display);font-size:1.12rem;margin:.45rem 0 .3rem}
.tcard__meta{font-size:.78rem;color:var(--hueso2)}

/* ---------- ARSENAL (explorador) ---------- */
.arsenal{padding:clamp(3rem,10vh,7rem) clamp(1.2rem,7vw,7rem)}
.arsenal__head{max-width:52rem;margin-bottom:2rem}
.arsenal__head h2{margin:.6rem 0 1rem}
.stats{font-family:var(--f-mono);font-size:.75rem;color:var(--hueso2)}
.arsenal__layout{display:grid;grid-template-columns:minmax(230px,300px) 1fr;gap:2.4rem;align-items:start}
.index{max-height:78vh;overflow-y:auto;border-right:1px solid var(--linea);padding-right:1rem;
  scrollbar-width:thin;scrollbar-color:var(--oro-dim) transparent}
.index h3{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--oro);margin:1.3rem 0 .4rem}
.index h3:first-child{margin-top:0}
.index a{display:block;padding:.32rem .5rem;color:var(--hueso2);text-decoration:none;
  font-size:.86rem;border-radius:2px;transition:background .2s,color .2s}
.index a:hover{color:var(--hueso);background:var(--carbon2)}
.index a:focus-visible{color:var(--hueso);background:var(--carbon2);outline:1px solid var(--oro);outline-offset:-1px}
.index a[aria-current="true"]{color:var(--carbon);background:var(--oro);font-weight:600}
.index__filter{width:100%;background:var(--carbon2);border:1px solid var(--linea);color:var(--hueso);
  padding:.55rem .7rem;font-family:var(--f-body);font-size:.85rem;border-radius:2px;margin-bottom:.8rem}
.index__filter:focus{outline:none;border-color:var(--oro)}
.detail{min-height:24rem;border:1px solid var(--linea);padding:clamp(1.4rem,3vw,2.4rem);background:var(--carbon2)}
.detail:focus{outline:none}
@media (prefers-reduced-motion: no-preference){
  .detail--in{animation:detIn .45s ease}
  @keyframes detIn{from{opacity:.25;transform:translateY(10px)}to{opacity:1;transform:none}}
}
.detail .d-sec{font-family:var(--f-mono);font-size:.72rem;color:var(--oro);letter-spacing:.13em}
.detail h3{font-family:var(--f-display);font-size:clamp(1.4rem,2.6vw,2rem);margin:.5rem 0 .9rem;line-height:1.15}
.detail .d-desc{color:var(--hueso2);margin-bottom:1.2rem}
.bloque{margin-top:1.4rem;border-top:1px solid var(--linea);padding-top:1.1rem}
.bloque>span{display:block;margin-bottom:.55rem}
.verbatim{font-size:.86rem;color:var(--hueso2);white-space:pre-wrap;max-height:16rem;overflow-y:auto;
  border-left:2px solid var(--oro-dim);padding-left:1rem;scrollbar-width:thin}
.verbatim:focus-visible{outline:1px solid var(--oro);outline-offset:2px}
.fed{color:var(--hueso2);font-size:.92rem}
.jur{list-style:none}
.jur li{display:flex;gap:.6rem;align-items:baseline;padding:.3rem 0;font-size:.9rem;color:var(--hueso2)}
.nivel{flex:none;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.06em;padding:.1rem .42rem;
  border-radius:2px;border:1px solid var(--oro-dim);color:var(--oro)}
.nivel--A{background:var(--oro);color:var(--carbon);border-color:var(--oro)}
.nivel--C{color:var(--hueso2);border-color:var(--linea)}
.tns{border:1px solid var(--oro-dim);padding:1rem 1.1rem;margin-top:.7rem}
.tns .tns__c{font-family:var(--f-display);font-size:1.02rem}
.tns .tns__m{font-family:var(--f-mono);font-size:.68rem;color:var(--oro);margin:.15rem 0 .4rem;display:block}
.tns p{font-size:.86rem;color:var(--hueso2)}
.hedge{font-family:var(--f-mono);font-size:.75rem;color:var(--hueso2);margin-top:.8rem}

/* ---------- WIDGET EN VIVO ---------- */
.live{padding:clamp(4rem,12vh,9rem) clamp(1.2rem,7vw,7rem);background:var(--carbon2)}
.live__inner{max-width:46rem;margin:0 auto}
.tag{display:inline-block;border:1px solid var(--oro);padding:.25rem .6rem;margin-bottom:1rem}
.tag--off{border-color:var(--linea);color:var(--hueso2)}
.live h2{margin-bottom:.8rem}
.live__lede{color:var(--hueso2);margin-bottom:1.6rem}
.live__form{display:flex;gap:.6rem}
.live__form input{flex:1;background:var(--carbon);border:1px solid var(--linea);color:var(--hueso);
  padding:.85rem 1rem;font-family:var(--f-body);font-size:.95rem;border-radius:2px}
.live__form input:focus{outline:none;border-color:var(--oro)}
.live__form button{background:var(--oro);color:var(--carbon);border:0;padding:.85rem 1.4rem;
  font-family:var(--f-mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;
  cursor:pointer;border-radius:2px;transition:opacity .2s}
.live__form button:hover{opacity:.88}
.live__form button:disabled{opacity:.45;cursor:wait}
.live__chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}
.chip{background:transparent;border:1px solid var(--linea);color:var(--hueso2);padding:.32rem .7rem;
  font-size:.78rem;border-radius:99px;cursor:pointer;font-family:var(--f-body);transition:border-color .2s,color .2s}
.chip:hover,.chip:focus-visible{border-color:var(--oro);color:var(--hueso);outline:none}
.live__out{margin-top:1.6rem}
.rcard{border:1px solid var(--linea);padding:1.1rem 1.2rem;margin-bottom:.8rem;background:var(--carbon)}
.rcard .r-sec{font-family:var(--f-mono);font-size:.68rem;color:var(--oro)}
.rcard h4{font-family:var(--f-display);font-size:1.1rem;margin:.3rem 0 .4rem}
.rcard p{font-size:.85rem;color:var(--hueso2)}
.rcard .r-fed{font-size:.78rem;color:var(--hueso2);margin-top:.4rem}
.r-score{float:right;font-family:var(--f-mono);font-size:.75rem;color:var(--hueso2)}
.live__disc{margin-top:1.6rem;color:var(--hueso2);text-transform:none;letter-spacing:.02em;line-height:1.6}
.err{border:1px solid var(--oro-dim);padding:1rem;color:var(--hueso2);font-size:.9rem}

/* ---------- FOOTER ---------- */
.foot{padding:3.5rem clamp(1.2rem,7vw,7rem);border-top:1px solid var(--linea)}
.foot__brand{font-family:var(--f-display);font-size:1.1rem;margin-bottom:.7rem}
.foot .mono{color:var(--hueso2);text-transform:none;letter-spacing:.03em;line-height:1.7;max-width:56rem;display:block}

/* ---------- MOBILE ---------- */
@media (max-width:820px){
  .arsenal__layout{grid-template-columns:1fr}
  .index{max-height:34vh;border-right:0;border-bottom:1px solid var(--linea);padding:0 0 1rem}
  .live__form{flex-direction:column}
}
