:root{--paper:#f8f7f3;--ink:#252e32;--muted:#5e686d;--blue:#355e73;--line:#d9ddda;--soft:#edf0ed;--font:Arial, Helvetica, sans-serif}*{box-sizing:border-box}html{scroll-padding-top:24px}body{background:var(--paper);color:var(--ink);font:16px/1.65 var(--font);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:600;line-height:1.3}h1{letter-spacing:-.025em;font-size:clamp(30px,4vw,40px)}h2{letter-spacing:-.015em;font-size:23px}h3{font-size:17px}p{color:var(--muted)}a{color:var(--blue);text-underline-offset:4px;text-decoration:underline}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(--blue);outline-offset:4px}img{max-width:100%;height:auto;display:block}.wrap{width:calc(100% - 64px);max-width:920px;margin:auto}.siteHeader{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;min-height:88px;display:flex}.wordmark{color:var(--ink);font-size:18px;font-weight:600;text-decoration:none}.siteHeader nav{gap:26px;font-size:14px;display:flex}.siteHeader nav a{color:var(--ink);text-decoration:none}.siteHeader nav a:hover{text-decoration:underline}.intro{max-width:760px;padding:54px 0 40px}.intro>p{max-width:700px;margin-top:20px}.intro .location{margin-top:12px;font-size:14px}.introActions{flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:24px;display:flex}.button{color:var(--blue);white-space:nowrap;background:0 0;border:1px solid #b8c3c7;border-radius:4px;justify-content:center;align-items:center;padding:10px 17px;font-size:14px;line-height:1.5;text-decoration:none;display:inline-flex}.button:hover{background:var(--soft)}.button.primary,.buttonSignal{background:var(--blue);border-color:var(--blue);color:#fff}.button.primary:hover,.buttonSignal:hover{background:#294b5d}.button:disabled{opacity:.55;cursor:wait}.section{border-top:1px solid var(--line);padding:32px 0}.section>h2{margin-bottom:18px}.section>p{max-width:760px}.expertiseList{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:0;padding:0;list-style:none;display:grid}.expertiseList h3{margin-bottom:8px;font-size:16px}.expertiseList p{font-size:15px}.experienceList article+article{margin-top:24px}.experienceList .role{color:var(--ink);margin:2px 0 5px;font-size:14px}.experienceList article>p:last-child{max-width:790px;font-size:15px}.projectStatus{margin-top:8px;font-size:14px}.textLink{font-size:14px;display:inline-block}.section>.textLink{margin-top:12px}.contactLinks{flex-wrap:wrap;gap:12px 24px;margin-top:15px;display:flex}.contactLinks a{overflow-wrap:anywhere}.footer{border-top:1px solid var(--line);padding-top:26px}.directory h2{margin-bottom:16px;font-size:17px}.directory ul{grid-template-columns:1fr 1fr 1.2fr;gap:20px;margin:0 0 27px;padding:0;list-style:none;display:grid}.directory li{min-width:0}.directory a{font-size:14px}.directory span{color:var(--muted);margin-top:3px;font-size:13px;display:block}.footerBottom{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:20px 0 26px;font-size:13px;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:48px;padding-bottom:64px}.blogIntro{margin:16px 0 26px}.emptyBlog{border-top:1px solid var(--line);margin-top:30px;padding:25px 0}.postList{margin-top:32px}.postList article{border-top:1px solid var(--line);padding:25px 0}.postList h2{margin:10px 0}.postList time{color:var(--muted);margin-top:12px;font-size:14px;display:block}.article{max-width:780px;padding-top:45px;padding-bottom:60px}.article h1{overflow-wrap:anywhere;margin-top:14px}.articleSummary{margin-top:18px;font-size:18px}.articleMeta{margin:18px 0 28px;font-size:14px}.article figure{margin:25px 0}.article img{width:100%}.prose{overflow-wrap:anywhere}.prose p{margin:18px 0}.prose h2{margin:30px 0 16px}.prose h3{margin:24px 0 14px}.prose ul,.prose ol{padding-left:24px}.prose pre{background:var(--soft);padding:18px;overflow:auto}.prose code{font-family:var(--font);white-space:pre-wrap;font-size:14px}.prose blockquote{border-left:2px solid var(--line);margin:22px 0;padding-left:20px}.prose table{border-collapse:collapse;display:block;overflow:auto}.prose th,.prose td{border:1px solid var(--line);padding:8px}.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:700px){.wrap{width:calc(100% - 40px)}.siteHeader{flex-wrap:wrap;gap:16px;min-height:80px;padding:18px 0}.siteHeader nav{gap:18px}.intro{padding-top:36px;padding-bottom:32px}.section{padding:27px 0}.directory ul{grid-template-columns:1fr;gap:16px}.blogPage{padding-top:34px}.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}}.siteHeader nav a,.contactLinks a{align-items:center;min-height:44px;display:inline-flex}.introActions .textLink{padding:10px 0}@media (max-width:700px){.expertiseList{grid-template-columns:1fr;gap:22px}}
