:root{--ink:#17201d;--muted:#6d7772;--blue:#6f9eb5;--blue-dark:#345c70;--line:#e8ebe8;--paper:#fff;--soft:#f5f8f7;--serif:Georgia,'Times New Roman',serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}.site-header{height:86px;max-width:1200px;margin:auto;padding:0 34px;display:flex;align-items:center;justify-content:space-between}.wordmark{font-family:var(--serif);font-size:27px;font-weight:bold;letter-spacing:-1.5px}.wordmark span,.page-hero h1 span{color:var(--blue)}nav{display:flex;align-items:center;gap:38px;font-size:13px;color:#66716c}nav a:hover,nav a.active{color:var(--ink)}nav .nav-contact{color:var(--ink);border-bottom:1px solid var(--blue);padding-bottom:4px}.hero{min-height:620px;max-width:none;margin:0;padding:48px 0 78px max(5.5vw,34px);display:grid;grid-template-columns:48% 52%;align-items:center;gap:0;position:relative;overflow:hidden}.eyebrow,.section-kicker{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--blue-dark)}.hero h1,.page-hero h1{font-family:var(--sans);font-size:clamp(54px,6.2vw,78px);line-height:1.02;letter-spacing:-3.8px;margin:24px 0 20px;font-weight:700}.hero h1 span{color:var(--blue-dark)}.hero-subtitle{font-weight:700;font-size:17px;margin:0 0 5px}.hero-description{max-width:390px;color:var(--muted);font-size:15px}.hero-copy{padding:0 24px 0 0;position:relative;z-index:1}.hero-copy:after{content:'';display:block;width:42px;height:2px;background:var(--blue);margin-top:18px;position:absolute;top:100%;left:0}.hero-actions{display:flex;align-items:center;gap:27px;margin-top:30px}.button{display:inline-flex;align-items:center;gap:20px;padding:13px 19px;border-radius:4px;font-size:12px;font-weight:600}.button-primary{background:var(--blue-dark);color:white}.button-primary:hover{background:#24475a}.text-link,.arrow-link{font-size:12px;font-weight:600;border-bottom:1px solid #b8c9cf;padding-bottom:4px}.hero-visual{position:relative;align-self:stretch;min-height:470px;height:clamp(420px,43vw,590px);background:#e8f0f1;overflow:hidden;border-radius:52% 0 0 52%;margin-right:-3px}.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.image-caption{display:none}.scroll-cue{position:absolute;bottom:22px;left:calc(48% - 42px);width:38px;height:38px;border:1px solid #aeb9bb;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#52666a;font-size:19px;background:white;z-index:2}.section{max-width:1132px;margin:0 auto;padding:100px 34px}.intro{display:grid;grid-template-columns:1fr 2fr;gap:60px;border-top:1px solid var(--line)}h2{font-family:var(--serif);font-size:42px;line-height:1.12;font-weight:400;letter-spacing:-1.2px;margin:12px 0 20px}.intro>div:nth-child(2){max-width:700px}.lead{font-size:20px;line-height:1.5;color:#43514b}.intro p:not(.lead){color:var(--muted);max-width:650px}.arrow-link{display:inline-flex;gap:18px;margin-top:18px}.featured{border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.section-heading h2{margin-bottom:0}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.project-card{min-width:0}.project-art{height:190px;background:#e8eff0;display:flex;align-items:flex-start;padding:17px;color:#5d7e89;font-family:var(--serif);font-size:20px}.art-2{background:#e8ece4;color:#687b61}.art-3{background:#e9e7f0;color:#74708b}.project-type{font-size:9px;letter-spacing:1.5px;color:var(--blue-dark);font-weight:700;margin:20px 0 4px}.project-card h3{font-family:var(--serif);font-size:25px;font-weight:400;margin:0}.project-card>p:not(.project-type){font-size:13px;color:var(--muted)}.closing-cta{background:#294b4d;color:white;text-align:center;padding:90px 20px}.closing-cta .section-kicker{color:#b9d0ce}.closing-cta h2{font-size:52px}.button-light{background:#fff;color:#294b4d}.site-footer{max-width:1200px;margin:auto;padding:38px 34px;display:grid;grid-template-columns:1fr 2fr 2fr auto;gap:20px;align-items:center;color:var(--muted);font-size:11px}.site-footer p{margin:0}.site-footer div{display:flex;gap:20px}.site-footer small{white-space:nowrap}.page-hero{max-width:1132px;margin:auto;padding:85px 34px 55px}.page-hero.compact h1{font-size:clamp(54px,8vw,82px);margin:12px 0}.page-hero>p:not(.eyebrow){max-width:570px;color:var(--muted)}.projects-list{padding-top:20px}.project-row{display:grid;grid-template-columns:1fr 1.2fr;gap:55px;padding:35px 0;border-top:1px solid var(--line);align-items:center}.project-row .project-art{height:230px}.project-row h2{margin:5px 0 10px}.project-row p{color:var(--muted)}.tag-list,.skill-cloud{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.tag{display:inline-block;border:1px solid #dce4e4;background:transparent;color:#596c70;border-radius:20px;padding:5px 11px;font:inherit;font-size:10px;cursor:pointer}.tag:hover,.tag.active{background:#eaf1f2;border-color:#b7cbd0;color:#244b5b}.resume-content{padding-top:20px}.resume-block{display:grid;grid-template-columns:1fr 2fr;gap:55px;padding:35px 0;border-top:1px solid var(--line)}.resume-item{display:grid;grid-template-columns:1fr auto;gap:4px 20px;margin-bottom:25px}.resume-item h2{font-size:25px;margin:0}.resume-item p{grid-column:1/-1;margin:4px 0;color:var(--muted);font-size:14px}.resume-item span,.muted{font-size:12px;color:var(--muted)}.skill-cloud span{background:var(--soft);padding:8px 13px;font-size:12px}.blog-section{padding-top:20px}.blog-toolbar{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:20px 0;border-top:1px solid var(--line)}.tag-filter{display:flex;flex-wrap:wrap;gap:7px}.post-card{display:grid;grid-template-columns:140px 1fr 30px;gap:25px;padding:28px 0;border-top:1px solid var(--line);align-items:start}.post-date{font-size:11px;color:var(--muted);padding-top:7px}.post-card h2{font-size:28px;margin:0 0 8px}.post-card p{font-size:13px;color:var(--muted);margin:0}.post-card .tag-list{margin-top:12px}.read-link{font-size:20px;color:var(--blue-dark)}.empty-state{padding:30px;color:var(--muted)}[hidden]{display:none!important}.article{max-width:780px;margin:auto;padding:70px 28px 120px}.back-link{font-size:12px;color:var(--muted)}.article-header{padding:65px 0 45px;border-bottom:1px solid var(--line)}.article-header h1{font-family:var(--serif);font-size:clamp(42px,7vw,65px);line-height:1.1;font-weight:400;letter-spacing:-1.5px}.article-header .lead{color:var(--muted)}.prose{padding-top:35px;font-size:16px;line-height:1.8}.prose h2,.prose h3{font-family:var(--sans);font-size:25px;font-weight:600;letter-spacing:-.5px;margin-top:40px}.prose a{color:var(--blue-dark);text-decoration:underline}.prose pre{overflow-x:auto;background:#172522;color:#e8f1ed;padding:22px;border-radius:5px;font-size:13px;line-height:1.6}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f0f3f2;padding:2px 5px;border-radius:3px;font-size:.9em}.prose pre code{background:none;padding:0}.prose blockquote{border-left:3px solid var(--blue);margin-left:0;padding-left:20px;color:var(--muted)}@media(max-width:760px){.site-header{height:72px;padding:0 22px}nav{gap:15px;font-size:11px}.nav-contact{display:none}.hero{padding:45px 0 70px 22px;grid-template-columns:1fr;gap:25px}.hero-copy{padding-right:22px}.hero h1{font-size:clamp(52px,13vw,65px);letter-spacing:-3px}.hero-visual{margin-left:14%;height:300px;min-height:300px;border-radius:48% 0 0 48%}.hero-visual img{height:100%}.scroll-cue{left:22px;bottom:22px}.section{padding:70px 22px}.intro,.resume-block{grid-template-columns:1fr;gap:22px}.intro h2{font-size:36px}.project-grid{grid-template-columns:1fr}.project-art{height:210px}.section-heading{align-items:start;gap:20px;flex-direction:column}.site-footer{padding:30px 22px;grid-template-columns:1fr 1fr}.site-footer p{grid-column:1/-1;grid-row:2}.site-footer small{grid-column:1/-1}.page-hero{padding:60px 22px 35px}.project-row{grid-template-columns:1fr;gap:20px}.blog-toolbar{align-items:start;flex-direction:column}.post-card{grid-template-columns:1fr 25px;gap:8px 15px}.post-date{grid-column:1/-1}.post-card h2{font-size:24px}.closing-cta h2{font-size:42px}}@media(max-width:420px){nav{gap:10px}.wordmark{font-size:23px}.hero h1{font-size:54px}.hero-actions{gap:15px}.button{padding:12px}.site-footer{grid-template-columns:1fr}.site-footer p,.site-footer small{grid-column:auto}.site-footer div{flex-wrap:wrap}}
