/* ============================================================
   OPTION C — "Dark interpretability"
   Near-black canvas · one cyan accent · Newsreader + JetBrains Mono
   Shared markup across options; only this file differs.
   ============================================================ */
:root{
  --bg:        #0C1118;
  --bg-raise:  #111825;
  --bg-card:   #101724;
  --line:      #1E2937;
  --line-soft: #182230;
  --text:      #E7EDF4;
  --text-2:    #A8B4C2;
  --text-3:    #8492A3;
  --accent:    #57E4C6;
  --accent-dim:#2E8F7C;
  --accent-ink:#062019;
  --glow:      rgba(87,228,198,.14);
  --amber:     #F2B84B;
  --amber-bg:  rgba(242,184,75,.08);
  --amber-line:rgba(242,184,75,.45);
  --mono:      "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --serif:     "Newsreader", Georgia, "Times New Roman", serif;
  --sans:      -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --maxw:      1080px;
  --radius:    14px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:5.5rem; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } *,*::before,*::after{ animation:none !important; transition:none !important; } }

body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:var(--sans); font-size:1.0625rem; line-height:1.7;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3,p,ul,ol,dl,dd,figure{ margin:0; }
ul,ol{ padding:0; }
img{ max-width:100%; height:auto; display:block; }
::selection{ background:var(--accent); color:var(--accent-ink); }
a{ color:var(--accent); text-decoration-color:rgba(87,228,198,.4); text-underline-offset:3px; }
a:hover{ text-decoration-color:var(--accent); }
a:focus-visible,button:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:4px; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 1.25rem; }

.skip-link{ position:absolute; left:-999px; top:0; background:var(--accent); color:var(--accent-ink); padding:.6rem 1rem; font-weight:600; z-index:100; border-radius:0 0 8px 0; }
.skip-link:focus{ left:0; }

/* ---------- Nav ---------- */
.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  background:rgba(12,17,24,.82); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line-soft);
}
.site-nav .bar{ max-width:var(--maxw); margin:0 auto; padding:0 1.25rem; display:flex; align-items:center; justify-content:space-between; height:3.5rem; gap:1rem; }
.brand{ font-family:var(--serif); font-weight:600; font-size:1.1rem; color:var(--text); text-decoration:none; letter-spacing:.01em; display:flex; align-items:center; gap:.55rem; white-space:nowrap; }
.brand::before{ content:""; width:.5rem; height:.5rem; border-radius:50%; background:var(--accent); box-shadow:0 0 10px var(--accent); flex:none; }
.nav-right{ display:flex; align-items:center; gap:.5rem; min-width:0; }
.nav-links{ display:flex; gap:.25rem; list-style:none; }
.nav-links a{ display:block; padding:.4rem .65rem; font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; color:var(--text-2); text-decoration:none; border-radius:6px; text-transform:lowercase; }
.nav-links a:hover{ color:var(--text); background:var(--bg-raise); }
.nav-links a.active{ color:var(--accent); }
.nav-resume{
  font-family:var(--mono); font-size:.7rem; letter-spacing:.05em; text-transform:lowercase;
  color:var(--accent); text-decoration:none; border:1px solid rgba(87,228,198,.4); border-radius:8px;
  padding:.4rem .8rem; background:rgba(87,228,198,.05); white-space:nowrap; margin-left:.5rem;
}
.nav-resume:hover{ background:rgba(87,228,198,.12); }
.nav-resume.is-pending,.nav-resume.is-pending:hover{ border-style:dashed; border-color:var(--amber-line); color:var(--amber); background:var(--amber-bg); cursor:default; }
.nav-links a{ padding:.4rem .5rem; font-size:.7rem; }
@media (max-width:760px){
  /* Phones: brand + resume on the first row, all seven links wrapping below */
  .site-nav .bar{ height:auto; flex-wrap:wrap; padding:.55rem 1rem .5rem; gap:.3rem 1rem; }
  .nav-right{ display:contents; }
  .brand{ order:1; }
  .nav-resume{ order:2; margin-left:auto; padding:.35rem .6rem; }
  .nav-links{ order:3; width:100%; flex-wrap:wrap; gap:.05rem .2rem; }
  .nav-links a{ padding:.3rem .4rem; }
  html{ scroll-padding-top:7rem; }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--mono); font-size:.78rem; letter-spacing:.04em;
  color:var(--accent); text-decoration:none; border:1px solid rgba(87,228,198,.4); border-radius:8px;
  padding:.55rem 1rem; background:rgba(87,228,198,.05);
  transition:background .18s ease, box-shadow .18s ease;
}
.btn:hover{ background:rgba(87,228,198,.12); box-shadow:0 0 18px rgba(87,228,198,.15); }
.btn-primary{ background:var(--accent); color:var(--accent-ink); font-weight:600; border-color:var(--accent); box-shadow:0 0 24px rgba(87,228,198,.2); }
.btn-primary:hover{ background:var(--accent); box-shadow:0 0 36px rgba(87,228,198,.35); }
.btn .filetype{ opacity:.7; }
.is-pending,.is-pending:hover{ border-style:dashed; border-color:var(--amber-line); color:var(--amber); background:var(--amber-bg); box-shadow:none; cursor:default; }

/* ---------- Placeholder ---------- */
.ph{ border:1px dashed var(--amber-line); background:var(--amber-bg); color:#E9D3A3; padding:1rem 1.1rem; font-size:.92rem; line-height:1.55; border-radius:10px; }
.ph .ph-label{ display:block; font-family:var(--mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--amber); margin-bottom:.3rem; }
.ph-photo{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; aspect-ratio:4/5; width:100%; }

/* ---------- Hero ---------- */
.hero{ position:relative; padding:8.5rem 0 4.5rem; overflow:hidden; border-bottom:1px solid var(--line-soft); }
.hero::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(60rem 32rem at 78% 8%, var(--glow), transparent 60%), radial-gradient(40rem 24rem at 10% 90%, rgba(87,228,198,.05), transparent 60%);
}
.hero-net{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.55; }
.hero .wrap{ position:relative; }
.hero-grid{ display:grid; grid-template-columns:1fr 14rem; gap:3rem; align-items:start; }
.kicker{ font-family:var(--mono); font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin:0 0 1.25rem; }
.hero h1{ font-family:var(--serif); font-weight:500; font-size:clamp(2.1rem, 5.2vw, 3.5rem); line-height:1.16; letter-spacing:-.01em; margin:0 0 1.25rem; max-width:19ch; }
.hero h1 em{ font-style:italic; color:var(--accent); }
.hero .subline{ font-family:var(--serif); font-style:italic; font-size:clamp(1.1rem, 2.4vw, 1.35rem); color:var(--text-2); margin:0; max-width:44ch; }
.hero .meta{ margin-top:1.4rem; font-family:var(--mono); font-size:.72rem; letter-spacing:.05em; color:var(--text-3); }
.hero-actions{ margin-top:1.6rem; display:flex; flex-wrap:wrap; gap:.75rem; }
.headshot img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:10px; border:1px solid rgba(87,228,198,.22); box-shadow:0 0 34px rgba(87,228,198,.08); }
.headshot figcaption{ margin-top:.5rem; font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-3); }
.hero .ph-photo{ border-radius:10px; }
.hero-stats{ display:flex; flex-wrap:wrap; gap:.75rem 2.25rem; padding:1.1rem 0 0; margin:2.5rem 0 0; border-top:1px solid var(--line); list-style:none; }
.hero-stats .n{ font-family:var(--mono); font-size:1.15rem; font-weight:600; color:var(--accent); display:block; }
.hero-stats .l{ font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-3); }
@media (max-width:760px){ .hero-grid{ grid-template-columns:1fr; gap:2rem; } .headshot{ max-width:13rem; } }

/* ---------- Sections ---------- */
section{ padding:5rem 0; }
.section-head{ display:flex; align-items:baseline; gap:1rem; margin-bottom:2.5rem; }
.section-head h2{ font-family:var(--serif); font-weight:500; font-size:clamp(1.6rem, 3.4vw, 2.2rem); letter-spacing:-.01em; }
.section-head .num{ font-family:var(--mono); font-size:.75rem; color:var(--accent); letter-spacing:.1em; }
.section-head::after{ content:""; flex:1; height:1px; background:var(--line); transform:translateY(-.35em); }
.section-intro{ font-family:var(--serif); font-style:italic; font-size:1.15rem; color:var(--text-2); margin:-1.4rem 0 2.2rem; max-width:58ch; }

/* ---------- About ---------- */
.about-grid{ display:grid; grid-template-columns:1.6fr 1fr; gap:3rem; align-items:start; }
.prose p{ margin:0 0 1.1rem; color:var(--text-2); font-size:1.1rem; }
.prose p strong{ color:var(--text); font-weight:600; }
.aside{ border:1px solid var(--line); border-radius:var(--radius); background:var(--bg-card); padding:1.4rem 1.5rem; }
.aside h3{ font-family:var(--mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); margin:0 0 .9rem; font-weight:500; }
.aside ul{ list-style:none; }
.aside li{ padding:.55rem 0; font-size:.95rem; color:var(--text-2); border-top:1px solid var(--line-soft); }
.aside li:first-child{ border-top:0; padding-top:0; }
.aside li b{ color:var(--text); font-weight:600; display:block; }
@media (max-width:820px){ .about-grid{ grid-template-columns:1fr; gap:2rem; } }

/* ---------- Research list ---------- */
#research{ background:linear-gradient(180deg, var(--bg) 0%, #0A0F15 50%, var(--bg) 100%); }
.research-list{ list-style:none; }
.research-item{
  display:grid; grid-template-columns:auto 1fr; gap:1.25rem;
  border:1px solid var(--line); border-radius:var(--radius); background:var(--bg-card);
  padding:2rem 2.25rem; margin-bottom:1.5rem; position:relative; overflow:hidden;
}
.research-item .index{ padding-top:.5rem; }
@media (max-width:600px){ .research-item{ grid-template-columns:1fr; gap:.4rem; } }
.research-item::before{ content:""; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg, transparent, rgba(87,228,198,.5), transparent); }
.research-item .index{ font-family:var(--mono); font-size:.7rem; color:var(--text-3); letter-spacing:.1em; margin-right:.75rem; }
.badge{
  display:inline-block; font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; color:var(--accent);
  border:1px solid rgba(87,228,198,.35); background:rgba(87,228,198,.07); padding:.3rem .7rem; border-radius:999px; white-space:nowrap;
}
.badge.soft{ color:var(--text-3); border-color:var(--line); background:transparent; }
.research-item h3{ font-family:var(--serif); font-weight:500; font-size:clamp(1.35rem, 2.8vw, 1.8rem); line-height:1.3; letter-spacing:-.005em; margin:1rem 0 .8rem; max-width:30ch; }
.research-item h3 a{ color:var(--text); text-decoration:none; }
.research-item h3 a:hover{ color:var(--accent); }
.teaser{ color:var(--text-2); max-width:68ch; }
.teaser .m{ font-family:var(--mono); font-size:.92em; color:var(--accent); font-weight:500; }
.item-meta{ margin-top:1rem; display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; color:var(--text-3); }
.more{ margin-top:1rem; font-family:var(--mono); font-size:.78rem; }
@media (max-width:700px){ .research-item{ padding:1.4rem; } }

/* ---------- Experience / Leadership ---------- */
.entry-list{ list-style:none; }
.entry{ display:grid; grid-template-columns:200px 1fr; gap:1.5rem; padding:1.6rem 0; border-top:1px solid var(--line); }
.entry:last-child{ border-bottom:1px solid var(--line); }
.entry .when{ font-family:var(--mono); font-size:.72rem; letter-spacing:.07em; color:var(--text-3); padding-top:.35rem; }
.entry h3{ font-family:var(--serif); font-weight:500; font-size:1.25rem; margin:0 0 .15rem; letter-spacing:-.005em; }
.entry .org{ font-family:var(--mono); font-size:.75rem; letter-spacing:.05em; color:var(--accent); margin:0 0 .6rem; }
.entry .org a{ color:inherit; }
.entry p{ color:var(--text-2); max-width:62ch; }
@media (max-width:700px){ .entry{ grid-template-columns:1fr; gap:.35rem; padding:1.3rem 0; } }

/* ---------- Honors ---------- */
.honors-list{
  list-style:none; display:grid; grid-template-columns:repeat(3, 1fr); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
}
.honors-list li{ display:flex; flex-direction:column-reverse; justify-content:flex-end; background:var(--bg-card); padding:1.3rem 1.3rem; font-size:.92rem; color:var(--text-2); line-height:1.5; }
.honors-list .year{ display:block; font-family:var(--mono); font-size:.78rem; font-weight:600; color:var(--accent); margin-bottom:.3rem; }
@media (max-width:900px){ .honors-list{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .honors-list{ grid-template-columns:1fr; } }

/* ---------- Footer ---------- */
footer.contact{ border-top:1px solid var(--line-soft); padding:4.5rem 0 3rem; position:relative; overflow:hidden; text-align:center; }
footer.contact::before{ content:""; position:absolute; inset:0; background:radial-gradient(38rem 20rem at 50% 120%, var(--glow), transparent 65%); pointer-events:none; }
footer.contact .wrap{ position:relative; }
.contact-line{ font-family:var(--serif); font-weight:500; font-size:clamp(1.6rem, 3.4vw, 2.2rem); margin:0 0 .75rem; }
.contact-mail a{
  display:inline-flex; align-items:center; gap:.6rem; font-family:var(--mono); font-size:.95rem;
  color:var(--accent-ink); background:var(--accent); text-decoration:none; font-weight:600;
  padding:.8rem 1.5rem; border-radius:10px; box-shadow:0 0 30px rgba(87,228,198,.25); margin-top:1.4rem;
  transition:transform .18s ease, box-shadow .18s ease;
}
.contact-mail a:hover{ transform:translateY(-2px); box-shadow:0 0 44px rgba(87,228,198,.4); }
.contact-sub{ color:var(--text-2); margin:0 auto 1.5rem; max-width:52ch; }
.fineprint{ margin-top:3.5rem; font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; color:var(--text-3); }

/* ---------- Project page ---------- */
.project-page{ padding-top:7rem; padding-bottom:4rem; }
.project-layout{ display:grid; grid-template-columns:14rem 1fr; gap:3rem; align-items:start; }
.project-side{ position:sticky; top:5rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--bg-card); padding:1.1rem 1.2rem; }
.side-title{ font-family:var(--mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin-bottom:.6rem; }
.side-list{ list-style:none; }
.side-list li{ border-top:1px solid var(--line-soft); }
.side-list a{ display:block; padding:.55rem 0; font-size:.85rem; line-height:1.35; color:var(--text-2); text-decoration:none; }
.side-list a:hover{ color:var(--text); }
.side-list a.current{ color:var(--accent); }
.side-list .yr{ display:block; font-family:var(--mono); font-size:.66rem; color:var(--text-3); letter-spacing:.06em; }
.side-back{ margin-top:1rem; font-family:var(--mono); font-size:.72rem; }
@media (max-width:820px){ .project-layout{ grid-template-columns:1fr; } .project-side{ position:static; } .side-list{ display:none; } }
.crumb{ font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; color:var(--text-3); margin-bottom:1.25rem; }
.project-main h1{ font-family:var(--serif); font-weight:500; font-size:clamp(1.9rem, 4.4vw, 3rem); line-height:1.15; letter-spacing:-.01em; margin:1rem 0 0; max-width:24ch; }
.project-main .lede{ font-family:var(--serif); font-style:italic; font-size:1.2rem; color:var(--text-2); margin-top:1.1rem; max-width:52ch; }
.meta-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(11rem, 1fr)); gap:1rem 2rem; margin-top:2rem; padding:1.2rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.meta-grid dt{ font-family:var(--mono); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--text-3); }
.meta-grid dd{ font-size:.92rem; color:var(--text); margin-top:.15rem; }
.actions{ margin-top:1.5rem; display:flex; flex-wrap:wrap; gap:.75rem; }
.stats{ list-style:none; display:grid; grid-template-columns:repeat(auto-fit, minmax(9rem, 1fr)); gap:1px; margin-top:2rem; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.stats li{ background:var(--bg-card); padding:1rem 1.2rem; }
.stats .n{ font-family:var(--mono); font-size:1.25rem; font-weight:600; color:var(--accent); display:block; }
.stats .l{ font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-3); display:block; margin-top:.15rem; }
.summary{ margin-top:2.6rem; max-width:68ch; }
.summary h2{ font-family:var(--serif); font-weight:500; font-size:1.45rem; margin:2rem 0 .7rem; }
.summary h2:first-child{ margin-top:0; }
.summary p{ color:var(--text-2); }
.summary p + p{ margin-top:1rem; }
.summary strong{ color:var(--text); font-weight:600; }
.summary .m{ font-family:var(--mono); font-size:.92em; color:var(--accent); font-weight:500; }
.summary ul{ margin:.6rem 0 0 1.2rem; color:var(--text-2); }
.summary li + li{ margin-top:.3rem; }
.callout{ border:1px solid var(--line); border-left:3px solid var(--accent-dim); border-radius:10px; background:var(--bg-card); padding:.9rem 1.1rem; font-size:.95rem; color:var(--text-2); margin-top:1.2rem; }
.figures{ display:grid; gap:1rem; margin-top:2.4rem; }
.figures.cols-2{ grid-template-columns:1fr 1fr; }
.figures.cols-3{ grid-template-columns:repeat(3, 1fr); }
.figures figure{ margin:0; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:#0A0E14; }
.figures img{ width:100%; }
.figures figcaption{ font-family:var(--mono); font-size:.68rem; letter-spacing:.05em; color:var(--text-3); padding:.6rem .8rem; border-top:1px solid var(--line-soft); }
.figures .fig-label{ color:var(--accent); }
.figures.neurons figure{ border-color:rgba(87,228,198,.22); box-shadow:0 0 34px rgba(87,228,198,.08), inset 0 0 24px rgba(87,228,198,.04); }
.figures.neurons img{ padding:.5rem; }
@media (max-width:700px){ .figures.cols-2, .figures.cols-3{ grid-template-columns:1fr; } .figures.neurons.cols-3{ grid-template-columns:repeat(3,1fr); gap:.5rem; } .figures.neurons figcaption{ display:none; } }
.ph-block{ margin-top:2rem; max-width:68ch; }
.proj-nav{ margin-top:3.5rem; padding-top:1.5rem; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:1rem; }
.proj-nav span{ display:block; font-family:var(--mono); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--text-3); margin-bottom:.2rem; }
.proj-nav a{ font-family:var(--serif); font-size:1.05rem; color:var(--text); text-decoration:none; max-width:24rem; }
.proj-nav a:hover{ color:var(--accent); }
.proj-nav .next{ text-align:right; }

/* No scroll-reveal animation on purpose: every element is visible without JavaScript. */

/* ---------- Section index pages ---------- */
.section-page{ padding-top:7rem; padding-bottom:4rem; }
.section-page .crumb{ margin-bottom:1.2rem; }
.section-page .section-intro{ margin-top:-1.4rem; }
.research-list.plain .research-item{ grid-template-columns:1fr; }
.research-list.plain .index{ display:none; }

/* ---------- Home: section cards ---------- */
.section-cards{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.25rem; }
.scard{ display:flex; flex-direction:column; gap:.45rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--bg-card); padding:1.4rem 1.5rem; text-decoration:none; color:var(--text); transition:border-color .18s ease, box-shadow .18s ease; }
.scard:hover{ border-color:rgba(87,228,198,.4); box-shadow:0 0 24px rgba(87,228,198,.08); }
.scard-label{ font-family:var(--mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.scard h3{ font-family:var(--serif); font-weight:500; font-size:1.3rem; line-height:1.25; }
.scard p{ font-size:.93rem; color:var(--text-2); }
.scard-list{ font-family:var(--mono); font-size:.68rem; color:var(--text-3); line-height:1.6; }
.scard .more{ margin-top:auto; padding-top:.6rem; font-family:var(--mono); font-size:.78rem; color:var(--accent); }
@media (max-width:800px){ .section-cards{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:520px){ .section-cards{ grid-template-columns:1fr; } }

/* ---------- Media placeholders ---------- */
.media-wrap{ margin-top:2.6rem; }
.media-title{ font-family:var(--serif); font-weight:500; font-size:1.35rem; margin-bottom:.9rem; }
.media-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1rem; }
.ph-media{ aspect-ratio:4/3; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; font-size:.85rem; padding:.9rem; }
.ph-inline{ color:var(--amber); border-bottom:1px dashed var(--amber-line); }
@media (max-width:700px){ .media-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:440px){ .media-grid{ grid-template-columns:1fr; } }

/* ---------- Tables inside summaries ---------- */
.summary table{ border-collapse:collapse; width:100%; font-size:.9rem; margin:.6rem 0 1.3rem; }
.summary th,.summary td{ text-align:left; padding:.45rem .6rem .45rem 0; border-bottom:1px solid var(--line); vertical-align:top; color:var(--text-2); }
.summary th{ font-family:var(--mono); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--text-3); }
.summary td.n{ font-family:var(--mono); font-size:.85em; color:var(--accent); white-space:nowrap; }

.figures.cols-5{ grid-template-columns:repeat(5, 1fr); }
@media (max-width:700px){ .figures.cols-5{ grid-template-columns:repeat(3, 1fr); gap:.5rem; } .figures.cols-5 figcaption{ display:none; } }

.index-list{ margin-top:2.2rem; }

/* ---------- Photographs ---------- */
.photo-wrap{ margin-top:2.6rem; }
.photo-grid{ columns:2; column-gap:1rem; }
.photo-grid figure{ break-inside:avoid; margin:0 0 1rem; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:#0A0E14; }
.photo-grid img{ width:100%; height:auto; }
.photo-grid figcaption{ font-family:var(--mono); font-size:.68rem; letter-spacing:.04em; color:var(--text-3); padding:.6rem .8rem; border-top:1px solid var(--line-soft); }
@media (max-width:520px){ .photo-grid{ columns:1; } }

/* ---------- Links ---------- */
.linkset{ margin-top:2.4rem; }
.link-list{ list-style:none; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.link-list li + li{ border-top:1px solid var(--line-soft); }
.link-list a{ display:flex; align-items:baseline; justify-content:space-between; gap:1.5rem; padding:.85rem 1.1rem; text-decoration:none; background:var(--bg-card); }
.link-list a:hover{ background:var(--bg-raise); }
.link-label{ color:var(--text); font-size:.95rem; }
.link-host{ font-family:var(--mono); font-size:.7rem; color:var(--accent); white-space:nowrap; }
.link-host::after{ content:" \2197"; }
@media (max-width:520px){ .link-list a{ flex-direction:column; gap:.2rem; } }

/* ---------- Landing page ---------- */
.landing{ padding-bottom:5rem; }
.landing-grid{ display:grid; grid-template-columns:1fr 14rem; gap:3rem; align-items:center; }
.landing h1{ font-family:var(--serif); font-weight:500; font-size:clamp(2.5rem,7vw,4.2rem); line-height:1.05; letter-spacing:-.02em; margin:0; max-width:none; }
.landing h1 .last{ color:var(--accent); font-style:italic; }
.landing-intro{ margin-top:1.5rem; font-size:1.05rem; color:var(--text-2); max-width:44ch; }
.landing-intro + .landing-intro{ margin-top:.9rem; }
.landing .meta{ margin-top:1.7rem; }
.vision{ margin:4rem auto 0; max-width:46rem; border-top:1px solid var(--line); padding-top:2.4rem; }
.vision p{ font-family:var(--serif); font-style:italic; font-size:clamp(1.25rem,3vw,1.9rem); line-height:1.4; color:var(--text); }
@media (max-width:760px){ .landing-grid{ grid-template-columns:1fr; gap:2rem; } .landing .headshot{ max-width:13rem; } }

/* ---------- Footer (no contact block: the site publishes no email) ---------- */
.site-foot{ border-top:1px solid var(--line-soft); margin-top:2rem; padding:2.5rem 0 3rem; }
.site-foot .fineprint{ margin:0; font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; color:var(--text-3); }

/* The landing hero sits directly on the footer: one rule between them, not two. */
.landing{ border-bottom:0; }
