:root{--green-900: #1f4a2c;--green-700: #2f7a43;--green-500: #7db98b;--green-300: #9cc9a6;--green-200: #d3e3d3;--green-100: #e4f0e4;--green-50: #f0f7ef;--ground: #f1f6f0;--text: #1c2b21;--text-soft: #3e5245;--muted: #55675a;--line: #e2ede1;--surface: #ffffff;--radius: 24px;--max-width: 760px;--font-display: "Bricolage Grotesque", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body: "Newsreader", Georgia, "Times New Roman", serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;color-scheme:light;font-family:var(--font-body);font-size:18px;line-height:1.7;color:var(--text)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;display:flex;flex-direction:column;position:relative;isolation:isolate;background:var(--ground)}.hills{position:absolute;inset:0 0 auto;height:420px;z-index:-1;background-color:#e3f0e4;background-image:var(--bg-image);background-size:cover;background-position:center bottom}.hills:after{content:"";position:absolute;inset:auto 0 0;height:40px;background:linear-gradient(transparent,var(--ground))}a{color:var(--green-700);text-underline-offset:3px}a:hover{color:var(--green-900)}h1,h2,h3{font-family:var(--font-display);color:var(--green-900);letter-spacing:-.02em;line-height:1.1}h1{font-size:clamp(2.6rem,6vw,3.4rem);font-weight:800;margin:0 0 1rem}h2{font-size:1.65rem;margin:2.5rem 0 .8rem}h3{font-size:1.3rem}img{max-width:100%;height:auto;border-radius:12px}code{font-family:var(--font-mono);font-size:.85em}.site-header{position:relative;z-index:10;font-family:var(--font-display)}.header-inner{max-width:1040px;margin:0 auto;padding:22px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:1.05rem;letter-spacing:-.01em;color:var(--green-900);text-decoration:none}.brand:hover{color:var(--green-900)}.brand svg{flex-shrink:0}.site-header ul{list-style:none;margin:0;padding:5px;display:flex;gap:4px;background:#ffffffc7;border:1px solid var(--green-200);border-radius:999px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.site-header nav a{display:block;padding:9px 16px;border-radius:999px;color:var(--green-900);text-decoration:none;font-weight:500;font-size:.84rem;line-height:1.4}.site-header nav a:hover{background:var(--green-100)}.site-header nav a[aria-current=page]{background:var(--green-700);color:#fff}.panel{flex:1 0 auto;width:calc(100% - 2rem);max-width:var(--max-width);margin:56px auto 0;padding:56px clamp(1.4rem,7vw,4rem) 60px;background:var(--surface);border-radius:var(--radius);box-shadow:0 1px 0 var(--green-200),0 24px 60px -24px #1f4a2c47}.panel>:first-child{margin-top:0}.site-footer{width:100%;max-width:var(--max-width);margin:0 auto;padding:40px 24px 48px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 18px;color:var(--muted);font-family:var(--font-display);font-size:.8rem}.site-footer ul{list-style:none;margin:0;padding:0;display:flex;gap:18px}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{color:var(--green-900);text-decoration:underline}.eyebrow{margin:0 0 .4rem;font-family:var(--font-display);font-size:.84rem;font-weight:500;color:var(--muted)}.lead{font-size:1.22rem;line-height:1.55;color:var(--text-soft);margin:0}.meta{color:var(--muted);font-family:var(--font-display);font-size:.84rem}.chip{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--green-100);color:#2b5e37;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.02em;line-height:1.6}.divider{height:1px;border:0;background:var(--line);margin:52px 0 36px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:22px}.section-head h2{margin:0}.section-head a,.text-link{font-family:var(--font-display);font-weight:600;font-size:.84rem}.intro{display:flex;align-items:center;gap:28px}.intro h1{margin:0;font-size:clamp(2.8rem,7vw,3.6rem)}.avatar{flex-shrink:0;width:104px;height:104px;border-radius:999px;background:#dcebdc;border:4px solid #fff;box-shadow:0 0 0 1px #c3dcc6;display:flex;align-items:center;justify-content:center;color:var(--green-900);font-family:var(--font-display);font-weight:700;font-size:2rem;letter-spacing:-.02em;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:0}.intro+.lead{margin-top:28px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.button{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:999px;background:var(--green-700);color:#fff;text-decoration:none;font-family:var(--font-display);font-weight:600;font-size:.9rem;line-height:1.3}.button:hover{background:var(--green-900);color:#fff}.button.ghost{background:var(--green-100);color:var(--green-900)}.button.ghost:hover{background:#d3e7d4;color:var(--green-900)}.post-list{list-style:none;padding:0;margin:0;display:grid;gap:16px}.post-card{display:block;padding:24px 26px;background:#fafcf9;border:1px solid #d9e7d8;border-radius:18px;color:var(--text);text-decoration:none;transition:transform .15s,border-color .15s,box-shadow .15s}.post-card:hover{transform:translateY(-2px);border-color:var(--green-300);box-shadow:0 12px 28px -18px #1f4a2c73;color:var(--text)}.post-card h3{margin:14px 0 8px}.post-card p{margin:0;font-size:.97rem;line-height:1.6;color:var(--text-soft)}.post-card .more{display:inline-flex;align-items:center;gap:6px;margin-top:16px;color:var(--green-700);font-family:var(--font-display);font-weight:600;font-size:.84rem}.post-card:hover .more{text-decoration:underline}.year-head{display:flex;align-items:center;gap:14px;margin:44px 0 18px}.year-head strong{font-family:var(--font-display);color:var(--green-900)}.year-head span:not(.count){flex-grow:1;height:1px;background:var(--line)}.year-head .count{font-family:var(--font-mono);font-size:.72rem;color:var(--muted)}.bio-intro{display:flex;gap:32px;align-items:flex-start;margin-top:36px}.bio-intro p{margin:0;font-size:1.05rem}.bio-photo{flex-shrink:0;width:200px;border-radius:20px;border:1px solid var(--green-200)}.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:40px}.tile{padding:26px;background:#f4f9f3;border-radius:18px}.tile h2{margin:0 0 10px;font-size:1.35rem}.tile p{margin:0;font-size:.97rem;line-height:1.6;color:var(--text-soft)}.contact-box{margin-top:36px;padding:32px;background:var(--green-50);border-radius:20px}.contact-box p{margin:0 0 18px}.contact-box .button{overflow-wrap:anywhere}.link-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.link-cards a{display:flex;justify-content:space-between;align-items:center;min-height:48px;padding:20px 22px;background:#fafcf9;border:1px solid #d9e7d8;border-radius:18px;color:var(--green-900);font-family:var(--font-display);font-weight:600;text-decoration:none;transition:transform .15s,border-color .15s}.link-cards a:hover{transform:translateY(-2px);border-color:var(--green-300)}.post-back{margin:0 0 28px}.post-back a,.post-nav a{text-decoration:none}.post-meta{display:flex;align-items:center;gap:10px;margin-bottom:36px}.prose{font-size:1.1rem;line-height:1.75}.prose h2{margin-top:44px}.prose blockquote{margin:32px 0;padding:18px 24px;background:var(--green-50);border-radius:16px;color:#2b4a33}.prose blockquote p{margin:.4rem 0}.prose pre{padding:1.1rem 1.25rem;border-radius:14px;overflow-x:auto;font-size:.85rem;line-height:1.6}.prose :not(pre)>code{background:#e9f2e8;padding:2px 6px;border-radius:5px}.post-nav{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:52px;padding-top:28px;border-top:1px solid var(--line)}.post-nav a:last-child{text-align:right}@media(max-width:640px){.header-inner{padding:16px}.site-header nav,.site-header ul{width:100%}.site-header ul{flex-wrap:wrap;justify-content:space-between}h1{font-size:clamp(2rem,10.5vw,2.6rem)}.contact-box{padding:20px 16px}.contact-box .button{padding:12px 16px;font-size:.82rem}.site-header nav a{padding:9px clamp(5px,2.4vw,12px);font-size:clamp(.7rem,3.6vw,.84rem)}.panel{width:calc(100% - 24px);margin-top:28px;padding:32px 22px 36px;border-radius:20px}.lead{font-size:1.08rem}.intro,.bio-intro,.post-nav{flex-direction:column;align-items:flex-start}.post-nav a:last-child{text-align:left}.tiles,.link-cards{grid-template-columns:minmax(0,1fr)}}
