/* ============================================================
   OPTIC — añadidos del tema

   assets/css/optic.css es el entregable del diseño y se mantiene
   intacto, para poder sustituirlo por una versión nueva del
   diseñador sin perder trabajo. Todo lo que el prototipo no
   cubría (páginas interiores, archivos, retratos reales del
   Faculty) vive aquí y se encola después.

   Mismos tokens, misma geometría: esquina recta sin excepciones.
   ============================================================ */

/* ------------------------------------------------------------
   Fotografía real en las tarjetas de Faculty.
   El tratamiento — grayscale, contraste alto, opacidad reducida y
   degradado de la superficie encima — es parte de la identidad:
   mantenerlo al sustituir las imágenes.
   ------------------------------------------------------------ */
.fac-slot img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.08);opacity:.5;
  transition:transform .9s var(--e-out),opacity .4s var(--e-out);
}
.fac-slot::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 30%,var(--s-000) 100%);
}
@media (hover:hover) and (pointer:fine){
  .fac-card:hover .fac-slot img{transform:scale(1.05);opacity:.72}
}
.fac-card h3 a{color:inherit;text-decoration:none}
.fac-card h3 a:hover{color:var(--halo)}
.tile h3 a{color:inherit;text-decoration:none}

/* ------------------------------------------------------------
   Páginas interiores: single de Faculty, Knowledge y Summit,
   archivos y páginas sueltas. Todas oscuras salvo el artículo,
   que se lee mejor en claro.
   ------------------------------------------------------------ */
.page-head{
  padding:calc(116px + clamp(60px,8vw,110px)) 0 clamp(40px,6vw,70px);
  background:var(--s-000);
}
.page-head .tag{
  font-family:var(--mono);font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--halo);display:block;margin-bottom:18px;
}
.page-head h1{
  font-size:clamp(2rem,3.5vw,3.05rem);letter-spacing:-.038em;line-height:1.06;
  font-weight:600;max-width:22ch;
}
.page-head p{
  margin-top:20px;max-width:62ch;color:var(--fg-2);
  font-size:16.5px;line-height:1.68;
}

.page-body{padding:0 0 clamp(90px,12vw,160px);background:var(--s-000)}
.page-body .wrap{max-width:800px}
.entry-content{color:var(--fg-2);font-size:16.5px;line-height:1.72}
.entry-content > * + *{margin-top:1.15em}
.entry-content h2{
  font-size:clamp(1.4rem,2.4vw,1.9rem);letter-spacing:-.032em;line-height:1.12;
  color:var(--fg);margin-top:2em;font-weight:600;
}
.entry-content h3{
  font-size:clamp(1.05rem,1.7vw,1.32rem);letter-spacing:-.028em;
  color:var(--fg);margin-top:1.8em;font-weight:600;
}
.entry-content a{color:var(--halo);text-decoration:underline;text-underline-offset:3px}
.entry-content ul,.entry-content ol{padding-left:1.2em}
.entry-content li + li{margin-top:.5em}
.entry-content img{max-width:100%;height:auto}
.entry-content blockquote{
  border-left:2px solid var(--beam);padding-left:22px;color:var(--fg);
  font-size:clamp(1.1rem,1.8vw,1.35rem);letter-spacing:-.02em;line-height:1.4;
}
.entry-meta{
  font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--fg-3);margin-top:26px;display:flex;gap:20px;flex-wrap:wrap;
}

/* Retrato del Faculty en su propia página */
.faculty-single{display:grid;grid-template-columns:.6fr 1.4fr;gap:clamp(28px,4vw,56px);align-items:start}
.faculty-portrait{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--s-200);display:grid;place-items:center}
.faculty-portrait img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.08);opacity:.62;
}
.faculty-portrait .mark{width:66px;height:66px;opacity:.5}
@media (max-width:820px){.faculty-single{grid-template-columns:1fr}}

/* Listados de archivo, con los mismos hairlines de 1px del Faculty */
.archive-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);
}
.archive-card{background:var(--s-000);padding:30px 26px 34px;display:block;text-decoration:none}
.archive-card .kicker{
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--halo);display:block;margin-bottom:12px;
}
.archive-card h2{
  font-size:clamp(1.05rem,1.7vw,1.35rem);letter-spacing:-.028em;line-height:1.18;
  color:var(--fg);font-weight:600;
}
.archive-card p{margin-top:10px;font-size:14px;color:var(--fg-3);line-height:1.6}
@media (hover:hover) and (pointer:fine){
  .archive-card:hover h2{color:var(--halo)}
}

.archive-empty{
  padding:clamp(50px,7vw,90px) 0;border-top:1px solid var(--line);
  color:var(--fg-3);font-size:15.5px;
}

/* Paginación */
.optic-pagination{margin-top:clamp(40px,5vw,64px);display:flex;gap:10px;flex-wrap:wrap}
.optic-pagination .page-numbers{
  font-family:var(--mono);font-size:12px;letter-spacing:.16em;
  padding:12px 16px;border:1px solid var(--line-2);color:var(--fg-2);text-decoration:none;
}
.optic-pagination .page-numbers.current{background:var(--beam);border-color:var(--beam);color:#fff}

/* 404 */
.error-404{min-height:70svh;display:grid;place-items:center;text-align:center;background:var(--s-000)}
.error-404 .code{
  font-family:var(--mono);font-size:12px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--halo);margin-bottom:22px;
}
