/* Portada: el retablo como composición. Un tablero de 12 columnas con tablas encajadas y 8 px de junta. */
@font-face { font-family: Jost; src: url('/fuentes/jost.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
:root {
  --fondo: #0b0a09; --tabla: #191816; --tinta: #f2f2f2; --gris: #a8a39a; --oro: #c9a24b; --tinta-oro: #111;
  --junta: 8px; --radio: 4px;
  --paso-peq: clamp(.8125rem, .79rem + .1vw, .875rem);
  --paso-cuerpo: clamp(1.0625rem, 1rem + .25vw, 1.1875rem);
  --paso-medio: clamp(1.25rem, 1.1rem + .7vw, 1.625rem);
  --paso-titulo: clamp(2rem, 1.3rem + 3.2vw, 4rem);
  color-scheme: dark;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--fondo); color: var(--tinta); font: 400 var(--paso-cuerpo)/1.5 Jost, system-ui, sans-serif; }
h1, h2, h3, p, figure { margin: 0; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; height: 100%; object-fit: cover; }
:focus-visible { outline: 2px solid var(--tinta); outline-offset: 2px; }
.visual-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.tablero { display: flex; flex-direction: column; gap: var(--junta); padding: var(--junta); overflow: hidden; }
.tile { display: block; background: var(--tabla); border-radius: var(--radio); padding: 20px; min-width: 0; overflow: hidden; }
.foto { padding: 0; }
.foto img { transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.foto:hover img { transform: scale(1.025); }
a.tile { transition: background .18s; }
a.tile:hover { background: #26241f; }

/* Primera pantalla */
.primera { display: grid; gap: var(--junta); grid-template-columns: repeat(12, 1fr); grid-template-rows: clamp(150px, 13.5vw, 230px) 64px minmax(0, 1fr); min-height: calc(100dvh - 2 * var(--junta)); }
.nombre { grid-column: 1 / -1; background: var(--tabla); border-radius: var(--radio); overflow: hidden; display: flex; align-items: center; justify-content: center; white-space: nowrap; font-size: clamp(150px, 15.5vw, 270px); font-weight: 700; letter-spacing: -.04em; line-height: 1; text-transform: uppercase; }
.nombre span:first-child { display: block; transform: translateY(.04em); }
.enlaces { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--junta); }
.enlaces a { padding: 16px 20px; font-size: 16px; }
.rail-izq { grid-column: 1 / 3; display: grid; grid-template-rows: 1fr auto; gap: var(--junta); min-height: 0; }
.rail-izq .foto { min-height: 0; }
.lista p { padding: 3px 0; font-size: 16px; line-height: 1.3; }
.central { position: relative; grid-column: 3 / 11; padding: 0; min-height: 420px; }
.central img { position: absolute; inset: 0; }
.declaracion { position: absolute; left: 0; right: 0; bottom: 0; padding: 24px; background: var(--fondo); }
.declaracion p { font-size: clamp(24px, 2.4vw, 36px); line-height: 1.15; font-weight: 500; letter-spacing: -.01em; max-width: 24em; }
.rail-der { grid-column: 11 / 13; grid-row: 3; display: grid; grid-template-rows: 1fr 1fr 1fr 2fr; gap: var(--junta); }
.rail-der .tile { padding: 0; }
.c1 { background: #5c4a1f; } .c2 { background: #8a6d2c; } .c3 { background: #a98a39; }
.rail-der .accion { padding: 20px; background: var(--oro); color: var(--tinta-oro); font-size: var(--paso-medio); font-weight: 700; line-height: 1.05; letter-spacing: -.01em; }
a.accion:hover { background: #dcb65c; }

/* La pieza viva */
.escenas { display: flex; flex-direction: column; gap: var(--junta); }
.selector { display: flex; flex-direction: column; gap: 4px; }
.fila-hist { display: grid; grid-template-columns: 5fr 2fr 2fr 2fr 1fr; align-items: center; gap: 12px; width: 100%; min-height: 72px; padding: 12px 20px; border: 0; border-radius: var(--radio); background: var(--tabla); color: var(--tinta); text-align: left; cursor: pointer; font: inherit; font-variant-numeric: tabular-nums; transition: background .18s, transform .12s; }
.fila-hist:hover { background: #26241f; }
.fila-hist:active { transform: translateY(1px); }
.h-nombre { font-size: clamp(22px, 2.1vw, 30px); font-weight: 500; line-height: 1.1; }
.h-dato { font-size: clamp(18px, 1.6vw, 24px); color: var(--gris); }
.h-estado { justify-self: end; padding: 3px 10px; background: #2c2a25; border-radius: 3px; font-size: 16px; }
.h-detalle { display: none; grid-column: 1 / -1; font-size: 17px; line-height: 1.4; max-width: 62em; }
.fila-hist.abierta { background: var(--oro); color: var(--tinta-oro); padding-block: 20px; }
.fila-hist.abierta:hover { background: var(--oro); }
.fila-hist.abierta .h-dato { color: #2b2413; }
.fila-hist.abierta .h-estado { background: #111; color: var(--tinta); }
.fila-hist.abierta .h-detalle { display: block; }
.retablo { display: grid; grid-template-columns: 2fr 1fr 1fr 2fr; grid-template-rows: 300px 300px; gap: var(--junta); }
.montaje-tile { display: grid; grid-template-columns: 2fr 1fr; background: var(--tabla); }
.montaje-tile video { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.montaje-tile figcaption { padding: 24px; font-size: var(--paso-medio); line-height: 1.25; align-self: end; }
.retablo figure { position: relative; overflow: hidden; border-radius: var(--radio); background: var(--tabla); }
.retablo figure:nth-child(1) { grid-row: span 2; }
.retablo figure:nth-child(4) { grid-row: span 2; }
.retablo figure:nth-child(2) { grid-column: span 2; }
.retablo figcaption { position: absolute; left: 0; bottom: 0; padding: 4px 10px; background: var(--fondo); font-size: 16px; border-top-right-radius: var(--radio); }
.retablo img { animation: pintar .7s ease both; }
@keyframes pintar { from { opacity: 0; transform: scale(1.03); } to { opacity: 1; transform: none; } }

/* Proceso */
.proceso { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--junta); }
.titulo-tile { grid-column: 1 / -1; font-size: var(--paso-titulo); font-weight: 700; letter-spacing: -.03em; line-height: .95; text-transform: uppercase; padding-block: 28px; }
.paso { min-height: 220px; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; }
.paso h3, .texto h3 { font-size: var(--paso-medio); font-weight: 500; line-height: 1.1; }
.paso:nth-of-type(2) { background: #2a2518; }
.paso:nth-of-type(3) { background: #3a3119; }
.paso:nth-of-type(4) { background: #4d3f1b; }
.paso:nth-of-type(5) { background: var(--oro); color: var(--tinta-oro); }

/* Modelos */
.modelos { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: minmax(150px, auto); gap: var(--junta); }
.modelos > * { grid-column: span 3; }
.modelos .titulo-tile { grid-column: 1 / -1; }
.modelos .ancha { grid-column: span 6; grid-row: span 2; }
.modelos .foto:not(.ancha) { grid-column: span 3; grid-row: span 2; }
.modelos .foto { min-height: 240px; }
.modelos .texto { display: flex; flex-direction: column; gap: 10px; }
.modelos .texto p { font-size: 17px; line-height: 1.4; }

/* Cinta */
.cinta { overflow: hidden; }
.cinta-pista { display: flex; gap: var(--junta); width: max-content; animation: cinta 60s linear infinite; }
.cinta:hover .cinta-pista { animation-play-state: paused; }
.cinta-pista img { width: 240px; height: 180px; border-radius: var(--radio); }
@keyframes cinta { to { transform: translateX(-50%); } }

/* Preguntas */
.preguntas { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--junta); align-items: start; }
.preguntas summary { cursor: pointer; font-size: var(--paso-medio); font-weight: 500; line-height: 1.15; list-style: none; }
.preguntas summary::-webkit-details-marker { display: none; }
.preguntas details p { margin-top: 12px; max-width: 42em; }
.preguntas details { min-height: 90px; transition: background .18s; }
.preguntas details:hover { background: #26241f; }

/* Cierre */
.cierre { display: grid; grid-template-columns: repeat(12, 1fr); grid-template-rows: 260px auto auto; gap: var(--junta); }
.accion-grande { grid-column: span 7; grid-row: span 2; background: var(--oro); color: var(--tinta-oro); font-size: var(--paso-titulo); font-weight: 700; letter-spacing: -.03em; line-height: .95; text-transform: uppercase; }
a.accion-grande:hover { background: #dcb65c; }
.cierre .foto { grid-column: span 5; }
.legal { grid-column: span 5; font-size: 16px; color: var(--gris); }
.nombre-pie { grid-column: 1 / -1; display: flex; justify-content: center; overflow: hidden; background: var(--tabla); border-radius: var(--radio); height: clamp(110px, 18vw, 280px); align-items: center; font-size: clamp(120px, 24vw, 400px); font-weight: 700; letter-spacing: -.04em; line-height: .8; text-transform: uppercase; white-space: nowrap; }

/* Entradas */
.aparece { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); transition-delay: var(--retraso, 0ms); }
.aparece.visto { opacity: 1; transform: none; }
.sin-js .aparece { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .aparece { opacity: 1; transform: none; transition: none; }
  .cinta-pista { animation: none; }
  .retablo img { animation: none; }
  .foto:hover img { transform: none; }
}

/* Tableta */
@media (max-width: 1000px) {
  .primera { grid-template-rows: 130px auto auto auto; min-height: 0; }
  .nombre { font-size: 22vw; }
  .central { grid-column: 1 / -1; grid-row: 3; aspect-ratio: 4 / 3; }
  .rail-izq { grid-column: 1 / 7; grid-row: 4; grid-template-rows: 240px auto; }
  .rail-der { grid-column: 7 / 13; grid-row: 4; }
  .modelos > *, .modelos .foto:not(.ancha) { grid-column: span 6; }
  .modelos .ancha { grid-column: span 12; }
  .proceso { grid-template-columns: repeat(2, 1fr); }
  .retablo { grid-template-rows: 220px 220px; }
}
/* Teléfono: dos columnas con 6 px de junta */
@media (max-width: 620px) {
  :root { --junta: 6px; }
  .primera { grid-template-rows: 110px auto auto auto auto; }
  .nombre { font-size: 19vw; line-height: .9; }
  .enlaces { grid-template-columns: 1fr 1fr; }
  .enlaces a { padding: 12px 14px; }
  .central { aspect-ratio: auto; min-height: 0; display: flex; flex-direction: column; }
  .central img { position: static; aspect-ratio: 4 / 3; height: auto; }
  .declaracion { position: static; padding: 16px; background: var(--tabla); }
  .declaracion p { font-size: 24px; }
  .rail-izq { grid-column: 1 / -1; grid-row: 4; grid-template-rows: 280px auto; }
  .rail-der { grid-column: 1 / -1; grid-row: 5; grid-template-rows: 96px; grid-template-columns: 1fr 1fr 1fr 3fr; }
  .rail-der .accion { padding: 14px; }
  .fila-hist { grid-template-columns: 1fr auto; min-height: 64px; padding: 10px 14px; }
  .fila-hist .h-dato { display: none; }
  .fila-hist.abierta .h-dato { display: inline; font-size: 16px; }
  .fila-hist.abierta .h-nombre { grid-column: 1 / -1; }
  .fila-hist.abierta { grid-template-columns: auto auto auto 1fr; }
  .h-estado { font-size: 13px; }
  .retablo { grid-template-columns: 1fr 1fr; grid-template-rows: none; grid-auto-rows: auto; }
  .retablo figure:nth-child(n) { grid-row: auto; grid-column: auto; aspect-ratio: 1; }
  .retablo figure:nth-child(1), .retablo figure:nth-child(6) { grid-column: span 2; aspect-ratio: 16 / 10; }
  .proceso { grid-template-columns: 1fr; }
  .montaje-tile { grid-template-columns: 1fr; }
  .montaje-tile figcaption { font-size: 18px; padding: 16px; }
  .paso { min-height: 0; }
  .modelos { grid-template-columns: 1fr; }
  .modelos > *, .modelos .foto:not(.ancha), .modelos .ancha { grid-column: auto; grid-row: auto; }
  .modelos .foto { aspect-ratio: 4 / 3; min-height: 0; }
  .preguntas { grid-template-columns: 1fr; }
  .cierre { grid-template-columns: 1fr; grid-template-rows: auto; }
  .accion-grande, .cierre .foto, .legal { grid-column: auto; grid-row: auto; }
  .accion-grande { min-height: 180px; }
  .cierre .foto { aspect-ratio: 16 / 10; }
  .nombre-pie { font-size: 26vw; height: 110px; }
}
