/* IDENTIDAD: ESTRUCTURA / VERDE MINERAL */
:root {
  --graphite: #1E2221;
  --mist: #F2F1EC;
  --stone: #B8BDB7;
  --mineral: #4F6B5B;
  --moss: #2F4B41;
  --sage: #A8BE8A;
  --white: #FAF9F5;
  --line: rgba(30, 34, 33, 0.14);
  --serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --max: 1440px;
  --ease: cubic-bezier(.2,.75,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 85% 0%, rgba(168,190,138,.12), transparent 28%),
    radial-gradient(circle at 10% 20%, rgba(79,107,91,.07), transparent 30%),
    var(--mist);
  color: var(--graphite);
  font-family: var(--sans);
  line-height: 1.55;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
img, svg { display: block; max-width: 100%; }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.page-noise {
  position: fixed; inset: 0; z-index: 50; pointer-events: none; opacity: .022;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
}
.cursor-field {
  position: fixed; width: 420px; height: 420px; border-radius: 50%; z-index: -1;
  background: radial-gradient(circle, rgba(168,190,138,.32), rgba(79,107,91,.12) 44%, transparent 74%);
  transform: translate(-50%, -50%); pointer-events: none;
}

.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 40;
  min-height: 82px; padding: 14px clamp(18px,4vw,64px);
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px;
  background: rgba(242,241,236,.84); backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(30,34,33,.08);
  transition: min-height .3s var(--ease), background .3s var(--ease);
}
.site-header.compact { min-height: 68px; background: rgba(242,241,236,.94); }

.brand { display: flex; align-items: center; gap: 13px; min-width: max-content; }
.brand-symbol { width: 27px; height: 52px; overflow: visible; }
.brand-symbol line, .brand-symbol circle {
  fill: none; stroke: var(--graphite); stroke-width: 1.4;
}
.brand-symbol .brand-node { fill: var(--sage); stroke: var(--graphite); stroke-width: 1.4; }
.brand-copy { display: grid; }
.brand-copy strong { font-family: var(--serif); font-size: 1.13rem; font-weight: 500; }
.brand-copy small { color: var(--mineral); font-size: .68rem; letter-spacing: .06em; }

.main-nav { justify-self: center; display: flex; gap: clamp(14px,2vw,30px); font-size: .79rem; }
.main-nav a { position: relative; color: rgba(30,34,33,.72); }
.main-nav a::after {
  content:""; position:absolute; left:0; right:0; bottom:-7px; height:1px;
  background:var(--mineral); transform:scaleX(0); transform-origin:right;
  transition: transform .28s var(--ease);
}
.main-nav a:hover::after, .main-nav a.active::after { transform:scaleX(1); transform-origin:left; }

.language-switch { display:flex; align-items:center; gap:6px; font-size:.74rem; }
.lang-btn { border:0; background:none; padding:4px 0; cursor:pointer; color:rgba(30,34,33,.55); }
.lang-btn.active { color:var(--mineral); font-weight:700; }
.menu-toggle { display:none; justify-self:end; width:42px; height:42px; border:0; background:transparent; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; height:1px; margin:7px 0; background:var(--graphite); }

.section {
  width:min(100%, var(--max)); margin:0 auto; padding:128px clamp(22px,5vw,76px);
  position:relative;
}
.section-index {
  position:absolute; top:132px; right:clamp(22px,5vw,76px);
  color:rgba(30,34,33,.34); font-size:.72rem; letter-spacing:.18em;
}
.eyebrow {
  margin:0 0 20px; color:var(--mineral); font-size:.72rem; text-transform:uppercase;
  letter-spacing:.18em; font-weight:700;
}
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:500; }
.section-heading { max-width:960px; margin-bottom:68px; }
.section-heading h2 {
  margin:0; font-size:clamp(3rem,5.5vw,6.1rem); line-height:.95; letter-spacing:-.055em;
}
.section-heading.split {
  max-width:none; display:grid; grid-template-columns:1.22fr .78fr; gap:90px; align-items:end;
}
.section-heading.split > p { margin:0 0 4px; color:rgba(30,34,33,.68); max-width:500px; }

.hero {
  min-height:100vh; padding-top:150px; display:grid; grid-template-columns:1.05fr .95fr;
  gap:clamp(50px,8vw,120px); align-items:center;
}
.hero h1 {
  margin:0 0 34px; font-size:clamp(5rem,10vw,10rem); line-height:.78; letter-spacing:-.075em;
}
.hero h1 span { display:block; }
.hero-outline { color:transparent; -webkit-text-stroke:1.4px var(--mineral); text-stroke:1.4px var(--mineral); }
.hero-lead { max-width:740px; margin-bottom:34px; font-size:clamp(1.05rem,1.6vw,1.35rem); color:rgba(30,34,33,.72); }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:42px; }
.button {
  min-height:48px; padding:13px 22px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; font-size:.84rem; font-weight:650; transition:transform .25s var(--ease), background .25s var(--ease);
}
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--moss); color:var(--white); }
.button-secondary { border:1px solid var(--line); color:var(--graphite); }
.hero-tags { display:flex; flex-wrap:wrap; gap:8px; }
.hero-tags span { padding:7px 11px; border:1px solid var(--line); border-radius:999px; font-size:.69rem; color:rgba(30,34,33,.68); }

.hero-visual { min-height:680px; position:relative; }
.field-system { position:absolute; inset:50% auto auto 50%; width:min(78vw,520px); aspect-ratio:.66; transform:translate(-50%,-50%); }
.field-ring { position:absolute; left:50%; width:68%; aspect-ratio:1; border:1.5px solid var(--graphite); border-radius:50%; transform:translateX(-50%); }
.ring-a { top:5%; animation:driftA 6.8s ease-in-out infinite; }
.ring-b { top:31%; animation:driftB 7.8s ease-in-out infinite; }
.ring-c { top:57%; animation:driftC 8.8s ease-in-out infinite; }
.field-axis { position:absolute; left:50%; top:0; bottom:0; width:1.5px; background:var(--graphite); transform:translateX(-50%); }
.field-node { position:absolute; left:50%; border-radius:50%; transform:translate(-50%,-50%); background:var(--graphite); }
.node-top { top:0; width:9px; height:9px; }
.node-center { top:50%; width:24px; height:24px; background:var(--sage); border:2px solid var(--graphite); animation:pulseNode 3s ease-in-out infinite; }
.node-bottom { top:100%; width:9px; height:9px; }
.field-grid {
  position:absolute; inset:4% -12%; opacity:.25;
  background-image:linear-gradient(rgba(30,34,33,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(30,34,33,.18) 1px,transparent 1px);
  background-size:38px 38px; z-index:-1; mask-image:radial-gradient(circle,black 35%,transparent 76%);
}
.hero-scroll { position:absolute; bottom:28px; left:clamp(22px,5vw,76px); display:flex; align-items:center; gap:14px; color:rgba(30,34,33,.5); font-size:.68rem; }
.scroll-line { width:70px; height:1px; background:var(--line); position:relative; overflow:hidden; }
.scroll-line::after { content:""; position:absolute; inset:0; background:var(--mineral); transform:translateX(-100%); animation:scrollLine 2.4s ease-in-out infinite; }

.profile-section { border-top:1px solid var(--line); }
.profile-grid { display:grid; grid-template-columns:1.12fr .88fr; gap:clamp(56px,9vw,140px); }
.lead-paragraph { font-family:var(--serif); font-size:clamp(1.7rem,2.6vw,2.9rem); line-height:1.18; letter-spacing:-.03em; }
.profile-copy p:not(.lead-paragraph) { color:rgba(30,34,33,.68); max-width:780px; }
.profile-facts { border-top:1px solid var(--line); }
.profile-facts article { padding:22px 0; display:grid; grid-template-columns:120px 1fr; gap:22px; border-bottom:1px solid var(--line); }
.profile-facts span, .strip-label { color:var(--mineral); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; }
.profile-facts strong { font-weight:600; font-size:.9rem; }
.institution-stack{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px 18px;font-family:var(--sans);font-size:1.02rem;letter-spacing:.045em}.institution-stack>*{font:inherit;font-size:inherit!important;line-height:1.2;color:var(--graphite)}.institution-unam{font-weight:750!important}.institution-ibero,.institution-edinba{font-weight:400}
.profile-strip { margin-top:95px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.profile-strip > div { min-height:150px; padding:26px 30px 26px 0; display:flex; flex-direction:column; justify-content:space-between; }
.profile-strip > div + div { padding-left:30px; border-left:1px solid var(--line); }
.profile-strip strong { font-family:var(--serif); font-size:1.4rem; font-weight:500; }

.research-section {
  width:100%; max-width:none; color:var(--white); background:var(--moss);
  padding-left:max(clamp(22px,5vw,76px),calc((100vw - var(--max))/2 + 76px));
  padding-right:max(clamp(22px,5vw,76px),calc((100vw - var(--max))/2 + 76px));
}
.research-section .section-index { color:rgba(255,255,255,.28); }
.research-section .eyebrow { color:var(--sage); }
.research-section .section-heading.split > p { color:rgba(255,255,255,.65); }
.research-map { min-height:620px; position:relative; }
.research-node-card {
  position:absolute; width:36%; min-height:180px; padding:25px; border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.035); backdrop-filter:blur(8px);
}
.research-node-card span { color:var(--sage); font-size:.68rem; }
.research-node-card h3 { margin:28px 0 10px; font-size:clamp(1.5rem,2vw,2.4rem); line-height:1.05; }
.research-node-card p { margin:0; color:rgba(255,255,255,.65); font-size:.88rem; }
.card-1 { left:0; top:0; border-radius:22px 22px 4px 22px; }
.card-2 { right:0; top:0; border-radius:22px 22px 22px 4px; }
.card-3 { left:0; bottom:0; border-radius:22px 4px 22px 22px; }
.card-4 { right:0; bottom:0; border-radius:4px 22px 22px 22px; }
.research-center {
  position:absolute; left:50%; top:50%; width:132px; aspect-ratio:1; transform:translate(-50%,-50%);
  border-radius:50%; display:grid; place-items:center; background:var(--sage); color:var(--graphite);
  font-family:var(--serif); font-size:1.05rem; box-shadow:0 0 0 18px rgba(168,190,138,.08);
}
.research-lines { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.research-lines path { fill:none; stroke:rgba(168,190,138,.38); stroke-width:1.2; stroke-dasharray:4 6; }

.project-list { display:grid; gap:28px; }
.project-card {
  display:grid; grid-template-columns:.92fr 1.08fr; min-height:430px; overflow:hidden;
  border:1px solid var(--line); border-radius:28px; background:rgba(250,249,245,.65);
}
.project-card:nth-child(even) .project-visual { order:2; }
.project-visual { position:relative; min-height:430px; display:grid; place-items:center; overflow:hidden; color:var(--white); }
.project-visual > span { position:relative; z-index:3; font-size:clamp(4rem,8vw,8rem); font-weight:700; letter-spacing:-.07em; }

.project-image {
  background-size: cover !important;
  background-position: center !important;
  isolation: isolate;
}
.project-image::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg, rgba(20,35,30,.08), rgba(20,35,30,.30)),
    linear-gradient(90deg, rgba(20,35,30,.12), transparent 65%);
}
.project-image .project-code,
.project-image .project-visual-title {
  z-index:3;
  text-shadow:0 2px 22px rgba(20,35,30,.55);
}
.project-visual-title {
  position:relative;
  color:var(--white);
  font-size:clamp(2.4rem,6vw,6.2rem);
  font-weight:700;
  letter-spacing:-.055em;
  text-align:center;
  max-width:88%;
}
.project-visual-creativity .project-visual-title {
  font-size:clamp(2rem,4vw,4.5rem);
  letter-spacing:-.035em;
}

.project-code { position:absolute; top:24px; left:24px; z-index:4; font-size:.66rem; letter-spacing:.12em; color:rgba(255,255,255,.72); }
.project-copy { padding:clamp(38px,6vw,90px); display:flex; flex-direction:column; justify-content:center; }
.project-meta { margin-bottom:16px; color:var(--mineral); font-size:.68rem; text-transform:uppercase; letter-spacing:.13em; font-weight:700; }
.project-copy h3 { margin-bottom:18px; font-size:clamp(2.8rem,5vw,5.5rem); line-height:.92; letter-spacing:-.05em; }
.project-copy > p:not(.project-meta) { color:rgba(30,34,33,.68); max-width:620px; }
.project-copy ul { display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:26px 0 0; list-style:none; }
.project-copy li { padding:7px 11px; border:1px solid var(--line); border-radius:999px; font-size:.68rem; color:rgba(30,34,33,.66); }

.project-visual-pixie { background:linear-gradient(145deg,#16211D,#35584A); }
.project-visual-mezquital { background:linear-gradient(145deg,#4D5E43,#91A174); }
.project-visual-horace { background:linear-gradient(145deg,#101312,#3B4641); }
.signal-system { position:absolute; width:70%; aspect-ratio:1; border-radius:50%; border:1px solid rgba(255,255,255,.2); }
.signal-system::before,.signal-system::after { content:""; position:absolute; inset:16%; border-radius:50%; border:1px solid rgba(255,255,255,.14); }
.signal-system::after { inset:32%; }
.project-visual-botanical { background:linear-gradient(145deg,#28463B,#7A9970); }

.publications-section { border-top:1px solid var(--line); }
.publication-table { border-top:1px solid var(--line); }
.publication-row { display:grid; grid-template-columns:90px 1fr auto; gap:28px; padding:32px 0; border-bottom:1px solid var(--line); }
.pub-year { color:var(--mineral); font-weight:700; font-size:.78rem; }
.pub-kind { margin-bottom:8px; color:rgba(30,34,33,.56); font-size:.66rem; text-transform:uppercase; letter-spacing:.11em; }
.publication-row h3 { margin-bottom:8px; font-size:clamp(1.35rem,2.1vw,2.2rem); line-height:1.12; }
.publication-row p:last-child { margin:0; color:rgba(30,34,33,.58); font-size:.86rem; }
.pub-arrow { font-size:1.4rem; }
.publication-current{background:rgba(168,190,138,.065);padding-left:18px;padding-right:18px}.pub-status{align-self:start;padding:7px 10px;border-radius:999px;background:rgba(168,190,138,.34);color:var(--moss);font-size:.64rem;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.status-review{background:rgba(184,189,183,.32);color:var(--graphite)}
.publication-footer { margin-top:34px; display:flex; justify-content:space-between; gap:30px; color:rgba(30,34,33,.6); }
.publication-footer a { color:var(--graphite); font-weight:650; }

.teaching-section {
  width:100%; max-width:none; background:#DDE3D7;
  padding-left:max(clamp(22px,5vw,76px),calc((100vw - var(--max))/2 + 76px));
  padding-right:max(clamp(22px,5vw,76px),calc((100vw - var(--max))/2 + 76px));
}
.teaching-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.teaching-card { min-height:330px; padding:32px; display:flex; flex-direction:column; background:rgba(250,249,245,.56); border:1px solid rgba(30,34,33,.12); border-radius:22px; }
.teaching-code { color:var(--mineral); font-size:.68rem; font-weight:700; letter-spacing:.12em; }
.teaching-card h3 { margin-top:auto; margin-bottom:16px; font-size:clamp(1.7rem,2.4vw,2.7rem); line-height:1.02; }
.teaching-card p { margin:0; color:rgba(30,34,33,.67); }

.timeline { position:relative; }
.timeline::before { content:""; position:absolute; left:120px; top:0; bottom:0; width:1px; background:var(--line); }
.timeline-item { display:grid; grid-template-columns:120px 1fr; gap:44px; padding:34px 0; border-bottom:1px solid var(--line); }
.timeline-year { color:var(--mineral); font-size:.78rem; font-weight:700; }
.timeline-item h3 { margin-bottom:8px; font-size:clamp(1.5rem,2.2vw,2.3rem); }
.timeline-item p { margin:0; max-width:760px; color:rgba(30,34,33,.65); }


.project-open {
  margin-top:22px; align-self:flex-start; min-height:42px; padding:10px 16px;
  border-radius:999px; border:1px solid var(--line); background:transparent;
  color:var(--graphite); font-size:.76rem; font-weight:650; cursor:pointer;
  transition:transform .22s var(--ease), background .22s var(--ease), color .22s var(--ease);
}
.project-open:hover { transform:translateY(-2px); background:var(--moss); color:var(--white); }

.project-modal {
  position:fixed; inset:0; z-index:90; display:grid; place-items:center;
  opacity:0; pointer-events:none; transition:opacity .25s var(--ease);
}
.project-modal.is-open { opacity:1; pointer-events:auto; }
.project-modal-backdrop { position:absolute; inset:0; background:rgba(30,34,33,.46); backdrop-filter:blur(5px); }
.project-modal-panel {
  position:relative; width:min(92vw,720px); padding:34px 34px 28px;
  border-radius:28px; background:var(--mist); color:var(--graphite);
  box-shadow:0 30px 80px rgba(30,34,33,.24); z-index:1;
}
.project-modal-close {
  position:absolute; top:16px; right:18px; width:36px; height:36px; border-radius:50%;
  border:1px solid var(--line); background:transparent; cursor:pointer; font-size:1.35rem; line-height:1;
}
.project-modal-kicker {
  margin:0 0 12px; color:var(--mineral); font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; font-weight:700;
}
.project-modal-panel h3 { margin:0 0 16px; font-size:clamp(2rem,4vw,3.2rem); line-height:.95; letter-spacing:-.04em; }
.project-modal-body { margin:0 0 22px; color:rgba(30,34,33,.72); font-size:1rem; }
.project-modal-meta { margin:0; padding:0; list-style:none; display:grid; gap:10px; }
.project-modal-meta li { padding-top:10px; border-top:1px solid var(--line); color:rgba(30,34,33,.68); font-size:.9rem; }


.vefaria-section { padding-top:80px; }
.vefaria-panel {
  min-height:430px;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  align-items:center;
  gap:50px;
  padding:clamp(38px,6vw,82px);
  border:1px solid var(--line);
  border-radius:32px;
  background:
    radial-gradient(circle at 82% 18%, rgba(150,118,88,.18), transparent 28%),
    linear-gradient(140deg, rgba(247,242,235,.98), rgba(225,214,199,.84));
  overflow:hidden;
}
.vefaria-copy h2 {
  margin:0 0 22px;
  font-size:clamp(2.8rem,5vw,5.4rem);
  line-height:.95;
  letter-spacing:-.055em;
}
.vefaria-copy > p:not(.eyebrow) {
  max-width:720px;
  margin-bottom:28px;
  color:rgba(30,34,33,.68);
  font-size:1.02rem;
}
.vefaria-mark {
  position:relative;
  min-height:260px;
  display:grid;
  place-items:center;
}
.vefaria-mark > span {
  position:relative;
  z-index:2;
  font-family:var(--serif);
  font-size:clamp(7rem,12vw,12rem);
  color:#7A5B45;
  line-height:1;
}
.vefaria-lines {
  position:absolute;
  width:78%;
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(122,91,69,.20);
}
.vefaria-lines::before,
.vefaria-lines::after {
  content:"";
  position:absolute;
  inset:14%;
  border-radius:50%;
  border:1px solid rgba(122,91,69,.12);
}
.vefaria-lines::after { inset:30%; }

@media (max-width:900px) {
  .vefaria-panel { grid-template-columns:1fr; }
  .vefaria-mark { min-height:180px; }
}

.contact-section { padding-bottom:60px; }
.contact-panel {
  position:relative; min-height:560px; padding:clamp(38px,7vw,98px); overflow:hidden; border-radius:38px;
  display:flex; flex-direction:column; justify-content:space-between; color:var(--white);
  background:radial-gradient(circle at 80% 20%,rgba(168,190,138,.34),transparent 26%),radial-gradient(circle at 20% 80%,rgba(79,107,91,.28),transparent 30%),var(--moss);
}
.contact-panel h2 { max-width:920px; font-size:clamp(3rem,6vw,6.4rem); line-height:.95; letter-spacing:-.055em; }
.contact-panel .eyebrow { color:var(--sage); }
.contact-actions { display:flex; flex-wrap:wrap; gap:12px; margin:32px 0; }
.button-light { background:var(--white); color:var(--graphite); }
.button-outline { border:1px solid rgba(255,255,255,.35); color:var(--white); }
.contact-links { display:flex; flex-wrap:wrap; gap:22px; color:rgba(255,255,255,.68); font-size:.82rem; }
.contact-symbol { position:absolute; right:8%; top:50%; width:180px; transform:translateY(-50%); opacity:.18; }
.contact-symbol svg line,.contact-symbol svg circle { fill:none; stroke:var(--white); stroke-width:1.2; }
.contact-symbol svg .brand-node { fill:var(--sage); stroke:var(--white); }

.site-footer {
  width:min(100%,var(--max)); margin:0 auto; padding:0 clamp(22px,5vw,76px) 42px;
  display:flex; justify-content:space-between; gap:30px; color:rgba(30,34,33,.58); font-size:.74rem;
}

.reveal { opacity:0; transform:translateY(28px); transition:opacity .85s var(--ease),transform .85s var(--ease); }
.reveal.visible { opacity:1; transform:translateY(0); }
.delay-1 { transition-delay:.1s; } .delay-2 { transition-delay:.2s; }

@keyframes pulseNode { 0%,100%{transform:translate(-50%,-50%) scale(1)} 50%{transform:translate(-50%,-50%) scale(1.14)} }
@keyframes driftA { 0%,100%{transform:translateX(-50%) translate(0,0) scale(1)} 50%{transform:translateX(-50%) translate(-12px,-20px) scale(1.025)} }
@keyframes driftB { 0%,100%{transform:translateX(-50%) translate(0,0) scale(1)} 50%{transform:translateX(-50%) translate(14px,18px) scale(.975)} }
@keyframes driftC { 0%,100%{transform:translateX(-50%) translate(0,0) scale(1)} 50%{transform:translateX(-50%) translate(-10px,22px) scale(1.03)} }
@keyframes scrollLine { 0%{transform:translateX(-100%)} 60%,100%{transform:translateX(100%)} }

@media (max-width:1080px) {
  .site-header { grid-template-columns:auto auto auto; }
  .menu-toggle { display:block; }
  .main-nav {
    position:fixed; inset:82px 0 auto 0; min-height:calc(100vh - 82px); padding:50px 28px;
    flex-direction:column; align-items:flex-start; background:var(--mist); font-size:1.5rem;
    transform:translateX(100%); transition:transform .35s var(--ease);
  }
  .main-nav.open { transform:translateX(0); }
  .language-switch { justify-self:end; }
  .hero { grid-template-columns:1fr; }
  .hero-visual { min-height:620px; }
  .profile-grid,.section-heading.split { grid-template-columns:1fr; gap:48px; }
  .project-card { grid-template-columns:1fr; }
  .project-card:nth-child(even) .project-visual { order:initial; }
  .teaching-grid { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  .site-header { min-height:72px; padding:12px 18px; gap:10px; }
  .brand-copy { display:none; }
  .main-nav { inset:72px 0 auto 0; min-height:calc(100vh - 72px); }
  .section { padding:96px 20px; }
  .section-index { top:98px; right:20px; }
  .hero { padding-top:118px; }
  .hero h1 { font-size:clamp(4.4rem,19vw,6.2rem); }
  .hero-visual { min-height:520px; }
  .field-system { width:78vw; }
  .profile-facts article { grid-template-columns:1fr; gap:8px; }
  .institution-stack{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px 18px;font-family:var(--sans);font-size:1.02rem;letter-spacing:.045em}.institution-stack>*{font:inherit;font-size:inherit!important;line-height:1.2;color:var(--graphite)}.institution-unam{font-weight:750!important}.institution-ibero,.institution-edinba{font-weight:400}
.profile-strip { grid-template-columns:1fr; }
  .profile-strip > div { min-height:auto; padding:24px 0; }
  .profile-strip > div + div { padding-left:0; border-left:0; border-top:1px solid var(--line); }
  .research-map { min-height:auto; display:grid; gap:16px; }
  .research-node-card { position:relative; inset:auto !important; width:100%; min-height:auto; }
  .research-lines,.research-center { display:none; }
  .project-visual { min-height:310px; }
  .project-copy { padding:34px 25px 40px; }
  .publication-row { grid-template-columns:62px 1fr; }
  .pub-arrow { display:none; }
  .publication-footer,.site-footer { flex-direction:column; }
  .timeline::before { left:0; }
  .timeline-item { grid-template-columns:1fr; gap:8px; padding-left:22px; }
  .contact-panel { min-height:520px; border-radius:24px; }
  .contact-symbol { width:120px; right:-8%; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}


.bio-intro { padding-bottom:70px; }
.semblanza-title {
  font-size:clamp(4.8rem,10vw,9rem);
  margin:0 0 24px;
  line-height:.82;
  letter-spacing:-.075em;
}
.bio-deck {
  max-width:920px;
  margin:0;
  font-family:var(--serif);
  font-size:clamp(1.5rem,2.5vw,2.7rem);
  line-height:1.18;
  color:rgba(30,34,33,.72);
}
.bio-chips { display:flex; flex-wrap:wrap; gap:9px; margin-top:40px; }
.bio-chips span {
  padding:8px 13px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--mineral);
  font-size:.72rem;
  font-weight:650;
}
.bio-story-section { border-top:1px solid var(--line); }
.bio-story-grid {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:clamp(55px,9vw,140px);
}
.bio-story p {
  max-width:820px;
  color:rgba(30,34,33,.7);
  font-size:1.02rem;
}
.bio-story .bio-opening {
  font-family:var(--serif);
  font-size:clamp(1.7rem,2.6vw,2.8rem);
  line-height:1.2;
  letter-spacing:-.03em;
  color:var(--graphite);
}
.bio-side { border-top:1px solid var(--line); }
.bio-side article {
  padding:22px 0;
  border-bottom:1px solid var(--line);
  display:grid;
  grid-template-columns:110px 1fr;
  gap:20px;
}
.bio-side span {
  color:var(--mineral);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.bio-side strong { font-size:.92rem; font-weight:600; }
.bio-current-section { background:#DDE3D7; width:100%; max-width:none; padding-left:max(clamp(22px,5vw,76px),calc((100vw - var(--max))/2 + 76px)); padding-right:max(clamp(22px,5vw,76px),calc((100vw - var(--max))/2 + 76px)); }
.bio-current-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
}
.bio-current-card {
  min-height:260px;
  padding:30px;
  display:flex;
  flex-direction:column;
  background:rgba(250,249,245,.62);
  border:1px solid rgba(30,34,33,.11);
  border-radius:22px;
}
.bio-current-card > span {
  color:var(--mineral);
  font-size:.68rem;
  font-weight:700;
}
.bio-current-card h3 {
  margin-top:auto;
  margin-bottom:14px;
  font-size:clamp(1.7rem,2.5vw,2.8rem);
  line-height:1.02;
}
.bio-current-card p {
  margin:0;
  color:rgba(30,34,33,.67);
}
@media (max-width:900px) {
  .bio-story-grid,
  .bio-current-grid { grid-template-columns:1fr; }
}
@media (max-width:700px) {
  .bio-side article { grid-template-columns:1fr; gap:7px; }
}


.bio-simple {
  padding-top:34px;
  padding-bottom:80px;
}
.bio-simple-grid {
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:clamp(28px,5vw,80px);
  align-items:start;
}
.bio-simple-photo { position:sticky; top:100px; }
.bio-portrait-frame {
  margin:0;
  overflow:hidden;
  border-radius:30px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.7), rgba(221,227,215,.42));
  box-shadow:0 18px 50px rgba(30,34,33,.08);
}
.bio-portrait-frame img {
  display:block;
  width:100%;
  height:auto;
}
.bio-simple-copy .semblanza-title {
  font-size:clamp(4.2rem,8vw,7.2rem);
  margin:0 0 12px;
  line-height:.84;
  letter-spacing:-.07em;
}
.bio-simple-date {
  margin:0 0 24px;
  color:var(--mineral);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.bio-simple-lead {
  margin:0 0 28px;
  max-width:900px;
  font-family:var(--serif);
  font-size:clamp(1.45rem,2.3vw,2.3rem);
  line-height:1.22;
  color:rgba(30,34,33,.74);
}
.bio-simple-text {
  display:grid;
  gap:18px;
  max-width:820px;
}
.bio-simple-text p {
  margin:0;
  color:rgba(30,34,33,.70);
  font-size:1rem;
}
.bio-simple-facts {
  margin-top:32px;
  display:grid;
  gap:14px;
  padding-top:24px;
  border-top:1px solid var(--line);
}
.bio-simple-facts div {
  display:grid;
  gap:6px;
}
.bio-simple-facts span {
  color:var(--mineral);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.bio-simple-facts strong {
  font-size:.94rem;
  font-weight:600;
}
@media (max-width:960px) {
  .bio-simple-grid { grid-template-columns:1fr; }
  .bio-simple-photo { position:relative; top:auto; max-width:520px; }
}


.vefaria-logo {
  position:relative;
  z-index:2;
  display:block;
  width:min(100%, 320px);
  height:auto;
  filter:drop-shadow(0 14px 28px rgba(30,34,33,.12));
}
.language-switch {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.language-switch .lang-btn {
  min-width:auto;
}

html[lang="ja"] body,
html[lang="ja"] button,
html[lang="ja"] a {
  font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN",
               "Meiryo", var(--sans);
}
html[lang="ja"] h1,
html[lang="ja"] h2,
html[lang="ja"] h3,
html[lang="ja"] .brand-copy strong {
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN",
               "Meiryo", var(--serif);
}
@media (max-width:760px) {
  .language-switch {
    gap:5px;
    font-size:.68rem;
  }
  .language-switch > span {
    display:none;
  }
  .language-switch .lang-btn {
    padding:4px 2px;
  }
}


/* Versión 11: ajustar MR al centro del círculo en patrimonio */
.project-visual-mezquital .project-code {
  display: none;
}
.project-visual-mezquital .project-visual-title {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
  line-height: 1;
}
