@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_6a0e6105-module__QVq-Ba__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_6a0e6105-module__QVq-Ba__variable{--font-geist:"Geist", "Geist Fallback"}
:root{--paper:#f7f6f2;--surface:#fff;--ink:#1b2327;--muted:#58646a;--accent:#2c5a71;--accent-dark:#21475a;--line:#dde0dc;--soft:#eef1ee;--font:var(--font-geist), ui-sans-serif, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--blue:var(--accent)}*{box-sizing:border-box}html{scroll-padding-top:96px}body{background:var(--paper);color:var(--ink);font:16px/1.65 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2,h3,p,figure{margin:0}h1,h2,h3{text-wrap:balance;font-weight:600;line-height:1.25}h1{letter-spacing:-.03em;font-size:clamp(32px,4.4vw,44px)}h2{letter-spacing:-.02em;font-size:24px}h3{letter-spacing:-.01em;font-size:17px}p{color:var(--muted);text-wrap:pretty}a{color:var(--accent);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}a:hover{color:var(--ink)}button,input,textarea,select{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}img{max-width:100%;height:auto;display:block}.wrap{width:calc(100% - 64px);max-width:1080px;margin:auto}.siteHeader{z-index:10;background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.headerInner{justify-content:space-between;align-items:center;gap:24px;min-height:72px;display:flex}.wordmark{color:var(--ink);letter-spacing:-.01em;font-size:17px;font-weight:600;text-decoration:none}.siteHeader nav{gap:28px;font-size:15px;display:flex}.siteHeader nav a{color:var(--muted);text-decoration:none}.siteHeader nav a:hover{color:var(--ink)}.siteHeader nav a,.contactLinks a{align-items:center;min-height:44px;display:inline-flex}.hero{padding:clamp(64px,11vw,124px) 0 clamp(56px,8vw,96px)}.eyebrow{color:var(--muted);font-size:15px}.hero h1{letter-spacing:-.04em;max-width:17ch;margin-top:22px;font-size:clamp(38px,6vw,64px);line-height:1.06}.hero .lead{max-width:620px;margin-top:26px;font-size:clamp(17px,1.7vw,20px);line-height:1.6}.introActions{flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:34px;display:flex}.introActions .textLink{padding:10px 0}.button{background:var(--surface);min-height:44px;color:var(--ink);white-space:nowrap;border:1px solid #bcc6c9;border-radius:6px;justify-content:center;align-items:center;padding:10px 18px;font-size:15px;font-weight:500;line-height:1.4;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.button:hover{color:var(--ink);border-color:var(--ink)}.button.primary,.buttonSignal{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover,.buttonSignal:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}.button:disabled{opacity:.55;cursor:wait}.textLink{font-size:15px;display:inline-block}.section{border-top:1px solid var(--line);grid-template-columns:200px minmax(0,1fr);gap:48px;padding:56px 0;display:grid}.section>h2{letter-spacing:0;font-size:16px;line-height:1.6}.sectionBody{min-width:0}.serviceGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 40px;margin:0;padding:0;list-style:none;display:grid}.serviceGrid li{border-top:1px solid var(--line);padding-top:18px}.serviceGrid h3{margin-bottom:8px}.serviceGrid p{font-size:15.5px}.tools{margin-top:40px}.tools h3{margin-bottom:12px;font-size:15px}.tools ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tools li{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 12px;font-size:14px}.experienceList{margin:0;padding:0;list-style:none}.experienceList li{border-top:1px solid var(--line);grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:4px 40px;padding:22px 0;display:grid}.experienceList li:first-child{border-top:0;padding-top:0}.experienceList li:last-child{padding-bottom:0}.experienceList .role{margin-top:2px;font-size:14.5px}.experienceList li>p{font-size:15.5px}.projectCard{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:28px 30px}.projectCard h3{margin-bottom:10px;font-size:20px}.projectCard p{max-width:640px}.projectGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.projectCard{flex-direction:column;display:flex}.projectLinks{flex-wrap:wrap;gap:8px 24px;margin-top:auto;padding-top:16px;display:flex}.contactPanel>p{max-width:600px;color:var(--ink);font-size:clamp(18px,1.8vw,21px);line-height:1.55}.contactLinks{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.contactLinks a{overflow-wrap:anywhere;white-space:normal}.footer{border-top:1px solid var(--line);margin-top:24px}.footer>.wrap{padding-top:36px}.directory h2{letter-spacing:0;margin-bottom:16px;font-size:15px}.directory ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0 0 32px;padding:0;list-style:none;display:grid}.directory li{min-width:0}.directory a{font-size:15px}.directory span{color:var(--muted);margin-top:3px;font-size:14px;display:block}.footerBottom{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:20px 0 28px;font-size:14px;display:flex}.skipLink{background:var(--ink);color:#fff;z-index:20;padding:10px;position:absolute;top:-90px;left:15px}.skipLink:focus{color:#fff;top:10px}.metadata{color:var(--muted);font-size:14px}.blogPage{min-height:58vh;padding-top:64px;padding-bottom:80px}.blogPage h1{letter-spacing:-.035em;font-size:clamp(34px,4.6vw,48px)}.blogIntro{max-width:620px;margin:16px 0 28px;font-size:18px}.emptyBlog{border-top:1px solid var(--line);margin-top:32px;padding:28px 0}.postList{max-width:780px;margin-top:32px}.postList article{border-top:1px solid var(--line);padding:28px 0}.postList h2{margin:10px 0}.postList h2 a{color:var(--ink);text-decoration:none}.postList h2 a:hover{text-decoration:underline}.postList time{color:var(--muted);margin-top:12px;font-size:14px;display:block}.article{max-width:760px;padding-top:56px;padding-bottom:72px}.article h1{overflow-wrap:anywhere;margin-top:14px;font-size:clamp(32px,4.4vw,46px);line-height:1.12}.articleSummary{margin-top:18px;font-size:19px}.articleMeta{margin:18px 0 32px;font-size:14px}.article figure{margin:28px 0}.article img{border-radius:8px;width:100%}.prose{overflow-wrap:anywhere;color:var(--ink);font-size:17px;line-height:1.75}.prose p{color:var(--ink);margin:20px 0}.prose h2{margin:40px 0 16px}.prose h3{margin:28px 0 14px}.prose ul,.prose ol{padding-left:24px}.prose li+li{margin-top:6px}.prose pre{background:var(--soft);border-radius:8px;padding:18px;overflow:auto}.prose code{white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px}.prose blockquote{border-left:2px solid var(--accent);margin:24px 0;padding-left:20px}.prose table{border-collapse:collapse;display:block;overflow:auto}.prose th,.prose td{border:1px solid var(--line);padding:8px 10px}.prose figcaption{color:var(--muted);margin-top:8px;font-size:14px}.ownerShell{min-height:100vh}.ownerLogin{width:calc(100% - 40px);max-width:420px;margin:auto;padding:10vh 0}.ownerLogin>.metadata{margin-top:32px}.ownerLogin h1{margin:12px 0 25px;font-size:30px}.ownerLogin form{flex-direction:column;gap:14px;display:flex}.ownerLogin input{background:#fff;border:1px solid #b8c3c7;border-radius:4px;padding:10px}.ownerLogin>.textLink{margin-top:24px}.ownerInbox,.ownerEditor{width:calc(100% - 64px);max-width:1160px;margin:auto;padding:36px 0 60px}.ownerInbox>header,.ownerEditor>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;margin-bottom:25px;padding-bottom:25px;display:flex}.ownerInbox h1,.ownerEditor h1{margin-top:10px;font-size:30px}.ownerInbox nav{flex-wrap:wrap;align-items:center;gap:20px;font-size:14px;display:flex}.ownerInbox nav form{margin:0}.textButton,button.textLink{color:var(--blue);text-underline-offset:4px;background:0 0;border:0;padding:0;font-size:14px;text-decoration:underline}.ownerEmpty{padding:30px 0}.ownerEmpty p{margin:14px 0 22px}.ownerPostRow{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 110px auto;align-items:center;gap:22px;padding:22px 0;display:grid}.ownerPostRow small{color:var(--muted);font-size:14px;display:block}.ownerPostRow time{font-size:14px}.smallTag{color:var(--muted);font-size:14px}.postEditorActions{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;display:flex}.postEditorGrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;display:grid}.postFields fieldset{border:1px solid var(--line);border-radius:4px;min-width:0;margin:0 0 24px;padding:20px}.postFields legend{padding:0 8px;font-size:18px;font-weight:600}.postFields label{flex-direction:column;gap:8px;margin-bottom:18px;font-size:14px;display:flex}.postFields label:last-child{margin-bottom:0}.postFields small{color:var(--muted);font-size:13px}.postFields input,.postFields textarea,.postFields select{width:100%;min-width:0;color:var(--ink);font:15px/1.6 var(--font);background:#fff;border:1px solid #b8c3c7;border-radius:4px;padding:10px}.postFields textarea{resize:vertical}.ownerFormGrid{grid-template-columns:1fr 1fr;gap:0 18px;display:grid}.ownerInlineActions{flex-wrap:wrap;gap:12px;margin-bottom:18px;display:flex}.postPreview{border:1px solid var(--line);border-radius:4px;align-self:start;min-width:0;max-height:calc(100vh - 40px);padding:22px;position:sticky;top:20px;overflow:auto}.postPreview>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px;padding-bottom:18px;display:flex}.postPreview>header h2{font-size:18px}.postPreviewTitle{overflow-wrap:anywhere;margin:12px 0;font-size:26px}.postPreviewSummary{margin-bottom:22px}.postPreview figure{margin:20px 0}.ownerMessage{background:var(--soft);color:var(--ink);margin-bottom:22px;padding:12px 16px}.dangerButton{color:#923737}.ownerPreviewBar{border-bottom:1px solid var(--line);justify-content:space-between;gap:20px;padding:16px 24px;font-size:14px;display:flex}@media (max-width:760px){.wrap{width:calc(100% - 40px)}.headerInner{gap:16px;min-height:64px}.siteHeader nav{gap:18px;font-size:14px}.section{grid-template-columns:1fr;gap:20px;padding:44px 0}.serviceGrid{grid-template-columns:1fr;gap:28px}.experienceList li{grid-template-columns:1fr}.experienceList li>p{margin-top:6px}.projectGrid{grid-template-columns:1fr}.projectCard{padding:22px}.directory ul{grid-template-columns:1fr;gap:16px}.blogPage{padding-top:40px}.ownerInbox,.ownerEditor{width:calc(100% - 32px);padding-top:24px}.ownerInbox>header,.ownerEditor>header{flex-direction:column;align-items:flex-start}.postEditorGrid,.ownerFormGrid{grid-template-columns:1fr}.postPreview{max-height:none;position:static}.ownerPostRow{grid-template-columns:1fr auto;gap:14px}.ownerPostRow time{grid-column:1}}@media (max-width:380px){.wordmark{font-size:16px}.siteHeader nav{gap:14px}}
