@font-face{font-family:Instrument;src:url(/fonts/instrument-sans-latin.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Newsreader;src:url(/fonts/newsreader-latin-italic.woff2)format("woff2");font-weight:400 500;font-style:italic;font-display:swap}:root{--bg:#f6f5f0;--surface:#eeeee6;--ink:#202722;--muted:#5b665e;--rule:#cfd4cc;--accent:#365c48;--max-width:1240px;color:var(--ink);background:var(--bg);font-synthesis:none;font-family:Instrument,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;font-size:16px;line-height:1.65}a{color:inherit;text-underline-offset:5px;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}p,h1,h2,h3,h4,figure,blockquote{margin:0}p+p{margin-top:20px}h1,h2,h3,h4{font-weight:500}h1,h2{letter-spacing:-.05em;line-height:1.08}em{letter-spacing:-.045em;font-family:Newsreader,Georgia,serif;font-weight:400}h2{font-size:clamp(2.25rem,3.7vw,3.65rem)}h3{line-height:1.3}p{max-width:70ch}.wrap{width:min(var(--max-width),calc(100% - 112px));margin-inline:auto}.muted,.quiet-note{color:var(--muted)}.eyebrow,.section-label{letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:500;line-height:1.6}.eyebrow{color:var(--muted)}.section-label{color:var(--muted);gap:12px;margin-bottom:40px;display:flex}.section-label span{color:var(--accent)}.skip{background:var(--ink);color:#fff;z-index:20;padding:12px 20px;position:absolute;top:-100px;left:24px}.skip:focus{top:10px}.site-header{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:24px;padding-block:28px;display:flex}.identity{align-items:center;gap:16px;font-size:14px;font-weight:600;line-height:1.35;display:flex}.identity-note{color:var(--muted);margin-top:4px;font-size:11px;font-weight:400;display:block}.monogram{letter-spacing:-4px;padding-right:14px;font-family:Georgia,serif;font-size:37px;font-style:italic;line-height:1;position:relative}.monogram span{letter-spacing:0;color:var(--accent);font-family:Arial,sans-serif;font-size:16px;position:absolute;top:-3px;right:0}nav{gap:25px;font-size:12px;display:flex}nav a{align-items:center;min-height:44px;display:flex}nav a:hover{text-decoration:underline}.hero{padding-top:55px}.hero-label{gap:16px;display:flex}.hero-label span{color:#90998f}.hero-grid{grid-template-columns:7fr 4fr;align-items:end;gap:6%;margin:36px 0 64px;display:grid}h1{font-size:clamp(3.2rem,6.4vw,6.7rem);font-weight:500;line-height:1.02}.hero-aside{max-width:420px;padding-bottom:5px;font-size:15px}.tiny-symbol{color:var(--accent);margin-bottom:28px;font-size:48px;line-height:1;display:block}.hero-aside p+p{margin-top:14px}.hero-actions{flex-wrap:wrap;align-items:center;gap:22px;margin-top:30px;font-size:12px;display:flex}.hero-actions>a{align-items:center;min-height:44px;display:inline-flex}.primary-link{background:var(--accent);color:#fff;justify-content:space-between;align-items:center;gap:24px;padding:13px 18px;font-size:12px;display:inline-flex}.primary-link:hover{color:#fff;background:#284735}.hero-bottom{border-top:1px solid var(--rule);justify-content:space-between;gap:20px;padding:22px 0;display:flex}.hero-bottom>.eyebrow{font-size:9px}.facts{color:var(--muted);gap:24px;font-size:11px;display:flex}.facts span+span{border-left:1px solid var(--rule);padding-left:24px}.section{border-top:1px solid var(--rule);padding:88px 0}.work{margin-top:32px}.section-intro,.split{grid-template-columns:1fr 1fr;gap:8%;display:grid}.section-intro{align-items:end;margin-bottom:44px}.section-intro>p{color:var(--muted);max-width:370px;font-size:15px}.project-row{border-top:1px solid var(--rule);grid-template-columns:28px 1.1fr 1.35fr .7fr;gap:25px;padding:35px 0;transition:background .2s;display:grid}.project-row:last-child{border-bottom:1px solid var(--rule)}.project-row:hover{color:var(--ink);background:#eceedf66}.project-index{color:var(--muted);padding-top:4px;font-size:11px}.project-title .eyebrow{letter-spacing:.07em;font-size:9px}.project-title h3{letter-spacing:-.045em;margin:13px 0 8px;font-size:30px}.project-title>p{max-width:240px;font-family:Newsreader,Georgia,serif;font-size:20px;font-style:italic;line-height:1.25}.project-description>p{font-size:13px;line-height:1.8}.technology{color:var(--muted);margin-top:18px;font-size:10px;display:block}.project-result{flex-direction:column;justify-content:space-between;gap:24px;padding-left:12px;display:flex}.project-result strong{letter-spacing:-.05em;font-size:32px;font-weight:400;line-height:1.2;display:block}.project-result p>span{color:var(--muted);max-width:150px;margin-top:7px;font-size:10px;line-height:1.5;display:block}.read-link{color:var(--accent);justify-content:space-between;gap:12px;font-size:11px;display:flex}.arrow{transition:transform .18s;display:inline-block}.project-row:hover .arrow{transform:translate(3px,-3px)}.quiet-note{margin-top:18px;font-size:11px;line-height:1.7}.prose{font-size:15px;line-height:1.9}.text-link{text-decoration:underline;text-decoration-color:var(--rule);min-height:44px;color:var(--accent);padding-block:10px;font-size:13px;display:inline-block}.text-link:hover{text-decoration-color:var(--accent)}.prose>.text-link{margin-top:18px}.skills-heading{max-width:850px;margin-bottom:44px}.skills-matrix{border-bottom:1px solid var(--rule)}.skill-row{border-top:1px solid var(--rule);grid-template-columns:28px 1fr 1.3fr 1fr;gap:25px;padding:25px 0;display:grid}.skill-number{color:var(--muted);font-size:10px}.skill-row h3{font-size:14px}.skill-row p{margin:0;font-size:12px;line-height:1.7}.explore-grid{gap:12%}.explore-grid h2{margin-bottom:32px}.workflow-title{margin-top:30px;margin-bottom:14px;font-size:16px}.notepad{background:var(--surface);border-top:2px solid var(--accent);align-self:start;padding:32px 34px}.notepad>h3{letter-spacing:-.025em;margin:20px 0 28px;font-family:Newsreader,Georgia,serif;font-size:34px;font-style:italic;line-height:1.1}.interest{border-top:1px solid #cbd0c5;padding:17px 0}.interest h4{font-size:13px;font-weight:600}.interest p{color:var(--muted);margin-top:6px;font-size:12px;line-height:1.75}.note-foot{color:var(--muted);border-top:1px solid var(--rule);padding-top:18px;font-family:Newsreader,Georgia,serif;font-size:11px;font-style:italic}.job-heading{justify-content:space-between;align-items:baseline;gap:18px;display:flex}.job-heading h3{letter-spacing:-.03em;font-size:24px}.job-heading>span{color:var(--muted);font-size:11px}.job-role{color:var(--muted);margin-top:10px;font-size:12px}.contributions{margin:25px 0 0;padding-left:18px;font-size:14px;line-height:1.85}.contributions li+li{margin-top:12px}.contributions li::marker{color:var(--accent)}.credentials{border-top:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:8%;margin-top:64px;padding-top:30px;display:grid}.credentials h3{margin-top:23px;margin-bottom:7px;font-size:14px}.credentials p{color:var(--muted);font-size:12px}.contact{padding-bottom:90px}.contact .split>div>p{font-size:15px}.email{overflow-wrap:anywhere;letter-spacing:-.035em;border-bottom:1px solid var(--accent);align-items:center;gap:16px;width:fit-content;max-width:100%;margin-top:20px;padding:15px 0;font-size:clamp(16px,2.1vw,27px);display:flex}.email+.eyebrow{margin-top:22px;font-size:10px;display:block}.site-footer{border-top:1px solid var(--rule);color:var(--muted);justify-content:space-between;align-items:center;gap:24px;padding:27px 0 35px;font-size:10px;display:flex}.footer-name{color:var(--ink);font-size:12px;font-weight:600}.site-footer>div{gap:24px;display:flex}.site-footer a{align-items:center;min-height:44px;display:inline-flex}.case-header{padding:36px 0 0}.case-header>.eyebrow{margin:42px 0 24px}.case-header h1{max-width:1000px;font-size:clamp(3rem,6vw,5.5rem)}.case-header h1>span{margin-top:12px;font-family:Newsreader,Georgia,serif;font-size:.8em;font-style:italic;font-weight:400;line-height:1.16;display:block}.case-summary{max-width:740px;color:var(--muted);margin:32px 0 40px;font-size:18px}.case-facts{border-block:1px solid var(--rule);grid-template-columns:1fr 2fr;gap:30px;padding:25px 0;display:grid}.case-facts p{margin-top:7px;font-size:13px}.case-section{border-bottom:1px solid var(--rule);grid-template-columns:1fr 2fr;gap:30px;padding:56px 0;display:grid}.case-section .section-label{margin-top:9px}.case-section h2{margin-bottom:22px;font-size:32px}.system-diagram{background:var(--surface);margin:48px 0 0;padding:30px}.diagram-heading{justify-content:space-between;gap:24px;display:flex}.diagram-heading .eyebrow{font-size:9px}.flow{grid-auto-columns:1fr;grid-auto-flow:column;gap:36px;margin:42px 0 36px;padding:0;list-style:none;display:grid}.flow li{border-top:1px solid #9aab99;padding:20px 0;font-size:17px;position:relative}.flow-number{color:var(--accent);margin-bottom:12px;font-size:10px;display:block}.flow-arrow{color:var(--accent);position:absolute;top:35px;right:-27px}figcaption{color:var(--muted);max-width:750px;font-size:11px}.impact-facts{flex-wrap:wrap;gap:36px;display:flex}.impact-facts>div{flex:1;min-width:130px}.impact-facts strong{letter-spacing:-.06em;color:var(--accent);font-size:56px;font-weight:400;line-height:1.2}.impact-facts p{margin-top:12px;font-size:12px}blockquote{max-width:680px;font-family:Newsreader,Georgia,serif;font-size:32px;font-style:italic;line-height:1.3}.next-project{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;padding:45px 0;display:flex}.next-project strong{letter-spacing:-.04em;margin-top:10px;font-size:36px;font-weight:500;display:block}.next-arrow{font-size:42px}.case-contact{padding:32px 0 60px;font-size:14px}.not-found{min-height:70vh;padding-block:100px}.not-found h1{margin:25px 0}.not-found .primary-link{margin-top:30px}@media (width>=1500px){.hero-grid{gap:9%}.hero{padding-top:70px}}@media (width<=1100px){.wrap{width:calc(100% - 64px)}nav{gap:17px}.hero-grid{grid-template-columns:1.3fr 1fr;gap:5%}.hero-aside{font-size:14px}.hero-bottom{flex-wrap:wrap}.project-row{grid-template-columns:20px 1fr 1.2fr .65fr;gap:20px}.project-result{padding-left:0}.skill-row{grid-template-columns:20px 1fr 1.2fr 1fr;gap:20px}.job-heading{flex-wrap:wrap;gap:8px}}@media (width<=800px){.site-header{flex-direction:column;align-items:flex-start;gap:15px;padding-block:22px}nav{justify-content:space-between;gap:12px;width:100%}.hero-grid{grid-template-columns:1fr;gap:32px}.hero h1{font-size:clamp(3.2rem,10vw,5rem)}.hero-aside{max-width:560px}.tiny-symbol{display:none}.hero-aside>p{max-width:58ch}.hero-grid{margin-bottom:40px}.hero-label{gap:10px;font-size:9px}.section{padding:64px 0}.section-intro,.split{grid-template-columns:1fr;gap:35px}.section-intro>p{max-width:500px}.project-row{grid-template-columns:22px 1fr 1fr;gap:20px}.project-title{grid-column:2/4}.project-title>p{max-width:none}.project-description{grid-column:2}.project-result{grid-column:3;justify-self:end;max-width:175px}.project-title h3{margin-top:8px}.skill-row{grid-template-columns:20px 1fr 1.4fr}.skill-row .muted{grid-column:3}.skill-row h3{grid-row:span 2}.skill-row p{font-size:13px}.skill-row{row-gap:10px}.notepad{max-width:600px}.credentials{gap:40px}.site-footer{flex-wrap:wrap}.site-footer>div{margin-left:auto}.case-section{grid-template-columns:1fr;gap:6px}.case-section .section-label{margin-bottom:16px}.case-summary{font-size:16px}.case-section h2{font-size:30px}.flow li{font-size:14px}}@media (width<=480px){.wrap{width:calc(100% - 40px)}nav{gap:9px;font-size:10px}nav a{min-height:44px}.hero{padding-top:32px}.hero-label{letter-spacing:.06em;gap:7px;font-size:8px}.hero-grid{margin-top:28px}.hero h1{font-size:clamp(2.85rem,12vw,3.9rem)}.hero-actions{gap:20px}.facts{flex-wrap:wrap;gap:12px;font-size:10px}.facts span+span{padding-left:12px}.facts span:last-child{border:0;flex-basis:100%;padding-left:0}.hero-bottom>.eyebrow{font-size:8px}.hero-bottom{gap:16px}.work{margin-top:16px}h2{font-size:36px}.section-label{margin-bottom:28px}.project-row{grid-template-columns:16px 1fr;gap:14px;padding:28px 0}.project-title,.project-description{grid-column:2}.project-result{flex-direction:row;grid-column:2;justify-self:stretch;align-items:end;gap:20px;max-width:none}.project-result p{max-width:170px}.project-result p>span{max-width:165px}.project-result strong{font-size:27px}.read-link{white-space:nowrap;gap:8px;padding-block:12px;font-size:10px}.project-title h3{font-size:29px}.project-title>p{font-size:21px}.project-description p{font-size:13px}.skills-heading{font-size:34px}.skill-row{grid-template-columns:16px 1fr;gap:12px}.skill-row h3{grid-row:auto}.skill-row>p,.skill-row>.muted{grid-column:2}.skill-row>p{font-size:12px}.credentials{grid-template-columns:1fr;gap:32px}.notepad{padding:26px}.job-heading h3{font-size:23px}.site-footer{gap:4px 18px}.site-footer>div{justify-content:space-between;width:100%;margin:8px 0 0}.site-footer>span{font-size:9px}.contact{padding-bottom:60px}.case-header h1{font-size:46px}.case-header h1>span{font-size:.76em}.case-facts{grid-template-columns:1fr;gap:20px}.case-section{padding-block:36px}.system-diagram{margin-top:30px;padding:22px}.flow{grid-template-columns:1fr;grid-auto-flow:row;gap:6px;margin:25px 0}.flow li{align-items:center;gap:20px;padding:16px 0;font-size:16px;display:flex}.flow-number{margin:0}.flow-arrow{margin-left:auto;position:static;transform:rotate(90deg)}.impact-facts{gap:25px}.impact-facts>div{min-width:100px}.impact-facts strong{font-size:48px}blockquote{font-size:28px}.case-contact{font-size:12px}.diagram-heading{gap:16px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}:root{color-scheme:light;--selection:#d5e3d4;--row-hover:#eceedf66;--button-bg:#365c48;--button-ink:#fff;--button-hover:#284735;--diagram-rule:#9aab99}:root[data-theme=dark]{color-scheme:dark;--bg:#181e1a;--surface:#222c25;--ink:#e7ece4;--muted:#abb9ac;--rule:#3e4d41;--accent:#a6c9b0;--selection:#3b5745;--row-hover:#253228;--button-bg:#a6c9b0;--button-ink:#18251c;--button-hover:#c0ddc7;--diagram-rule:#728b77}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#181e1a;--surface:#222c25;--ink:#e7ece4;--muted:#abb9ac;--rule:#3e4d41;--accent:#a6c9b0;--selection:#3b5745;--row-hover:#253228;--button-bg:#a6c9b0;--button-ink:#18251c;--button-hover:#c0ddc7;--diagram-rule:#728b77}}::selection{background:var(--selection)}.skip{color:var(--bg)}.project-row:hover{background:var(--row-hover)}.interest{border-color:var(--rule)}.flow li{border-color:var(--diagram-rule)}.primary-link{background:var(--button-bg);color:var(--button-ink)}.primary-link:hover{background:var(--button-hover);color:var(--button-ink)}.site-header{position:relative}.site-header nav{margin-left:auto}.theme-toggle{border:1px solid var(--rule);min-width:44px;min-height:44px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:0 12px;font-size:11px;display:inline-flex}.theme-toggle[hidden]{display:none}.theme-toggle:hover{background:var(--surface);border-color:var(--accent)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.theme-sun,[data-theme=dark] .theme-moon{display:none}[data-theme=dark] .theme-sun{display:block}@media (width<=1100px) and (width>=801px){.site-header{gap:16px}.theme-toggle{padding:0 8px}}@media (width<=800px){.site-header nav{margin-left:0}.theme-toggle{position:absolute;top:20px;right:0}}@media (width<=480px){.theme-toggle{padding:0}.theme-toggle span{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}
