@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital@0;1&display=swap');
:root{
  --bg:#000;
  --fg:#ededed;
  --soft:#b9b9b9;
  --muted:#777;
  --line:#292929;
  --line-strong:#444;
  --red:#ff1f1f;
  --max:1320px;
  --left:35%;
  --header-h:3.4rem;
  --cause-nav-h:3.2rem;
}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:14px;line-height:1.62;font-weight:400}
::selection{background:#fff;color:#000}
a{color:inherit;text-decoration:none}
button{font:inherit}
[hidden]{display:none!important}

.site-shell,.site-main,.site-footer{width:min(calc(100% - 3rem),var(--max));margin-inline:auto}
.site-header{position:sticky;top:0;z-index:20;width:100%;background:rgba(0,0,0,.97);border-bottom:1px solid var(--line)}
.site-header .site-shell{padding:1.05rem 0}
.site-title-wrap{margin:0;font-size:inherit;font-weight:400;line-height:1}
.site-title{display:inline-block;font-size:clamp(1rem,1.55vw,1.32rem);line-height:1;letter-spacing:.015em;white-space:nowrap;color:var(--fg);transition:color .15s ease}
.site-title:hover,.site-title:focus-visible{color:var(--red);outline:none}

.intro-section{padding:clamp(3.2rem,6vw,5.5rem) 0 clamp(2.8rem,5vw,4.5rem);border-bottom:1px solid var(--line)}
.intro-rule{max-width:900px;margin:0 0 1.15rem;font-size:clamp(1.1rem,1.7vw,1.48rem);line-height:1.38;color:var(--fg)}
.intro-copy{max-width:76ch;margin:.4rem 0;color:var(--soft);font-size:.92rem}
.intro-copy-muted{color:var(--muted)}
.cause-index{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;margin-top:2rem;padding-top:1.15rem;border-top:1px solid var(--line);font-size:.72rem;text-transform:uppercase}
.cause-index a{color:var(--muted);transition:color .15s ease}
.cause-index a:hover,.cause-index a:focus-visible{color:var(--red);outline:none}

.text-section{padding:clamp(2.2rem,4.5vw,3.5rem) 0;border-bottom:1px solid var(--line)}
.text-section h2{margin:0 0 .85rem;font-size:1rem;line-height:1.2;font-weight:400;text-transform:uppercase;color:var(--fg)}
.text-section p{max-width:80ch;margin:.45rem 0;color:var(--soft)}
.text-section a{color:var(--soft);border-bottom:1px solid var(--line-strong);transition:color .15s ease,border-color .15s ease}
.text-section a:hover,.text-section a:focus-visible{color:var(--red);border-bottom-color:var(--red);outline:none}
.text-section hr{display:none}

.physical-section{display:grid;grid-template-columns:var(--left) minmax(0,1fr);align-items:stretch;padding:0;border-bottom:1px solid var(--line)}
.physical-copy{padding:clamp(2.2rem,4.5vw,3.5rem) clamp(2rem,3.5vw,3.5rem) clamp(2.2rem,4.5vw,3.5rem) 0}
.physical-gallery{min-width:0;overflow:hidden;border-left:1px solid var(--line)}
.physical-gallery-track{display:flex;gap:1px;width:max-content;height:100%;animation:physical-marquee 34s linear infinite;will-change:transform}
.physical-gallery:hover .physical-gallery-track{animation-play-state:paused}
.physical-shot{position:relative;margin:0;flex:0 0 clamp(250px,25vw,360px);min-height:280px;overflow:hidden;border-right:1px solid var(--line);background:#080808}
.physical-shot img{width:100%;height:100%;min-height:280px;display:block;object-fit:cover;filter:saturate(.75) contrast(1.04)}
.physical-shot:nth-child(6n+1) img,.physical-shot:nth-child(6n+4) img{object-position:76% 16%}
.physical-shot:nth-child(6n+2) img,.physical-shot:nth-child(6n+5) img{object-position:68% 55%}
.physical-shot:nth-child(6n+3) img,.physical-shot:nth-child(6n+6) img{object-position:90% 49%}
@keyframes physical-marquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

.cause-sections{padding-top:0}
.cause-section{border-bottom:1px solid var(--line-strong);scroll-margin-top:4.2rem}
.cause-grid{display:grid;grid-template-columns:var(--left) minmax(0,1fr);align-items:stretch}
.cause-info-column{display:flex;flex-direction:column;min-width:0;min-height:100%;padding:clamp(3rem,6vw,5rem) clamp(2rem,3.5vw,3.5rem) clamp(3rem,6vw,5rem) 0}
.cause-info-sticky{position:sticky;top:4.4rem;align-self:stretch}
.cause-data-column{min-width:0;padding:clamp(3rem,6vw,5rem) 0 clamp(3rem,6vw,5rem) clamp(2rem,3.5vw,3.5rem);border-left:1px solid var(--line)}
.cause-header{display:grid;grid-template-columns:2.7rem minmax(0,1fr);gap:1rem;margin:0}
.cause-number{color:var(--muted);font-size:.68rem;padding-top:.2rem}
.cause-header h2{margin:0 0 .75rem;font-size:clamp(1.05rem,1.55vw,1.35rem);line-height:1.28;font-weight:400;color:var(--fg)}
.cause-header p{margin:.35rem 0;color:var(--soft);font-size:.86rem}
.cause-header .cause-range{color:var(--muted);font-size:.72rem;text-transform:uppercase}

.cause-source,.cause-note{color:var(--muted);font-size:.68rem;line-height:1.55}
.cause-source{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line)}
.cause-source a{color:var(--soft);border-bottom:1px solid var(--line-strong)}
.cause-source a:hover,.cause-source a:focus-visible{color:var(--red);border-bottom-color:var(--red);outline:none}
.cause-note{margin:.55rem 0 0}
.cause-quote{margin:auto 0 0;padding:1.35rem 0 0;border-top:1px solid var(--line);color:var(--fg);font-size:clamp(.86rem,1.15vw,.98rem);line-height:1.72}
.cause-quote em{font-style:normal}

.archive-table{width:100%;border-top:1px solid var(--line-strong);font-variant-numeric:tabular-nums}
.archive-head,.archive-row,.archive-summary{display:grid;grid-template-columns:minmax(4.2rem,.55fr) minmax(7rem,.8fr) minmax(10rem,1.65fr);column-gap:clamp(1rem,3vw,3.5rem);align-items:baseline}
.archive-head{padding:.62rem .25rem;color:var(--muted);font-size:.65rem;text-transform:uppercase;border-bottom:1px solid var(--line)}
.archive-head span:nth-child(2),.archive-head span:nth-child(3),.archive-row span:nth-child(2),.archive-row span:nth-child(3),.archive-summary span:nth-child(2),.archive-summary span:nth-child(3){text-align:right}
.archive-row{appearance:none;width:100%;padding:.7rem .25rem;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--fg);text-align:left;cursor:pointer;transition:background .15s ease,border-color .15s ease}
.archive-row:hover,.archive-row:focus-visible,.archive-row.is-active{background:#0b0b0b;border-bottom-color:var(--red);outline:none}
.archive-row:hover .archive-year,.archive-row:focus-visible .archive-year,.archive-row.is-active .archive-year{color:var(--red)}
.archive-year{color:var(--fg);transition:color .15s ease}
.archive-minutes{color:var(--soft)}
.archive-duration{color:var(--muted)}
.archive-summary{padding:.9rem .25rem;border-bottom:1px solid var(--line-strong);font-size:.78rem;color:var(--muted)}
.archive-summary strong{font-weight:400;color:var(--fg)}
.archive-summary-label{color:var(--muted);text-transform:uppercase}

.inline-player{margin:2rem 0 0;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);scroll-margin-top:5rem}
.player-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem .25rem;border-bottom:1px solid var(--line)}
.player-heading h3{margin:0;min-width:0;font-size:.98rem;line-height:1.35;font-weight:400;color:var(--fg)}
.player-separator{color:var(--muted);padding:0 .3rem}
.player-close{appearance:none;border:0;background:transparent;color:var(--muted);padding:.2rem 0;cursor:pointer;text-transform:uppercase;font-size:.64rem;transition:color .15s ease}
.player-close:hover,.player-close:focus-visible{color:var(--red);outline:none}
.player-summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:.35rem 1.1rem;padding:.68rem .25rem;border-bottom:1px solid var(--line);color:var(--muted);font-size:.67rem;text-transform:uppercase}
.player-summary b{font-weight:400;color:var(--fg)}
.player-summary span span{color:var(--fg)}
.player-body{display:flex;flex-direction:column;align-items:flex-start;padding:clamp(1.8rem,4vw,3rem) .25rem}
.player-name{margin-bottom:.4rem;color:var(--soft);font-size:.84rem}
.player-time{color:var(--red);font-size:clamp(2.8rem,5.4vw,4.45rem);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.035em}
.player-remaining{margin-top:.7rem;color:var(--muted);font-size:.64rem;text-transform:uppercase}
.player-remaining strong{margin-left:.4rem;color:var(--fg);font-weight:400}
.player-controls{display:flex;gap:.65rem;margin-top:1.2rem}
.player-controls button{appearance:none;background:transparent;border:1px solid var(--line-strong);color:var(--fg);padding:.5rem .82rem;cursor:pointer;text-transform:uppercase;font-size:.66rem;transition:color .15s ease,border-color .15s ease,background .15s ease}
.player-controls button:hover,.player-controls button:focus-visible{border-color:var(--red);color:var(--red);outline:none}
.player-controls button:disabled{opacity:.35;cursor:default;border-color:var(--line)}
.player-meta{padding:.75rem .25rem .9rem;border-top:1px solid var(--line);font-size:.66rem;color:var(--muted)}
.player-meta p{margin:.22rem 0}
.player-meta a{color:var(--soft);border-bottom:1px solid var(--line-strong)}
.player-meta a:hover,.player-meta a:focus-visible{color:var(--red);border-bottom-color:var(--red);outline:none}

.site-footer{display:flex;justify-content:space-between;gap:1rem;padding:1.4rem 0 2rem;color:var(--muted);font-size:.62rem;text-transform:uppercase}
.site-footer a:hover,.site-footer a:focus-visible{color:var(--red);outline:none}

@media(max-width:900px){
  :root{--left:100%}
  .site-shell,.site-main,.site-footer{width:min(calc(100% - 2rem),var(--max))}
  .site-title{white-space:normal}
  .physical-section,.cause-grid{grid-template-columns:1fr}
  .physical-copy,.cause-info-column{padding-right:0}
  .physical-gallery,.cause-data-column{border-left:0;border-top:1px solid var(--line)}
  .cause-data-column{padding-left:0}
  .cause-info-column{min-height:0}
  .cause-info-sticky{position:static}
  .cause-quote{margin-top:3rem}
  .archive-head,.archive-row,.archive-summary{grid-template-columns:4rem 6.3rem minmax(0,1fr);column-gap:.75rem}
  .physical-shot{flex-basis:min(78vw,480px)}
}
@media(max-width:640px){
  body{font-size:13px}
  .site-shell,.site-main,.site-footer{width:min(calc(100% - 1.2rem),var(--max))}
  .site-header .site-shell{padding:.85rem 0}
  .site-title{font-size:clamp(.92rem,5vw,1.08rem)}
  .intro-section{padding-top:2.6rem}
  .cause-header{grid-template-columns:2rem minmax(0,1fr);gap:.7rem}
  .archive-head,.archive-row,.archive-summary{grid-template-columns:3.4rem 5.7rem minmax(0,1fr);column-gap:.55rem;font-size:.73rem}
  .archive-head{font-size:.58rem}
  .archive-duration{font-size:.7rem}
  .player-summary{gap:.3rem .75rem}
  .player-time{font-size:clamp(2.6rem,15vw,4rem)}
  .site-footer{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .physical-gallery-track{animation:none}
}


/* V11 — corrección visible y estable */
.intro-section{
  padding-bottom:0;
}
.intro-rule{
  white-space:normal;
}
/* El índice de causas tiene exactamente el mismo aire por arriba y por abajo. */
.cause-index{
  margin-top:1.5rem;
  padding:1.35rem 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  gap:.8rem 1.5rem;
}
.cause-index a{
  color:var(--red);
}
.cause-index a:hover,
.cause-index a:focus-visible{
  color:var(--fg);
}

/* La cita está físicamente fuera del grid/sticky y cierra cada causa. */
.cause-grid{
  position:relative;
}
.cause-quote-row{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:var(--left) minmax(0,1fr);
  background:var(--bg);
  border-top:1px solid var(--line);
  clear:both;
}
.cause-quote-row .cause-quote{
  grid-column:1;
  margin:0;
  padding:1.9rem clamp(2rem,3.5vw,3.5rem) 2.1rem 0;
  border-top:0;
}

/* Archivo y Edición física son los dos últimos bloques antes del footer. */
#archivo{
  border-top:0;
}
#edicion-fisica{
  border-bottom:1px solid var(--line);
}

@media (max-width:760px){
  .cause-quote-row{display:block}
  .cause-quote-row .cause-quote{padding:1.5rem 0 1.75rem}
}


/* V12 — navegación de causas sticky + metadatos a la derecha */
.cause-index-sticky{
  position:sticky;
  top:var(--header-h);
  z-index:19;
  margin-top:0;
  padding:1rem 0;
  background:rgba(0,0,0,.97);
  border-top:0;
  border-bottom:1px solid var(--line);
}
.cause-section{scroll-margin-top:calc(var(--header-h) + var(--cause-nav-h) + .5rem)}
.cause-info-sticky{top:calc(var(--header-h) + var(--cause-nav-h) + .5rem)}
.cause-note{
  margin-top:2rem;
  padding-top:1rem;
  border-top:1px solid var(--line);
}
.cause-data-meta{
  display:flex;
  justify-content:space-between;
  gap:1rem 2rem;
  padding:.8rem .25rem 0;
  color:var(--muted);
  font-size:.66rem;
  line-height:1.55;
}
.cause-data-meta a{
  color:var(--soft);
  border-bottom:1px solid var(--line-strong);
}
.cause-data-meta a:hover,
.cause-data-meta a:focus-visible{
  color:var(--red);
  border-bottom-color:var(--red);
  outline:none;
}
@media(max-width:900px){
  .cause-info-sticky{top:auto}
}
@media(max-width:640px){
  .cause-index-sticky{
    top:var(--header-h);
    padding:.8rem 0;
    gap:.55rem 1rem;
  }
  .cause-section{scroll-margin-top:calc(var(--header-h) + var(--cause-nav-h) + .5rem)}
  .cause-data-meta{flex-direction:column;gap:.2rem}
}

/* V13 — ajustes puntuales solicitados */

/* Los dos headers se tocan: negro opaco y 1 px de solape para impedir cualquier fuga visual. */
.site-header,
.cause-index-sticky{
  background:#000;
}
.cause-index-sticky{
  top:calc(var(--header-h) - 1px);
}

/* La línea superior de cada causa es la referencia sticky; el título respira debajo. */
.cause-info-sticky{
  top:calc(var(--header-h) + var(--cause-nav-h) - 2px);
  position:sticky;
  padding-top:1.85rem;
}
.cause-info-sticky::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:1px;
  background:var(--line-strong);
}

/* Citas: más anchura, aproximadamente media pantalla/contenedor. */
.cause-quote-row .cause-quote{
  grid-column:1 / -1;
  width:54%;
  max-width:46rem;
  padding-right:0;
}

/* Scroll vertical: línea de 1 px roja con tramo móvil negro. */
html{
  scrollbar-width:none;
}
body{
  -ms-overflow-style:none;
}
body::-webkit-scrollbar{
  width:0;
  height:0;
}
.scroll-indicator{
  position:fixed;
  z-index:9999;
  top:0;
  right:0;
  width:1px;
  height:100vh;
  background:var(--red);
  pointer-events:none;
}
.scroll-indicator-thumb{
  position:absolute;
  top:0;
  left:0;
  width:1px;
  min-height:20px;
  background:#000;
  transform:translateY(0);
}

@media(max-width:900px){
  .cause-info-sticky{
    position:static;
    padding-top:1.5rem;
  }
  .cause-info-sticky::before{
    display:block;
  }
  .cause-quote-row .cause-quote{
    width:100%;
    max-width:none;
  }
}


/* V14 — ajustes puntuales: línea sticky sin hueco, metadatos sin duplicar, autor de primera cita */
@media (min-width:901px){
  /* La línea de referencia nace exactamente en el borde inferior del menú sticky. */
  .cause-info-column{
    padding-top:0;
  }
  .cause-info-sticky{
    top:calc(var(--header-h) + var(--cause-nav-h) - 1px);
    padding-top:clamp(3rem,6vw,5rem);
  }
  .cause-section{
    scroll-margin-top:calc(var(--header-h) + var(--cause-nav-h) - 1px);
  }
  .cause-info-sticky::before{
    top:0;
  }
}
.quote-author{
  display:block;
  margin-top:.35rem;
}

/* V15 — galería puntual de edición física */
.physical-gallery{
  min-width:0;
  border-left:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(1.8rem,4vw,3rem);
}
.physical-gallery-stage{
  position:relative;
  width:min(100%, 520px);
  aspect-ratio: 4 / 3;
  cursor:pointer;
}
.physical-shot{
  position:absolute;
  inset:0;
  margin:0;
  min-height:0;
  border:1px solid var(--line);
  background:#080808;
  opacity:0;
  visibility:hidden;
  transition:opacity .28s ease, visibility .28s ease;
  overflow:hidden;
}
.physical-shot.is-active{
  opacity:1;
  visibility:visible;
}
.physical-shot img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  min-height:0;
  filter:saturate(.9) contrast(1.02);
}
.lightbox{
  position:fixed;
  inset:0;
  z-index:9998;
  background:rgba(0,0,0,.92);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2rem;
}
.lightbox[hidden]{display:none !important;}
.lightbox-image{
  max-width:min(92vw, 1400px);
  max-height:88vh;
  width:auto;
  height:auto;
  border:1px solid var(--line);
  background:#000;
}
.lightbox-close{
  position:absolute;
  top:1rem;
  right:1rem;
  appearance:none;
  border:0;
  background:transparent;
  color:var(--fg);
  font:inherit;
  text-transform:uppercase;
  font-size:.72rem;
  letter-spacing:.02em;
  cursor:pointer;
  padding:.15rem .2rem;
}
.lightbox-close:hover,
.lightbox-close:focus-visible{
  color:var(--red);
  outline:none;
}
@media(max-width:900px){
  .physical-gallery{
    border-left:0;
    border-top:1px solid var(--line);
    padding:1.2rem 0 0;
  }
  .physical-gallery-stage{width:min(100%, 460px);}
}

/* V16 — texto de edición física y navegación manual de galería */
.physical-copy ul{
  margin:1rem 0 1.25rem;
  padding:0;
  list-style:none;
  color:var(--soft);
}
.physical-copy li{
  position:relative;
  margin:.55rem 0;
  padding-left:1.15rem;
}
.physical-copy li::before{
  content:"–";
  position:absolute;
  left:0;
  color:var(--muted);
}
.physical-gallery-nav{
  position:absolute;
  z-index:4;
  top:50%;
  width:2.15rem;
  height:2.15rem;
  margin:0;
  padding:0;
  border:0;
  background:rgba(0,0,0,.28);
  color:#fff;
  display:grid;
  place-items:center;
  opacity:0;
  visibility:hidden;
  transform:translateY(-50%);
  transition:opacity .16s ease, visibility .16s ease, background .16s ease;
  cursor:pointer;
}
.physical-gallery-prev{left:.65rem;}
.physical-gallery-next{right:.65rem;}
.physical-gallery-stage:hover .physical-gallery-nav,
.physical-gallery-stage:focus-within .physical-gallery-nav{
  opacity:1;
  visibility:visible;
}
.physical-gallery-nav:hover,
.physical-gallery-nav:focus-visible{
  background:rgba(0,0,0,.58);
  outline:none;
}
.physical-gallery-nav svg{
  width:1.1rem;
  height:1.1rem;
  fill:none;
  stroke:currentColor;
  stroke-width:1.35;
  stroke-linecap:round;
  stroke-linejoin:round;
}
@media(hover:none){
  .physical-gallery-nav{
    opacity:.78;
    visibility:visible;
  }
}
