/* =========================================================================
   CP Auditores — Sistema visual del rediseño
   Spectral (display) · IBM Plex Sans (texto) · IBM Plex Mono (micro-etiquetas)

   Este archivo es prácticamente una copia 1:1 de assets/cp.css del documento
   de diseño. Las tipografías de Google YA se cargan desde functions.php
   (por eso aquí no hay @import), y se han añadido al final dos variantes
   nuevas: .ph--img y .eu-logo--img, que se activan automáticamente cuando
   rellenas una URL de foto real en una plantilla (ver INSTALACION.md).
   ========================================================================= */

:root{
  /* Color — neutros fríos, navy, azul corporativo #6d9fd1 */
  --paper:      #eef1f6;
  --paper-2:    #e3e9f2;
  --surface:    #fafbfd;
  --ink:        #17222e;
  --ink-2:      #54606d;
  --ink-3:      #8893a1;
  --line:       #d9dfe8;
  --line-2:     #c3cdd9;
  --accent:     #6d9fd1;   /* azul corporativo */
  --accent-2:   #487fb8;   /* azul más profundo (hover) */
  --accent-ink: #ffffff;
  --navy:       #122638;   /* secciones oscuras */
  --gold:       #9cc2e8;   /* azul claro sobre fondo oscuro */

  --maxw: 1240px;
  --gutter: clamp(20px, 5vw, 64px);

  --r-sm: 4px;
  --r-md: 8px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans', system-ui, sans-serif;
  font-size:17px;
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--accent); color:var(--accent-ink); }

/* ---- Tipografía ---- */
h1,h2,h3,h4{
  font-family:'Spectral', Georgia, serif;
  font-weight:400;
  margin:0;
  letter-spacing:-.01em;
  line-height:1.08;
  text-wrap:balance;
}
p{ margin:0; text-wrap:pretty; }

.display{
  font-size:clamp(2.6rem, 6vw, 5.1rem);
  font-weight:300;
  line-height:1.02;
  letter-spacing:-.02em;
}
.h-xl{ font-size:clamp(2rem, 4.2vw, 3.4rem); font-weight:300; letter-spacing:-.018em; }
.h-lg{ font-size:clamp(1.6rem, 3vw, 2.3rem); font-weight:400; }
.h-md{ font-size:clamp(1.25rem, 2vw, 1.55rem); font-weight:500; }

.lead{
  font-size:clamp(1.12rem, 1.6vw, 1.32rem);
  line-height:1.55;
  color:var(--ink-2);
  font-weight:300;
}
em, .italic{ font-style:italic; }

/* ---- Eyebrow / micro-etiquetas mono ---- */
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:.74rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:500;
  display:inline-flex;
  align-items:center;
  gap:.7em;
}
.eyebrow.muted{ color:var(--ink-3); }
.eyebrow::before{
  content:"";
  width:26px; height:1px;
  background:currentColor;
  opacity:.6;
}
.eyebrow.no-rule::before{ display:none; }

.mono{ font-family:'IBM Plex Mono', monospace; font-size:.8rem; letter-spacing:.04em; }
.idx{
  font-family:'IBM Plex Mono', monospace;
  font-size:.82rem;
  color:var(--ink-3);
  letter-spacing:.05em;
}

/* ---- Layout ---- */
.container{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(64px, 9vw, 132px); }
.section.tight{ padding-block:clamp(48px, 6vw, 88px); }
.bg-paper-2{ background:var(--paper-2); }
.bg-ink{ background:var(--navy); color:#dbe3ec; }
.bg-ink .eyebrow{ color:var(--gold); }
.bg-ink .lead{ color:#b9c5d2; }
.rule{ height:1px; background:var(--line); border:0; margin:0; }

.grid{ display:grid; gap:clamp(24px,4vw,56px); }
.cols-2{ grid-template-columns:repeat(2,1fr); }
.cols-3{ grid-template-columns:repeat(3,1fr); }
.cols-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:900px){
  .cols-2,.cols-3,.cols-4{ grid-template-columns:1fr; }
  .cols-3.keep-2,.cols-4.keep-2{ grid-template-columns:1fr 1fr; }
}

/* ---- Buttons ---- */
.btn{
  --bg:var(--ink); --fg:var(--paper);
  display:inline-flex; align-items:center; gap:.6em;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:.95rem; font-weight:500; letter-spacing:.01em;
  padding:.95em 1.5em;
  background:var(--bg); color:var(--fg);
  border:1px solid var(--bg);
  border-radius:var(--r-sm);
  cursor:pointer;
  transition:transform .35s var(--ease), background .25s, color .25s, border-color .25s;
  will-change:transform;
}
.btn .arrow{ transition:transform .35s var(--ease); }
.btn:hover{ transform:translateY(-2px); }
.btn:hover .arrow{ transform:translateX(4px); }
.btn--accent{ --bg:var(--accent); --fg:var(--accent-ink); }
.btn--accent:hover{ --bg:var(--accent-2); }
.btn--ghost{
  --bg:transparent; --fg:var(--ink);
  border-color:var(--line-2);
}
.btn--ghost:hover{ border-color:var(--ink); }
.bg-ink .btn--ghost{ --fg:var(--paper); border-color:rgba(255,255,255,.28); }
.bg-ink .btn--ghost:hover{ border-color:var(--paper); }

/* Link with underline draw */
.link-u{
  display:inline-flex; align-items:center; gap:.5em;
  font-weight:500; font-size:.95rem;
  position:relative; color:var(--ink);
}
.link-u::after{
  content:""; position:absolute; left:0; bottom:-3px; height:1px; width:100%;
  background:var(--accent); transform:scaleX(0); transform-origin:left;
  transition:transform .4s var(--ease);
}
.link-u:hover::after{ transform:scaleX(1); }
.link-u .arrow{ color:var(--accent); transition:transform .35s var(--ease); }
.link-u:hover .arrow{ transform:translateX(4px); }

/* =========================================================================
   Header
   ========================================================================= */
.site-header{
  position:sticky; top:0; z-index:60;
  background:color-mix(in srgb, var(--paper) 86%, transparent);
  backdrop-filter:saturate(1.2) blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .3s, background .3s;
}
.site-header.scrolled{ border-color:var(--line); background:color-mix(in srgb, var(--paper) 94%, transparent); }
.nav{
  max-width:var(--maxw); margin-inline:auto;
  padding:14px var(--gutter);
  display:flex; align-items:center; gap:32px;
}
.brand{ display:flex; align-items:center; gap:12px; flex-shrink:0; }
.brand-mark{
  width:46px; height:46px; flex:none;
  display:grid; place-items:center;
  overflow:hidden;
}
.brand-mark img{ width:100%; height:100%; object-fit:contain; }
.brand-name{ display:flex; flex-direction:column; line-height:1.05; }
.brand-name b{ font-family:'Spectral',serif; font-weight:500; font-size:1.12rem; letter-spacing:.01em; }
.brand-name span{ font-family:'IBM Plex Mono',monospace; font-size:.6rem; letter-spacing:.22em; color:var(--ink-3); text-transform:uppercase; margin-top:2px; }

.nav-links{ display:flex; align-items:center; gap:4px; margin-left:auto; }
.nav-links a{
  position:relative;
  font-size:.93rem; font-weight:500; color:var(--ink-2);
  padding:8px 14px; border-radius:var(--r-sm);
  transition:color .2s;
}
.nav-links a:hover, .nav-links a.active{ color:var(--ink); }
.nav-links a.active::after{
  content:""; position:absolute; left:14px; right:14px; bottom:2px; height:1px; background:var(--accent);
}
/* dropdown */
.has-sub{ position:relative; }
.submenu{
  position:absolute; top:calc(100% + 6px); left:0;
  min-width:230px; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--r-md);
  box-shadow:0 24px 50px -28px rgba(27,25,22,.4);
  padding:8px; display:grid; gap:2px;
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .22s, transform .22s, visibility .22s;
}
.has-sub:hover .submenu, .has-sub:focus-within .submenu{ opacity:1; visibility:visible; transform:translateY(0); }
.submenu a{ padding:9px 12px; font-size:.9rem; color:var(--ink-2); border-radius:var(--r-sm); display:flex; align-items:center; gap:10px; }
.submenu a:hover{ background:var(--paper-2); color:var(--ink); }
.submenu a .si{ font-family:'IBM Plex Mono',monospace; font-size:.7rem; color:var(--accent); }

.nav-cta{ margin-left:18px; }
.nav-toggle{ display:none; }

/* Mobile nav */
.mobile-panel{ display:none; }
@media (max-width:980px){
  .nav-links, .nav-cta{ display:none; }
  .nav-toggle{
    display:inline-flex; flex-direction:column; gap:5px; margin-left:auto;
    background:none; border:0; cursor:pointer; padding:8px;
  }
  .nav-toggle span{ width:24px; height:1.5px; background:var(--ink); transition:transform .3s, opacity .3s; }
  .nav-toggle.open span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
  .nav-toggle.open span:nth-child(2){ opacity:0; }
  .nav-toggle.open span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }
  .mobile-panel{
    display:block; position:fixed; inset:0 0 0 auto; width:min(86vw,360px);
    background:var(--surface); z-index:70; padding:90px 28px 28px;
    transform:translateX(100%); transition:transform .4s var(--ease);
    border-left:1px solid var(--line); overflow-y:auto;
  }
  .mobile-panel.open{ transform:translateX(0); }
  .mobile-panel a{ display:block; font-size:1.15rem; font-family:'Spectral',serif; padding:14px 0; border-bottom:1px solid var(--line); color:var(--ink); }
  .mobile-panel a.sub{ font-family:'IBM Plex Sans',sans-serif; font-size:.95rem; padding:10px 0 10px 18px; color:var(--ink-2); border-bottom:1px dashed var(--line); }
  .mobile-backdrop{ position:fixed; inset:0; background:rgba(27,25,22,.4); z-index:65; opacity:0; visibility:hidden; transition:opacity .3s,visibility .3s; }
  .mobile-backdrop.open{ opacity:1; visibility:visible; }
}

/* =========================================================================
   Hero
   ========================================================================= */
.hero{ position:relative; overflow:hidden; }
.hero-inner{ padding-block:clamp(48px,7vw,96px); }
.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(32px,5vw,64px); align-items:end; }
@media (max-width:960px){ .hero-grid{ grid-template-columns:1fr; } }
.hero h1{ margin-top:24px; }
.hero .lead{ margin-top:26px; max-width:34ch; }
.hero-actions{ margin-top:34px; display:flex; flex-wrap:wrap; gap:14px; }

/* Ledger fact card */
.fact-card{
  border:1px solid var(--line-2);
  background:var(--surface);
  border-radius:var(--r-md);
  overflow:hidden;
}
.fact-card .fc-media{ position:relative; }
.fc-brand{
  position:relative;
  display:grid; place-items:center;
  padding:38px 24px 34px;
  background:
    radial-gradient(120% 100% at 50% 0%, color-mix(in srgb,var(--accent) 16%, var(--surface)) 0%, var(--surface) 70%);
  overflow:hidden;
}
.fc-brand .fc-ondas{
  width:min(62%, 220px); aspect-ratio:1; object-fit:contain;
  filter:drop-shadow(0 16px 30px rgba(18,38,56,.18));
  animation:floaty 7s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce){ .fc-brand .fc-ondas{ animation:none; } }
@keyframes floaty{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-9px) } }
.fc-brand .fc-kicker{
  margin-top:18px;
  font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-3);
}
.fact-row{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:16px 20px; border-top:1px solid var(--line); }
.fact-row:first-child{ border-top:0; }
.fact-row .k{ font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); }
.fact-row .v{ font-family:'Spectral',serif; font-size:1.05rem; color:var(--ink); }

/* Trust strip */
.trust{ border-block:1px solid var(--line); }
.trust-inner{ display:flex; align-items:center; gap:clamp(20px,4vw,56px); flex-wrap:wrap; padding-block:22px; }
.trust .label{ font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); }
.trust .items{ display:flex; align-items:center; gap:clamp(18px,3vw,40px); flex-wrap:wrap; }
.trust .items b{ font-family:'Spectral',serif; font-weight:500; font-size:1.05rem; }
.trust .items .dot{ width:4px; height:4px; border-radius:50%; background:var(--accent); }

/* =========================================================================
   Image placeholder
   ========================================================================= */
.ph{
  position:relative;
  background:
    repeating-linear-gradient(135deg, transparent 0 11px, color-mix(in srgb,var(--ink) 5%, transparent) 11px 12px),
    var(--paper-2);
  border:1px solid var(--line-2);
  display:grid; place-items:center;
  color:var(--ink-3);
  overflow:hidden;
}
.ph .ph-tag{
  font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  background:var(--surface); border:1px solid var(--line-2); color:var(--ink-2);
  padding:7px 12px; border-radius:100px;
  display:inline-flex; align-items:center; gap:8px;
}
.ph .ph-tag::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--accent); }
.ph.tall{ aspect-ratio:4/5; }
.ph.wide{ aspect-ratio:16/10; }
.ph.square{ aspect-ratio:1; }
.ph.portrait{ aspect-ratio:3/4; border-radius:var(--r-md); }

/* Variante con foto real (cuando se rellena una URL en la plantilla):
   la imagen cubre el marco entero, en lugar de mostrar el patrón rayado. */
.ph.ph--img{ background:var(--paper-2); display:block; padding:0; border:1px solid var(--line-2); }
.ph.ph--img img{ width:100%; height:100%; object-fit:cover; display:block; }

/* =========================================================================
   Pillars (enfoque)
   ========================================================================= */
.pillar{ padding-top:28px; border-top:1px solid var(--line); }
.pillar .idx{ display:block; margin-bottom:18px; }
.pillar h3{ font-size:1.45rem; font-weight:500; margin-bottom:12px; }
.pillar p{ color:var(--ink-2); font-size:.98rem; }

/* =========================================================================
   Services
   ========================================================================= */
.svc-list{ border-top:1px solid var(--line); }
.svc{
  display:grid; grid-template-columns:80px 1.2fr 1.6fr auto;
  gap:clamp(16px,3vw,40px); align-items:center;
  padding:30px 8px; border-bottom:1px solid var(--line);
  position:relative; transition:padding .4s var(--ease);
}
.svc::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:0;
  background:var(--accent); transition:width .4s var(--ease); opacity:.06;
}
.svc:hover::before{ width:100%; }
.svc:hover{ padding-inline:24px; }
.svc .svc-idx{ font-family:'IBM Plex Mono',monospace; color:var(--accent); font-size:.85rem; letter-spacing:.05em; }
.svc h3{ font-size:1.5rem; font-weight:500; position:relative; z-index:1; }
.svc .svc-desc{ color:var(--ink-2); font-size:.96rem; position:relative; z-index:1; }
.svc .svc-go{
  width:46px; height:46px; border:1px solid var(--line-2); border-radius:50%;
  display:grid; place-items:center; color:var(--ink); position:relative; z-index:1;
  transition:background .3s, color .3s, border-color .3s, transform .3s;
}
.svc:hover .svc-go{ background:var(--accent); color:var(--accent-ink); border-color:var(--accent); transform:translateX(4px); }
@media (max-width:820px){
  .svc{ grid-template-columns:48px 1fr; row-gap:10px; }
  .svc .svc-desc{ grid-column:2; }
  .svc .svc-go{ display:none; }
}

/* Service detail block */
.svc-detail{ padding-top:48px; border-top:1px solid var(--line); }
.svc-detail .svc-num{ font-family:'IBM Plex Mono',monospace; color:var(--accent); font-size:.85rem; letter-spacing:.15em; }
.tag-row{ display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.tag{
  font-family:'IBM Plex Sans',sans-serif; font-size:.82rem; color:var(--ink-2);
  border:1px solid var(--line-2); border-radius:100px; padding:6px 13px; background:var(--surface);
}
.checklist{ list-style:none; margin:22px 0 0; padding:0; display:grid; gap:12px; }
.checklist li{ display:flex; gap:12px; align-items:flex-start; color:var(--ink-2); font-size:.98rem; }
.checklist li::before{ content:""; flex:none; width:7px; height:7px; margin-top:9px; background:var(--accent); border-radius:1px; transform:rotate(45deg); }

/* =========================================================================
   Team
   ========================================================================= */
.team-card{ cursor:pointer; }
.team-card .ph{ transition:transform .5s var(--ease); }
.team-card:hover .ph{ transform:translateY(-4px); }
.team-meta{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-top:18px; }
.team-meta h3{ font-size:1.3rem; font-weight:500; }
.team-meta .role{ font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); margin-top:4px; }
.team-meta .roac{ font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--accent); white-space:nowrap; }
.team-card .more{ margin-top:10px; }

/* Modal */
.modal-root{ position:fixed; inset:0; z-index:100; display:none; }
.modal-root.open{ display:block; }
.modal-bg{ position:absolute; inset:0; background:rgba(20,18,16,.55); backdrop-filter:blur(3px); opacity:0; transition:opacity .3s; }
.modal-root.open .modal-bg{ opacity:1; }
.modal-card{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-46%);
  width:min(720px, 92vw); max-height:88vh; overflow-y:auto;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md);
  box-shadow:0 40px 90px -30px rgba(20,18,16,.6);
  opacity:0; transition:opacity .35s var(--ease), transform .35s var(--ease);
}
.modal-root.open .modal-card{ opacity:1; transform:translate(-50%,-50%); }
.modal-head{ display:grid; grid-template-columns:120px 1fr; gap:22px; padding:28px; border-bottom:1px solid var(--line); align-items:center; }
.modal-head .ph{ aspect-ratio:1; border-radius:var(--r-sm); }
.modal-body{ padding:26px 28px 32px; }
.modal-body h4{ font-size:1.5rem; font-weight:500; }
.modal-close{ position:absolute; top:16px; right:16px; width:38px; height:38px; border-radius:50%; border:1px solid var(--line-2); background:var(--surface); cursor:pointer; display:grid; place-items:center; color:var(--ink); z-index:2; transition:background .2s,color .2s; }
.modal-close:hover{ background:var(--ink); color:var(--paper); }
.bio-list{ list-style:none; margin:18px 0 0; padding:0; display:grid; gap:11px; }
.bio-list li{ display:flex; gap:12px; color:var(--ink-2); font-size:.95rem; align-items:flex-start; }
.bio-list li::before{ content:""; width:6px; height:6px; margin-top:8px; flex:none; background:var(--accent); border-radius:50%; }

/* =========================================================================
   CTA band
   ========================================================================= */
.cta-band{ position:relative; overflow:hidden; }
.cta-grid{ display:grid; grid-template-columns:1.2fr .8fr; gap:48px; align-items:center; }
@media (max-width:840px){ .cta-grid{ grid-template-columns:1fr; } }

/* Contact / footer */
.site-footer{ background:var(--navy); color:#b9c5d2; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-block:clamp(48px,6vw,80px); }
@media (max-width:820px){ .footer-top{ grid-template-columns:1fr; gap:32px; } }
.site-footer a{ color:#cfc8ba; transition:color .2s; }
.site-footer a:hover{ color:var(--paper); }
.footer-h{ font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; }
.footer-list{ list-style:none; margin:0; padding:0; display:grid; gap:11px; font-size:.95rem; }
.footer-brand b{ font-family:'Spectral',serif; font-size:1.5rem; color:var(--paper); font-weight:400; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.12); padding-block:22px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:.8rem; color:var(--ink-3); }
.footer-bottom .mono{ color:#9a9183; }

/* EU funding strip */
.eu-strip{ background:var(--paper-2); border-top:1px solid var(--line); }
.eu-grid{ display:grid; grid-template-columns:1fr; gap:20px; padding-block:34px; }
.eu-logos{ display:flex; flex-wrap:wrap; gap:14px; align-items:stretch; }
.eu-logo{ flex:1 1 180px; min-height:64px; }
.eu-logo.eu-logo--img{ display:flex; align-items:center; justify-content:center; padding:8px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-sm); }
.eu-logo.eu-logo--img img{ max-height:48px; width:auto; object-fit:contain; }
.eu-note{ font-size:.84rem; color:var(--ink-2); max-width:80ch; }

/* =========================================================================
   Page hero (interior pages)
   ========================================================================= */
.page-hero{ padding-block:clamp(56px,7vw,104px) clamp(40px,5vw,64px); }
.page-hero .crumbs{ font-family:'IBM Plex Mono',monospace; font-size:.74rem; letter-spacing:.1em; color:var(--ink-3); margin-bottom:22px; display:flex; gap:10px; align-items:center; }
.page-hero .crumbs a:hover{ color:var(--accent); }

/* Stats */
.stat{ border-top:1px solid var(--line); padding-top:20px; }
.stat .n{ font-family:'Spectral',serif; font-size:clamp(2.4rem,4vw,3.4rem); font-weight:300; line-height:1; letter-spacing:-.02em; }
.stat .n .u{ color:var(--accent); }
.stat .l{ font-size:.9rem; color:var(--ink-2); margin-top:10px; }

/* Quote */
.pull{ font-family:'Spectral',serif; font-weight:300; font-size:clamp(1.6rem,3vw,2.4rem); line-height:1.25; letter-spacing:-.015em; }
.pull .accent{ color:var(--accent); font-style:italic; }

/* Value cards */
.value{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); padding:28px; transition:transform .4s var(--ease), box-shadow .4s; }
.value:hover{ transform:translateY(-4px); box-shadow:0 26px 50px -34px rgba(27,25,22,.45); }
.value .vi{ width:44px; height:44px; border:1px solid var(--line-2); border-radius:var(--r-sm); display:grid; place-items:center; margin-bottom:20px; color:var(--accent); font-family:'IBM Plex Mono',monospace; font-size:.85rem; }
.value h3{ font-size:1.25rem; font-weight:500; margin-bottom:10px; }
.value p{ color:var(--ink-2); font-size:.95rem; }

/* Reveal */
[data-reveal]{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
[data-reveal].in{ opacity:1; transform:none; }
[data-reveal-d="1"]{ transition-delay:.08s; }
[data-reveal-d="2"]{ transition-delay:.16s; }
[data-reveal-d="3"]{ transition-delay:.24s; }
[data-reveal-d="4"]{ transition-delay:.32s; }
@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity:1; transform:none; transition:none; }
}

/* Utilities */
.mt-0{ margin-top:0; } .mt-1{ margin-top:14px; } .mt-2{ margin-top:24px; } .mt-3{ margin-top:36px; } .mt-4{ margin-top:52px; }
.muted{ color:var(--ink-2); }
.center{ text-align:center; }
.maxw-sm{ max-width:62ch; } .maxw-xs{ max-width:46ch; }
.flex{ display:flex; } .between{ justify-content:space-between; } .items-end{ align-items:flex-end; } .items-center{ align-items:center; }
.wrap{ flex-wrap:wrap; } .gap-2{ gap:16px; } .gap-3{ gap:28px; }
.section-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:32px; flex-wrap:wrap; margin-bottom:clamp(32px,5vw,60px); }
.section-head .maxw-sm{ margin-top:18px; }
