:root{
  --paper:#FBFAF7;
  --paper-2:#F4F1EA;
  --ink:#181715;
  --ink-soft:#5C5852;
  --line:#DAD6CE;
  --accent:#8E2420;      /* oxblood — vasculatura / fondo de ojo */
  --accent-soft:#B9534C;
  --disc:#C9A24B;        /* disco óptico, usado con extrema mesura */
  --maxw:1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Source Serif 4",Georgia,serif;
  font-size:18px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:"Newsreader",Georgia,serif;font-weight:500;letter-spacing:-0.01em;margin:0;}
a{color:inherit;text-decoration:none;}

.mono{
  font-family:"IBM Plex Mono",monospace;
  font-size:.7rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}

/* ---------- ACCESIBILIDAD: saltar al contenido ---------- */
.skip-link{
  position:absolute;left:-999px;top:auto;
  background:var(--accent);color:#fff;
  padding:10px 16px;z-index:200;
  font-family:"IBM Plex Mono",monospace;font-size:.75rem;
  letter-spacing:.08em;text-transform:uppercase;border-radius:2px;
}
.skip-link:focus{left:16px;top:16px;}

/* ---------- NAV ---------- */
nav{
  position:sticky;top:0;z-index:50;
  background:rgba(251,250,247,.85);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  position:relative;
  max-width:var(--maxw);margin:0 auto;padding:16px 32px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.brand{display:flex;align-items:baseline;gap:12px;}
.brand .logo{font-family:"Newsreader",serif;font-weight:600;font-size:1.35rem;letter-spacing:.02em;}
.brand .logo b{color:var(--accent);font-weight:600;}
.brand .sub{font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);}
.nav-links{display:flex;gap:28px;}
.nav-links a{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);transition:color .2s;}
.nav-links a:hover{color:var(--accent);}

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:4px;
  width:38px;height:34px;
  background:none;
  border:1px solid var(--ink);
  border-radius:2px;
  cursor:pointer;
  padding:0;
  flex-shrink:0;
}
.nav-toggle span{display:block;width:16px;height:2px;background:var(--ink);transition:transform .2s ease,opacity .2s ease;}
.nav-toggle.active span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-toggle.active span:nth-child(2){opacity:0;}
.nav-toggle.active span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

@media(max-width:820px){
  .brand .sub{display:none;}
  .nav-toggle{display:flex;}
  .nav-links{
    position:absolute;
    top:100%;left:0;right:0;
    flex-direction:column;
    gap:0;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease,box-shadow .3s ease;
  }
  .nav-links.open{max-height:340px;box-shadow:0 12px 24px rgba(24,23,21,.1);}
  .nav-links a{padding:15px 32px;border-top:1px solid var(--line);}
}

/* ---------- HERO ---------- */
.hero{padding:84px 0 64px;border-bottom:1px solid var(--line);}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:26px;}
.eyebrow span:last-child{height:1px;flex:1;background:var(--line);}
.hero h1{font-size:clamp(2.6rem,5.6vw,4.5rem);line-height:1.02;letter-spacing:-0.02em;}
.hero h1 em{font-style:italic;color:var(--accent);}
.hero .lede{margin-top:26px;font-size:1.18rem;max-width:30em;color:#2a2825;}
.hero .meta{margin-top:34px;display:flex;gap:36px;flex-wrap:wrap;}
.hero .meta div .mono{display:block;margin-bottom:4px;}
.hero .meta div p{margin:0;font-size:1rem;}
@media(max-width:880px){.hero-grid{grid-template-columns:1fr;gap:36px;}.fundus-wrap{order:-1;max-width:380px;}}

/* fundus signature */
.fundus-wrap{position:relative;}
.fundus{width:100%;height:auto;display:block;}
.fundus-cap{margin-top:14px;text-align:center;}

/* ---------- SECTIONS ---------- */
section{padding:80px 0;border-bottom:1px solid var(--line);}
.sec-head{display:flex;align-items:baseline;gap:18px;margin-bottom:44px;}
.sec-head .num{font-family:"IBM Plex Mono",monospace;font-size:.78rem;color:var(--accent);letter-spacing:.1em;}
.sec-head h2{font-size:clamp(1.7rem,3.4vw,2.4rem);}

.mission p{font-size:1.32rem;line-height:1.55;max-width:24em;}
.mission .grid{display:grid;grid-template-columns:1.3fr 1fr;gap:56px;align-items:start;}
.mission .aside{border-left:2px solid var(--accent);padding-left:22px;}
.mission .aside p{font-size:1rem;color:var(--ink-soft);max-width:none;}
@media(max-width:880px){.mission .grid{grid-template-columns:1fr;gap:28px;}}

/* lines of research */
.lines{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.line{background:var(--paper);padding:34px 32px;transition:background .25s;}
.line:hover{background:var(--paper-2);}
.line .idx{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.1em;color:var(--accent);}
.line:nth-child(even) .idx{color:var(--disc);}
.line h3{font-size:1.4rem;margin:14px 0 10px;}
.line p{margin:0;font-size:1rem;color:var(--ink-soft);}
@media(max-width:720px){.lines{grid-template-columns:1fr;}}

/* centers */
.centers{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.lead-center{border:1px solid var(--ink);padding:34px;background:var(--ink);color:var(--paper);}
.lead-center .mono{color:var(--accent-soft);}
.lead-center h3{color:var(--paper);font-size:1.7rem;margin:12px 0 14px;}
.lead-center p{color:#d9d6cf;font-size:1rem;}
.center-list{list-style:none;padding:0;margin:0;}
.center-list li{padding:18px 0;border-bottom:1px solid var(--line);}
.center-list li:first-child{padding-top:0;}
.center-list li .mono{color:var(--accent);}
.center-list li:last-child .mono{color:var(--disc);}
.center-list li h4{font-family:"Newsreader",serif;font-weight:500;font-size:1.2rem;margin:6px 0 2px;}
.center-list li span{font-size:.92rem;color:var(--ink-soft);}
@media(max-width:820px){.centers{grid-template-columns:1fr;gap:32px;}}

/* studies */
.studies{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.study{background:var(--paper);padding:30px 26px;}
.study .stage{font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:2px;padding:3px 8px;display:inline-block;}
.study h3{font-size:1.18rem;margin:18px 0 8px;line-height:1.25;}
.study p{margin:0;font-size:.94rem;color:var(--ink-soft);}
@media(max-width:820px){.studies{grid-template-columns:1fr;}}

/* direction */
.direction{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:start;}
.director-card{border:1px solid var(--line);padding:30px;background:#fff;}
.director-card .ring{width:64px;height:64px;border-radius:50%;border:2px solid var(--accent);display:flex;align-items:center;justify-content:center;font-family:"Newsreader",serif;font-size:1.5rem;color:var(--accent);margin-bottom:18px;}
.director-card h3{font-size:1.35rem;}
.director-card .role{font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:6px 0 16px;}
.director-card p{font-size:.96rem;color:#2a2825;margin:0;}
.gov h3{font-size:1.25rem;margin-bottom:8px;}
.gov dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:0 28px;}
.gov dt{font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);padding:16px 0;border-top:1px solid var(--line);white-space:nowrap;}
.gov dd{margin:0;padding:16px 0;border-top:1px solid var(--line);font-size:.98rem;}
@media(max-width:820px){.direction{grid-template-columns:1fr;gap:30px;}.gov dl{grid-template-columns:1fr;gap:0;}.gov dt{border-top:1px solid var(--line);padding-bottom:2px;}.gov dd{border-top:none;padding-top:2px;}}

/* join / cta */
.join{background:var(--paper-2);}
.join-inner{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;}
.join h2{font-size:clamp(1.8rem,3.6vw,2.6rem);max-width:14em;}
.join p{margin:16px 0 0;color:var(--ink-soft);max-width:34em;}
.btn{display:inline-block;font-family:"IBM Plex Mono",monospace;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--paper);background:var(--accent);padding:16px 26px;border-radius:2px;transition:background .2s;white-space:nowrap;}
.btn:hover{background:#71160f;}
@media(max-width:760px){.join-inner{grid-template-columns:1fr;}}

footer{padding:46px 0;}
.foot-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;}
.foot-inner .mono{font-size:.66rem;}
footer .logo{font-family:"Newsreader",serif;font-weight:600;font-size:1.2rem;}
footer .logo b{color:var(--accent);}

/* reveal */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease;}
.reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
  .nav-links{transition:none;}
}