:root{
  --bg:#faf8f3;
  --bg-soft:#f1ece0;
  --card:#fffdf8;
  --ink:#1c1814;
  --ink2:#57504a;
  --muted:#8b8177;
  --line:#e7dfd0;
  --green:#14563f;
  --green-deep:#0c3a2a;
  --green-tint:#e2eee7;
  --gold:#b3892f;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,ui-serif,serif;
  --sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --radius:14px;
  --shadow:0 1px 2px rgba(28,24,20,.06),0 12px 32px -16px rgba(28,24,20,.22);
  --wrap:760px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  font:16px/1.65 var(--sans);
  background:
    radial-gradient(1100px 480px at 50% -180px, rgba(20,86,63,.10), transparent 70%),
    radial-gradient(800px 380px at 85% -120px, rgba(179,137,47,.08), transparent 70%),
    var(--bg);
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--green-tint);color:var(--green-deep)}
a{color:var(--green);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--green-deep)}
a:focus-visible{outline:3px solid #53a7d2;outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}

/* Header */
.site-header{
  position:sticky;top:0;z-index:10;
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.bar{display:flex;justify-content:space-between;align-items:center;min-height:68px;gap:16px}
.mark{font:500 21px var(--serif);color:var(--ink);text-decoration:none;letter-spacing:.2px}
.mark-dot{color:var(--green)}
nav{display:flex;gap:4px}
nav a{
  padding:8px 14px;color:var(--ink2);text-decoration:none;font-size:15px;
  border-radius:999px;transition:background .18s ease,color .18s ease;
}
nav a:hover{color:var(--green-deep);background:var(--green-tint)}
nav a[aria-current=page]{color:var(--green-deep);background:var(--green-tint);font-weight:600}

/* Hero */
main{padding:0 0 40px}
.hero{padding:clamp(64px,12vw,120px) 24px clamp(48px,8vw,88px)}
.eyebrow{
  font:600 12px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);margin:0 0 20px;
  display:flex;align-items:center;gap:12px;
}
.eyebrow::after{content:"";height:1px;width:56px;background:var(--gold);opacity:.5}
h1{
  font:400 clamp(44px,9vw,76px)/1.04 var(--serif);
  letter-spacing:-.02em;margin:0 0 28px;text-wrap:balance;
}
h1 em{font-style:italic;color:var(--green-deep)}
.lead{font-size:clamp(17px,2.4vw,20px);color:var(--ink2);max-width:36em;margin:0 0 18px;text-wrap:pretty}
.lead.soft{color:var(--muted);font-size:16px}
.actions{margin-top:32px;display:flex;gap:12px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 24px;border-radius:999px;
  background:var(--green);color:#fff;text-decoration:none;font-weight:600;font-size:16px;
  box-shadow:0 8px 20px -10px rgba(20,86,63,.55);
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
}
.btn:hover{background:var(--green-deep);color:#fff;transform:translateY(-1px)}
.btn .arr{transition:transform .18s ease}
.btn:hover .arr{transform:translateX(3px)}
.btn.ghost{
  background:transparent;color:var(--green-deep);
  border:1px solid var(--line);box-shadow:none;
}
.btn.ghost:hover{background:var(--green-tint);transform:translateY(-1px)}

/* Bio: experience entries */
.job{padding:26px 0;border-top:1px solid var(--line)}
.job:first-of-type{border-top:none;padding-top:4px}
.job-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:6px}
.job-role{font-weight:650;font-size:17px;margin:0;color:var(--ink)}
.job-org{margin:2px 0 0;color:var(--muted);font-size:15px}
.job-date{flex:none;margin:0;color:var(--muted);font-size:14px;white-space:nowrap}
.job ul{margin:12px 0 0;padding-left:20px;color:var(--ink2)}
.job ul li{margin-bottom:8px;max-width:62ch}
.job ul li::marker{color:var(--green)}
.job > p{color:var(--ink2);max-width:62ch;margin:12px 0 0}
.job .meta{margin-top:14px}

/* Sections */
.section{padding:8px 24px 72px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:20px}
h2.section-title{font:400 clamp(26px,4.5vw,34px)/1.2 var(--serif);letter-spacing:-.01em;margin:0}

/* Project cards */
.project{
  display:block;padding:28px;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--card);color:inherit;text-decoration:none;
  box-shadow:0 1px 2px rgba(28,24,20,.04);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.project:hover{border-color:var(--green);transform:translateY(-3px);box-shadow:var(--shadow)}
.project + .project{margin-top:16px}
.project-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.project h2,.project h3{font:400 24px/1.3 var(--serif);margin:0 0 10px;color:var(--green-deep);letter-spacing:-.01em}
.project p{margin:0 0 14px;color:var(--ink2);max-width:60ch}
.project p:last-child{margin-bottom:0}
.arrow{
  flex:none;width:40px;height:40px;border-radius:50%;
  border:1px solid var(--line);display:grid;place-items:center;
  color:var(--green);font-size:18px;
  transition:background .2s ease,color .2s ease,transform .2s ease;
}
.project:hover .arrow{background:var(--green);border-color:var(--green);color:#fff;transform:translate(2px,-2px)}
.meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.meta span{
  font:600 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink2);background:var(--bg-soft);border:1px solid var(--line);
  padding:8px 12px;border-radius:999px;
}
.meta a.meta-link{text-decoration:none;color:inherit}
.meta a.meta-link:hover span{border-color:var(--green);color:var(--green-deep)}
.profile-card{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:18px 22px;margin:20px 0 4px;
  border:1px solid var(--line);border-radius:var(--radius);
  background:var(--card);text-decoration:none;color:inherit;
  transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.profile-card + .profile-card{margin-top:12px}
.profile-card:hover{border-color:var(--green);transform:translateY(-2px);box-shadow:var(--shadow)}
.profile-label{font:600 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}
.profile-cta{font-weight:600;color:var(--green-deep);white-space:nowrap}

/* Empty state for projects page */
.empty{
  border:1px dashed var(--line);border-radius:var(--radius);
  padding:36px 28px;text-align:center;color:var(--muted);background:transparent;
}

/* Footer */
footer{border-top:1px solid var(--line);padding:28px 0 40px;margin-top:24px}
.foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:14px}
.foot nav a{font-size:14px;padding:6px 10px}

/* Page-specific */
.page-head{padding:clamp(56px,10vw,96px) 24px 40px}
.page-head h1{margin-bottom:16px}

@media (max-width:560px){
  .bar{min-height:60px}
  .project{padding:22px}
  .arrow{width:36px;height:36px}
}

@media (prefers-color-scheme:dark){
  :root{
    --bg:#141210;
    --bg-soft:#1e1b17;
    --card:#1b1815;
    --ink:#f0ebe2;
    --ink2:#c9c0b4;
    --muted:#97897a;
    --line:#2c2721;
    --green:#7fc4a4;
    --green-deep:#a9dcc0;
    --green-tint:#1d2b24;
    --gold:#d3a94f;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px -16px rgba(0,0,0,.6);
  }
  body{
    background:
      radial-gradient(1100px 480px at 50% -180px, rgba(127,196,164,.10), transparent 70%),
      radial-gradient(800px 380px at 85% -120px, rgba(211,169,79,.07), transparent 70%),
      var(--bg);
  }
  ::selection{background:#24473a;color:#eaf5ee}
  .btn{background:#1d6b4e;color:#fff}
  .btn:hover{background:#25805f}
  .project:hover .arrow{background:#1d6b4e;border-color:#1d6b4e}
  .site-header{background:color-mix(in srgb, var(--bg) 88%, transparent)}
}
