/* ============================================================
   IPARFEM — De lo íntimo a lo público
   Reconstrucción estática · sistema de diseño
   ============================================================ */

@import url("../fonts/fonts.css");
@import url("../fonts/inter.css");

:root{
  --red:        #EA1D21;
  --ink:        #191919;
  --black:      #0e0e0e;
  --grey:       #7A7A7A;
  --grey-light: #CFCFCF;
  --paper:      #EBEBEB;
  --paper-2:    #F4F3F1;
  --white:      #ffffff;

  --serif: "Noto Serif Display", Georgia, "Times New Roman", serif;
  --sans:  "neue-haas-grotesk-display", "neue-haas-grotesk-text",
           "Inter", "Helvetica Neue", Arial, Helvetica, sans-serif;

  --maxw: 1320px;
  --gutter: clamp(1.25rem, 4vw, 4rem);
  --header-h: 84px;
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }

/* accesibilidad: salto al contenido + foco visible */
.skip-link{ position:fixed; top:.6rem; left:.6rem; z-index:300; transform:translateY(-150%);
  background:var(--ink); color:var(--white); padding:.7rem 1.1rem; border-radius:6px;
  font-size:.85rem; transition:transform .2s ease; }
.skip-link:focus{ transform:none; outline:none; }
:focus-visible{ outline:2px solid var(--red); outline-offset:3px; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper-2);
  overflow-x:clip;
  font-size:clamp(1rem,0.95rem + 0.2vw,1.125rem);
  line-height:1.6;
  font-weight:400;
  letter-spacing:.012em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
/* los titulares en serif conservan su interletraje propio */
.display,.hero__title,.pagehero h1,.ficha-head h1,.cron-era__title,
.ficha-cita,.pull blockquote,.contact h2,.cron-year,.member-aff{ letter-spacing:normal; }
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,h5,h6{ margin:0; font-weight:400; line-height:1.05; }

/* ---------- layout helpers ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(1.75rem,4vw,4rem); }
.eyebrow{
  font-family:var(--sans);
  font-size:.78rem; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--red);
  margin:0 0 1.5rem;
}
.display{ font-family:var(--serif); font-weight:400; letter-spacing:-.01em; }

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  height:var(--header-h);
  display:flex; align-items:center;
  background:var(--paper-2);
  transition:background .25s ease;
}
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; }
.brand img{ height:34px; width:auto; }
.brand .logo-white{ display:none; }
/* dark hero: white logo + white menu trigger */
.theme-dark .brand .logo-black{ display:none; }
.theme-dark .brand .logo-white{ display:block; }
.theme-dark .menu-trigger{ color:var(--white); }

.menu-trigger{
  font-family:var(--sans); font-size:.8rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  background:none; border:0; cursor:pointer; color:var(--ink);
  display:flex; align-items:center; gap:.6rem; padding:.4rem 0;
}
.menu-trigger::after{
  content:""; width:26px; height:1px; background:currentColor;
  box-shadow:0 6px 0 currentColor, 0 -6px 0 currentColor;
}

/* spacer so fixed header doesn't overlap light pages */
.page--light{ padding-top:var(--header-h); }

/* ---------- overlay menu ---------- */
.nav-overlay{
  position:fixed; inset:0; z-index:200;
  background:var(--black); color:var(--white);
  display:flex; flex-direction:column;
  padding:var(--gutter);
  opacity:0; visibility:hidden; transform:translateY(-12px);
  transition:opacity .6s ease, transform .7s cubic-bezier(.2,.7,.2,1), visibility .7s;
}
.nav-overlay.open{ opacity:1; visibility:visible; transform:none; }
.nav-overlay__top{ display:flex; align-items:center; justify-content:space-between; height:var(--header-h); margin-top:calc(-1 * var(--gutter)); }
.nav-overlay__top img{ height:34px; }
.nav-close{
  font-family:var(--sans); font-size:.8rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  background:none; border:0; color:var(--white); cursor:pointer;
}
.nav-list{
  flex:1; display:flex; flex-direction:column; justify-content:center;
  gap:clamp(.5rem,2vw,1.2rem);
}
.nav-list a{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(2.5rem,9vw,6rem); line-height:1.02;
  color:var(--white); width:max-content;
  opacity:0; transform:translateY(34px);
  transition:color .25s ease, opacity .8s ease, transform .9s cubic-bezier(.2,.7,.2,1);
}
.nav-list a:hover,.nav-list a[aria-current="page"]{ color:var(--red); }
/* aparición escalonada y lenta de las opciones al abrir el menú */
.nav-overlay.open .nav-list a{ opacity:1; transform:none; }
.nav-overlay.open .nav-list li:nth-child(1) a{ transition-delay:.18s; }
.nav-overlay.open .nav-list li:nth-child(2) a{ transition-delay:.30s; }
.nav-overlay.open .nav-list li:nth-child(3) a{ transition-delay:.42s; }
.nav-overlay.open .nav-list li:nth-child(4) a{ transition-delay:.54s; }
.nav-overlay.open .nav-list li:nth-child(5) a{ transition-delay:.66s; }
.nav-overlay__foot{ color:var(--grey-light); font-size:.85rem; max-width:46ch; }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  background:var(--paper-2); color:var(--ink);
  min-height:65svh; display:flex; align-items:flex-end;
  padding-block:calc(var(--header-h) + 2rem) clamp(3rem,7vw,6rem);
  position:relative; overflow:hidden;
}
.hero__title{
  font-family:var(--serif);
  font-size:clamp(2.2rem,10.5vw,9.5rem);
  line-height:.98; letter-spacing:-.02em;
  text-transform:uppercase;
}
.hero__title em{ font-style:italic; }
.hero__sub{
  margin-top:1.5rem; max-width:44ch;
  font-size:clamp(1.05rem,1.4vw,1.4rem); color:var(--grey);
}

/* page intro hero (subpages) */
.pagehero{ background:var(--paper-2); color:var(--ink); padding-block:clamp(5.5rem,9vw,8rem) clamp(1.5rem,3.5vw,3rem); }
.pagehero h1{
  font-family:var(--serif);
  font-size:clamp(2.6rem,8vw,6.5rem); line-height:.98;
}
.pagehero .lead{ margin-top:1.6rem; max-width:60ch; font-size:clamp(1.1rem,1.6vw,1.5rem); color:var(--grey); }

/* ============================================================
   GENERIC CONTENT
   ============================================================ */
.prose p{ margin:0 0 1.2rem; }
.prose p:last-child{ margin-bottom:0; }
.lead-text{ font-size:clamp(1.25rem,2.2vw,2rem); line-height:1.35; font-family:var(--serif); }

/* intro del proyecto: texto grande a la izquierda, resto a la derecha */
.proyecto-intro{ display:grid; gap:clamp(4.5rem,9vw,5.5rem) clamp(2.5rem,5vw,5rem); grid-template-columns:1fr; align-items:start; }
@media(min-width:860px){ .proyecto-intro{ grid-template-columns:1.05fr 0.95fr; } }
.proyecto-intro .lead-text{ margin:0; }
.proyecto-intro .prose{ font-size:1rem; color:#333; }

.split{ display:grid; gap:clamp(2rem,5vw,5rem); grid-template-columns:1fr; align-items:center; }
@media(min-width:860px){ .split{ grid-template-columns:1fr 1fr; } .split--text-first>*:first-child{ order:-1; } }
.split img{ width:100%; object-fit:cover; }

.figure-tall img{ width:100%; }
.media-row{ display:grid; gap:clamp(1rem,3vw,2rem); grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }

/* quote */
.pull{
  background:var(--paper); color:var(--ink);
  text-align:center;
}
.pull blockquote{
  margin:0 auto; max-width:24ch;
  font-family:var(--serif); font-style:italic;
  font-size:clamp(1.8rem,5vw,3.6rem); line-height:1.15;
}
.pull cite{ display:block; margin-top:1.6rem; font-style:normal; font-family:var(--sans);
  font-size:.85rem; letter-spacing:.12em; text-transform:uppercase; color:var(--red); }

/* numbered lines (líneas clave) */
.lines{ display:grid; gap:clamp(2rem,4vw,3.5rem); }
.line{ display:grid; gap:1rem 2.5rem; grid-template-columns:1fr; border-top:1px solid var(--grey-light); padding-top:2rem; }
@media(min-width:860px){ .line{ grid-template-columns:1fr 2fr; } }
.line__num{ font-family:var(--serif); color:var(--red); font-size:1.1rem; letter-spacing:.1em; }
.line__title{ font-family:var(--serif); font-size:clamp(1.4rem,2.6vw,2rem); line-height:1.15; margin-bottom:1rem; }

/* ============================================================
   WRITER / TEAM GRID
   ============================================================ */
.grid-people{
  display:grid; gap:clamp(1.5rem,3vw,2.6rem);
  grid-template-columns:repeat(2,1fr);
}
@media(min-width:680px){ .grid-people{ grid-template-columns:repeat(3,1fr); } }
@media(min-width:1024px){ .grid-people{ grid-template-columns:repeat(4,1fr); } }
.person{ display:flex; flex-direction:column; }
.person__img{ position:relative; aspect-ratio:3/4; overflow:hidden; background:var(--paper); }
.person__img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
a.person:hover .person__img img{ transform:scale(1.03); }
/* aire entre el rótulo (eyebrow) y la galería que le sigue */
.eyebrow + .grid-people{ margin-top:clamp(2rem,4.5vw,3.75rem); }
/* efecto foco: al pasar sobre una tarjeta, las demás del grupo pierden opacidad */
.grid-people .person{ transition:opacity .45s ease; }
.grid-people:hover .person{ opacity:.4; }
.grid-people:hover .person:hover{ opacity:1; }
.person__name{ font-family:var(--serif); font-size:1.15rem; line-height:1.2; margin-top:1rem; }
.person__meta{ font-size:.85rem; color:var(--grey); margin-top:.35rem; }
.person__writers{ font-size:.85rem; color:var(--ink); margin-top:.7rem; line-height:1.5; }
.person__writers .lbl{ display:block; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--grey); margin-bottom:.25rem; }
.person__writers a{ color:var(--ink); text-decoration:underline; text-underline-offset:2px; text-decoration-color:var(--grey-light); transition:color .2s; }
.person__writers a:hover{ color:var(--red); text-decoration-color:var(--red); }
a.person:hover .person__name{ color:var(--red); }

/* ============================================================
   FICHA (writer detail)
   ============================================================ */
.ficha-head{ background:var(--paper-2); color:var(--ink); padding-block:clamp(7rem,13vw,11rem) clamp(2.5rem,6vw,5rem); }
.ficha-head h1{ font-family:var(--serif); font-size:clamp(2.6rem,8vw,6rem); line-height:1; }
.ficha-researcher{ margin-top:1.2rem; font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; color:var(--grey); }
.ficha-researcher-link{ color:var(--ink); text-decoration:underline; text-underline-offset:2px;
  text-decoration-color:var(--grey-light); transition:color .2s, text-decoration-color .2s; }
.ficha-researcher-link:hover{ color:var(--red); text-decoration-color:var(--red); }
/* nombres de escritoras del sitio enlazados dentro de "Se relaciona con…" */
.ficha-namelink{ color:inherit; text-decoration:underline; text-underline-offset:2px;
  text-decoration-color:var(--grey-light); transition:color .2s, text-decoration-color .2s; }
.ficha-namelink:hover{ color:var(--red); text-decoration-color:var(--red); }
/* foto + poema a su derecha */
.ficha-intro{ margin-top:clamp(2rem,5vw,3rem); display:grid; gap:clamp(1.8rem,4vw,3.5rem);
  grid-template-columns:1fr; align-items:center; }
@media(min-width:760px){ .ficha-intro{ grid-template-columns:minmax(240px,0.85fr) 1.15fr; } }
.ficha-intro--solo{ grid-template-columns:1fr; }
@media(min-width:760px){ .ficha-intro--solo{ grid-template-columns:minmax(240px,420px); } }
.ficha-portrait{ margin:0; max-width:480px; }
.ficha-portrait img{ width:100%; }
.ficha-portrait-credit{ margin:.7rem 0 0; font-size:.72rem; letter-spacing:.02em;
  line-height:1.4; color:var(--grey); max-width:36ch; }
.ficha-cita{ margin:0; max-width:36ch;
  font-family:var(--serif); font-style:italic; font-size:clamp(1.05rem,1.6vw,1.55rem);
  line-height:1.4; white-space:pre-line; color:var(--ink); }
.ficha-cita cite{ display:block; margin-top:1.1rem; font-style:normal; font-family:var(--sans);
  font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--red); white-space:normal; }

/* resto del contenido: alineado a la izquierda (mismo borde que la galería),
   con ancho de lectura cómodo */
.ficha-body{ display:grid; grid-template-columns:1fr; gap:clamp(2.5rem,5vw,4rem);
  margin-bottom:clamp(1.5rem,3.5vw,3rem); }
@media(min-width:980px){ .ficha-body{ max-width:75ch; } }

/* ficha de investigadora (sin retrato; datos bajo el nombre) */
.member-aff{ font-family:var(--serif); font-size:clamp(1.2rem,2vw,1.6rem); line-height:1.25; margin:1.4rem 0 0; }
.member-role{ margin:.6rem 0 0; font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; color:var(--red); }
.member-links{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.8rem; }
.member-links a{ font-size:.8rem; letter-spacing:.04em; padding:.5rem 1.1rem; border:1px solid var(--grey-light);
  border-radius:999px; transition:border-color .2s, color .2s; }
.member-links a:hover{ border-color:var(--red); color:var(--red); }
.ficha-section h2{
  font-family:var(--serif); font-size:clamp(1.5rem,3vw,2.2rem);
  margin-bottom:1.3rem; padding-bottom:.6rem; border-bottom:1px solid rgba(0,0,0,.12);
}
.ficha-section h2 .n{ color:var(--red); margin-right:.6rem; }
.ficha-section p{ margin:0 0 1rem; }
.ficha-section a{ color:var(--red); text-decoration:underline; text-underline-offset:2px; word-break:break-word; }
.list-tight p{ margin:0 0 .55rem; }
.biblio p{ font-size:.95rem; color:#333; padding-left:1.4rem; text-indent:-1.4rem; }
/* bibliografía plegable (fichas con decenas de referencias) */
.biblio-details > summary{ cursor:pointer; list-style:none; display:inline-flex; align-items:center; gap:.5rem;
  font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; color:var(--red);
  padding:.55rem 0; user-select:none; }
.biblio-details > summary::-webkit-details-marker{ display:none; }
.biblio-details > summary::before{ content:"+"; font-size:1.1em; line-height:1; transition:transform .25s; }
.biblio-details[open] > summary::before{ content:"–"; }
.biblio-details > summary:hover{ opacity:.7; }
.biblio-count{ color:var(--grey); letter-spacing:.04em; text-transform:none; }
.biblio-details .prose{ margin-top:1rem; }

/* ============================================================
   CRONOLOGÍA
   ============================================================ */
/* barra fija de periodos */
.cron-nav{ position:sticky; top:var(--header-h); z-index:50; background:var(--paper-2);
  border-bottom:1px solid rgba(0,0,0,.08); }
.cron-nav .wrap{ display:flex; gap:clamp(1rem,3vw,2.4rem); overflow-x:auto; padding-block:.9rem;
  -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.cron-nav .wrap::-webkit-scrollbar{ display:none; }
.cron-nav a{ white-space:nowrap; font-size:.82rem; letter-spacing:.04em; color:var(--grey);
  transition:color .2s ease; }
.cron-nav a:hover{ color:var(--red); }

/* filtro de orden de la galería (mismo lenguaje que la barra de cronología) */
.sort-nav{ display:flex; align-items:center; flex-wrap:wrap; gap:clamp(.9rem,2.5vw,1.8rem);
  padding-bottom:.9rem; margin-bottom:clamp(1.8rem,3.5vw,2.8rem);
  border-bottom:1px solid rgba(0,0,0,.08); }
.sort-label{ font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); font-weight:600; }
.sort-btn,.filter-btn{ background:none; border:0; padding:0; cursor:pointer; font-family:inherit;
  font-size:.82rem; letter-spacing:.04em; color:var(--grey); transition:color .2s ease; white-space:nowrap; }
.sort-btn:hover,.filter-btn:hover{ color:var(--red); }
.sort-btn.is-active,.filter-btn.is-active{ color:var(--red); }
.sort-sep{ width:1px; align-self:stretch; min-height:1em; background:var(--grey-light); margin-inline:.3rem; }

.cron{ max-width:62rem; }
/* franja de era (chapter divider): solo tipografía, alineada a la izquierda */
.cron-era{ margin:clamp(2.8rem,6vw,4.5rem) 0 clamp(1.2rem,2.5vw,1.8rem);
  scroll-margin-top:calc(var(--header-h) + 64px); }
.cron-era:first-child{ margin-top:0; }
.cron-era__range{ font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--red); }
.cron-era__title{ font-family:var(--serif); font-size:clamp(1.8rem,4vw,3rem); line-height:1.05; margin:.5rem 0 .6rem; color:var(--ink); }
.cron-era__ctx{ margin:0; max-width:60ch; color:var(--grey); font-size:.95rem; }

/* una sola columna, todo alineado a la izquierda (como las fichas) */
.cron-row{ padding-block:clamp(1.1rem,2.4vw,1.8rem); border-top:1px solid var(--grey-light); }
.cron-year{ display:block; font-family:var(--serif); font-size:clamp(1.4rem,2.4vw,2rem);
  line-height:1; color:var(--ink); margin-bottom:.7rem; }
.cron-entries{ display:flex; flex-direction:column; gap:.8rem; }
.cron-item p{ margin:0; }
.cron-link{ color:var(--red); text-decoration:none; font-size:.9em; padding-left:.15rem; }
.cron-link:hover{ opacity:.7; }
.cron-tag{ display:inline-block; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--red); border:1px solid var(--red); border-radius:999px; padding:.12rem .55rem;
  vertical-align:middle; margin:0 .15rem; }

/* ============================================================
   FOOTER
   ============================================================ */
.contact{ background:var(--paper); color:var(--ink); border-top:1px solid rgba(0,0,0,.10); }
.contact h2{ font-family:var(--serif); font-size:clamp(2.2rem,6vw,4.5rem); line-height:1; margin-bottom:1.5rem; }
.contact .lead{ color:var(--grey); max-width:52ch; }
.contact-grid{ display:grid; gap:clamp(2rem,5vw,4rem); grid-template-columns:1fr; }
@media(min-width:860px){ .contact-grid{ grid-template-columns:1fr 1fr; } }
.cform{ display:grid; gap:1.1rem; }
.cform label{ font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--grey); display:block; margin-bottom:.45rem; }
.cform input,.cform textarea{
  width:100%; background:transparent; border:0; border-bottom:1px solid var(--grey-light);
  color:var(--ink); font-family:inherit; font-size:1rem; padding:.6rem 0;
}
.cform input:focus,.cform textarea:focus{ outline:none; border-color:var(--red); }
.cform textarea{ resize:vertical; min-height:90px; }
.cform .check{ display:flex; gap:.6rem; align-items:flex-start; font-size:.85rem; color:var(--grey); }
.cform .check input{ width:auto; }
.btn{
  justify-self:start; margin-top:.5rem;
  font-family:var(--sans); font-weight:600; letter-spacing:.1em; text-transform:uppercase; font-size:.8rem;
  background:var(--red); color:var(--white); border:0; cursor:pointer;
  padding:1rem 2.2rem; border-radius:999px; transition:opacity .2s;
}
.btn:hover{ opacity:.85; }

.site-footer{ background:var(--black); color:var(--grey-light); border-top:1px solid #262626; }
.site-footer .wrap{ display:grid; gap:2.5rem; grid-template-columns:1fr; }
@media(min-width:860px){ .site-footer .wrap{ grid-template-columns:2fr 1fr; align-items:start; } }
.footer-tag{ font-family:var(--serif); font-size:clamp(1.2rem,2.4vw,1.8rem); color:var(--white); line-height:1.2; max-width:30ch; }
.footer-nav{ display:flex; flex-direction:column; gap:.6rem; align-items:flex-start; }
/* subrayado animado (se dibuja al pasar) */
.link-underline,.footer-nav a{
  background-image:linear-gradient(currentColor,currentColor);
  background-size:0% 1px; background-repeat:no-repeat; background-position:0 100%;
  transition:background-size .35s cubic-bezier(.2,.7,.2,1), color .2s ease;
  padding-bottom:2px;
}
.link-underline:hover,.footer-nav a:hover{ background-size:100% 1px; }
.footer-nav a:hover{ color:var(--red); }
.footer-fund{ grid-column:1/-1; border-top:1px solid #262626; padding-top:1.8rem; display:flex; gap:1.5rem; flex-wrap:wrap; justify-content:space-between; font-size:.8rem; color:var(--grey); }
.footer-symbol{ height:26px; width:auto; opacity:.9; }

/* ============================================================
   MOVIMIENTO — apariciones y parallax
   ============================================================ */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.reveal.is-in{ opacity:1; transform:none; }

/* ---- Transición al cambiar de página ---- */
/* Navegadores compatibles (Chrome/Edge): fundido suave entre documentos */
/* Crossfade entre documentos donde esté disponible (Chrome/Edge recientes) */
@view-transition{ navigation:auto; }
::view-transition-old(root){ animation:vt-out .55s ease both; }
::view-transition-new(root){ animation:vt-in 1.4s cubic-bezier(.2,.7,.2,1) both; }
@keyframes vt-out{ to{ opacity:0; } }
@keyframes vt-in{ from{ opacity:0; transform:translateY(34px); } to{ opacity:1; transform:none; } }

/* Entrada al cargar cada página — SIEMPRE (mismo tiempo/curva que el menú).
   Funciona en cualquier navegador; no depende de @supports. */
@keyframes page-in{ from{ opacity:0; transform:translateY(34px); } to{ opacity:1; transform:none; } }
main#main{ animation:page-in 1.4s cubic-bezier(.2,.7,.2,1) both; }

/* cortina (mask reveal) para imágenes grandes de contenido y retratos */
.img-reveal{ display:block; overflow:hidden; }
.img-reveal img{ will-change:transform, clip-path;
  transform:translateY(18%) scale(1.05); clip-path:inset(100% 0 0 0);
  transition:transform 1.8s cubic-bezier(.2,.7,.2,1), clip-path 1.8s cubic-bezier(.2,.7,.2,1); }
.img-reveal.is-in img{ transform:translateY(0) scale(1); clip-path:inset(0 0 0 0); }

html.lenis,html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-smooth [data-lenis-prevent]{ overscroll-behavior:contain; }
.lenis.lenis-stopped{ overflow:hidden; }

@media (prefers-reduced-motion: reduce){
  *{ scroll-behavior:auto !important; }
  .reveal{ opacity:1 !important; transform:none !important; }
  .img-reveal img{ transform:none !important; clip-path:none !important; }
  ::view-transition-old(root),::view-transition-new(root){ animation:none !important; }
  main#main{ animation:none !important; }
  .nav-list a{ opacity:1 !important; transform:none !important; transition:color .2s ease !important; }
}

/* utilities */
.mt-img{ margin-top:clamp(4.5rem,9vw,7rem); }
.center{ text-align:center; }
.maxw-prose{ max-width:62ch; }
.hide{ display:none !important; }
