@font-face{font-family:Manrope;src:url('/assets/portfolio-v2/manrope-latin.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/assets/portfolio-v2/ibm-plex-mono-latin.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{color-scheme:light;--paper:#f5f6f3;--white:#fff;--ink:#202723;--secondary:#58615b;--quiet:#68736b;--rule:#d8dfd7;--accent:#365e49;--mint:#bdd4ae;--dark:#202a25;--mono:'IBM Plex Mono',Consolas,monospace;--sans:Manrope,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:32px}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.75 var(--sans);-webkit-font-smoothing:antialiased}
::selection{background:#cddfc3;color:var(--ink)}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}
a:hover{color:var(--accent)}
:focus-visible{outline:2px solid #66885b;outline-offset:5px}
button,input,textarea{font:inherit}
button{cursor:pointer}
h1,h2,h3,p,figure{margin:0}
svg{display:block;max-width:100%}
button,a,input,textarea{-webkit-tap-highlight-color:transparent}
.shell{width:min(1180px,calc(100% - 96px));margin-inline:auto}
.skip-link{position:absolute;left:20px;top:-80px;z-index:10;background:var(--ink);color:white;padding:12px 18px}
.skip-link:focus{top:12px;color:white}
.site-header{min-height:99px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--rule);gap:24px}
.identity{display:flex;align-items:center;gap:13px;text-decoration:none}
.monogram{width:39px;height:39px;display:grid;place-items:center;background:var(--ink);color:var(--paper);font:13px var(--mono);letter-spacing:-1px}
.identity-text{font-size:13px;font-weight:700;letter-spacing:-.3px}
.identity-text small{display:block;font:9px/1.8 var(--mono);color:var(--quiet);letter-spacing:0}
.navigation{display:flex;align-items:center;gap:29px}
.navigation a{font:11px/1.8 var(--mono);text-decoration:none;padding:9px 0;border-bottom:1px solid transparent}
.navigation a:hover{border-color:var(--accent)}
.navigation .contact-nav{padding:10px 15px;border:1px solid #aab6aa}
.navigation .contact-nav:hover{background:var(--ink);color:white;border-color:var(--ink)}
.intro{position:relative;display:grid;grid-template-columns:1.16fr 1fr;gap:65px;align-items:center;padding:72px 0 63px}
.eyebrow{display:flex;align-items:center;gap:10px;font:10px/1.7 var(--mono);text-transform:uppercase;letter-spacing:1px;color:var(--secondary)}
.eyebrow::before{content:'';width:6px;height:6px;background:var(--accent)}
h1{font-size:clamp(50px,5.4vw,77px);line-height:1.15;letter-spacing:-4.5px;font-weight:700;margin-top:24px;white-space:nowrap}
h1 span{color:#739269}
.intro-title{font-size:clamp(22px,2.4vw,31px);font-weight:500;line-height:1.4;letter-spacing:-1px;margin-top:14px}
.intro-description{max-width:505px;font-size:14px;line-height:1.95;color:var(--secondary);margin-top:23px}
.intro-links{display:flex;flex-wrap:wrap;align-items:center;gap:23px;margin-top:30px}
.intro-links a{font:11px var(--mono);text-decoration:none;padding-block:11px}
.intro-links a:hover{text-decoration:underline}
.intro-links .primary-link{display:inline-flex;align-items:center;gap:26px;background:var(--ink);color:white;padding:15px 19px;min-height:46px}
.intro-links .primary-link:hover{background:var(--accent);text-decoration:none}
.arrow{margin-left:5px}
.system-panel{background:var(--dark);color:#e0e7dc;border:1px solid #344139;position:relative;box-shadow:12px 12px 0 #e5e9e1}
.panel-bar{display:flex;justify-content:space-between;gap:15px;padding:16px 21px;border-bottom:1px solid #465448;font:9px/1.6 var(--mono);letter-spacing:.5px;color:#bfcdbe}
.panel-bar .square{display:inline-block;width:5px;height:5px;background:#bdd4ae;margin-right:8px;vertical-align:1px}
.expertise-panel{padding:24px 26px 9px}
.expertise-panel h2{font-size:21px;line-height:1.4;letter-spacing:-.6px;font-weight:500;color:#e5eddf;margin-bottom:17px}
.expertise-list{margin:0}
.expertise-row{display:flex;gap:17px;padding:15px 0;border-top:1px solid #465448}
.expertise-row>span{font:10px/1.8 var(--mono);color:#a8be98;padding-top:1px}
.expertise-row h3{font-size:13px;font-weight:500;line-height:1.7;color:#e0e9d9}
.expertise-row p{margin:3px 0 0;font-size:11px;line-height:1.7;color:#b6c4af}
@media(max-width:850px){.expertise-panel{padding:20px 18px 7px}.expertise-row{gap:12px;padding:13px 0}.expertise-row h3{font-size:12px}.expertise-row p{font-size:10px}}
@media(max-width:680px){.expertise-panel{padding:23px 22px 9px}.expertise-row{gap:16px;padding:15px 0}.expertise-row h3{font-size:13px}.expertise-row p{font-size:11px}}
.panel-footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid #465448;padding:14px 21px;font:9px/1.7 var(--mono);color:#bfcdbe}
.context-strip{display:grid;grid-template-columns:1fr 1fr 1fr;border:1px solid var(--rule);background:#eef1e9}
.context-item{padding:22px 27px;border-right:1px solid var(--rule)}
.context-item:last-child{border-right:0}
.micro{font:9px/1.8 var(--mono);letter-spacing:.9px;text-transform:uppercase;color:var(--quiet)}
.context-item strong{display:block;font-size:13px;font-weight:600;margin-top:7px}
.context-item .context-meta{display:block;font-size:11px;color:var(--secondary);margin-top:2px}
.section{padding:76px 0 0}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:30px}
.section-index{font:10px/1.8 var(--mono);letter-spacing:.5px;text-transform:uppercase;color:var(--accent);display:flex;gap:13px;align-items:center;margin-bottom:14px}
.section-index::after{content:'';height:1px;width:40px;background:#a9b9a0}
.section-index span{color:var(--quiet)}
.section-heading h2{font-size:32px;line-height:1.3;font-weight:600;letter-spacing:-1.5px}
.section-heading .section-subtitle{font-size:12px;max-width:315px;color:var(--secondary);line-height:1.8}
.text-link{font:11px/1.8 var(--mono);white-space:nowrap}
.featured-project{display:grid;grid-template-columns:1.05fr 1fr;border:1px solid var(--rule);background:var(--white)}
.project-diagram{background:#e8ece3;display:flex;flex-direction:column;min-height:340px;padding:27px 30px;position:relative;overflow:hidden;border-right:1px solid var(--rule)}
.diagram-caption{display:flex;justify-content:space-between;gap:20px;font:9px/1.8 var(--mono);color:#53684b;text-transform:uppercase;letter-spacing:.7px}
.pipeline{flex:1;display:flex;align-items:center;justify-content:center;gap:14px;position:relative;min-height:210px}
.source-files{display:flex;flex-direction:column;gap:11px}
.file{position:relative;width:64px;height:74px;border:1px solid #95a78a;background:#f5f7ef;padding:29px 10px 10px;font:11px var(--mono);color:#465b3f}
.file::before{content:'';position:absolute;top:12px;left:10px;width:21px;height:3px;background:#aab99f}
.file::after{content:'';position:absolute;top:19px;left:10px;width:32px;height:2px;background:#c4cebd}
.flow-arrow{color:#7b9070;font-family:var(--mono);font-size:20px}
.parser{display:grid;place-content:center;text-align:center;width:119px;height:119px;border:1px solid #778d6a;background:#d5e0c9;box-shadow:5px 5px 0 #bac8ae;font:11px/1.8 var(--mono);color:#30442a}
.parser small{font-size:8px;color:#4e6644;display:block;margin-top:7px}
.data-output{width:115px;background:#f5f7ef;border:1px solid #95a78a;padding:13px 10px;font:8px/1.8 var(--mono);color:#4d6146}
.data-output strong{font-size:9px;display:block;font-weight:400;padding-bottom:9px;border-bottom:1px solid #ced6c6;margin-bottom:8px}
.data-row{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #e2e7dd;padding:4px 0}
.data-row i{height:4px;width:25px;background:#b3c2a7;display:block;align-self:center}
.diagram-legend{display:flex;gap:20px;font:8px/1.8 var(--mono);color:#596d50;border-top:1px solid #bfccB4;padding-top:13px}
.project-content{padding:33px 36px;display:flex;flex-direction:column;justify-content:center}
.project-meta{font:9px/1.8 var(--mono);letter-spacing:.7px;text-transform:uppercase;color:var(--quiet)}
.project-content h3{font-size:30px;font-weight:600;letter-spacing:-1.3px;margin-top:11px;line-height:1.25}
.project-description{font-size:13px;line-height:1.9;color:var(--secondary);margin-top:17px}
.project-detail{font-size:12px;line-height:1.9;color:var(--secondary);margin-top:11px}
.project-stack{display:flex;flex-wrap:wrap;gap:7px 16px;border-top:1px solid var(--rule);padding-top:17px;margin-top:22px;font:9px/1.8 var(--mono);color:var(--accent)}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px;margin-top:20px}
.project-card{border:1px solid var(--rule);background:#fff;display:flex;flex-direction:column}
.mini-diagram{height:153px;background:#eef0ec;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--rule);padding:22px 26px;overflow:hidden}
.mini-diagram svg{width:100%;height:100%}
.mini-diagram text{font:9px var(--mono);fill:#63725e}
.mini-diagram .box{fill:#f9faf6;stroke:#a7b49e;stroke-width:1}
.mini-diagram .line{fill:none;stroke:#9caa94;stroke-width:1}
.mini-diagram .highlight{fill:#d9e3d0;stroke:#8ca37c;stroke-width:1}
.project-card .project-content{padding:24px 25px;justify-content:flex-start;flex:1}
.project-card h3{font-size:22px;letter-spacing:-.7px;margin-top:10px}
.project-card .project-description{font-size:12px;line-height:1.9;margin-top:12px}
.project-card .project-stack{font-size:9px;margin-top:auto;padding-top:17px;border:0;color:var(--quiet)}
.project-card .project-description + .project-stack{margin-top:20px}
.career-table{border-top:1px solid var(--ink)}
.role{display:grid;grid-template-columns:175px 1.05fr 1fr;gap:28px;border-bottom:1px solid var(--rule);padding:26px 0}
.role-date{font:10px/1.9 var(--mono);color:var(--quiet);padding-top:4px}
.role-date span{display:block}
.role h3{font-size:15px;line-height:1.6;font-weight:600;letter-spacing:-.4px}
.role-company{font-size:12px;color:var(--secondary);margin-top:4px}
.role-place{font:9px/1.7 var(--mono);color:var(--quiet);margin-top:7px}
.role-description{font-size:12px;line-height:1.9;color:var(--secondary)}
.education{display:flex;justify-content:space-between;gap:25px;padding:20px 0;font:10px/1.8 var(--mono);color:var(--quiet)}
.education strong{color:var(--secondary);font-weight:400}
.stack-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--rule);background:#fff}
.stack-group{padding:26px 24px;border-right:1px solid var(--rule)}
.stack-group:last-child{border:0}
.stack-symbol{height:28px;font:21px/1 var(--mono);color:#68825b}
.stack-group h3{font-size:13px;letter-spacing:-.2px;margin-top:19px;font-weight:600}
.stack-group p{font:10px/2.1 var(--mono);color:var(--secondary);margin-top:12px}
.stack-note{font-size:12px;color:var(--secondary);border-left:2px solid #9db78c;padding-left:15px;margin-top:24px;max-width:680px;line-height:1.9}
.contact-section{margin-top:77px;margin-bottom:0;background:var(--dark);color:#e8ede4;padding:46px;display:grid;grid-template-columns:1fr 1.08fr;gap:75px;border:1px solid #354238;position:relative}
.contact-section .section-index{color:#bfd1b1;margin-bottom:23px}
.contact-section .section-index span{color:#a6b4a1}
.contact-section h2{font-size:42px;line-height:1.25;letter-spacing:-1.8px;font-weight:500;max-width:330px}
.contact-copy{font-size:13px;line-height:1.9;color:#b7c3b1;margin-top:21px;max-width:315px}
.email-link{display:inline-block;font:12px/1.8 var(--mono);color:#e3edda;margin-top:25px;overflow-wrap:anywhere}
.email-link:hover{color:#fff}
.contact-socials{display:flex;gap:24px;margin-top:30px}
.contact-socials a{font:10px var(--mono);color:#c0ceba}
.contact-form{padding-top:4px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{margin-bottom:19px}
.field label{display:block;font:10px/1.8 var(--mono);color:#ced8c8;margin-bottom:8px}
.field input,.field textarea{width:100%;display:block;border:1px solid #63745d;background:#28352c;color:#f2f6ec;border-radius:0;padding:11px 12px;font-size:14px;min-width:0}
.field input{height:44px}
.field textarea{resize:vertical;min-height:125px}
.field input:hover,.field textarea:hover{border-color:#a0b693}
.contact-section :focus-visible{outline-color:#c9dfb8}
.form-footer{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}
.send-button{display:flex;align-items:center;gap:35px;background:#bfd4ae;border:1px solid #bfd4ae;color:#233020;font:11px/1.7 var(--mono);padding:12px 18px;min-height:45px}
.send-button:hover{background:#d3e5c5;border-color:#d3e5c5}
.send-button:disabled{cursor:wait;opacity:.65}
.form-status{font-size:12px;color:#d5e9c4;max-width:440px}
.form-status[data-state=error]{color:#ffb8a6}
.honeypot{display:none}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 0 33px}
.site-footer p{font:9px/1.8 var(--mono);color:var(--quiet)}
.footer-links{display:flex;gap:24px}
.footer-links a{font:10px/1.8 var(--mono);color:var(--secondary);text-decoration:none;padding-block:8px}
.footer-links a:hover{text-decoration:underline}
@media(min-width:1500px){.intro{padding-top:85px;padding-bottom:76px}}
@media(max-width:1100px){.shell{width:calc(100% - 64px)}.intro{gap:35px}.intro-links{gap:17px}h1{font-size:60px;letter-spacing:-3.5px}.system-panel{box-shadow:8px 8px 0 #e5e9e1}.project-diagram{padding:22px}.pipeline{gap:9px}.file{width:50px}.parser{width:100px;height:110px}.data-output{width:100px}.project-content{padding:27px}.role{grid-template-columns:140px 1fr 1fr;gap:22px}.contact-section{gap:45px;padding:36px}.stack-group{padding:23px 19px}}
@media(max-width:850px){.identity-text small{display:none}.navigation{gap:20px}.intro{gap:27px;grid-template-columns:1.1fr 1fr;padding-top:55px}h1{font-size:50px;letter-spacing:-3px}.intro-title{font-size:23px}.intro-description{font-size:13px}.intro-links{gap:16px}.intro-links .primary-link{gap:16px;padding:13px}.intro-links a{font-size:10px}.panel-bar,.panel-footer{padding:12px;font-size:8px}.context-item{padding:20px}.context-item strong{font-size:12px}.section-heading h2{font-size:28px}.section-heading .section-subtitle{max-width:250px}.featured-project{grid-template-columns:1fr 1fr}.project-diagram{padding:19px 14px}.pipeline{gap:5px}.parser{width:86px;height:100px;font-size:10px}.file{width:42px;font-size:9px;padding-left:7px}.file::before,.file::after{left:7px}.file::after{width:25px}.data-output{width:86px;padding:10px 7px}.flow-arrow{font-size:15px}.project-content{padding:24px}.project-content h3{font-size:26px}.project-grid{gap:14px}.project-card .project-content{padding:20px}.project-card h3{font-size:19px}.project-meta{font-size:8px}.mini-diagram{height:130px;padding:15px}.role{grid-template-columns:110px 1fr 1fr;gap:20px}.role h3{font-size:14px}.role-company,.role-description{font-size:11px}.stack-grid{grid-template-columns:1fr 1fr}.stack-group:nth-child(2){border-right:0}.stack-group:nth-child(-n+2){border-bottom:1px solid var(--rule)}.contact-section{gap:30px;padding:28px}.contact-section h2{font-size:35px}.form-row{gap:12px}.email-link{font-size:11px}}
@media(max-width:680px){.shell{width:calc(100% - 40px)}.site-header{min-height:82px;gap:15px}.identity-text{display:none}.monogram{width:34px;height:34px;font-size:11px}.navigation{gap:17px}.navigation a{font-size:10px}.navigation .contact-nav{padding:8px 11px}.navigation .stack-nav{display:none}.intro{grid-template-columns:1fr;gap:34px;padding:43px 0 32px}.eyebrow{font-size:9px;letter-spacing:.5px}h1{font-size:clamp(48px,10vw,65px);margin-top:20px;letter-spacing:-3px}.intro-title{font-size:24px;line-height:1.35;margin-top:12px}.intro-description{font-size:14px;line-height:1.85;margin-top:19px;max-width:100%}.intro-links{margin-top:24px;gap:23px}.intro-links a{font-size:10px}.intro-links .primary-link{padding:14px 17px;gap:23px}.system-panel{box-shadow:6px 6px 0 #e5e9e1}.panel-bar,.panel-footer{font-size:9px;padding:13px 17px}.context-strip{grid-template-columns:1fr 1fr}.context-item{padding:17px}.context-item:nth-child(2){border-right:0}.context-item:last-child{grid-column:1/-1;border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px 17px}.context-item:last-child strong{margin-top:0;font:10px var(--mono)}.context-item:last-child .context-meta{display:none}.context-item strong{font-size:11px;line-height:1.6}.context-meta{font-size:10px!important}.micro{font-size:8px}.section{padding-top:49px}.section-heading{gap:20px;align-items:flex-start;margin-bottom:23px;flex-wrap:wrap}.section-heading h2{font-size:28px;letter-spacing:-1px}.section-heading .section-subtitle{max-width:100%;font-size:12px}.section-index{font-size:9px;margin-bottom:11px}.text-link{font-size:10px}.featured-project{grid-template-columns:1fr}.project-diagram{min-height:290px;border-right:0;border-bottom:1px solid var(--rule);padding:22px}.pipeline{gap:12px;min-height:210px}.file{width:54px;height:69px;font-size:10px;padding-left:10px}.parser{width:102px;height:108px;font-size:11px}.data-output{width:98px;padding:12px 8px}.flow-arrow{font-size:18px}.diagram-caption,.diagram-legend{font-size:8px}.diagram-legend{gap:16px}.project-content{padding:25px}.project-content h3{font-size:28px}.project-meta{font-size:9px}.project-grid{grid-template-columns:1fr;gap:16px;margin-top:16px}.project-card{display:flex;flex-direction:column}.mini-diagram{height:135px;min-height:135px;border-bottom:1px solid var(--rule);border-right:0;padding:18px 32px}.mini-diagram svg{height:100%;width:100%}.project-card .project-content{padding:20px}.project-card h3{font-size:20px}.project-card .project-meta{font-size:8px}.project-card .project-description{font-size:12px;margin-top:10px}.project-card .project-stack{font-size:8px;padding-top:0;margin-top:15px}.role{grid-template-columns:86px minmax(0,1fr);gap:8px 18px;padding:23px 0}.role-date{font-size:9px;grid-row:1/3}.role-description{grid-column:2;font-size:12px}.role h3{font-size:14px}.role-company{font-size:12px}.role-place{font-size:9px;margin-top:5px}.education{flex-direction:column;gap:7px;font-size:9px}.stack-group{padding:23px 20px}.stack-group h3{font-size:12px}.stack-group p{font-size:9px}.stack-note{font-size:12px}.contact-section{margin-top:50px;padding:27px 23px;grid-template-columns:1fr;gap:34px}.contact-section h2{font-size:35px;max-width:100%}.contact-copy{max-width:100%;margin-top:15px}.email-link{margin-top:20px;font-size:12px}.contact-socials{margin-top:22px}.contact-form{border-top:1px solid #4b5c45;padding-top:25px}.field label{font-size:9px}.site-footer{padding:24px 0;gap:10px}.site-footer p{font-size:8px}.footer-links{gap:17px}.footer-links a{font-size:9px}}
@media(max-width:380px){.shell{width:calc(100% - 32px)}.navigation{gap:13px}.intro-links{gap:17px}.panel-bar{font-size:8px}.panel-footer{font-size:8px}.project-diagram{padding:17px}.pipeline{gap:8px}.parser{width:90px}.data-output{width:85px}.file{width:48px}.project-card .project-content{padding:17px}.project-card h3{font-size:18px}.role{grid-template-columns:77px minmax(0,1fr);gap:8px 15px}.contact-section{padding:24px 19px}.form-row{grid-template-columns:1fr;gap:0}.email-link{font-size:11px}.footer-links{gap:12px}}
@media print{body{background:#fff;font-size:11pt}.shell{width:100%}.navigation,.contact-form,.skip-link,.system-panel,.project-diagram,.mini-diagram{display:none}.intro{padding:30px 0;display:block}.context-strip{margin-top:10px}.section{padding-top:30px}.project-card,.featured-project{display:block}.project-content{padding:15px}.project-card,.role,.stack-group{break-inside:avoid}.contact-section{background:#fff;color:var(--ink);padding:20px;margin-top:30px;display:block}.contact-section h2,.contact-section a,.contact-copy{color:var(--ink)}a{text-decoration:none}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.navigation a[aria-current="page"]{color:var(--accent);border-bottom-color:var(--accent)}
[hidden]{display:none!important}
.page-main{min-height:65vh}
.page-hero{display:grid;grid-template-columns:1fr 280px;align-items:end;gap:70px;padding:65px 0 49px;border-bottom:1px solid var(--rule)}
.page-title{font-size:clamp(44px,5vw,68px);font-weight:600;line-height:1.13;letter-spacing:-3px;white-space:normal;margin-top:20px}
.page-intro{max-width:650px;font-size:15px;line-height:1.9;color:var(--secondary);margin-top:24px}
.archive-note{border-left:1px solid #b9c6b2;padding:5px 0 5px 24px}
.archive-note strong{display:block;font-size:18px;letter-spacing:-.5px;font-weight:500;margin-top:11px}
.archive-note p{font-size:12px;line-height:1.8;color:var(--secondary);margin-top:11px}
.project-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px 0}
.project-filters{display:flex;gap:8px;flex-wrap:wrap}
.filter-button{font:10px/1.8 var(--mono);color:var(--secondary);border:1px solid var(--rule);padding:9px 13px;background:transparent;min-height:40px}
.filter-button:hover{border-color:#90a185;color:var(--ink)}
.filter-button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:white}
.project-count{font:10px/1.8 var(--mono);color:var(--quiet);white-space:nowrap}
.archive-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding-bottom:50px}
.archive-project{background:#fff;border:1px solid var(--rule);display:flex;flex-direction:column;scroll-margin-top:28px}
.archive-project-top{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--rule);background:#eaf0e4;padding:17px 26px;font:9px/1.8 var(--mono);text-transform:uppercase;letter-spacing:.5px;color:#506448}
.archive-project-top .archive-number{font-size:17px;letter-spacing:-1px;color:#829576}
.archive-project-body{padding:27px 29px 30px;display:flex;flex-direction:column;flex:1}
.archive-context{font:9px/1.9 var(--mono);color:var(--quiet)}
.archive-project h2{font-size:25px;line-height:1.4;font-weight:600;letter-spacing:-.9px;margin-top:10px}
.archive-summary{color:var(--secondary);font-size:13px;line-height:1.9;margin-top:16px}
.project-details{margin-top:20px;border-top:1px solid var(--rule);padding-top:15px}
.project-details summary{font:10px/1.8 var(--mono);color:var(--accent);cursor:pointer;padding-block:4px}
.project-details ul{padding-left:18px;margin:13px 0 0;font-size:12px;color:var(--secondary);line-height:1.9}
.project-details li+li{margin-top:7px}
.archive-tags{display:flex;flex-wrap:wrap;gap:6px 17px;font:9px/1.9 var(--mono);color:var(--quiet);padding-top:23px;margin-top:auto}
.page-callout{background:var(--dark);color:#e3ebdd;display:flex;justify-content:space-between;align-items:center;gap:30px;padding:32px 36px;margin-bottom:12px}
.page-callout h2{font-size:24px;line-height:1.4;font-weight:500;letter-spacing:-.7px}
.page-callout p{font-size:12px;color:#bdcbb7;margin-top:7px}
.page-callout a{font:11px/1.8 var(--mono);white-space:nowrap;color:#d8e7cc;padding:12px 0}
.blog-feature{display:grid;grid-template-columns:.85fr 1.35fr;margin:38px 0 55px;border:1px solid var(--rule);background:#fff}
.writing-cover{background:var(--dark);color:#dfe9d8;padding:31px;display:flex;flex-direction:column;justify-content:space-between;min-height:390px}
.writing-cover .micro{color:#b2c6a4}
.writing-cover-letters{font-size:63px;line-height:1.15;letter-spacing:-3px;font-weight:500;padding-block:25px}
.writing-cover-letters span{display:block;color:#adc899;font:35px/1.4 var(--mono);margin-block:5px}
.writing-cover .writing-cover-foot{font:9px/1.8 var(--mono);color:#b9cdb0;border-top:1px solid #576b4e;padding-top:16px;margin:0}
.blog-feature-body{padding:40px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.article-meta{display:flex;flex-wrap:wrap;gap:9px 20px;font:10px/1.9 var(--mono);color:var(--quiet)}
.blog-feature h2{font-size:31px;font-weight:600;line-height:1.4;letter-spacing:-1.1px;margin-top:19px}
.blog-feature h2 a{text-decoration:none}
.blog-feature h2 a:hover{text-decoration:underline;text-decoration-thickness:1px}
.blog-feature p{font-size:14px;line-height:1.9;color:var(--secondary);margin-top:18px}
.blog-feature .text-link{margin-top:26px}
.blog-about{display:grid;grid-template-columns:1fr 2fr;gap:40px;border-top:1px solid var(--rule);padding:31px 0 48px}
.blog-about h2{font-size:19px;font-weight:500;letter-spacing:-.5px}
.blog-about p{font-size:14px;color:var(--secondary);line-height:1.9;max-width:610px}
.breadcrumb{padding-top:33px;font:10px/1.8 var(--mono);color:var(--quiet)}
.article-header{max-width:930px;padding:30px 0 42px}
.article-header h1{font-size:clamp(35px,4.2vw,57px);line-height:1.2;letter-spacing:-2.3px;white-space:normal;margin:19px 0 25px;font-weight:600}
.article-layout{display:grid;grid-template-columns:225px minmax(0,710px);gap:66px;border-top:1px solid var(--rule);padding:42px 0 60px;align-items:start}
.article-toc{position:sticky;top:25px}
.article-toc h2{font:10px/1.8 var(--mono);text-transform:uppercase;letter-spacing:.7px;color:var(--quiet);margin-bottom:16px}
.article-toc ol{list-style:none;padding:0;margin:0;border-left:1px solid #b7c5ad}
.article-toc li{padding:0 0 13px 17px}
.article-toc a{font-size:11px;line-height:1.7;color:var(--secondary);text-decoration:none}
.article-toc a:hover{text-decoration:underline;color:var(--accent)}
.prose{font-size:16px;line-height:1.95;color:#414b43;min-width:0}
.prose>p:first-of-type{font-size:18px;line-height:1.9;color:var(--ink)}
.prose p{margin-bottom:23px}
.prose h2{font-size:27px;line-height:1.4;font-weight:600;color:var(--ink);letter-spacing:-.8px;margin:43px 0 18px;scroll-margin-top:25px}
.prose h3{font-size:19px;font-weight:600;line-height:1.6;color:var(--ink);letter-spacing:-.4px;margin:29px 0 14px}
.prose ul,.prose ol{padding-left:24px;margin:0 0 24px}
.prose li{margin:9px 0;padding-left:3px}
.prose strong{font-weight:700;color:var(--ink)}
.prose a{color:var(--accent);overflow-wrap:anywhere}
.prose code{background:#e5ecdf;color:#38502f;font:13px/1.7 var(--mono);padding:3px 6px;overflow-wrap:anywhere}
.prose blockquote{border-left:3px solid #89a875;background:#eaf0e4;margin:28px 0;padding:21px 25px;font-size:17px;line-height:1.9;color:#3b5133}
.article-bottom{border-top:1px solid var(--rule);padding-top:28px;margin-top:37px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.pages-footer{border-top:1px solid var(--rule);flex-wrap:wrap}
@media(max-width:1000px){.page-hero{gap:40px;grid-template-columns:1fr 230px}.page-title{font-size:54px}.article-layout{grid-template-columns:180px minmax(0,1fr);gap:40px}.blog-feature-body{padding:30px}.blog-feature h2{font-size:27px}.writing-cover{padding:25px}.writing-cover-letters{font-size:55px}}
@media(max-width:850px){.page-hero{padding-top:49px;grid-template-columns:1fr}.archive-note{max-width:590px}.page-title{font-size:49px}.archive-grid{gap:17px}.archive-project-body{padding:23px}.archive-project-top{padding:15px 23px}.archive-project h2{font-size:23px}.project-toolbar{align-items:flex-start}.project-filters{gap:7px}.filter-button{font-size:9px;padding:9px 11px}.blog-feature{grid-template-columns:.75fr 1.25fr}.blog-feature-body{padding:25px}.blog-feature h2{font-size:25px}.writing-cover-letters{font-size:48px}.article-layout{display:block}.article-toc{position:static;margin-bottom:35px;border-bottom:1px solid var(--rule);padding-bottom:14px}.article-toc ol{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.article-header{max-width:760px}.prose{max-width:710px}.article-header h1{font-size:46px}.page-callout{padding:28px}}
@media(max-width:680px){.page-hero{padding:39px 0 30px;gap:25px}.page-title{font-size:45px;letter-spacing:-2px;margin-top:17px}.page-intro{font-size:14px;margin-top:19px}.archive-note{padding-left:18px}.archive-note strong{font-size:16px;margin-top:6px}.archive-note p{font-size:12px;margin-top:6px}.project-toolbar{display:block;padding:22px 0}.project-count{margin-top:14px}.archive-grid{grid-template-columns:1fr;gap:17px;padding-bottom:32px}.archive-project h2{font-size:25px}.archive-project-body{padding:24px}.archive-project-top{padding:14px 24px}.archive-summary{font-size:13px}.project-details summary{font-size:10px}.page-callout{display:block;padding:25px}.page-callout h2{font-size:23px}.page-callout a{display:inline-block;margin-top:13px}.blog-feature{grid-template-columns:1fr;margin:27px 0 32px}.writing-cover{min-height:220px;padding:24px}.writing-cover-letters{font-size:45px;display:flex;align-items:center;gap:22px;letter-spacing:-2px;padding:24px 0}.writing-cover-letters span{display:inline;font-size:30px;margin:0}.blog-feature-body{padding:27px 24px}.blog-feature h2{font-size:27px;line-height:1.4}.blog-feature p{font-size:14px}.blog-about{grid-template-columns:1fr;gap:15px;padding:28px 0 35px}.article-header{padding:25px 0 30px}.article-header h1{font-size:36px;letter-spacing:-1.5px;line-height:1.3}.breadcrumb{padding-top:26px}.article-meta{font-size:9px;gap:8px 14px}.article-layout{padding:28px 0 40px}.article-toc ol{gap:0 17px}.article-toc a{font-size:10px}.article-toc li{padding-left:12px}.prose{font-size:15px;line-height:1.95}.prose>p:first-of-type{font-size:16px}.prose h2{font-size:24px;margin-top:34px}.prose h3{font-size:18px}.prose blockquote{font-size:16px;padding:18px 20px}.pages-footer .footer-links{gap:16px}.pages-footer{gap:13px}}
@media print{.project-toolbar,.article-toc,.page-callout,.writing-cover{display:none}.page-hero,.article-layout,.blog-feature{display:block}.archive-grid{display:block}.archive-project{break-inside:avoid;margin-bottom:20px}.project-details:not([open])>*:not(summary){display:block}.article-header h1{font-size:30pt}.prose{font-size:11pt}.blog-feature-body{padding:15px}.page-title{font-size:36pt}}

.utility-panel{max-width:760px;margin:35px auto 45px;padding:30px;background:#fff;border:1px solid var(--rule)}
.utility-panel p{font-size:14px;line-height:1.9;color:var(--secondary);margin-bottom:18px}
.utility-panel label{display:block;font-size:13px;margin-bottom:9px}
.utility-panel input[type=text]{width:100%;padding:12px;border:1px solid #adbaa4;font:14px var(--mono);margin-bottom:19px}
.utility-panel button{background:var(--ink);color:#fff;border:1px solid var(--ink);padding:12px 18px;font:11px var(--mono);min-height:44px}
.utility-note{font-size:12px!important;border-left:2px solid #94ad82;padding-left:14px;margin-top:24px}
.utility-result{font:13px/1.9 var(--mono);overflow-wrap:anywhere;padding:18px;background:#eef2e9;margin:14px 0 22px}
.utility-heading{font-size:30px;letter-spacing:-1px;white-space:normal;margin:0 0 20px}
.utility-calculator #container{max-width:760px;margin:35px auto 45px;padding:0}
.utility-calculator #form-wrapper,.utility-calculator .loan-details,.utility-calculator .inflation-details{border:1px solid var(--rule);border-radius:0;box-shadow:none}
.utility-calculator h2{letter-spacing:-.6px}
.utility-calculator table{font-size:14px}
.utility-calculator .loan-details{overflow-x:auto}
.utility-calculator input[type=submit]{background:var(--ink);border-radius:0}
@media(max-width:680px){.utility-panel{padding:23px}.utility-calculator table{font-size:12px}.utility-calculator #form-wrapper{padding:20px 14px}}
