/* ═══════════════════════════════════════════════════════════
   pablocoviza.com · hoja de estilos única
   Fuentes autoalojadas (OFL, licencias en /assets/fonts/).
   Cero peticiones a terceros: ninguna IP de visitante sale de aquí.
   ═══════════════════════════════════════════════════════════ */

/* ---------- 1. Fuentes reales (variables, subconjunto latin) ---------- */
@font-face{
  font-family:'Archivo';
  src:url('/assets/fonts/archivo-var.woff2') format('woff2-variations');
  font-weight:100 900; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Instrument Sans';
  src:url('/assets/fonts/instrument-sans-var.woff2') format('woff2-variations');
  font-weight:400 700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Martian Mono';
  src:url('/assets/fonts/martian-mono-var.woff2') format('woff2-variations');
  font-weight:100 800; font-style:normal; font-display:swap;
}

/* ---------- 2. Fallbacks con métricas ajustadas ----------
   Calculadas con fontTools contra Arial/Helvetica/Liberation Sans.
   Hacen que el texto ocupe EXACTAMENTE el mismo espacio antes y
   después de cargar la fuente real. Resultado: CLS = 0.            */
@font-face{
  font-family:'Archivo Fallback'; src:local('Arial'),local('Helvetica'),local('Liberation Sans');
  size-adjust:103.58%; ascent-override:84.77%; descent-override:20.27%; line-gap-override:0%;
}
@font-face{
  font-family:'Instrument Fallback'; src:local('Arial'),local('Helvetica'),local('Liberation Sans');
  size-adjust:110.64%; ascent-override:87.67%; descent-override:22.60%; line-gap-override:0%;
}
@font-face{
  font-family:'Martian Fallback'; src:local('Arial'),local('Helvetica'),local('Liberation Sans');
  size-adjust:137.32%; ascent-override:72.82%; descent-override:14.56%; line-gap-override:0%;
}

/* ---------- 3. Tokens ---------- */
:root{
  --bezel:#0B0B0C;
  --panel:#141416;
  --panel-hi:#1B1B1E;
  --ink:#F2F1EE;
  --prose:#CFCDC8;
  --dim:#8C8A85;
  --rule:#2A2A2D;
  --amber:#FFC400;
  --on-amber:#191A16;
  --cyan:#A8A49C;

  --display:'Archivo','Archivo Fallback',system-ui,sans-serif;
  --body:'Instrument Sans','Instrument Fallback',system-ui,sans-serif;
  --mono:'Martian Mono','Martian Fallback',ui-monospace,monospace;

  --bar-h:46px;
  --gut:clamp(20px,5vw,64px);
}

/* ---------- 4. Base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bezel);color:var(--ink);
  font-family:var(--body);font-size:17px;line-height:1.55;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img,svg,video,iframe{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:2px}
::selection{background:var(--amber);color:var(--on-amber)}

.skip{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--amber);color:var(--on-amber);
  padding:12px 20px;font-weight:600;text-decoration:none;
}
.skip:focus{left:8px;top:8px}

/* ---------- 5. Timeline fija (elemento de marca) ---------- */
.tl{
  position:fixed;inset:0 0 auto 0;height:var(--bar-h);z-index:50;
  display:flex;align-items:center;gap:18px;padding:0 var(--gut);
  background:rgba(11,11,12,.88);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--rule);
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;
}
.tl-name{color:var(--ink);white-space:nowrap;font-weight:500}
.tl-track{position:relative;flex:1;height:3px;background:var(--rule);border-radius:2px;min-width:60px}
.tl-fill{position:absolute;inset:0 auto 0 0;width:0;background:var(--amber);border-radius:2px}
.tl-mark{
  position:absolute;top:50%;width:11px;height:11px;padding:0;
  margin:-5.5px 0 0 -5.5px;background:var(--panel);
  border:1.5px solid var(--dim);transform:rotate(45deg);cursor:pointer;
}
.tl-mark:hover,.tl-mark[data-on="1"]{border-color:var(--amber);background:var(--amber)}
.tl-tc{color:var(--cyan);white-space:nowrap;font-variant-numeric:tabular-nums}
@media(max-width:680px){.tl-name{display:none}}

/* ---------- 6. Estructura ---------- */
main{padding-top:var(--bar-h)}
section{padding:clamp(64px,10vw,132px) var(--gut);border-bottom:1px solid var(--rule)}
/* El navegador no pinta lo que está fuera de pantalla hasta que hace falta.
   contain-intrinsic-size reserva el hueco para que no haya saltos de scroll. */
section:not(.hero){content-visibility:auto;contain-intrinsic-size:auto 640px}
.wrap{max-width:1080px;margin:0 auto}

.slate{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  color:var(--dim);display:flex;align-items:center;gap:12px;margin:0 0 30px;
}
.slate b{color:var(--cyan);font-weight:400}
.slate i{flex:1;height:1px;background:var(--rule);font-style:normal}

h1,h2,h3{font-family:var(--display);font-weight:800;letter-spacing:-.025em;line-height:1.02;margin:0}
h1{font-size:clamp(34px,7.2vw,76px)}
h2{font-size:clamp(27px,4.4vw,46px)}
h3{font-size:19px;letter-spacing:-.01em;font-weight:700}
p{margin:0 0 18px}
.lede{font-size:clamp(17px,2.1vw,21px);color:var(--dim);max-width:56ch}
.lede strong{color:var(--ink);font-weight:600}
.mb-lg{margin-bottom:34px}

/* ---------- 7. Hero ---------- */
.hero{padding-top:clamp(56px,9vw,104px)}
.hero h1{max-width:15ch;margin-bottom:26px}
.hero h1 em{font-style:normal;color:var(--amber)}
.hero .lede{margin-bottom:40px}

.reel-frame{
  position:relative;aspect-ratio:16/9;background:var(--panel);
  border:1px solid var(--rule);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px;
}
.reel-frame span{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;color:var(--dim)}
.reel-frame strong{font-family:var(--display);font-size:clamp(17px,3vw,26px);font-weight:700;color:var(--ink)}
.wave{display:flex;align-items:flex-end;gap:2px;height:34px;margin-top:12px}
.wave i{flex:1;background:var(--rule);min-width:1px}

/* ---------- 8. Rejillas ---------- */
.cols{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:8px}
@media(min-width:820px){.cols{grid-template-columns:repeat(3,1fr)}}
.cell{background:var(--bezel);padding:clamp(24px,3vw,34px)}
.cell h3{margin-bottom:12px}
.cell p{color:var(--dim);font-size:15.5px;margin:0}
.cell .num{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--amber);display:block;margin-bottom:14px}

.work-grid{display:grid;gap:20px}
@media(min-width:760px){.work-grid{grid-template-columns:repeat(3,1fr)}}
.work{border:1px solid var(--rule);background:var(--panel);transition:border-color .18s}
.work:hover{border-color:var(--amber)}
.work-thumb{
  aspect-ratio:16/9;background:var(--panel-hi);display:flex;
  align-items:center;justify-content:center;
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--dim);
}
.work-body{padding:20px}
.work-body h3{font-size:16px;margin-bottom:7px}
.work-body p{font-size:14.5px;color:var(--dim);margin:0}

/* ---------- 9. Paquetes ---------- */
.tiers{display:grid;gap:20px}
@media(min-width:820px){.tiers{grid-template-columns:repeat(3,1fr)}}
.tier{border:1px solid var(--rule);padding:clamp(24px,3vw,32px);display:flex;flex-direction:column}
.tier[data-feat="1"]{border-color:var(--amber)}
.tier h3{margin-bottom:6px}
.tier .fine{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;color:var(--dim);margin-bottom:22px}
.price{font-family:var(--display);font-size:38px;font-weight:800;letter-spacing:-.03em;color:var(--amber);line-height:1}
.price small{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;color:var(--dim);display:block;margin-bottom:8px;font-weight:400}
.tier ul{list-style:none;padding:0;margin:24px 0 0;font-size:15px;color:var(--dim)}
.tier li{padding:9px 0 9px 20px;border-top:1px solid var(--rule);position:relative}
.tier li::before{content:"—";position:absolute;left:0;color:var(--cyan)}

/* ---------- 10. Contacto y pie ---------- */
.contact{text-align:center;border-bottom:none}
.contact h2{margin-bottom:20px}
.contact .lede{margin:0 auto 38px}
.cta{
  display:inline-block;background:var(--amber);color:var(--on-amber);
  font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:-.01em;
  padding:16px 38px;text-decoration:none;border:1px solid var(--amber);
  transition:background .18s,color .18s;
}
.cta:hover{background:transparent;color:var(--amber)}
.alt{display:block;margin-top:22px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--dim);text-decoration:none}
.alt:hover{color:var(--amber)}

.site-foot{
  padding:26px var(--gut);display:flex;flex-wrap:wrap;gap:16px;
  justify-content:space-between;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--dim);
}
.site-foot a{text-decoration:none}
.site-foot a:hover{color:var(--amber)}

/* ---------- 11. Páginas de texto (legal, 404) ---------- */
.doc{max-width:720px;margin:0 auto;padding:clamp(40px,8vw,88px) clamp(20px,5vw,32px);font-size:16.5px;line-height:1.62}
.doc a{color:var(--amber)}
.doc .back{display:inline-block;margin-bottom:40px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.doc .back:hover{text-decoration:underline}
.doc h1{font-size:clamp(28px,5vw,40px);letter-spacing:-.02em;margin:0 0 8px;line-height:1.1}
.doc .upd{color:var(--dim);font-size:13.5px;margin:0 0 44px}
.doc h2{font-size:18px;margin:40px 0 12px;letter-spacing:-.01em;font-family:var(--display)}
.doc p,.doc li{color:var(--prose);margin:0 0 14px}
.doc ul{padding-left:20px}
.doc dl{margin:0 0 14px;border-top:1px solid var(--rule)}
.doc dt{font-family:var(--mono);color:var(--dim);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding-top:14px}
.doc dd{margin:2px 0 14px;color:var(--prose);border-bottom:1px solid var(--rule);padding-bottom:14px}
.doc .box{border-left:2px solid var(--amber);padding:2px 0 2px 18px;margin:22px 0}
.doc footer{border-top:1px solid var(--rule);margin-top:56px;padding-top:22px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--dim)}
.doc footer a{margin-right:18px;text-decoration:none}

.center{min-height:100vh;display:grid;place-items:center;text-align:center;padding:24px}
.center .tc{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--cyan);margin-bottom:22px}
.center h1{font-family:var(--display);font-weight:800;letter-spacing:-.03em;font-size:clamp(30px,7vw,58px);margin:0 0 16px;line-height:1.05}
.center p{color:var(--dim);margin:0 0 32px}
.center a.ghost{display:inline-block;border:1px solid var(--amber);color:var(--amber);text-decoration:none;padding:13px 30px;font-weight:600;transition:background .18s,color .18s}
.center a.ghost:hover{background:var(--amber);color:var(--on-amber)}

/* ---------- 12. Movimiento ---------- */
.rise{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.rise[data-in="1"]{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rise{opacity:1;transform:none;transition:none}
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
}

/* ---------- 13. Impresión ---------- */
@media print{
  .tl,.skip,.wave{display:none}
  body{background:#fff;color:#000}
  main{padding-top:0}
  section{border:0;padding:16px 0;break-inside:avoid}
  .doc a::after{content:" (" attr(href) ")";font-size:.85em;color:#555}
}
