:root{--paper:#f6f5f1;--text:#252722;--muted:#72756e;--rule:#d9d9d1;--accent:#50634f;--serif:Georgia,"Times New Roman",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--text);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}.wrap{width:min(960px,calc(100% - 48px));margin-inline:auto}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}.site-header{height:72px;border-bottom:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;font-size:13px}.site-name{font-weight:600;letter-spacing:-.02em}.site-header nav{display:flex;gap:27px;color:#55574f}.contact-link{color:var(--accent)}.contact-link span,.contact-actions span{font-size:12px}.intro{padding:104px 0 92px;max-width:960px}.kicker{font-size:10px;letter-spacing:.09em;font-weight:600;color:var(--muted);margin:0 0 17px}.intro h1{font:normal clamp(47px,7vw,72px)/1.05 var(--serif);letter-spacing:-.04em;margin:0 0 20px}.intro-copy{max-width:590px;font:20px/1.55 var(--serif);color:#54564f;margin:0 0 23px}.plain-link,.back-link{font-size:12px;color:var(--accent);border-bottom:1px solid #b6c0b2;padding-bottom:5px}.plain-link span{margin-left:6px}.content-section{border-top:1px solid var(--rule);padding:42px 0 49px;display:grid;grid-template-columns:260px 1fr;gap:30px}.section-title h2,.writing-heading h2,.contact-section h2{font:normal 31px/1.2 var(--serif);letter-spacing:-.025em;margin:0}.section-title .kicker{margin-bottom:9px}.section-content{max-width:550px}.placeholder-copy{font:18px/1.55 var(--serif);color:#55574f;margin:0 0 16px}.muted{color:#9b9d94!important;font-size:9px}.work-section{padding-top:38px}.writing-section{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:49px 0 52px}.writing-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:20px}.writing-heading .kicker{margin-bottom:9px}.writing-heading h2{font-size:32px}.writing-heading .plain-link{margin-bottom:5px}.post-list{border-top:1px solid var(--rule)}.post-card{display:grid;grid-template-columns:150px 1fr 20px;gap:20px;padding:19px 0;border-bottom:1px solid var(--rule);align-items:start}.post-date,.post-category{font-size:10px;color:var(--muted)}.post-category{letter-spacing:.06em}.post-card h3{font:normal 22px/1.3 var(--serif);margin:0 0 5px}.post-card p{font-size:12px;color:var(--muted);margin:0;line-height:1.6}.post-arrow{color:var(--accent)}.empty-posts{font:16px var(--serif);color:var(--muted)}.contact-section{padding:58px 0 62px}.contact-section h2{font-size:34px}.contact-section>p:not(.kicker){font:17px var(--serif);color:#5e6058}.contact-actions{display:flex;gap:24px;margin:22px 0}.contact-actions a{font-size:12px;color:var(--accent);border-bottom:1px solid #b6c0b2;padding-bottom:4px}.site-footer{border-top:1px solid var(--rule);padding:18px 0 26px;display:flex;gap:24px;color:var(--muted);font-size:10px}.site-footer a:last-child{margin-left:auto}.article-page{padding-top:38px}.back-link{border:0}.article-page article{max-width:700px;margin:58px auto 0}.article-header{margin-bottom:34px}.article-header .kicker{margin-bottom:16px}.article-header h1{font:normal clamp(40px,6vw,58px)/1.08 var(--serif);letter-spacing:-.035em;margin:0 0 16px}.article-summary{font:21px/1.5 var(--serif);color:#5c5e57;margin:0 0 16px}.byline{font-size:11px;color:var(--muted)}.article-content{font:18px/1.8 var(--serif)}.article-content h2{font:normal 30px/1.25 var(--serif);margin:42px 0 10px}.article-content p{margin:0 0 22px}.article-content ul{padding-left:23px}.article-content a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.article-content figure{margin:30px 0}.article-content img,.article-content video{display:block;width:100%;height:auto;max-height:650px;object-fit:contain;background:#e8e7e2}.article-content figcaption{font:11px/1.5 var(--sans);color:var(--muted);margin-top:8px}.article-tools{border-block:1px solid var(--rule);padding:16px 0;margin:42px 0;display:flex;gap:20px;align-items:center}.share-button{border:0;background:transparent;padding:0;color:var(--accent);font:12px var(--sans);cursor:pointer}.share-button:hover{text-decoration:underline}.copy-status{font-size:11px;color:var(--muted)}.article-comments{max-width:700px;margin:55px auto 80px}.article-comments h2{font:normal 30px var(--serif)}.article-comments form{display:grid;gap:8px;max-width:520px;margin-top:24px}.article-comments label{font-size:11px}.article-comments input,.article-comments textarea{background:transparent;border:1px solid var(--rule);padding:11px;font:14px var(--sans)}.solid-button{justify-self:start;background:var(--text);color:white;border:0;padding:11px 16px;font-size:12px;cursor:pointer}.form-status{font-size:11px;color:var(--muted)}.comment-item{border-top:1px solid var(--rule);padding:14px 0}.comment-item strong{font-size:12px}.comment-item time{font-size:10px;color:var(--muted);margin-left:12px}.comment-item p{font:16px/1.5 var(--serif);margin:6px 0 0}.media-placeholder{border:1px dashed #bcbdb5;background:#efeee8;min-height:210px;display:grid;place-content:center;text-align:center;color:var(--muted);padding:20px}.media-placeholder span{font-size:12px}.media-placeholder small{font-size:10px;margin-top:4px}
@media(max-width:650px){.wrap{width:calc(100% - 36px)}.site-header{height:64px;font-size:11px}.site-header nav{gap:13px}.intro{padding:78px 0 70px}.intro-copy{font-size:18px}.content-section{grid-template-columns:1fr;gap:20px;padding:31px 0}.section-title h2{font-size:27px}.writing-section{padding:37px 0}.writing-heading h2{font-size:27px}.post-card{grid-template-columns:1fr 18px;gap:5px 12px}.post-date{grid-column:1}.post-body{grid-column:1}.post-arrow{grid-column:2;grid-row:1/3}.post-card h3{font-size:20px}.site-footer{gap:14px;font-size:9px;flex-wrap:wrap}.article-page article{margin-top:42px}.article-content{font-size:17px}.article-comments{margin:45px auto 60px}}
.demo-tag{display:inline-block;margin-left:9px;border:1px solid var(--rule);padding:3px 6px;font:9px var(--sans);letter-spacing:.04em;color:var(--muted);vertical-align:1px}.project-list{border-top:1px solid var(--rule)}.project{padding:17px 0 20px;border-bottom:1px solid var(--rule)}.project .kicker{font-size:9px;margin-bottom:8px}.project h3{font:normal 21px/1.3 var(--serif);margin:0 0 7px}.project p:not(.kicker){font-size:12px;color:var(--muted);line-height:1.7;margin:0;max-width:500px}.project-list>.muted{margin-top:12px}.video-frame iframe{display:block;width:100%;aspect-ratio:16/9;border:0;background:#e8e7e2}
.comment-actions{display:flex;gap:12px;margin-top:8px}.comment-actions button{font:10px var(--sans);color:var(--accent);border:0;background:none;padding:0;cursor:pointer}.comment-actions button:hover{text-decoration:underline}
.post-card{grid-template-columns:150px 112px minmax(0,1fr) 20px;gap:18px;align-items:center}.post-thumb{display:block;aspect-ratio:16/10;overflow:hidden;background:#e8e7e2}.post-thumb img{display:block;width:100%;height:100%;object-fit:cover}.post-body h3 a:hover{text-decoration:underline;text-underline-offset:3px}.writing-links{display:flex;gap:20px}.writing-page{padding-top:44px;padding-bottom:60px}.writing-page .back-link{display:inline-block}.writing-page .writing-heading{margin-top:35px}.writing-page .writing-heading h1{font:normal 38px/1.15 var(--serif);letter-spacing:-.03em;margin:0}.pagination{display:flex;align-items:center;justify-content:center;gap:26px;padding:28px 0;color:var(--muted);font-size:12px}.pagination a{color:var(--accent)}.pagination a:hover{text-decoration:underline}
.post-tags,.article-tags{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 0;padding:0;list-style:none}.tag-chip,.article-tags li{display:inline-block;border:1px solid var(--rule);border-radius:2px;padding:2px 7px;color:var(--muted);font-size:9px;line-height:1.5}.article-tags{margin-top:18px}
.article-image{margin:32px 0}.article-image img{display:block;width:100%;height:auto;max-height:760px;object-fit:contain;background:#e8e7e2}.article-image figcaption{font:11px/1.5 var(--sans);color:var(--muted);margin-top:8px}
.career-list{border-top:1px solid var(--rule)}.career-item{padding:20px 0 23px;border-bottom:1px solid var(--rule)}.career-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.career-heading h3,.education-list h3{font:normal 21px/1.3 var(--serif);margin:0 0 3px}.career-heading time,.career-company,.education-list p{font-size:11px;color:var(--muted)}.career-heading time{white-space:nowrap}.career-company{margin:0 0 12px}.career-item>p,.career-item li{font-size:12px;line-height:1.7;color:#55574f}.career-item>p{margin:0 0 8px}.career-item ul{padding-left:19px;margin:8px 0 0}.skill-groups p{font-size:12px;line-height:1.7;color:#55574f;margin:0 0 17px}.skill-groups strong{color:var(--text);font-weight:600}.education-list{border-top:1px solid var(--rule)}.education-list article{padding:17px 0;border-bottom:1px solid var(--rule)}.education-list h3{font-size:18px}.education-list p{margin:4px 0 0}.education-list p span{margin-left:12px;white-space:nowrap}
@media(max-width:650px){.career-heading{align-items:flex-start;gap:8px}.career-heading h3{font-size:19px}.career-heading time{font-size:9px}.career-item{padding:17px 0 20px}.career-item>p,.career-item li,.skill-groups p{font-size:12px}.education-list h3{font-size:17px}}
@media(max-width:650px){.post-card{grid-template-columns:88px minmax(0,1fr) 18px;gap:7px 12px;align-items:start}.post-thumb{grid-column:1;grid-row:1/3;width:88px}.post-date{grid-column:2;grid-row:1}.post-body{grid-column:2;grid-row:2}.post-arrow{grid-column:3;grid-row:1/3}.post-card h3{font-size:18px}.post-card p{font-size:11px}.writing-links{gap:12px}.writing-page .writing-heading h1{font-size:30px}}
:root{--accent:#3f5c43;--muted:#62675e;--rule:#d8d9d1}.muted{color:#656a61!important}.site-header{min-height:72px;height:auto}.site-header a{min-height:44px;display:inline-flex;align-items:center}.intro-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);align-items:center;gap:48px}.intro-copy-block{max-width:570px}.hero-photo{margin:0;overflow:hidden;background:#e8e7e2}.hero-photo img{display:block;width:100%;aspect-ratio:5/6;object-fit:cover;object-position:center 43%;border-radius:2px}.hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:28px}.primary-link{display:inline-flex;min-height:46px;align-items:center;gap:10px;padding:10px 16px;background:var(--accent);color:#fff;font-size:12px}.primary-link:hover{background:#314b35;color:#fff;text-decoration:none}.primary-link span{font-size:15px}.hero-actions .plain-link{min-height:44px;display:inline-flex;align-items:center}.career-list{border-top:1px solid var(--rule)}.career-item{padding:15px 0 11px}.career-company{margin:0}.tag-chip{min-height:30px;align-items:center}.post-tags .tag-chip{display:inline-flex}.post-tags .tag-chip:hover{color:var(--accent);border-color:#879483;text-decoration:underline;text-underline-offset:2px}.article-tags a{color:var(--muted);text-decoration:none}.article-tags a:hover{color:var(--accent);text-decoration:underline}.pagination a{min-height:44px;display:inline-flex;align-items:center}.contact-actions a{min-height:44px;display:inline-flex;align-items:center}.article-comments input,.article-comments textarea,.solid-button{min-height:44px}.site-header nav a{padding-inline:4px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #315d38;outline-offset:3px;border-radius:2px}.plain-link:hover,.post-body h3 a:hover{text-decoration:underline;text-underline-offset:3px}::selection{background:#dce5d7;color:#20271f}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media(max-width:650px){.site-header{display:flex;flex-wrap:wrap;min-height:64px;padding:5px 0}.site-name{margin-right:auto}.site-header nav{order:3;width:100%;justify-content:space-between;gap:8px;border-top:1px solid var(--rule)}.site-header nav a{flex:1;justify-content:center}.site-header .contact-link{margin-left:12px}.intro-layout{grid-template-columns:1fr;gap:30px}.intro{padding:68px 0 55px}.intro h1{font-size:clamp(42px,12vw,58px)}.hero-photo{order:2}.hero-photo img{aspect-ratio:4/3}.hero-actions{gap:12px}.career-heading{align-items:flex-start}.article-comments form{width:100%}}@media(max-width:380px){.site-name{font-size:11px}.contact-link{font-size:11px}.intro h1{font-size:40px}}
.article-tags li{border:0;padding:0}.article-tags .tag-chip{display:inline-flex;min-height:32px;align-items:center}
.hero-photo{aspect-ratio:5/6}.hero-photo img{height:100%}@media(max-width:650px){.hero-photo{aspect-ratio:4/3}}
.sample-notice{display:flex;flex-direction:column;gap:3px;border-left:3px solid var(--accent);background:#eeeee7;padding:12px 15px;margin:20px 0;color:#50534c;font:12px/1.5 var(--sans)}.sample-notice strong{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}
.confirm-dialog{width:min(440px,calc(100% - 32px));padding:0;border:1px solid var(--rule);border-radius:8px;background:var(--paper);color:var(--text);box-shadow:0 24px 80px #17191430}.confirm-dialog::backdrop{background:#17191488;backdrop-filter:blur(2px)}.confirm-dialog-content{padding:28px}.confirm-dialog .kicker{margin:0 0 12px;color:var(--accent);font-size:10px;letter-spacing:.12em}.confirm-dialog h2{margin:0 0 8px;font:normal 27px/1.2 var(--serif)}.confirm-dialog-content>p:not(.kicker):not(.confirm-dialog-error){margin:0;color:var(--muted);font-size:13px}.delete-comment-preview{margin:18px 0 0;padding:12px 14px;border-left:2px solid var(--rule);background:#eeede7;color:#55574f;font:14px/1.5 var(--serif);max-height:120px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}.confirm-dialog-error{min-height:18px;margin:10px 0 0;color:#9b3c32;font-size:12px}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.confirm-dialog-actions button{min-height:42px;padding:0 15px;border-radius:3px;font:12px var(--sans);cursor:pointer}.dialog-cancel{border:1px solid var(--rule);background:transparent;color:var(--text)}.dialog-delete{border:1px solid #8f3c33;background:#8f3c33;color:#fff}.confirm-dialog-actions button:disabled{opacity:.55;cursor:wait}.confirm-dialog-actions button:focus-visible{outline:3px solid #788d70;outline-offset:3px}
