:root {
  --ink: #15201d;
  --muted: #5b6863;
  --forest: #0f5d4a;
  --forest-2: #17866a;
  --sand: #f5f2ea;
  --line: #dfe5e1;
  --white: #ffffff;
}

body { color: var(--ink); font-size: 1.03rem; line-height: 1.68; }
.navbar { border-bottom: 1px solid var(--line); box-shadow: none; }
.navbar-brand { font-weight: 750; letter-spacing: -0.02em; }
.nav-link { font-weight: 550; }
a { color: var(--forest); }
h1, h2, h3 { letter-spacing: -0.025em; }
h1 { font-weight: 780; }
h2 { margin-top: 2.4rem; font-weight: 720; }

.hero { display:grid; grid-template-columns: 1.6fr 0.8fr; gap: 3rem; align-items:center; padding: 4.2rem 0 2.6rem; }
.eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; font-weight: 750; color: var(--forest-2); }
.hero h1 { font-size: clamp(2.8rem, 7vw, 5.4rem); line-height:.96; margin:.35rem 0 1rem; }
.hero .lead { font-size: 1.35rem; line-height:1.45; max-width: 760px; color: #2c3935; }
.hero-photo { width:100%; max-width: 360px; aspect-ratio: 4/5; object-fit: cover; object-position:center; border-radius: 22px; box-shadow: 0 16px 45px rgba(22,45,37,.12); }
.pills { display:flex; flex-wrap:wrap; gap:.55rem; margin:1.5rem 0 1.8rem; }
.pill { padding:.38rem .72rem; border:1px solid #cfe0d9; border-radius:999px; font-size:.9rem; background:#fbfdfc; }
.actions { display:flex; flex-wrap:wrap; gap:.8rem; }
.btn-main, .btn-ghost { display:inline-block; padding:.72rem 1rem; border-radius:9px; text-decoration:none; font-weight:650; }
.btn-main { background:var(--forest); color:white !important; }
.btn-ghost { border:1px solid #bbc8c3; color:var(--ink)!important; }

.section-intro { max-width:780px; color:var(--muted); font-size:1.08rem; }
.grid-2, .grid-3, .grid-4 { display:grid; gap:1.1rem; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.card { border:1px solid var(--line); border-radius:14px; padding:1.3rem 1.35rem; background:var(--white); }
.card h3 { margin-top:0; font-size:1.12rem; }
.card p:last-child { margin-bottom:0; }
.card .kicker { color:var(--forest-2); font-size:.8rem; font-weight:750; text-transform:uppercase; letter-spacing:.08em; }
.stat { background:var(--sand); border:0; }
.stat strong { display:block; font-size:2rem; color:var(--forest); line-height:1.1; }
.project-card { min-height: 210px; }
.publication { border-top:1px solid var(--line); padding:1.1rem 0; }
.publication .year { font-size:.85rem; color:var(--forest-2); font-weight:750; }
.publication .title { font-weight:700; font-size:1.08rem; }
.small { font-size:.9rem; color:var(--muted); }
.callout-custom { background:var(--sand); border-radius:16px; padding:1.6rem; margin:2rem 0; }
.quote { font-size:1.32rem; line-height:1.45; font-weight:600; max-width:820px; }
.page-title { padding-top:2rem; max-width:900px; }
.page-title h1 { font-size:clamp(2.4rem,5vw,4rem); }
.tag { display:inline-block; margin:.2rem .25rem .2rem 0; background:#edf5f1; color:#174e40; padding:.25rem .55rem; border-radius:999px; font-size:.82rem; }
footer { margin-top:4rem; }

@media (max-width: 850px) {
 .hero { grid-template-columns:1fr; padding-top:2.2rem; }
 .hero-photo { max-width:260px; order:-1; }
 .grid-4, .grid-3, .grid-2 { grid-template-columns:1fr; }
}
