/* MONLITH · monlith.cloud
   Escrito a mano. Sin framework, sin runtime, sin terceros.
   La marca es de Camilo Báez: «MONLITH CREACIÓN MARCA», septiembre de 2026 (Drive de la cuenta MONLITH).
   Paleta, en su orden: D8D3CD · C3BFB6 · 8E8A81 · 4E535A · 1E1E1E.
   Tipografía del manual: Kanit Seminegrita para la marca, Poppins Bold para los textos emocionales,
   Poppins Regular para el cuerpo y Kanit Regular con interletrado 150 para los textos técnicos.
   Los archivos de fuente son los suyos (TTF), convertidos a woff2 y recortados al latino. */

/* ── Tipografías de Camilo, auto-hospedadas ─────────────────────────────── */
@font-face{font-family:"Kanit";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/kanit-400.woff2") format("woff2")}
@font-face{font-family:"Kanit";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/kanit-600.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/poppins-400.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/poppins-500.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/poppins-600.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/poppins-700.woff2") format("woff2")}

/* ── Tokens: los cinco colores del manual y nada más ───────────────────── */
:root{
  --piedra-1:#D8D3CD;   /* la base de la página, como en sus maquetas */
  --piedra-2:#C3BFB6;   /* superficies alternas */
  --piedra-3:#8E8A81;   /* texto grande apagado, decoración */
  --pizarra:#4E535A;    /* texto secundario y rótulos sobre claro */
  --negro:#1E1E1E;      /* tinta y bandas oscuras */
  --negro-2:#2A2A2A;    /* el gris de su página de símbolos: campos sobre negro */

  --fondo:var(--piedra-1);
  --fondo-2:var(--piedra-2);
  --tinta:var(--negro);
  --tinta-2:var(--pizarra);
  --tinta-3:var(--piedra-3);
  --linea:#B3AFA7;      /* piedra-3 al 55 % sobre piedra-1: se ve sin pesar */
  --foco:var(--pizarra);
  --boton-fondo:var(--negro);
  --boton-tinta:var(--piedra-1);
  --boton-hover:var(--pizarra);
  --escena-fondo:#8E8A81;  /* piedra-3: el borde de los cuadros de la película (viñeta), medido */

  --marca:"Kanit","Arial Narrow",Arial,sans-serif;
  --texto:"Poppins","Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  --ancho:1200px;
  --gutter:clamp(16px,4vw,40px);
  --seccion:clamp(64px,9vw,120px);
  --radio:4px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--fondo);color:var(--tinta);font-family:var(--texto);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
[hidden]{display:none !important}
/* un <img> dentro de una pista 1fr le impone su ancho intrinseco a la pista; con esto la pista manda */
.cab__in>*,.portada__grid>*,.contacto>*,.pie__in>*,.muestras>*{min-width:0}
a{color:inherit}
/* textos emocionales: Poppins Bold, apretado */
h1,h2,h3,h4{font-family:var(--texto);margin:0;text-wrap:balance}
h1{font-size:clamp(46px,8.4vw,112px);font-weight:700;line-height:.95;letter-spacing:-.03em}
h2{font-size:clamp(32px,4.6vw,60px);font-weight:700;line-height:1.02;letter-spacing:-.02em}
h3{font-size:clamp(20px,2vw,24px);font-weight:600;line-height:1.2;letter-spacing:-.01em}
h4{font-size:18px;font-weight:600;line-height:1.25}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
.ancho{max-width:var(--ancho);margin-inline:auto;padding-inline:var(--gutter)}
/* textos técnicos del manual: Kanit Regular, mayúsculas, interletrado 150 */
.rotulo{font-family:var(--marca);font-weight:400;font-size:12.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--tinta-2);margin:0 0 14px;line-height:1.5}
/* textos emocionales suaves: Poppins Regular, interletrado 300 */
.amplio{font-family:var(--texto);font-weight:400;font-size:13px;letter-spacing:.3em;text-transform:uppercase;line-height:1.75}
.entrada{font-size:clamp(17px,1.5vw,20px);line-height:1.55;color:var(--tinta-2);max-width:60ch}
.mono{font-family:var(--marca);letter-spacing:.04em}

/* foco visible siempre: 3px, separado; pizarra sobre claro, piedra sobre oscuro */
:focus-visible{outline:3px solid var(--foco);outline-offset:3px;border-radius:2px}
.salto{position:absolute;left:var(--gutter);top:-60px;padding:10px 14px;background:var(--negro);color:var(--piedra-1);font-family:var(--marca);font-size:13px;letter-spacing:.06em;z-index:20}
.salto:focus{top:12px}

/* ── Botones ───────────────────────────────────────────────────────────── */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border-radius:var(--radio);font-family:var(--texto);font-weight:500;font-size:15.5px;text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}
.boton--negro{background:var(--boton-fondo);color:var(--boton-tinta);border-color:var(--boton-fondo)}
.boton--negro:hover{background:var(--boton-hover);border-color:var(--boton-hover)}
.boton--linea{background:transparent;color:var(--tinta);border-color:currentColor}
.boton--linea:hover{background:var(--tinta);color:var(--fondo)}
.boton--chico{min-height:42px;padding:8px 16px;font-size:14.5px}
.boton:active{transform:translateY(1px)}
.flecha{font-family:var(--marca);font-weight:400}

/* ── Cabecera ──────────────────────────────────────────────────────────── */
.cab{position:sticky;top:0;z-index:10;background:rgba(216,211,205,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .2s ease}
.cab--pegada{border-bottom-color:var(--linea)}
.cab__in{max-width:var(--ancho);margin-inline:auto;padding:14px var(--gutter);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px}
/* la marca: el símbolo «nn» de Camilo y la palabra en Kanit Seminegrita */
.marca{display:inline-flex;align-items:center;gap:11px;text-decoration:none;color:var(--tinta);font-family:var(--marca);font-weight:600;font-size:21px;letter-spacing:.03em;line-height:1;text-transform:uppercase}
.marca svg{width:44px;height:22px;flex:none;fill:currentColor}
.nav ul{display:flex;gap:2px;justify-content:center;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.nav ul::-webkit-scrollbar{display:none}
.nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 13px;text-decoration:none;font-size:15px;font-weight:500;color:var(--tinta-2);border-bottom:2px solid transparent;white-space:nowrap}
.nav a:hover{color:var(--tinta);border-bottom-color:var(--tinta)}
@media (max-width:760px){
  .cab__in{grid-template-columns:1fr auto;grid-template-areas:"marca cta" "nav nav";row-gap:6px;padding-block:10px}
  .marca{grid-area:marca;font-size:19px}.marca svg{width:38px;height:19px}
  .nav{grid-area:nav;margin-inline:calc(-1 * var(--gutter))}.nav ul{justify-content:flex-start;padding-inline:var(--gutter)}
  .cab .boton--chico{grid-area:cta}
}

/* ── Portada: el key visual de Camilo ──────────────────────────────────── */
.portada{position:relative;display:flex;flex-direction:column;min-height:clamp(600px,92vh,900px);overflow:hidden;border-bottom:1px solid var(--linea)}
.portada__foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:68% 50%;z-index:0}
.portada__velo{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(216,211,205,.94) 0,rgba(216,211,205,.82) 34%,rgba(216,211,205,.3) 58%,rgba(216,211,205,0) 78%)}
.portada__grid{position:relative;z-index:2;flex:1;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:40px;padding-block:clamp(56px,9vh,120px) clamp(32px,5vh,64px)}
.portada__texto{max-width:620px}
.portada__texto h1{margin:14px 0 24px}
.portada__texto .amplio{max-width:44ch;color:var(--tinta)}
.acciones{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.portada__lista{align-self:start;display:grid;gap:12px;font-family:var(--marca);font-size:12.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--tinta);padding-top:6px}
.portada__lista li{display:flex;gap:16px;align-items:baseline;white-space:nowrap}
.portada__lista b{font-weight:600;color:var(--tinta-2)}
/* width:100%: dentro de un flex en columna, el margin-inline:auto de .ancho encogería la fila a su contenido */
/* las dos líneas van juntas a la izquierda, sobre el velo: a la derecha el suelo de la foto es oscuro y el rótulo desaparecía */
.portada__pie{position:relative;z-index:2;width:100%;display:flex;justify-content:flex-start;align-items:end;gap:40px;padding-bottom:28px}
.portada__pie strong{display:block;font-weight:700;font-size:15px;line-height:1.35;max-width:22ch}
.portada__pie .rotulo{margin:0}
@media (max-width:900px){
  .portada{min-height:0}
  .portada__foto{object-position:62% 50%}
  .portada__velo{background:linear-gradient(180deg,rgba(216,211,205,.96) 0,rgba(216,211,205,.9) 42%,rgba(216,211,205,.55) 66%,rgba(216,211,205,.12) 100%)}
  .portada__grid{grid-template-columns:1fr;padding-block:36px 56px;gap:28px}
  .portada__lista{display:flex;flex-wrap:wrap;gap:10px 22px}
  .portada__pie{padding-bottom:22px;flex-direction:column;align-items:start;gap:10px}
}
/* en el teléfono la navegación se desplaza de lado: el desvanecido avisa que hay más */
@media (max-width:760px){.nav{-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}}

/* ── La escena: el monolito que se forma con el scroll ─────────────────── */
/* Por defecto (sin JS, o con movimiento reducido) es un bloque quieto: el
   primer cuadro y los capítulos uno debajo del otro. El JS agrega .escena--viva. */
.escena{position:relative;background:var(--escena-fondo);border-bottom:1px solid var(--linea)}
.escena__cuadro{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--escena-fondo)}
.escena__lienzo,.escena__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.escena__lienzo{z-index:1}.escena__poster{z-index:2}
.escena__capa{display:grid;gap:36px;padding:clamp(32px,5vw,56px) var(--gutter);max-width:var(--ancho);margin-inline:auto}
.capitulo{max-width:640px}
.capitulo .rotulo{margin-bottom:10px}
.capitulo h2{font-size:clamp(28px,3.4vw,46px);margin-bottom:14px}
.capitulo p:not(.rotulo){font-size:clamp(16px,1.3vw,18px);line-height:1.5;color:var(--tinta-2)}
.escena__barra,.escena__marca{display:none}
@media (prefers-reduced-motion:no-preference){
  .escena--viva{height:700vh}
  /* fija DEBAJO de la cabecera, no detrás: la piedra tiene aire arriba y abajo (el JS mide la cabecera) */
  .escena--viva .escena__pega{position:sticky;top:var(--cab-alto,72px);height:calc(100vh - var(--cab-alto,72px));height:calc(100svh - var(--cab-alto,72px));overflow:hidden}
  .escena--viva .escena__cuadro{position:absolute;inset:0;aspect-ratio:auto}
  /* grano de película: una textura fija que tiembla por pasos (sólo transform: no cuesta CPU) */
  .escena--viva .escena__cuadro::after{content:"";position:absolute;inset:-60px;z-index:2;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 1.4 -.2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
    animation:grano .9s steps(6) infinite}
  @keyframes grano{0%{transform:translate(0,0)}17%{transform:translate(-22px,14px)}33%{transform:translate(18px,-26px)}50%{transform:translate(-12px,-8px)}67%{transform:translate(26px,20px)}83%{transform:translate(-30px,6px)}100%{transform:translate(0,0)}}
  /* margin:0 y width:100%: como hija de un flex en columna, con margin-inline:auto se encogería a nada */
  .escena--viva .escena__capa{position:absolute;inset:0;z-index:3;pointer-events:none;padding:0;margin:0;width:100%;max-width:none;display:block;
    /* la película tiene viñeta: los costados se oscurecen justo donde va el texto; un velo de piedra-1 los levanta */
    background:linear-gradient(90deg,rgba(216,211,205,.32) 0,rgba(216,211,205,0) 40%,rgba(216,211,205,0) 60%,rgba(216,211,205,.4) 100%)}
  /* sobre la película el texto va en tinta: el gris pizarra no llega a 4,5:1 sobre la pared de la derecha */
  .escena--viva .capitulo .rotulo,.escena--viva .capitulo p:not(.rotulo){color:var(--tinta)}
  /* la piedra ocupa el 43-57 % del ancho: los capítulos terminan antes del 41 % o empiezan después del 59 % */
  .escena--viva .capitulo{position:absolute;top:50%;left:max(var(--gutter),calc(50vw - 600px + var(--gutter)));right:59%;transform:translateY(-50%);max-width:none}
  .escena--viva .capitulo--der{left:59%;right:max(var(--gutter),calc(50vw - 600px + var(--gutter)))}
  .escena--viva .capitulo__in{opacity:0;will-change:opacity,transform}
  .escena--viva .escena__barra{display:block;position:absolute;left:var(--gutter);right:var(--gutter);bottom:24px;height:2px;background:rgba(30,30,30,.16);z-index:3}
  .escena--viva .escena__barra i{display:block;height:100%;background:var(--negro);transform-origin:left;transform:scaleX(0)}
  .escena--viva .escena__marca{display:block;position:absolute;right:var(--gutter);bottom:36px;z-index:3;margin:0;transition:opacity .4s ease;color:var(--piedra-1)} /* aparece sobre los primeros cuadros, que son oscuros */
  .escena__marca--fuera{opacity:0}
  /* teléfono: arriba la piedra entera (cuadros recortados en vertical, 4:5), abajo el capítulo */
  @media (max-width:760px){
    .escena--viva{height:540vh}
    .escena--viva .escena__pega{display:flex;flex-direction:column}
    .escena--viva .escena__cuadro{position:relative;inset:auto;aspect-ratio:auto;flex:1 1 auto;min-height:0}
    .escena--viva .escena__capa{position:relative;inset:auto;flex:0 0 262px;background:var(--piedra-1)}
    .escena--viva .capitulo,.escena--viva .capitulo--der{position:absolute;top:16px;left:var(--gutter);right:var(--gutter);transform:none;max-width:none}
    .escena--viva .capitulo h2{font-size:27px;margin-bottom:10px}
    .escena--viva .capitulo p:not(.rotulo){font-size:15px;line-height:1.45}
    .escena--viva .escena__barra{bottom:14px}
    .escena--viva .escena__marca{display:none}
  }
}

/* ── El telón de entrada ───────────────────────────────────────────────── */
/* Los dos módulos «n» giran cada uno sobre su eje, se apilan en la figura
   cerrada del manual (una «n» sobre otra invertida), la figura gira, vuelven a
   ser el símbolo y el telón se abre. 2,4 s. Termina solo por CSS. */
.telon{display:none}
.con-telon .telon{display:block;position:fixed;inset:0;z-index:100;cursor:pointer;animation:telon-fin 2.4s linear forwards}
.telon__hoja{position:absolute;top:0;bottom:0;width:50.5%;background:var(--negro)}
.telon__hoja--a{left:0;animation:telon-hoja-a 2.4s forwards}
.telon__hoja--b{right:0;animation:telon-hoja-b 2.4s forwards}
.telon__marca{position:absolute;left:50%;top:50%;width:118px;height:58px;margin:-29px 0 0 -59px;animation:telon-giro 2.4s forwards}
.telon__n{position:absolute;top:0;width:60px;height:58px;fill:var(--piedra-1);opacity:0}
.telon__n--a{left:0;animation:telon-a 2.4s forwards}
.telon__n--b{left:58px;animation:telon-b 2.4s forwards}
.telon--fuera{animation:telon-salir .3s ease forwards !important}
@keyframes telon-fin{0%,99%{visibility:visible}100%{visibility:hidden}}
@keyframes telon-salir{to{opacity:0;visibility:hidden}}
@keyframes telon-hoja-a{0%,72%{transform:translateX(0);animation-timing-function:cubic-bezier(.7,0,.2,1)}100%{transform:translateX(-101%)}}
@keyframes telon-hoja-b{0%,72%{transform:translateX(0);animation-timing-function:cubic-bezier(.7,0,.2,1)}100%{transform:translateX(101%)}}
@keyframes telon-giro{
  0%,42%{transform:rotate(0) scale(1);opacity:1}
  50%,54%{transform:rotate(90deg) scale(1)}
  62%,72%{transform:rotate(0) scale(1);opacity:1}
  82%,100%{transform:rotate(0) scale(.9);opacity:0}
}
@keyframes telon-a{
  0%{opacity:0;transform:perspective(420px) translate(0,0) rotateY(0) rotate(0) scale(.86)}
  8%{opacity:1;transform:perspective(420px) translate(0,0) rotateY(0) rotate(0) scale(1)}
  28%,32%{opacity:1;transform:perspective(420px) translate(0,0) rotateY(360deg) rotate(0) scale(1)}
  42%,58%{opacity:1;transform:perspective(420px) translate(29px,-29px) rotateY(360deg) rotate(0) scale(1)}
  70%,100%{opacity:1;transform:perspective(420px) translate(0,0) rotateY(360deg) rotate(0) scale(1)}
}
@keyframes telon-b{
  0%{opacity:0;transform:perspective(420px) translate(0,0) rotateY(0) rotate(0) scale(.86)}
  8%{opacity:1;transform:perspective(420px) translate(0,0) rotateY(0) rotate(0) scale(1)}
  28%,32%{opacity:1;transform:perspective(420px) translate(0,0) rotateY(-360deg) rotate(0) scale(1)}
  42%,58%{opacity:1;transform:perspective(420px) translate(-29px,29px) rotateY(-360deg) rotate(180deg) scale(1)}
  70%,100%{opacity:1;transform:perspective(420px) translate(0,0) rotateY(-360deg) rotate(360deg) scale(1)}
}
@media (prefers-reduced-motion:reduce){.telon{display:none !important}}

/* ── Secciones ─────────────────────────────────────────────────────────── */
.seccion{padding-block:var(--seccion)}
.seccion--piedra{background:var(--fondo-2);--fondo:var(--piedra-2);--linea:#A5A199}
.seccion__cabeza{max-width:800px}
.seccion__cabeza h2{margin-bottom:18px}
.sub{margin:clamp(44px,6vw,72px) 0 18px;font-family:var(--marca);font-size:12.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--tinta-2);font-weight:400}

/* bandas oscuras: mismo sistema, tokens invertidos */
.banda{background:var(--negro);color:var(--piedra-1);--tinta:var(--piedra-1);--tinta-2:var(--piedra-2);--tinta-3:var(--piedra-3);--linea:#454543;--fondo:var(--negro);--fondo-2:var(--negro-2);--foco:var(--piedra-1);--boton-fondo:var(--piedra-1);--boton-tinta:var(--negro);--boton-hover:#FFFFFF}

/* ── Lo que hacemos: los cuatro servicios del manual y las seis capas ──── */
.servicios{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,3vw,36px);margin-top:clamp(40px,6vw,64px)}
.servicios li{border-top:2px solid var(--tinta);padding-top:18px}
.servicios svg{width:30px;height:15px;display:block;margin-bottom:18px;fill:var(--tinta)}
.servicios h3{margin-bottom:8px;font-size:20px}
.servicios p{color:var(--tinta-2);font-size:15.5px;line-height:1.5}
@media (max-width:900px){.servicios{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.servicios{grid-template-columns:1fr}}
.publico{display:flex;flex-wrap:wrap;gap:8px 0;margin-top:22px;font-family:var(--marca);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--tinta)}
.publico li{padding-right:14px;margin-right:14px;border-right:1px solid var(--linea);line-height:1.4}
.publico li:last-child{border-right:0;padding-right:0;margin-right:0}
.estructura{border-top:1px solid var(--linea)}
/* la columna del nombre mide lo que mide el nombre más largo (INFRAESTRUCTURA): nunca se sale */
.estructura li{display:grid;grid-template-columns:52px auto minmax(0,1fr);gap:6px 24px;padding:18px 0;border-bottom:1px solid var(--linea);align-items:baseline}
.estructura b{font-family:var(--marca);font-weight:600;font-size:14px;letter-spacing:.1em;color:var(--tinta-2)}
.estructura h3{font-size:16px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.estructura p{color:var(--tinta-2);font-size:15.5px;line-height:1.5}
@media (max-width:760px){.estructura li{grid-template-columns:44px minmax(0,1fr)}.estructura p{grid-column:2}}
.prueba{margin-top:clamp(40px,6vw,64px);padding-top:24px;border-top:2px solid var(--tinta);max-width:72ch}
.prueba p:last-child{font-size:17px;color:var(--tinta-2)}

/* ── Muestras: cuatro páginas de demostración, en un portátil y un teléfono ── */
.muestras{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px) clamp(20px,3vw,40px);margin-top:clamp(40px,6vw,64px)}
.muestra{display:grid;gap:18px;align-content:start}
.muestra__escena{display:block;position:relative;padding:9% 15% 11% 6%;background:linear-gradient(160deg,var(--piedra-1),#B8B3AA);border-radius:var(--radio);text-decoration:none;overflow:hidden}
.portatil,.telefono{display:block;background:var(--negro);overflow:hidden;box-shadow:0 34px 54px -28px rgba(30,30,30,.65)}
.portatil{border:6px solid var(--negro);border-radius:10px;transform:perspective(1400px) rotateY(-5deg);transform-origin:right center;transition:transform .5s ease}
.portatil img,.telefono img{width:100%;height:auto;display:block}
.telefono{position:absolute;right:6%;bottom:7%;width:22%;border:5px solid var(--negro);border-radius:22px;transform:rotate(3deg);transition:transform .5s ease}
.muestra__escena:hover .portatil,.muestra__escena:focus-visible .portatil{transform:perspective(1400px) rotateY(0)}
.muestra__escena:hover .telefono,.muestra__escena:focus-visible .telefono{transform:rotate(0)}
.muestra__texto .rotulo{margin-bottom:8px}
.muestra__texto h3{font-size:24px;margin:0 0 8px;letter-spacing:.08em;text-transform:uppercase}
.muestra__texto p{color:var(--tinta-2);font-size:15.5px;line-height:1.5}
.muestra__capas{font-family:var(--marca);font-size:12.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--tinta) !important;margin-top:10px}
.muestra__ver{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:4px;font-weight:500;color:var(--tinta)}
.muestras--reales{margin-top:0}
.muestras--reales + .sub{margin-top:clamp(48px,6vw,80px)}
#muestras .seccion__cabeza + .sub{margin-top:clamp(36px,5vw,56px)}
@media (max-width:760px){.muestras{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.portatil,.telefono{transition:none}}

/* ── Cómo trabajamos ───────────────────────────────────────────────────── */
.metodo{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(14px,2vw,28px);margin-top:clamp(44px,6vw,72px)}
.metodo li{border-top:2px solid var(--tinta);padding-top:16px}
.metodo__n{display:block;font-family:var(--marca);font-weight:600;font-size:13px;letter-spacing:.12em;color:var(--tinta-2);margin-bottom:10px}
.metodo h3{font-size:22px;margin-bottom:8px}
.metodo p{color:var(--tinta-2);font-size:15px;line-height:1.5}
@media (max-width:900px){.metodo{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.metodo{grid-template-columns:1fr}.metodo li{border-top-width:1px}}
.siempre{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 32px;max-width:900px}
.siempre li{position:relative;padding-left:24px;color:var(--tinta-2);font-size:15.5px}
.siempre li::before{content:"";position:absolute;left:0;top:.7em;width:12px;height:2px;background:var(--tinta)}
@media (max-width:640px){.siempre{grid-template-columns:1fr}}

/* ── Contacto ──────────────────────────────────────────────────────────── */
.contacto{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:start}
.contacto .seccion__cabeza{max-width:none}
.formulario{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.campo{display:flex;flex-direction:column;gap:6px}
.campo--ancho{grid-column:1 / -1}
.campo label{font-weight:500;font-size:15.5px}
.campo__ayuda{font-family:var(--marca);font-weight:400;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-2);margin-left:8px}
.campo input,.campo textarea{width:100%;font:inherit;font-size:16px;color:var(--piedra-1);background:var(--negro-2);border:1px solid var(--linea);border-radius:var(--radio);padding:12px 14px;min-height:48px;resize:vertical}
.campo input:hover,.campo textarea:hover{border-color:var(--piedra-3)}
.formulario__aviso{grid-column:1 / -1;font-size:14px;color:var(--piedra-1);border-left:2px solid var(--piedra-2);padding-left:12px}
.formulario__pie{gap:14px}
.formulario__trampa{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.formulario__legal{font-size:13px;color:var(--tinta-2);line-height:1.5;max-width:56ch}
.formulario__legal a{color:var(--tinta)}
.resultado{grid-column:1 / -1;margin-top:8px;border-top:1px solid var(--linea);padding-top:28px;display:grid;gap:16px}
.resultado__texto{white-space:pre-wrap;font-family:var(--texto);font-size:14.5px;line-height:1.55;background:var(--negro-2);border:1px solid var(--linea);border-radius:var(--radio);padding:16px 18px;margin:0;color:var(--tinta-2);max-width:72ch}
.resultado .acciones{margin-top:0}
.resultado__correo{font-size:15px;color:var(--tinta-2)}
@media (max-width:900px){.contacto{grid-template-columns:1fr}}
@media (max-width:640px){.formulario{grid-template-columns:1fr}}

/* ── Pie ───────────────────────────────────────────────────────────────── */
.pie{border-top:1px solid var(--linea);padding-block:clamp(40px,6vw,72px) clamp(28px,4vw,48px)}
.pie__in{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,5vw,72px);align-items:end}
.pie__marca{display:grid;gap:14px;color:var(--tinta)}
.pie__marca svg{width:clamp(96px,14vw,176px);height:auto;fill:currentColor}
.pie__marca p{font-family:var(--marca);font-weight:600;font-size:clamp(44px,7.6vw,104px);line-height:.9;letter-spacing:.02em;margin:0}
.pie__texto{display:grid;gap:8px;font-size:15px;color:var(--tinta-2)}
.pie__enlaces{display:flex;gap:22px;margin-top:6px}
.pie__enlaces a{display:inline-flex;align-items:center;min-height:44px;color:var(--tinta)}
.pie__ano{font-family:var(--marca);font-size:12.5px;letter-spacing:.08em;color:var(--tinta-2)}
@media (max-width:640px){.pie__in{grid-template-columns:1fr}}

/* ── Movimiento: aproximación, con estado de reposo visible ───────────── */
.js .aparece{opacity:.001;transform:translateY(14px) scale(.985);transition:opacity .7s ease,transform .7s ease}
.js .aparece.visto{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .js .aparece{opacity:1;transform:none;transition:none}
  .boton,.cab{transition:none}
}

/* ── Página de privacidad ──────────────────────────────────────────────── */
.articulo{padding-block:clamp(40px,7vw,96px);max-width:760px}
.articulo h1{font-size:clamp(34px,5vw,56px);margin-bottom:10px}
.articulo h2{font-size:24px;margin:36px 0 10px}
.articulo p,.articulo li{color:var(--tinta-2);font-size:16px;line-height:1.65;margin-bottom:12px}
.articulo ul{list-style:disc;padding-left:22px}
.articulo .rotulo{margin-bottom:8px}
