@font-face{font-family:Plex Sans;src:url(/fonts/IBMPlexSans-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Plex Sans;src:url(/fonts/IBMPlexSans-400-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Plex Sans;src:url(/fonts/IBMPlexSans-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Plex Sans;src:url(/fonts/IBMPlexSans-SemiBold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Plex Sans;src:url(/fonts/IBMPlexSans-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Plex Serif;src:url(/fonts/IBMPlexSerif-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Plex Serif;src:url(/fonts/IBMPlexSerif-400-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Plex Serif;src:url(/fonts/IBMPlexSerif-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Plex Serif;src:url(/fonts/IBMPlexSerif-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Plex Mono;src:url(/fonts/IBMPlexMono-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Plex Mono;src:url(/fonts/IBMPlexMono-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{--paper:#f7f5ef;--paper-2:#eeeae0;--paper-3:#e4dfd2;--ink:#1d2531;--ink-2:#434c58;--ink-3:#606a76;--rule:#d2ccbe;--rule-2:#b8b09e;--teal:#0b7a6e;--teal-dark:#075c53;--teal-pale:#dcefeb;--green:#3f8f3f;--mark:#c0471f;--font-sans:"Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--font-serif:"Plex Serif", Georgia, "Times New Roman", serif;--font-mono:"Plex Mono", Consolas, "Courier New", monospace;--measure:66ch;--wrap:1140px;--gutter:clamp(18px, 4vw, 44px);--sheet-margin:clamp(6px, 1.4vw, 18px)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--paper-2);color:var(--ink);font-family:var(--font-sans);font-feature-settings:"kern", "liga";margin:0;font-size:1.0625rem;line-height:1.6}img,svg,video{max-width:100%;height:auto;display:block}a{color:var(--teal);text-underline-offset:3px;text-decoration:underline 1px}a:hover{color:var(--teal-dark)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--teal);outline-offset:2px}h1,h2,h3,h4{color:var(--ink);text-wrap:balance;margin:0 0 .5em;font-weight:600;line-height:1.15}h1{font-family:var(--font-serif);letter-spacing:-.012em;font-size:clamp(2.1rem,1.3rem + 2.6vw,3.4rem);line-height:1.08}h2{font-family:var(--font-serif);letter-spacing:-.008em;font-size:clamp(1.55rem,1.15rem + 1.3vw,2.15rem)}h3{font-family:var(--font-sans);font-size:1.22rem}h4{font-family:var(--font-sans);font-size:1.02rem}p,ul,ol,dl{margin:0 0 1.1em}p,li,dd{max-width:var(--measure)}ul,ol{padding-left:1.3em}li+li{margin-top:.35em}strong{font-weight:600}hr{border:0;border-top:1px solid var(--rule);margin:2.5rem 0}small{font-size:.9em}blockquote{border-left:2px solid var(--rule-2);font-family:var(--font-serif);color:var(--ink-2);margin:1.5rem 0;padding-left:1rem}code,kbd{font-family:var(--font-mono);font-size:.92em}.sheet{background:var(--paper);border:1px solid var(--rule-2);margin:var(--sheet-margin);min-height:calc(100vh - 2 * var(--sheet-margin));flex-direction:column;display:flex}.wrap{width:100%;max-width:var(--wrap);padding-inline:var(--gutter);margin-inline:auto}main{flex:1}.eyebrow{font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:.7em;margin:0 0 .9rem;font-size:.76rem;display:flex}.eyebrow:before{content:"";background:var(--rule-2);width:1.6rem;height:1px;display:inline-block}.lede{font-family:var(--font-serif);color:var(--ink-2);max-width:62ch;font-size:1.22rem;line-height:1.5}.muted{color:var(--ink-3)}.mono{font-family:var(--font-mono);font-size:.86rem}.nobr,a[href^=tel\:]{white-space:nowrap}.section{padding-block:clamp(2.6rem,5vw,4.5rem)}.section+.section{border-top:1px solid var(--rule)}.section-tinted{background:var(--paper-2)}.section-head{margin-bottom:clamp(1.5rem,3vw,2.5rem)}.section-head p{margin-bottom:0}.cols{gap:clamp(1.4rem,3vw,3rem);display:grid}.cols-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.cols-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.split{align-items:start;gap:clamp(1.6rem,4vw,4rem);display:grid}@media (width>=860px){.split{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.split-even{grid-template-columns:1fr 1fr}.split-reverse>:first-child{order:2}}.btn{font-family:var(--font-sans);border:1.5px solid var(--ink);color:var(--ink);cursor:pointer;background:0 0;border-radius:3px;padding:.78em 1.15em;font-size:1rem;font-weight:500;line-height:1.2;text-decoration:none;transition:background-color .12s,color .12s,border-color .12s;display:inline-block}.btn:hover{background:var(--paper-3);color:var(--ink)}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--teal-dark);border-color:var(--teal-dark);color:#fff}.btn-row{flex-wrap:wrap;align-items:center;gap:.7rem .9rem;margin-top:1.4rem;display:flex}.btn-row .plain{font-size:.98rem}figure{margin:0}figure img{border:1px solid var(--rule);background:var(--paper-3);width:100%;height:auto}figcaption{font-family:var(--font-mono);color:var(--ink-3);border-top:1px solid var(--rule);margin-top:.55rem;padding-top:.55rem;font-size:.76rem;line-height:1.5}figcaption b{color:var(--ink-2);font-weight:500}.fig-stack{gap:1.6rem;display:grid}.fig-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1.4rem;display:grid}.deflist{margin:0 0 1.2em;padding:0;list-style:none}.deflist li{border-top:1px solid var(--rule);max-width:none;margin:0;padding:.8rem 0}.deflist li:last-child{border-bottom:1px solid var(--rule)}.deflist li b{margin-bottom:.15rem;font-weight:600;display:block}.deflist li p{max-width:var(--measure);color:var(--ink-2);margin:0}.index{border-top:1px solid var(--rule-2);margin:0;padding:0;list-style:none}.index li{border-bottom:1px solid var(--rule);grid-template-columns:4.2rem 1fr;align-items:baseline;gap:.4rem 1.2rem;max-width:none;margin:0;padding:1.05rem 0;display:grid}.index .idx{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.04em;padding-top:.25rem;font-size:.78rem}.index h3{margin:0 0 .25rem;font-size:1.12rem}.index h3 a{color:var(--ink);text-decoration:none}.index h3 a:hover{color:var(--teal-dark);text-decoration:underline}.index p{color:var(--ink-2);margin:0;font-size:.98rem}.index .who{font-family:var(--font-mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-top:.35rem;font-size:.74rem}@media (width<=560px){.index li{grid-template-columns:1fr}.index .idx{padding-top:0}}.project{border-top:1px solid var(--rule);gap:1.1rem 2rem;padding:1.6rem 0;display:grid}@media (width>=760px){.project{grid-template-columns:11rem minmax(0,1fr)}.project.has-photo{grid-template-columns:11rem minmax(0,1fr) 18rem}}.project .when{font-family:var(--font-mono);color:var(--ink-3);font-size:.8rem;line-height:1.6}.project .when b{color:var(--ink-2);font-size:.92rem;font-weight:500;display:block}.project h3{margin-bottom:.3rem}.project p{color:var(--ink-2);margin-bottom:.5rem}.project p:last-child{margin-bottom:0}.project .tags{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-top:.5rem;font-size:.74rem}.year-head{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:2.4rem 0 0;padding-bottom:.5rem;font-size:.8rem;font-weight:500}.year-head:first-of-type{margin-top:0}.tblock{border-collapse:collapse;width:100%;font-size:.95rem}.tblock th,.tblock td{border:1px solid var(--rule-2);text-align:left;vertical-align:top;padding:.55rem .75rem}.tblock th{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);background:var(--paper-2);white-space:nowrap;font-size:.74rem;font-weight:500}.tblock td{background:var(--paper)}.note{border:1px solid var(--rule-2);border-left:3px solid var(--teal);background:var(--paper);margin:1.6rem 0;padding:1rem 1.2rem}.note p:last-child{margin-bottom:0}.note .eyebrow{margin-bottom:.5rem}.site-header{border-bottom:1px solid var(--rule-2)}.site-header .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;min-height:4.6rem;display:flex}.brand{color:var(--ink);align-items:center;gap:.75rem;padding-block:.8rem;text-decoration:none;display:flex}.brand img{width:34px;height:34px}.brand-name{font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;font-size:1.05rem;font-weight:700;line-height:1.1}.brand-sub{font-family:var(--font-mono);letter-spacing:.05em;text-transform:none;color:var(--ink-3);margin-top:.2rem;font-size:.68rem;font-weight:400;display:block}.site-nav{align-items:center;gap:clamp(.9rem,2vw,1.7rem);display:flex}.site-nav a{color:var(--ink-2);border-bottom:2px solid #0000;padding:.4rem 0;font-size:.98rem;font-weight:500;text-decoration:none}.site-nav a:hover{color:var(--ink);border-bottom-color:var(--rule-2)}.site-nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--teal)}.site-nav .nav-phone{font-family:var(--font-mono);color:var(--ink);border:1.5px solid var(--ink);border-radius:3px;padding:.45rem .75rem;font-size:.9rem}.site-nav .nav-phone:hover{background:var(--ink);color:var(--paper);border-bottom-color:var(--ink)}.nav-details{display:none}@media (width<=760px){.site-nav{display:none}.nav-details{width:100%;display:block}.nav-details summary{cursor:pointer;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);align-items:center;gap:.6rem;padding:.5rem 0 .9rem;font-size:.8rem;list-style:none;display:flex}.nav-details summary::-webkit-details-marker{display:none}.nav-details summary:before{content:"";background:var(--ink);width:1.1rem;height:2px;box-shadow:0 5px 0 var(--ink), 0 -5px 0 var(--ink)}.nav-details[open] summary:before{box-shadow:none;transform:rotate(45deg)}.nav-details nav{border-top:1px solid var(--rule);flex-direction:column;padding:.4rem 0 .9rem;display:flex}.nav-details nav a{color:var(--ink);border-bottom:1px solid var(--rule);padding:.65rem 0;font-weight:500;text-decoration:none}.nav-details nav a[aria-current=page]{color:var(--teal-dark)}.nav-details nav .nav-phone{font-family:var(--font-mono)}.brand{padding-block:.6rem}.brand-sub{display:none}}.page-head{border-bottom:1px solid var(--rule);padding:clamp(2.2rem,5vw,4rem) 0 clamp(1.8rem,4vw,3rem)}.page-head .lede{margin-top:.9rem;margin-bottom:0}.crumbs{font-family:var(--font-mono);color:var(--ink-3);margin-bottom:1.2rem;font-size:.76rem}.crumbs a{color:var(--ink-3)}.crumbs span{margin:0 .45em}.contact-card{border:1px solid var(--rule-2);background:var(--paper);padding:clamp(1.2rem,3vw,2rem)}.contact-card h2,.contact-card h3{margin-top:0}.contact-lines{margin:.4rem 0 0;font-size:1.05rem;line-height:1.9}.contact-lines a{font-weight:500;text-decoration:none}.contact-lines a:hover{text-decoration:underline}.contact-lines .mono{font-size:.95rem}.form{gap:1.1rem;max-width:44rem;display:grid}.form label{margin-bottom:.3rem;font-size:.95rem;font-weight:600;display:block}.form label small{color:var(--ink-3);font-weight:400}.form input,.form textarea,.form select{width:100%;font:inherit;color:var(--ink);border:1px solid var(--rule-2);background:#fff;border-radius:3px;padding:.7em .8em}.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--teal)}.form textarea{resize:vertical;min-height:9.5rem}.form .row-2{gap:1.1rem;display:grid}@media (width>=620px){.form .row-2{grid-template-columns:1fr 1fr}}.form .hint{color:var(--ink-3);margin:0;font-size:.9rem}.form .gotcha{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.form .status{min-height:1.4em;margin:0;font-size:.95rem}.form .status[data-state=error]{color:var(--mark)}.titleblock{border-top:1px solid var(--rule-2);background:var(--paper);margin-top:auto}.tb-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));display:grid}.tb-cell{padding:1rem var(--gutter) 1.1rem;border-right:1px solid var(--rule-2);color:var(--ink-2);font-size:.9rem;line-height:1.55}.tb-cell:last-child{border-right:0}.tb-cell a{color:inherit;text-decoration:none}.tb-cell a:hover{color:var(--teal-dark);text-decoration:underline}.tb-label{font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.3rem;font-size:.68rem;display:block}.tb-brand{align-items:flex-start;gap:.8rem;display:flex}.tb-brand img{width:30px;height:30px;margin-top:.1rem}.tb-brand b{letter-spacing:.1em;text-transform:uppercase;color:var(--ink);font-size:.86rem;font-weight:700;line-height:1.25;display:block}.tb-brand span{font-size:.86rem}@media (width<=760px){.tb-cell{border-right:0;border-bottom:1px solid var(--rule)}.tb-cell:last-child{border-bottom:0}}.tb-bottom{border-top:1px solid var(--rule-2);padding:.8rem var(--gutter);font-family:var(--font-mono);color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;gap:.4rem 1.6rem;font-size:.72rem;display:flex}.tb-bottom a{color:var(--ink-3)}.tb-bottom .links{flex-wrap:wrap;gap:1.2rem;display:flex}.flag{display:none}html[data-draft] .flag{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--mark);vertical-align:middle;border-radius:2px;margin-left:.4em;padding:.1em .45em;font-size:.68rem;display:inline-block}.index-grid{border-top:0}.index-grid li{border-top:1px solid var(--rule);border-bottom:0}@media (width>=820px){.index-grid{grid-template-columns:1fr 1fr;column-gap:3rem;display:grid}.index-grid li:nth-last-child(-n+2){border-bottom:1px solid var(--rule)}}.index-compact li{padding:.55rem 0}.index-compact h3{font-size:1rem}.service-grid{align-items:start;gap:clamp(2rem,4vw,4rem);padding-block:clamp(2rem,4vw,3rem) clamp(2.6rem,5vw,4.5rem);display:grid}@media (width>=900px){.service-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}.service-aside{gap:2rem;display:grid}.service-body h2{margin-top:2.2rem;font-size:clamp(1.35rem,1.1rem + .9vw,1.7rem)}.service-body h2:first-child{margin-top:0}.service-body>p:first-child{font-size:1.08rem}.notes{counter-reset:note;gap:0;max-width:60rem;margin:0;padding:0;list-style:none;display:grid}.notes li{counter-increment:note;border-top:1px solid var(--rule-2);max-width:none;color:var(--ink-2);margin:0;padding:1rem 0 1rem 3.2rem;position:relative}.notes li:last-child{border-bottom:1px solid var(--rule-2)}.notes li:before{content:counter(note, decimal-leading-zero);font-family:var(--font-mono);color:var(--ink-3);font-size:.82rem;position:absolute;top:1.05rem;left:0}.notes li b{color:var(--ink)}.notes li p{margin:.3rem 0 0}.skip{background:var(--ink);color:var(--paper);z-index:10;padding:.6rem 1rem;position:absolute;top:0;left:-9999px}.skip:focus{top:1rem;left:1rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}@media print{body{background:#fff}.sheet{border:0;margin:0}.site-nav,.nav-details,.btn-row{display:none!important}}
