@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/space-grotesk-latin-ext-500-normal.DUe3BAxM.woff2)format("woff2"),url(/_astro/space-grotesk-latin-ext-500-normal.3dgZTiw9.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/space-grotesk-latin-500-normal.lFbtlQH6.woff2)format("woff2"),url(/_astro/space-grotesk-latin-500-normal.CNSSEhBt.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-grotesk-latin-ext-700-normal.BQnZhY3m.woff2)format("woff2"),url(/_astro/space-grotesk-latin-ext-700-normal.HVCqSBdx.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-grotesk-latin-700-normal.RjhwGPKo.woff2)format("woff2"),url(/_astro/space-grotesk-latin-700-normal.CwsQ-cCU.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-400-normal.RBey6euL.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-ext-500-normal.DakdToA3.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-500-normal.D0aIdm-b.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}:root{--background:#eeeae2;--surface:#f7f5ef;--soft:#e4e0d7;--ink:#243139;--muted:#586167;--accent:#925433;--line:#c8c4bb;--font-display:"Space Grotesk",sans-serif;--font-body:"IBM Plex Sans",sans-serif;--font-mono:"IBM Plex Mono",monospace;--motion:.18s;color-scheme:light}[data-cms-multiline],[data-cms-format=name]{white-space:pre-line}.hero-statement>[data-cms-key=hero\.statement]{color:var(--ink)}.site-header nav .nav-contact>[data-cms-key]{width:auto;height:auto;font-size:inherit;border:0;border-radius:0;display:inline;transform:none!important}.work-heading h2>[data-cms-key]{color:inherit}.site-management-link{opacity:.75;font-size:12px}.button>[data-cms-key]{border:0;border-radius:0;width:auto;height:auto;display:inline;transform:none!important}.hero>*{min-width:0}h1,h2,h3,.hero-statement{overflow-wrap:anywhere}@media (width<=720px){.hero #hero-title{font-size:min(19vw,7rem)}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{background:var(--background);color:var(--ink);font-family:var(--font-body);margin:0;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}a:active,button:active{opacity:.7}button:disabled{cursor:default}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.045em;line-height:1.1}h2{font-size:clamp(2rem,4vw,3.4rem);font-weight:500}h3{font-size:clamp(1.35rem,2.4vw,2rem);font-weight:500}ul{margin:0;padding:0;list-style:none}[hidden]{display:none!important}.shell{width:min(1240px,100% - 96px);margin-inline:auto}.mono,.eyebrow{font-family:var(--font-mono);letter-spacing:.055em;font-size:.72rem}.eyebrow{color:var(--muted);margin-bottom:20px}.accent{color:var(--accent)}.section{padding-block:104px}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding-block:26px;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:-.08em;align-items:center;gap:16px;min-height:44px;font-size:2.4rem;font-weight:700;display:flex}.wordmark>span{color:var(--accent);margin-left:-15px}.wordmark small{font-family:var(--font-mono);letter-spacing:.07em;border-left:1px solid var(--line);padding-left:16px;font-size:.65rem;font-weight:400}.site-header nav{align-items:center;gap:28px;display:flex}.site-header nav a{min-height:44px;transition:color var(--motion);align-items:center;gap:14px;font-size:.85rem;display:inline-flex}.site-header nav a:hover{color:var(--accent)}.nav-contact{border:1px solid var(--line);border-radius:2px;padding:0 18px}.hero{grid-template-columns:1.05fr 1fr;gap:48px;padding-top:72px;display:grid}.hero h1{letter-spacing:-.075em;font-size:clamp(4.5rem,8vw,7.8rem);font-weight:500;line-height:.9}.hero .eyebrow{align-items:center;gap:9px;margin-bottom:30px;display:flex}.status-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.hero-statement{font-family:var(--font-display);letter-spacing:-.025em;margin-top:32px;font-size:clamp(1.5rem,2.3vw,2rem);line-height:1.22}.hero-statement>span{color:var(--accent)}.hero-intro{color:var(--muted);max-width:44ch;margin-top:22px}.actions{flex-wrap:wrap;align-items:center;gap:22px;margin-top:30px;display:flex}.button{background:var(--ink);color:var(--background);border:1px solid var(--ink);min-height:48px;transition:background var(--motion);align-items:center;gap:28px;padding:13px 21px;font-size:.85rem;display:inline-flex}.button:hover{background:var(--accent);border-color:var(--accent)}.text-link{border-bottom:1px solid var(--line);min-height:44px;transition:color var(--motion);align-items:center;gap:16px;font-size:.85rem;display:inline-flex}.text-link:hover{color:var(--accent)}.hero-bottom{border-top:1px solid var(--line);color:var(--muted);grid-column:1/-1;justify-content:space-between;gap:24px;padding:24px 0;display:flex}.section-head{justify-content:space-between;align-items:flex-end;gap:48px;margin-bottom:40px;display:flex}.section-head>p{max-width:39ch;color:var(--muted)}.filters{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.filters button{border:1px solid var(--line);min-height:44px;transition:background var(--motion);background:0 0;border-radius:2px;padding:8px 18px;font-size:.8rem}.filters button[aria-pressed=true]{background:var(--ink);color:var(--background);border-color:var(--ink)}.filters button:hover{border-color:var(--accent)}.filters button span{font-family:var(--font-mono);margin-left:12px;font-size:.65rem}.project-row{border-top:1px solid var(--line);transition:background var(--motion);grid-template-columns:64px 1fr 56px;gap:28px;padding:32px 0;display:grid}.project-row:last-child{border-bottom:1px solid var(--line)}.project-row:hover{background:var(--surface)}.project-no{color:var(--accent);padding-top:4px}.project-row .eyebrow{margin-bottom:10px}.project-subtitle{color:var(--muted);max-width:65ch;margin-top:12px;font-size:.95rem}.tags{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.tags li{font-family:var(--font-mono);border:1px solid var(--line);color:var(--muted);padding:4px 8px;font-size:.65rem}.project-arrow{transition:transform var(--motion),color var(--motion);place-self:center end;font-size:2rem}.project-row:hover .project-arrow{color:var(--accent);transform:translate(3px,-3px)}.about-band{background:var(--soft);border-block:1px solid var(--line)}.expertise-grid{grid-template-columns:repeat(var(--expertise-columns,3),minmax(0,1fr));gap:40px;padding-block:20px 48px;display:grid}.expertise-grid article{border-top:1px solid var(--line);padding-top:24px}.expertise-grid h3{margin:16px 0;font-size:1.4rem}.expertise-grid li{color:var(--muted);padding-block:3px;font-size:.9rem}.process{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding-top:28px;display:flex}.process i{color:var(--accent);font-size:1.2rem;font-style:normal}.timeline article{border-top:1px solid var(--line);grid-template-columns:280px 1fr;gap:32px;padding:30px 0;display:grid}.timeline article>.mono{color:var(--muted);padding-top:5px}.timeline h3{letter-spacing:-.025em;font-size:1.4rem}.timeline .place{color:var(--accent);margin:8px 0 12px;font-size:.9rem}.timeline article>div>p:last-child{max-width:65ch;color:var(--muted)}.contact{border-top:1px solid var(--line)}.contact h2{font-size:clamp(2.5rem,5.5vw,4.6rem)}.contact>p:not(.eyebrow){max-width:50ch;color:var(--muted);margin:24px 0}.email-link{font-family:var(--font-display);border-bottom:1px solid var(--accent);overflow-wrap:anywhere;align-items:center;gap:20px;min-height:44px;font-size:clamp(1rem,2vw,1.6rem);display:inline-flex}.email-link:hover{color:var(--accent)}.site-footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:20px;padding-block:28px;font-size:.75rem;display:flex}.site-footer a{align-items:center;min-height:44px;display:flex}.case-study{max-width:1000px}.case-label{margin-top:56px}.case-study h1{max-width:16ch;font-size:clamp(2.8rem,6vw,5rem);font-weight:500}.case-intro{max-width:48ch;color:var(--muted);margin-top:24px;font-size:1.2rem}.case-sections{margin-block:56px}.case-sections section{border-top:1px solid var(--line);grid-template-columns:220px 1fr;gap:32px;padding-block:30px;display:grid}.case-sections h2{letter-spacing:.055em;margin:5px 0 0;line-height:1.5}.case-sections p{max-width:60ch}.case-note{color:var(--muted);max-width:65ch;margin-bottom:32px;font-size:.8rem}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--ink);color:var(--background);z-index:10;padding:12px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:none}@media (width>=1600px){.hero{padding-top:100px}}@media (width<=1000px){.shell{width:calc(100% - 48px)}.hero{gap:32px}.section-head{gap:28px}.section-head>p{max-width:32ch}.timeline article{grid-template-columns:220px 1fr}.wordmark small{display:none}}@media (width<=720px){.shell{width:calc(100% - 40px)}.site-header{flex-wrap:wrap;gap:12px;padding-block:16px}.site-header nav{flex-wrap:wrap;gap:12px}.site-header nav a{font-size:.75rem}.nav-contact{padding-inline:10px}.hero{grid-template-columns:1fr;gap:40px;padding-top:44px}.hero h1{font-size:clamp(4.5rem,19vw,7rem)}.hero-statement{font-size:1.8rem}.hero-bottom{flex-direction:column;gap:8px}.section{padding-block:64px}.section-head{flex-direction:column;align-items:flex-start;gap:24px}.section-head>p{max-width:52ch}.expertise-grid{grid-template-columns:1fr;gap:24px;padding-bottom:32px}.expertise-grid ul{flex-wrap:wrap;gap:4px 20px;display:flex}.process{flex-wrap:wrap;justify-content:flex-start;gap:12px}.timeline article{grid-template-columns:1fr;gap:14px}.project-row{grid-template-columns:25px 1fr 25px;gap:12px;padding-block:28px}.project-arrow{font-size:1.5rem}.project-row h3{font-size:1.45rem}.filters{gap:6px}.filters button{padding-inline:12px}.case-sections section{grid-template-columns:1fr;gap:16px}.site-footer{gap:12px}.site-footer>span:nth-child(2){display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.project-row:hover .project-arrow{transform:none}}.cv-disabled{color:var(--muted);opacity:.5;cursor:not-allowed;background:0 0;border:0;padding:0}.cv-disabled.text-link{border-bottom:1px solid var(--line)}.cv-disabled:hover{color:var(--muted)}.site-header{border-bottom:0;gap:32px;padding-block:22px}.wordmark{gap:18px;font-size:2.6rem}.wordmark small{letter-spacing:.075em;color:var(--muted);font-size:.57rem;line-height:1.65}.wordmark small b{color:var(--accent);margin-top:2px;font-size:.55rem;font-weight:400;display:block}.site-header nav{border:1px solid var(--line);background:#f8f6f080;border-radius:16px;gap:5px;padding:5px;box-shadow:0 5px 16px #24313903}.site-header nav a{min-height:44px;font-family:var(--font-display);border:1px solid #0000;border-radius:11px;gap:10px;padding:10px 15px;font-size:.81rem;font-weight:500;transition:background .18s,color .18s,border-color .18s,box-shadow .18s;position:relative}.site-header nav a:hover,.site-header nav a[aria-current=location],.site-header nav a[aria-current=page]{background:var(--surface);color:var(--accent);border-color:#97553624;box-shadow:0 2px 5px #24313906}.site-header nav .nav-contact{background:var(--ink);color:var(--surface);border-color:var(--ink);margin-left:5px;padding-inline:18px}.site-header nav .nav-contact:hover,.site-header nav .nav-contact[aria-current=location]{background:var(--accent);color:var(--surface);border-color:var(--accent)}.nav-contact span{border:1px solid #ffffff40;border-radius:50%;place-items:center;width:22px;height:22px;font-size:.8rem;transition:transform .18s;display:grid}.nav-contact:hover span{transform:rotate(45deg)}.button{font-family:var(--font-display);border-radius:11px;gap:24px;padding:12px 18px 12px 22px;font-size:.85rem;font-weight:500;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;box-shadow:0 7px 18px #24313910}.button>span{border:1px solid #ffffff35;border-radius:50%;place-items:center;width:26px;height:26px;transition:transform .18s;display:grid}.button:hover{transform:translateY(-2px);box-shadow:0 10px 20px #97553620}.button:hover>span{transform:rotate(45deg)}.hero-resume{border:1px solid var(--line);min-height:52px;font-family:var(--font-display);background:#f8f6f060;border-radius:11px;gap:24px;padding:12px 18px}.hero-resume:hover{background:var(--surface);border-color:var(--accent)}@media (hover:hover) and (pointer:fine){body{cursor:url(/cursors/material-pointer.svg) 2 2,default}a,button:not(:disabled),summary,[role=button]{cursor:url(/cursors/material-link.svg) 2 2,pointer}input,textarea,[contenteditable=true]{cursor:text}input[type=range]{cursor:pointer}}@media (width<=1000px){.site-header{gap:20px}.site-header nav a{padding-inline:12px}.wordmark small{display:none}}@media (width<=720px){.site-header{gap:12px;padding-block:18px}.wordmark{font-size:2.4rem}.site-header nav{border-radius:13px;justify-content:space-between;gap:2px;width:100%;padding:4px}.site-header nav a{gap:4px;min-height:44px;padding:8px 6px;font-size:.68rem}.site-header nav .nav-contact{margin-left:0;padding-inline:9px}.nav-contact span{display:none}.hero .actions{gap:10px}.hero .button,.hero-resume{gap:16px;font-size:.8rem}.hero .button{padding-left:16px}.hero-resume{padding-inline:14px}}@media (prefers-reduced-motion:reduce){.button:hover,.button:hover>span,.nav-contact:hover span{transform:none}}@media (width<=720px){.site-header nav{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.site-header nav a{text-align:center;white-space:nowrap;justify-content:center}.site-header nav .nav-contact{justify-content:center}}
