/* Editorial Light Cream — papel, aire y una foto grande.
   Contraste: el terracota de la portada (#B85C3E, 3,97:1) solo en titulares grandes;
   en texto pequeño --accent-text #A04A2E (5,24:1). Gris de apoyo #5F5A54 (5,98:1). */
:root{
  --bg:#F5EFE8; --bg-2:#ECE3D8; --ink:#1F201D; --muted:#5F5A54;
  --accent:#B85C3E; --accent-text:#A04A2E; --line:rgba(31,32,29,.14); --dark:#2A1810; --on-dark:#F5EFE8; --on-dark-2:#C9BBAE;
  --serif:"Fraunces",Georgia,"Times New Roman",serif; --sans:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;
  --pad:clamp(20px,6vw,88px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:light}}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;overflow-x:clip}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit;-webkit-tap-highlight-color:transparent}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;z-index:30;background:var(--ink);color:var(--bg);padding:12px 18px;min-height:44px;border-radius:999px}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.1;letter-spacing:-.01em;overflow-wrap:anywhere}
.eyebrow{font-family:var(--serif);font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-text)}
.wrap{max-width:1240px;margin:0 auto;padding:0 var(--pad)}

/* Cabecera */
header.site{position:absolute;top:0;left:0;width:55%;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 20px;padding:16px var(--pad);z-index:5}
header.site .logo{display:inline-flex;align-items:center;min-height:44px;min-width:44px;font-family:var(--serif);font-size:17px;text-decoration:none;white-space:nowrap}
header.site nav{display:flex;gap:0 8px;font-size:13px;margin-left:auto}
header.site nav a,header.site .lang{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding-inline:8px;text-decoration:none;color:var(--muted)}
header.site .lang{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
@media (hover: hover) { header.site nav a:hover,header.site .lang:hover {color:var(--ink)} }
header.site nav a:active,header.site .lang:active{color:var(--ink)}

/* Portada partida */
.hero{display:grid;grid-template-columns:55% 45%;min-height:100vh;min-height:100svh}
.hero > *{min-width:0}
.hero .text{display:flex;flex-direction:column;justify-content:center;padding:120px var(--pad) 80px}
.hero h1{font-size:clamp(38px,5.4vw,78px);margin:26px 0 0}
.hero h1 em{display:block;font-style:italic;color:var(--accent);font-size:.78em;margin-top:.12em;line-height:1.08}
.hero .tag{font-size:18px;color:var(--muted);max-width:30em;margin-top:30px}
.hero .roles{font-size:13px;color:var(--muted);margin-top:14px;max-width:38em;border-top:1px solid var(--line);padding-top:14px}
.ctas{display:flex;flex-wrap:wrap;gap:12px 26px;align-items:center;margin-top:34px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;text-align:center;background:var(--ink);color:var(--bg);padding:12px 26px;border-radius:999px;text-decoration:none;font-size:14px;font-weight:500;transition:background .2s,transform .16s cubic-bezier(.23,1,.32,1)}
.btn:active{transform:scale(.97)}
@media (hover: hover) { .btn:hover {background:var(--accent-text)} }
.link{display:inline-flex;align-items:center;min-height:44px;max-width:100%;font-size:14px;color:var(--accent-text);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.link:active{color:var(--ink)}
.hero figure{position:relative;background:var(--dark)}
.hero figure img{width:100%;height:100%;object-fit:cover;object-position:78% center;position:absolute;inset:0}

/* Cifras */
.stats{display:grid;grid-template-columns:repeat(var(--c,3),minmax(0,1fr));border-bottom:1px solid var(--line)}
.stats div{padding:48px var(--pad) 44px;container-type:inline-size;min-width:0}
.stats div.r{border-right:1px solid var(--line)}
.stats div.r2{border-top:1px solid var(--line)}
.stats b{display:block;font-family:var(--serif);font-weight:400;font-style:italic;font-size:min(clamp(56px,6vw,84px),calc(100cqi / (var(--n,4) * .5)));line-height:1.05;color:var(--accent);overflow-wrap:anywhere}
.stats span{display:block;margin-top:12px;font-family:var(--serif);font-size:19px}
.stats small{display:block;font-size:13px;color:var(--muted);margin-top:4px}

/* Secciones */
section.block{padding:clamp(72px,10vw,128px) 0;border-bottom:1px solid var(--line)}
.head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:24px 64px;margin-bottom:56px;align-items:end}
.head h2{font-size:clamp(34px,4vw,54px)}
.head h2 em{font-style:italic;color:var(--accent)}
.head .lede{color:var(--muted);font-size:17px;max-width:36em}
.head .eyebrow{align-self:start;padding-top:12px}
.head.stack{grid-template-columns:1fr}

/* Sobre mí */
.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:64px}
.about figure img{width:100%;aspect-ratio:2/3;object-fit:cover}
.about figcaption{font-size:12px;color:var(--muted);margin-top:10px}
.about .text p{font-family:var(--serif);font-size:19px;line-height:1.6;margin-bottom:1.1em}
.about .text p:first-child::first-letter{float:left;font-size:4.1em;line-height:.82;padding:.06em .1em 0 0;color:var(--accent);font-style:italic}
.pull{font-family:var(--serif);font-style:italic;font-size:clamp(24px,2.6vw,32px);line-height:1.3;color:var(--ink);border-left:2px solid var(--accent);padding-left:26px;margin:40px 0 28px}
.personal{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:17px}

/* Trayectoria */
.tl{list-style:none;padding:0;border-top:1px solid var(--ink)}
.tl li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px 64px;padding:36px 0;border-bottom:1px solid var(--line)}
.tl .when{font-family:var(--serif);font-size:15px;color:var(--muted)}
.tl .now{display:inline-block;margin-left:10px;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);border:1px solid currentColor;border-radius:999px;padding:1px 9px;vertical-align:2px}
.tl h3{font-size:26px;margin-bottom:12px}
.tl p{color:var(--muted);max-width:40em}
.tags{list-style:none;padding:0;margin-top:18px;display:flex;flex-wrap:wrap;gap:8px}
.tags li{display:block;overflow-wrap:anywhere;padding:5px 13px;border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--ink);background:var(--bg-2)}

/* Ponencias */
.talks{display:grid;grid-template-columns:repeat(var(--c,2),minmax(0,1fr));border:1px solid var(--line)}
.cat{min-width:0;padding:38px 40px}
.cat.r{border-right:1px solid var(--line)}
.cat.r2{border-top:1px solid var(--line)}
.cat.wide{grid-column:1 / -1}
.cat .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.cat .ic{width:44px;height:44px;border-radius:50%;background:var(--bg-2);color:var(--accent-text);display:grid;place-items:center}
.cat .ic svg{width:22px;height:22px}
.cat .top b{font-family:var(--serif);font-style:italic;font-weight:400;font-size:52px;line-height:1;color:var(--accent)}
.cat h3{font-size:24px;margin-bottom:16px}
.cat ul{list-style:none;padding:0}
.cat li{font-size:15px;overflow-wrap:anywhere;color:var(--muted);padding:10px 0;border-top:1px solid var(--line)}
.cat li strong{color:var(--ink);font-weight:600}

/* Formación */
.edu{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:48px 64px}
.edu h3{font-size:24px;padding-bottom:14px;border-bottom:1px solid var(--ink);display:flex;justify-content:space-between;align-items:baseline}
.edu h3 span{font-style:italic;color:var(--accent);font-size:30px}
.edu ul{list-style:none;padding:0}
.edu li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}
.edu .yr{font-family:var(--serif);font-size:14px;color:var(--muted)}
.edu strong{display:block;font-family:var(--serif);font-weight:500;font-size:18px;line-height:1.3}
.edu .where{display:block;font-size:14px;color:var(--muted);margin-top:3px}

/* Artículos */
.articles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:48px}
.articles article{border-top:1px solid var(--ink);padding-top:22px}
.articles .n{font-family:var(--serif);font-style:italic;color:var(--accent-text);font-size:15px}
.articles h3{font-size:27px;margin:10px 0 12px}
.articles p{color:var(--muted)}
.more{display:flex;flex-wrap:wrap;gap:14px 32px;margin-top:48px}

/* Prensa */
.press{background:var(--bg-2)}
.press .quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:56px}
.press blockquote{font-family:var(--serif);font-style:italic;font-size:clamp(24px,2.5vw,32px);line-height:1.32}
.press blockquote::before{content:"";display:block;width:40px;height:2px;background:var(--accent);margin-bottom:22px}
.press .source{margin-top:40px;font-size:14px;color:var(--muted);max-width:52em}

/* Instituciones */
.orgs{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:0;font-family:var(--serif);font-size:clamp(20px,2.2vw,27px);line-height:1.6}
.orgs{gap:0 1.1em}
.orgs li{overflow-wrap:anywhere}
.orgs li::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:.55em;vertical-align:middle}

/* Contacto */
.contact{display:grid;grid-template-columns:45% 55%;border-bottom:1px solid var(--line)}
.contact.solo{grid-template-columns:minmax(0,1fr)}
.contact > *{min-width:0}
.contact figure{position:relative;min-height:560px;background:var(--dark)}
.contact figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%}
.contact .body{padding:clamp(64px,8vw,112px) var(--pad)}
.contact h2{font-size:clamp(36px,4vw,56px);margin:18px 0 36px}
.contact h2 em{font-style:italic;color:var(--accent)}
.opts{border-top:1px solid var(--ink)}
.opts a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 24px;padding:22px 0;min-height:44px;border-bottom:1px solid var(--line);text-decoration:none}
.opts a:active h3{color:var(--accent-text)}
.opts h3{font-size:22px}
.opts p{grid-column:1;font-size:14px;color:var(--muted)}
.opts .go{grid-column:2;grid-row:1/span 2;align-self:center;font-size:14px;color:var(--accent-text)}
@media (hover: hover) { .opts a:hover h3 {color:var(--accent-text)} }
.direct{display:flex;flex-wrap:wrap;gap:14px 26px;align-items:center;margin-top:36px}
.direct a.email{display:inline-flex;align-items:center;min-height:44px;max-width:100%;font-family:var(--serif);font-size:21px;text-decoration:none}
@media (hover: hover) { .direct a.email:hover {color:var(--accent-text)} }

footer{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;align-items:center;padding:36px var(--pad);font-size:13px;color:var(--muted)}
footer a{text-decoration:none}
@media (hover: hover) { footer a:hover {color:var(--ink)} }
.credit{display:inline-flex;align-items:center;gap:7px}

@media (min-width:961px) and (max-width:1180px){
  header.site .logo{flex:1 1 0;min-width:calc(100% - 100px)}
  header.site .lang{order:2}
  header.site nav{order:3;flex:1 0 100%;margin-left:-8px}
}
@media (max-width:960px){
  header.site{position:static;width:auto;padding:8px var(--pad) 0}
  header.site .logo{flex:1 1 0;min-width:calc(100% - 120px);white-space:normal}
  header.site .lang{order:2}
  header.site nav{order:3;flex:1 0 100%;margin:0 calc(var(--pad) * -1);padding:0 calc(var(--pad) - 8px);overflow-x:auto;scrollbar-width:none;border-top:1px solid var(--line)}
  header.site nav::-webkit-scrollbar{display:none}
  header.site nav a{flex:0 0 auto;white-space:nowrap}
  .hero{grid-template-columns:minmax(0,1fr);min-height:0}
  .hero .text{padding:32px var(--pad) 48px}
  .hero figure{order:-1;height:min(36svh,300px);min-height:220px}
  .stats{grid-template-columns:minmax(0,1fr)}
  .stats div{padding:32px var(--pad)}
  .stats div.r{border-right:0}
  .stats div + div{border-top:1px solid var(--line)}
  .head,.about,.tl li,.press .quotes,.contact{grid-template-columns:minmax(0,1fr)}
  .head{gap:14px;margin-bottom:40px}
  .about{gap:36px}
  .about figure img{aspect-ratio:4/5}
  .tl li{gap:8px}
  .talks{grid-template-columns:minmax(0,1fr)}
  .cat{padding:30px 24px}
  .cat.r{border-right:0}
  .cat + .cat{border-top:1px solid var(--line)}
  .edu,.articles,.press .quotes{gap:40px}
  .contact figure{min-height:420px}
}
@media (max-width:520px){
  .edu li{grid-template-columns:minmax(0,1fr);gap:4px}
  .opts a{grid-template-columns:minmax(0,1fr)}
  .opts .go{grid-column:1;grid-row:auto}
}

/* Robustez (26/9/2026): un email o una palabra muy larga no debe desbordar
   la página en móvil (detectado con un email de 35 caracteres). */
a[href^="mailto:"], .email { overflow-wrap: anywhere; }
