@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');

:root { --paper:#f9f8f2; --ink:#243e34; --muted:#5d6b61; --sage:#e6eadb; --line:#d6dbce; --green:#345b43; --white:#fffef9; color:var(--ink); background:var(--paper); font-family:'DM Sans',sans-serif; font-synthesis:none; }
* { box-sizing:border-box; }
body { margin:0; }
a { color:inherit; text-underline-offset:5px; }
:focus-visible { outline:3px solid #927546; outline-offset:5px; }
.skip { position:absolute; left:16px; top:-80px; padding:12px; background:var(--white); z-index:10; }
.skip:focus { top:12px; }
.wrap { max-width:1180px; margin:auto; padding:0 48px; }
header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:30px 0; border-bottom:1px solid var(--line); }
.brand { font-family:'Libre Caslon Display',Georgia,serif; font-size:32px; text-decoration:none; }
.brand span { color:#8b986e; }
nav { display:flex; gap:30px; flex-wrap:wrap; }
nav a { padding:9px 0; font-size:14px; text-decoration:none; }
nav a[aria-current='page'] { border-bottom:1px solid var(--green); }
h1,h2,h3 { font-family:'Libre Caslon Display',Georgia,serif; font-weight:400; }
h1 { margin:22px 0 25px; font-size:clamp(54px,6.6vw,84px); line-height:1.03; letter-spacing:-.025em; }
h1 em { color:#66805c; font-weight:400; }
h2 { margin:12px 0 20px; font-size:42px; line-height:1.15; }
h3 { margin:12px 0; font-size:29px; line-height:1.15; }
p { max-width:58ch; color:var(--muted); font-size:17px; line-height:1.75; }
.eyebrow { color:var(--muted); font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.hero { display:grid; grid-template-columns:1.25fr 1fr; gap:64px; align-items:center; padding:64px 0 72px; }
.hero p { max-width:42ch; }
.portrait { position:relative; margin:0; padding-right:10px; }
.portrait img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:center 35%; border-radius:48% 48% 5px 5px; }
.portrait figcaption { padding:10px 14px; font-family:'Libre Caslon Display',Georgia,serif; font-size:23px; text-align:right; transform:rotate(-5deg); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:20px; min-height:46px; padding:14px 23px; border:1px solid var(--green); border-radius:4px; color:var(--white); background:var(--green); font-size:14px; text-decoration:none; }
.button.secondary { color:var(--green); background:transparent; }
.hero .button { margin-top:17px; }
.text-link { font-size:14px; white-space:nowrap; }
.section { padding:40px 0; border-top:1px solid var(--line); }
.section-top { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.intro-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:36px; margin:24px 0 12px; }
.intro-grid article { padding-top:22px; border-top:2px solid #bdc8ad; }
.intro-grid .number { color:#6b805f; font-family:Georgia,serif; font-size:16px; }
.intro-grid p { font-size:15px; }
.journey-band { display:grid; grid-template-columns:1.2fr 1fr; gap:45px; align-items:center; margin:24px 0 52px; padding:40px; border-radius:5px; background:var(--sage); }
.journey-band h2 { margin-bottom:0; }
.journey-band p { margin-top:0; }
.page-head { padding:58px 0 32px; }
.page-head h1,.about-layout h1 { font-size:64px; }
.empty { margin:15px 0 55px; padding:38px; border:1px solid var(--line); border-radius:5px; }
.empty h2 { font-size:34px; }
.empty p { margin-bottom:0; }
.about-layout { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:start; padding:60px 0; }
.about-layout img { width:100%; height:auto; border-radius:5px; }
.cards { display:grid; grid-template-columns:repeat(2,1fr); gap:26px; margin:20px 0 60px; }
.entry { padding:26px; overflow-wrap:anywhere; border:1px solid var(--line); border-radius:4px; }
.entry-image { display:block; margin:-26px -26px 24px; }
.entry-image img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.entry a { text-decoration:none; }
.entry a:hover { text-decoration:underline; }
.entry p { margin-bottom:0; }
.meta,.achievement-meta { color:var(--muted); font-size:13px; }
.achievement-meta span+span::before { content:' · '; white-space:pre; }
.post { max-width:720px; margin:50px auto 80px; }
.post h1 { font-size:60px; }
.post-image { display:block; width:100%; height:auto; margin:28px 0; border-radius:5px; }
.prose { color:var(--muted); font-size:18px; line-height:1.85; overflow-wrap:anywhere; }
.prose p,.prose li { font-size:18px; }
.prose h2,.prose h3 { margin-top:40px; color:var(--ink); }
.prose img { max-width:100%; height:auto; border-radius:5px; }
.prose blockquote { margin:28px 0; padding:1px 24px; border-left:3px solid #8b986e; background:var(--sage); }
.prose pre { overflow:auto; padding:20px; border-radius:4px; background:#eef0e8; }
.prose code { font-size:.9em; }
footer { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:28px 0 34px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }
footer a { text-decoration:none; }
.footer-links { display:flex; gap:22px; }
@media(max-width:760px) {
  .wrap { padding:0 23px; }
  header { flex-wrap:wrap; padding:22px 0; }
  .brand { font-size:29px; }
  nav { gap:23px; }
  .hero { grid-template-columns:1fr; gap:35px; padding:38px 0 42px; }
  .hero h1 { font-size:60px; }
  .portrait { width:100%; max-width:430px; margin:auto; padding:0; }
  .portrait img { aspect-ratio:4/4.5; }
  .intro-grid,.journey-band,.about-layout,.cards { grid-template-columns:1fr; gap:24px; }
  .journey-band { margin:15px 0 36px; padding:27px; }
  .section-top { flex-direction:column; align-items:flex-start; gap:0; }
  .intro-grid { gap:16px; }
  h2 { font-size:36px; }
  .page-head h1,.about-layout h1,.post h1 { font-size:51px; }
  .page-head { padding-top:35px; }
  .empty { padding:25px; }
  .about-layout { gap:30px; padding:38px 0; }
  .about-layout img { max-width:430px; }
  footer { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:no-preference) { a { transition:opacity .15s; } a:hover { opacity:.8; } }
