/* Personal site — quiet, typographic, no dependencies. */
:root{--ink:#151412;--ink2:#43403a;--muted:#7b756c;--rule:#e2ddd3;--paper:#f7f4ee;--accent:#8a2b1d;}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
  font:17px/1.65 "Noto Serif","DejaVu Serif",Georgia,serif;-webkit-font-smoothing:antialiased}
a{color:inherit}
.top{display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:26px clamp(18px,5vw,64px);border-bottom:1px solid var(--rule);position:sticky;top:0;
  background:rgba(247,244,238,.92);backdrop-filter:blur(6px);z-index:10}
.mark{font:800 15px/1 "Noto Sans",Arial,sans-serif;letter-spacing:.16em;
  border:1.5px solid var(--ink);padding:9px 10px}
.top nav{display:flex;gap:22px;font:600 12px/1 "Noto Sans",Arial,sans-serif;
  letter-spacing:.12em;text-transform:uppercase}
.top nav a{text-decoration:none;color:var(--ink2);padding-bottom:4px;border-bottom:1.5px solid transparent}
.top nav a:hover{color:var(--accent);border-bottom-color:var(--accent)}
main{max-width:1080px;margin:0 auto;padding:0 clamp(18px,5vw,64px)}

.hero{padding:clamp(48px,9vw,110px) 0 56px;border-bottom:1px solid var(--rule)}
.eyebrow{font:600 12px/1 "Noto Sans",Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent);margin:0 0 22px}
.hero h1{font-size:clamp(48px,10vw,104px);line-height:.92;letter-spacing:-.035em;margin:0 0 26px;font-weight:700}
.lede{font-size:clamp(19px,2.2vw,24px);line-height:1.5;color:var(--ink2);max-width:36ch;margin:0 0 44px}
.hero-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;
  border-top:1px solid var(--rule);padding-top:26px}
.hero-meta .k{display:block;font:600 10.5px/1 "Noto Sans",Arial,sans-serif;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.hero-meta .v{font-size:15.5px;line-height:1.45}

section{padding:clamp(44px,6vw,72px) 0;border-bottom:1px solid var(--rule)}
section h2{display:flex;align-items:baseline;gap:16px;font:700 clamp(22px,3vw,30px)/1.15 "Noto Sans",Arial,sans-serif;
  letter-spacing:-.01em;margin:0 0 34px}
section h2 span{font:600 11px/1 "Noto Sans",Arial,sans-serif;letter-spacing:.16em;color:var(--accent)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px}
.col h3{font:700 13px/1 "Noto Sans",Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;margin:0 0 12px}
.col p{margin:0;color:var(--ink2);font-size:16.5px}

.timeline{list-style:none;margin:0;padding:0}
.timeline li{display:grid;grid-template-columns:120px 1fr;gap:28px;padding:26px 0;border-top:1px solid var(--rule)}
.timeline li:first-child{border-top:none;padding-top:0}
.when{font:600 11px/1.6 "Noto Sans",Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-top:4px}
.what h3{font:700 20px/1.3 "Noto Sans",Arial,sans-serif;margin:0 0 8px;letter-spacing:-.01em}
.what p{margin:0;color:var(--ink2);max-width:62ch}

.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
@media (min-width:1100px){.grid{grid-template-columns:repeat(4,1fr);gap:20px}}
.card{border:1px solid var(--rule);background:#fffdf8;padding:22px}
.card h3{font:700 14px/1.3 "Noto Sans",Arial,sans-serif;margin:0 0 8px}
.card p{margin:0;font-size:15.5px;color:var(--ink2)}

.contact p{max-width:60ch;color:var(--ink2)}
.contact .mail{font:700 clamp(22px,3vw,30px)/1.2 "Noto Sans",Arial,sans-serif;margin:22px 0 18px}
.contact .mail a{color:var(--accent);text-decoration:none;border-bottom:2px solid var(--accent)}
.note{font-size:13px;color:var(--muted);border-left:3px solid var(--rule);padding-left:14px}
footer{padding:34px clamp(18px,5vw,64px) 60px;font-size:13px;color:var(--muted)}
section[id]{scroll-margin-top:88px}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:1px}

@media (max-width:640px){
  .top{padding:14px 18px;gap:12px}
  .top nav{gap:12px;font-size:11px;letter-spacing:.1em}
  .top nav a{display:flex;align-items:center;min-height:44px;padding:13px 0}
  .timeline li{grid-template-columns:1fr;gap:6px}
  .grid{grid-template-columns:1fr;gap:18px}
  .hero{padding:44px 0 40px}
}
