/* ==========================================================================
   Field Notes — hand-authored stylesheet (no build step; edit directly).
   Replaces the old html5up template (assets/sass/main.scss / main.css),
   which is no longer referenced by index.html.
   ========================================================================== */

:root{
  --paper:#F6F5F1;
  --panel:#EFEEE7;
  --ink:#1E2321;
  --ink-soft:#565B54;
  --rule:#CBC8BC;
  --keep:#3F6B4F;
  --edit:#A47B2B;
  --accent:#3F6B4F;

  --font-serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-mono:ui-monospace,"SF Mono","Cascadia Code",Consolas,"Liberation Mono",monospace;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#1B1E1B; --panel:#22261F; --ink:#EAE8E0; --ink-soft:#A6A99C;
    --rule:#3A3E36; --keep:#7FB894; --edit:#D3A24C; --accent:#7FB894;
  }
}
:root[data-theme="dark"]{
  --paper:#1B1E1B; --panel:#22261F; --ink:#EAE8E0; --ink-soft:#A6A99C;
  --rule:#3A3E36; --keep:#7FB894; --edit:#D3A24C; --accent:#7FB894;
}
:root[data-theme="light"]{
  --paper:#F6F5F1; --panel:#EFEEE7; --ink:#1E2321; --ink-soft:#565B54;
  --rule:#CBC8BC; --keep:#3F6B4F; --edit:#A47B2B; --accent:#3F6B4F;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-sans); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
img{max-width:100%; display:block;}

/* ---- top nav ---- */
.topnav{
  position:sticky; top:0; z-index:10; background:var(--paper);
  border-bottom:1px solid var(--rule);
}
.topnav .row{
  max-width:760px; margin:0 auto; padding:.9rem 1.5rem;
  display:flex; align-items:center; justify-content:flex-end; gap:1.6rem; flex-wrap:wrap;
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.06em;
}
.topnav a{color:var(--ink-soft); text-decoration:none; text-transform:uppercase;}
.topnav a:hover{color:var(--accent);}

/* ---- shared page wrap ---- */
.wrap{max-width:760px; margin:0 auto; padding:4.5rem 1.5rem 6rem;}

/* ---- hero ---- */
.hero-top{display:flex; align-items:flex-start; gap:1.6rem; margin-bottom:1.75rem;}
.hero-photo{
  width:84px; height:84px; border-radius:6px; object-fit:cover;
  border:1px solid var(--rule); flex-shrink:0;
}
h1{
  font-family:var(--font-serif); font-weight:500; font-size:clamp(2.2rem,6vw,3.1rem);
  margin:0 0 .4rem; text-wrap:balance; letter-spacing:-.01em;
}
.role{
  font-family:var(--font-serif); font-style:italic; color:var(--ink-soft);
  font-size:1.1rem; margin:0;
}

.schema{
  display:flex; align-items:center; gap:1.6rem; flex-wrap:wrap;
  border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
  padding:1.1rem 0; margin:0 0 2.6rem;
}
.contact-item{
  display:inline-flex; align-items:center; gap:.5rem;
  color:var(--ink-soft); text-decoration:none;
}
a.contact-item:hover{color:var(--accent);}
.contact-item svg{width:20px; height:20px; flex-shrink:0;}
.contact-item span{font-family:var(--font-mono); font-size:.82rem;}

p.lede{font-family:var(--font-serif); font-size:1.12rem; line-height:1.75; max-width:60ch; margin:0 0 1rem;}

/* ---- sections ---- */
section{margin-bottom:3.4rem; scroll-margin-top:4.5rem;}
h2{
  font-family:var(--font-mono); font-size:.75rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-soft); margin:0 0 1.4rem;
  display:flex; align-items:center; gap:.6rem;
}
h2::after{content:""; flex:1; height:1px; background:var(--rule);}

/* ---- record rows (education / experience) ---- */
.record{display:flex; flex-direction:column; gap:1.3rem;}
.record-row{display:grid; grid-template-columns:130px 1fr; gap:1rem; align-items:baseline;}
.record-row .when{font-family:var(--font-mono); font-size:.78rem; color:var(--ink-soft); font-variant-numeric:tabular-nums;}
.record-row .what{font-family:var(--font-serif); font-size:1.02rem;}
.record-row .what b{font-weight:600;}
.record-row .sub{display:block; color:var(--ink-soft); font-family:var(--font-sans); font-size:.88rem; margin-top:.2rem; line-height:1.5;}

/* ---- publications ---- */
.pub-list{display:flex; flex-direction:column; gap:1.2rem;}
.pub{padding-bottom:1.2rem; border-bottom:1px solid var(--rule);}
.pub:last-child{border-bottom:none; padding-bottom:0;}
.pub-venue{
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--accent); margin-bottom:.35rem; display:inline-block;
}
.pub-cite{font-family:var(--font-serif); font-size:.98rem; line-height:1.6; margin:0;}
.pub-cite a{color:var(--ink-soft); font-family:var(--font-mono); font-size:.78rem; text-decoration:none; border-bottom:1px solid var(--rule); margin-left:.4rem;}
.pub-cite a:hover{color:var(--accent); border-color:var(--accent);}

/* ---- footer ---- */
footer.site-footer{
  font-family:var(--font-mono); font-size:.78rem; color:var(--ink-soft);
  display:flex; gap:1.4rem; flex-wrap:wrap; align-items:center;
  border-top:1px solid var(--rule); padding-top:1.5rem;
}
footer.site-footer a{color:var(--ink); text-decoration:none; border-bottom:1px solid var(--rule);}
footer.site-footer a:hover{border-color:var(--accent); color:var(--accent);}

@media (max-width:560px){
  .record-row{grid-template-columns:1fr;}
  .hero-top{flex-direction:column; align-items:flex-start;}
}
