@font-face{font-family:fraunces;src:url(../media/fraunces_latin-s.p.0rg7ym60g9xsl.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:fraunces Fallback;src:local(Arial);ascent-override:84.05%;descent-override:21.91%;line-gap-override:0.0%;size-adjust:116.36%}.ib11Da_className{font-family:fraunces,fraunces Fallback}.ib11Da_variable{--font-fraunces:"fraunces", "fraunces Fallback"}
@font-face{font-family:manrope;src:url(../media/manrope_latin-s.p.3259ncl47-hqj.woff2)format("woff2");font-display:swap;font-weight:200 800}@font-face{font-family:manrope Fallback;src:local(Arial);ascent-override:106.45%;descent-override:29.96%;line-gap-override:0.0%;size-adjust:100.14%}.LF4Lra_className{font-family:manrope,manrope Fallback}.LF4Lra_variable{--font-manrope:"manrope", "manrope Fallback"}
@media print{@page{margin:16mm;size:A4}html,body{color:#292d28!important;background:#fff!important}.site-header,.site-footer,.skip-link,.resume-heading button,.resume-back{display:none!important}.resume-page{max-width:none!important;padding:0!important}.resume-heading h1{font-size:36pt!important}.resume-heading .eyebrow{margin-bottom:8px;font-size:8pt!important}.resume-title,.resume-contact{font-size:10pt!important}.resume-summary{margin-block:20px!important;font-size:11pt!important;line-height:1.6!important}.resume-section{padding-block:18px!important;display:block!important}.resume-section>h2{margin-bottom:16px;font-size:22pt!important}.resume-entry{break-inside:avoid}.resume-entry+.resume-entry{margin-top:18px}.resume-entry h3{font-size:11pt!important;line-height:1.5!important}.resume-entry p,.resume-entry li{font-size:9pt!important;line-height:1.6!important}.resume-entry li+li{margin-top:4px}.social-links{font-size:9pt!important}}
:root{--paper:#f8f6f0;--ink:#292d28;--muted:#656b60;--line:#d9dcd1;--accent:#a54832;--sage:#e9ece1;--forest:#30392f;--gutter:72px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{background:var(--paper);color:var(--ink);font-family:var(--font-manrope), Arial, sans-serif;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.7}::selection{color:var(--ink);background:#d8dfcb}h1,h2,h3,p,figure,dl{margin:0}a{color:inherit;text-underline-offset:5px;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}svg{flex-shrink:0;width:22px;height:22px}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{cursor:pointer}[hidden]{display:none!important}.container{width:100%;max-width:1440px;padding-inline:var(--gutter);margin-inline:auto}.display{font-family:var(--font-fraunces), Georgia, serif;letter-spacing:-.02em;font-size:52px;font-weight:400;line-height:1.11}.eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600;line-height:17px}.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}.mobile-copy{display:none}.skip-link{background:var(--forest);color:var(--paper);z-index:100;padding:12px 20px;position:fixed;top:12px;left:24px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{padding-bottom:28px}.header-inner{justify-content:space-between;align-items:center;padding-top:28px;display:flex;position:relative}.header-inner:after{content:"";bottom:-1px;left:var(--gutter);right:var(--gutter);background:var(--line);height:1px;position:absolute}.brand{font-size:26px;font-weight:600;line-height:32px}.desktop-navigation{gap:20px;margin-right:180px;display:flex}.desktop-navigation a{min-width:65px;font-size:13px;font-weight:500;line-height:22px}.desktop-navigation a:nth-child(3){min-width:75px}.desktop-navigation a:hover,.social-links a:hover,.footer-links a:hover{color:var(--accent)}.menu-toggle,.mobile-navigation{display:none}.button{border:1px solid #0000;border-radius:4px;justify-content:flex-start;align-items:center;gap:12px;min-width:226px;min-height:48px;padding:13px 23px;font-size:13px;font-weight:600;line-height:20px;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.button-primary{color:var(--paper);background:var(--forest)}.button-primary:hover{background:#46513e}.button-secondary{border-color:var(--line);color:var(--ink);background:0 0}.button-secondary:hover{border-color:var(--forest);background:#30392f0a}.button-row{flex-wrap:wrap;gap:14px;display:flex}.hero{padding-top:60px;padding-bottom:66px;position:relative}.hero-kicker{color:var(--accent);margin-bottom:30px}.hero-heading{max-width:1220px;font-size:clamp(62px,6.32vw,91px);line-height:1.11}.hero-bottom{margin-top:30px}.hero-copy{width:900px;max-width:100%}.hero-copy>p{color:var(--muted);max-width:710px;margin-bottom:23px;font-size:18px;line-height:31px}.hero-animation{right:var(--gutter);aspect-ratio:22/15;width:clamp(310px,100vw - 1035px,420px);display:none;position:absolute;bottom:clamp(48px,12svh,120px)}.hero-animation .hero-animation-canvas{width:100%;height:100%;transition:transform .5s;display:block;overflow:visible}.hero-animation:hover .hero-animation-canvas{transform:translateY(-3px)}.hero-animation text{font-family:var(--font-manrope), Arial, sans-serif}.hero-animation .hero-animation-note{font-family:var(--font-fraunces), Georgia, serif;fill:var(--accent);font-size:15px}.hero-animation .hero-animation-address{fill:var(--muted);font-size:7px}.hero-animation .hero-animation-brand{font-size:10px;font-weight:600}.hero-animation .hero-animation-navigation{fill:var(--muted);font-size:6px}.hero-animation .hero-animation-display{font-family:var(--font-fraunces), Georgia, serif;fill:var(--paper);font-size:24px}.hero-animation .hero-animation-body{font-size:7px}.hero-animation .hero-animation-button{fill:var(--paper);font-size:7px;font-weight:500}.hero-animation .hero-animation-subheading{font-family:var(--font-fraunces), Georgia, serif;font-size:13px}.hero-animation .hero-animation-mobile-brand{font-size:6px;font-weight:600}.hero-animation .hero-animation-mobile-display{font-family:var(--font-fraunces), Georgia, serif;fill:var(--paper);font-size:15px}.hero-animation .hero-animation-mobile-button{fill:var(--paper);font-size:4.8px;font-weight:500}.hero-animation .hero-animation-mobile-subheading{font-family:var(--font-fraunces), Georgia, serif;font-size:9px}.hero-animation .hero-animation-label{fill:var(--muted);font-size:11px}.hero-animation-sketch,.hero-animation-fold,.hero-animation-label-idea,.hero-animation-label-design{opacity:0}.hero-animation-sheet{transform-origin:197px 143px}.hero-animation-phone{transform-origin:359px 196px}.hero-animation-progress{stroke-dasharray:121;stroke-dashoffset:0}.hero-animation[data-motion=running],.hero-animation[data-motion=paused]{--hero-cycle:12s}.hero-animation:is([data-motion=running],[data-motion=paused]) .hero-animation-sheet{animation:hero-paper-to-browser var(--hero-cycle) ease-in-out infinite}.hero-animation:is([data-motion=running],[data-motion=paused]) :is(.hero-animation-sketch,.hero-animation-fold){animation:hero-wireframe var(--hero-cycle) ease-in-out infinite}.hero-animation:is([data-motion=running],[data-motion=paused]) .hero-animation-pencil-line{stroke-dasharray:1150;animation:hero-pencil var(--hero-cycle) ease-in-out infinite}.hero-animation:is([data-motion=running],[data-motion=paused]) :is(.hero-animation-browser,.hero-animation-product){animation:hero-page-reveal var(--hero-cycle) ease-in-out infinite}.hero-animation:is([data-motion=running],[data-motion=paused]) .hero-animation-phone{animation:hero-phone-reveal var(--hero-cycle) cubic-bezier(.22,1,.36,1) infinite}.hero-animation:is([data-motion=running],[data-motion=paused]) .hero-animation-label-idea{animation:hero-label-idea var(--hero-cycle) ease-in-out infinite}.hero-animation:is([data-motion=running],[data-motion=paused]) .hero-animation-label-design{animation:hero-label-design var(--hero-cycle) ease-in-out infinite}.hero-animation:is([data-motion=running],[data-motion=paused]) .hero-animation-label-product{animation:hero-label-product var(--hero-cycle) ease-in-out infinite}.hero-animation:is([data-motion=running],[data-motion=paused]) .hero-animation-progress{animation:hero-idea-progress var(--hero-cycle) linear infinite}.hero-animation[data-motion=paused] *,.hero-animation:hover *{animation-play-state:paused!important}@keyframes hero-paper-to-browser{0%,22%,to{transform:rotate(-5deg)translateY(2px)}36%,84%{transform:rotate(0)translateY(0)}}@keyframes hero-wireframe{0%,22%,to{opacity:1}34%,88%{opacity:0}}@keyframes hero-pencil{0%{stroke-dashoffset:1150px}18%,84%{stroke-dashoffset:0}to{stroke-dashoffset:1150px}}@keyframes hero-page-reveal{0%,23%,to{opacity:0;transform:translateY(4px)}35%,84%{opacity:1;transform:translateY(0)}}@keyframes hero-phone-reveal{0%,45%,to{opacity:0;transform:translate(35px,16px)scale(.94)}59%,82%{opacity:1;transform:translate(0)scale(1)}92%{opacity:0;transform:translate(20px,10px)scale(.96)}}@keyframes hero-label-idea{0%,22%,to{opacity:1}28%,92%{opacity:0}}@keyframes hero-label-design{0%,25%,58%,to{opacity:0}31%,51%{opacity:1}}@keyframes hero-label-product{0%,54%,to{opacity:0}61%,84%{opacity:1}}@keyframes hero-idea-progress{0%,to{stroke-dashoffset:121px}84%,92%{stroke-dashoffset:0}}@media (min-width:1200px){.hero-animation{display:block}}@media (min-width:1200px) and (max-height:760px){.hero-animation{width:310px}}@media (min-width:1200px) and (max-height:650px){.hero-animation{width:270px}}.selected-work{padding-top:12px;padding-bottom:72px}.work-heading-row{border-top:1px solid var(--line);align-items:center;gap:40px;margin-bottom:32px;padding-top:32px;display:flex}.work-heading-row>div{flex:0 770px;min-width:0}.section-heading .eyebrow{margin-bottom:12px}.work-intro{width:380px;color:var(--muted);flex:0 380px;font-size:15px;line-height:26px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;display:grid}.project-collection{min-width:0}.project-carousel-controls{display:none}.project-card{min-width:0;display:block}.project-image{aspect-ratio:1/.64;background:var(--sage);border-radius:4px;width:100%;position:relative;overflow:hidden}.project-image img{object-fit:cover;object-position:center top;transition:transform .45s}.project-card:hover .project-image img{transform:scale(1.025)}.project-card-info{padding-top:14px}.project-category{margin-bottom:7px}.project-card-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.project-card-title h3{font-size:24px;font-weight:600;line-height:32px}.project-card-title svg{color:var(--accent);width:24px;height:24px;transition:transform .2s}.project-card:hover .project-card-title svg{transform:translate(2px,-2px)}.collaboration-note{background:var(--sage);flex-direction:column;align-items:flex-start;gap:23px;min-height:498px;padding:48px;display:flex}.collaboration-note .display{font-size:43px}.collaboration-heading .eyebrow{margin-bottom:23px}.note-copy{max-width:460px;color:var(--muted);font-size:16px;line-height:28px}.systems-section{background:var(--sage)}.systems-inner{padding-block:55px 66px}.systems-inner>.eyebrow,.systems-inner>.display{margin-bottom:29px}.systems-copy{color:var(--muted);margin-bottom:29px;font-size:16px;line-height:27px}.project-card-compact .project-image{aspect-ratio:1/.64}.capabilities-section{padding-block:48px}.capabilities-heading-row{grid-template-columns:1.08fr .92fr;align-items:end;gap:24px;margin-bottom:24px;display:grid}.capabilities-heading-row .eyebrow{margin-bottom:16px}.capabilities-heading-row .display{font-size:54px}.capabilities-intro{max-width:365px;color:var(--muted);margin-bottom:6px;margin-left:auto;font-size:15px;line-height:26px}.capability-grid{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:24px;display:grid}.approach-panel{min-width:0;color:var(--paper);background:var(--forest);border-radius:4px;flex-direction:column;padding:28px;display:flex}.approach-kicker{color:#f8f6f0c2;margin-bottom:20px}.approach-tabs{border:1px solid #f8f6f038;border-radius:4px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;display:grid}.approach-tabs button{min-width:0;min-height:44px;color:var(--paper);cursor:pointer;background:0 0;border:0;border-radius:2px;padding:8px;font-size:13px;font-weight:500;line-height:20px}.approach-tabs button:hover{background:#f8f6f01a}.approach-tabs button[aria-selected=true]{background:var(--paper);color:var(--forest)}.approach-tabs button:focus-visible,.approach-stage:focus-visible{outline-color:var(--paper)}.approach-stage{margin-top:28px}.approach-story{grid-template-columns:84px minmax(0,1fr);align-items:start;gap:20px;min-height:150px;display:grid}.approach-number{color:#f8f6f066;font-size:76px;line-height:1}.approach-story h3{margin-bottom:14px;font-size:32px;line-height:38px}.approach-story p{color:#f8f6f0d6;max-width:430px;font-size:14px;line-height:25px}.approach-outcomes{flex-wrap:wrap;gap:8px;margin:0;padding:22px 0 0;list-style:none;display:flex}.approach-outcomes li{color:#f8f6f0e0;border:1px solid #f8f6f038;border-radius:3px;padding:5px 10px;font-size:11px;line-height:19px}.toolkit-panel{background:var(--sage);border-radius:4px;flex-direction:column;min-width:0;padding:28px;display:flex}.toolkit-heading .eyebrow{color:var(--muted);margin-bottom:8px}.toolkit-heading h3{font-size:27px;line-height:34px}.toolkit-groups{margin-top:16px}.toolkit-group{border-bottom:1px solid var(--line);grid-template-columns:24px minmax(0,1fr);align-items:start;gap:14px;padding-block:14px;display:grid}.toolkit-group>svg{width:23px;height:23px;color:var(--forest);margin-top:2px}.toolkit-group h4{margin:0 0 3px;font-size:14px;font-weight:600;line-height:22px}.toolkit-group p{color:var(--muted);font-size:12px;line-height:22px}.toolkit-resume{justify-content:space-between;align-items:center;gap:12px;min-height:44px;margin-top:auto;padding-top:10px;font-size:12px;font-weight:600;line-height:22px;display:inline-flex}.toolkit-resume svg{width:19px;height:19px;color:var(--accent)}.toolkit-resume:hover{color:var(--accent)}.capability-focus{border-top:1px solid var(--line);grid-template-columns:180px minmax(0,1fr);align-items:center;gap:32px;margin-top:24px;padding-top:20px;display:grid}.capability-focus .eyebrow{color:var(--accent)}.capability-focus h3{font-size:26px;line-height:34px}@media (min-width:701px) and (max-height:800px){.capabilities-section{padding-block:20px}.capabilities-heading-row{margin-bottom:18px}.capabilities-heading-row .eyebrow{margin-bottom:12px}.capabilities-heading-row .display{font-size:44px}.approach-panel,.toolkit-panel{padding:20px}.approach-kicker{margin-bottom:12px}.approach-stage{margin-top:18px}.approach-story{min-height:130px}.approach-outcomes{padding-top:16px}.toolkit-heading h3{font-size:25px;line-height:31px}.toolkit-groups{margin-top:12px}.toolkit-group{padding-block:8px}.capability-focus{margin-top:18px;padding-top:16px}}.about-section{background:var(--sage)}.about-inner{grid-template-columns:445px minmax(0,1fr);gap:88px;padding-block:65px 68px;display:grid}.personal-gallery{width:100%;min-width:0}.personal-gallery-stage{--shuffle-x:72px;touch-action:pan-y pinch-zoom;height:510px;position:relative}.personal-photo{background:var(--paper);transform-origin:50% 70%;border:1px solid #30392f1a;border-radius:3px;width:calc(100% - 36px);padding:12px;transition:transform .62s cubic-bezier(.22,1,.36,1),box-shadow .62s;position:absolute;top:24px;left:18px;box-shadow:0 8px 24px #30392f1f}.personal-photo[data-order="0"]{z-index:3;transform:translate(0)rotate(-1deg);box-shadow:0 12px 28px #30392f26}.personal-photo[data-order="1"]{z-index:2;transform:translate(14px,-8px)rotate(5deg)scale(.97)}.personal-photo[data-order="2"]{z-index:1;transform:translate(-13px,9px)rotate(-6deg)scale(.94)}.personal-gallery-stage[data-shuffling=true] .personal-photo{transition-delay:.16s}.personal-photo[data-shuffle=to-back]{animation:.88s cubic-bezier(.45,0,.2,1) both photo-to-back}.personal-photo[data-shuffle=to-front]{animation:.88s cubic-bezier(.45,0,.2,1) both photo-to-front}@keyframes photo-to-back{0%{z-index:4;transform:translate(0)rotate(-1deg)}42%,49%{z-index:4;transform:translate(var(--shuffle-x),-7%) rotate(10deg) scale(.92)}50%{z-index:1;transform:translate(var(--shuffle-x),-7%) rotate(10deg) scale(.92)}to{z-index:1;transform:translate(-13px,9px)rotate(-6deg)scale(.94)}}@keyframes photo-to-front{0%{z-index:1;transform:translate(-13px,9px)rotate(-6deg)scale(.94)}42%,49%{z-index:1;transform:translate(var(--shuffle-x),-7%) rotate(10deg) scale(.92)}50%{z-index:4;transform:translate(var(--shuffle-x),-7%) rotate(10deg) scale(.92)}to{z-index:4;transform:translate(0)rotate(-1deg)}}.personal-photo-image{background:#eeeee6;height:405px;overflow:hidden}.personal-photo-image img{object-fit:cover;width:100%;height:100%}.personal-photo-outdoors img{object-position:65% center}.personal-photo-dog img{object-position:center top}.personal-photo-cats img{object-fit:contain}.personal-photo figcaption{color:var(--muted);min-height:19px;margin-top:12px;font-size:11px;line-height:19px}.personal-photo[aria-hidden=true] figcaption{visibility:hidden}.personal-photo[data-shuffle] figcaption{visibility:visible}.personal-gallery-controls{justify-content:space-between;align-items:center;margin-top:12px;padding-inline:18px;display:flex}.personal-gallery-controls p{letter-spacing:.08em;color:var(--muted);font-size:11px}.personal-gallery-controls>div{gap:8px;display:flex}.personal-gallery-controls button{border:1px solid var(--line);min-width:44px;min-height:44px;color:var(--ink);background:0 0;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.personal-gallery-controls button:hover{border-color:var(--forest);background:#30392f0a}.personal-gallery-controls svg{width:16px;height:16px}.about-copy{flex-direction:column;align-items:flex-start;gap:20px;display:flex}.about-copy .display{font-size:54px}.biography,.personal-note{color:var(--muted);max-width:650px;font-size:17px;line-height:30px}.experience-line{border-top:1px solid var(--line);width:100%;padding-top:20px;font-size:14px;font-weight:500;line-height:24px}.about-actions{align-items:center;gap:32px;display:flex}.social-links{align-items:center;gap:22px;font-size:12px;display:flex}.contact-section{background:var(--forest);color:var(--paper)}.contact-inner{grid-template-columns:minmax(0,.95fr) minmax(0,1fr);align-content:center;align-items:center;gap:72px;padding-block:65px;display:grid}.contact-intro{flex-direction:column;align-items:flex-start;gap:27px;display:flex}.contact-kicker{color:var(--paper)}.contact-inner .display{font-size:68px}.contact-copy{font-size:17px;line-height:30px}.contact-email{overflow-wrap:anywhere;align-items:center;gap:12px;font-size:20px;font-weight:500;line-height:32px;display:inline-flex}.contact-email:hover{text-decoration:underline}.contact-email svg{width:24px;height:24px}.mobile-break{display:none}.contact-section :is(a,button,input,textarea):focus-visible{outline:2px solid var(--paper);outline-offset:4px}.contact-form{flex-direction:column;gap:22px;width:100%;min-width:0;display:flex;position:relative}.contact-field-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;display:grid}.contact-field{flex-direction:column;gap:8px;min-width:0;display:flex}.contact-field label{font-size:13px;font-weight:500;line-height:22px}.contact-field :is(input,textarea){width:100%;min-width:0;color:var(--paper);font:inherit;background:#f8f6f009;border:1px solid #f8f6f066;border-radius:4px;padding:12px 14px;font-size:16px;line-height:26px;transition:border-color .18s}.contact-field :is(input,textarea)::placeholder{color:#f8f6f08c;opacity:1}.contact-field :is(input,textarea):hover{border-color:#f8f6f0b3}.contact-field :is(input,textarea)[aria-invalid=true]{border-color:#eab7a8}.contact-field input{min-height:52px}.contact-field textarea{resize:vertical;min-height:150px}.contact-field-error{color:#f5cabc;font-size:12px;line-height:20px}.contact-form-footer{align-items:center;gap:20px;display:flex}.contact-submit{background:var(--paper);color:var(--forest);justify-content:space-between;min-width:180px}.contact-submit:hover{background:#e9ece1}.contact-submit:disabled{cursor:wait;opacity:.7}.contact-submit svg{width:19px;height:19px}.contact-privacy{color:#f8f6f0bd;max-width:260px;font-size:11px;line-height:20px}.contact-form-status{min-height:48px;font-size:13px;line-height:24px}.contact-form-status[data-status=error]{color:#f5cabc}.contact-form-status:focus{outline:none}.contact-honeypot{clip-path:inset(50%);width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.site-footer{padding-block:24px 32px}.footer-inner{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding-top:18px;font-size:12px;line-height:21px;display:flex}.footer-inner>p{color:var(--muted)}.footer-links{align-items:center;gap:32px;display:flex}.footer-links>a{align-items:center;gap:7px;display:flex}.footer-links svg{width:14px;height:14px}.project-intro{padding-block:45px 44px;position:relative}.breadcrumbs{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:25px;display:flex}.breadcrumbs a:hover{color:var(--accent)}.project-intro h1{margin-bottom:25px;font-size:clamp(56px,6.12vw,88px)}.project-summary{max-width:1040px;color:var(--muted);margin-bottom:25px;font-size:21px;line-height:33px}.project-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:calc(100% - 260px);display:grid}.project-facts dt{margin-bottom:7px}.project-facts dd{margin:0;font-size:16px;line-height:27px}.project-live-link{right:var(--gutter);position:absolute;bottom:44px}.internal-project-note{color:var(--muted);margin-top:25px;font-size:13px}.project-hero{padding-bottom:56px}.project-video{aspect-ratio:16/10;border:1px solid var(--line);background:var(--sage);object-fit:contain;border-radius:4px;width:100%;height:auto;display:block}.project-video:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.project-hero-image{aspect-ratio:1296/560;border:1px solid var(--line);border-radius:4px;width:100%;position:relative;overflow:hidden}.project-hero-image img{object-fit:cover;object-position:center top}.project-hero figcaption,.project-gallery figcaption,.mobile-project-capture figcaption{color:var(--muted);flex-wrap:wrap;gap:5px 16px;margin-top:14px;font-size:12px;line-height:21px;display:flex}.project-hero figcaption a{color:var(--ink);align-items:center;gap:5px;display:inline-flex}.project-hero figcaption svg{width:14px;height:14px}.project-hero figcaption a:hover{text-decoration:underline}.project-story{grid-template-columns:475fr 730fr;gap:90px;padding-block:15px 60px;display:grid}.project-story>div{flex-direction:column;align-items:flex-start;gap:20px;display:flex}.project-story .display{font-size:44px}.project-story p:not(.eyebrow){color:var(--muted);font-size:16px;line-height:29px}.contribution-heading{font-family:var(--font-manrope), Arial, sans-serif;font-size:23px;font-weight:500;line-height:35px}.technology-list{border-top:1px solid var(--line);width:100%;color:var(--accent);flex-wrap:wrap;gap:8px 20px;margin:0;padding:18px 0 0;font-size:13px;line-height:23px;list-style:none;display:flex}.project-features{background:var(--sage);padding-block:48px 52px}.project-features .eyebrow{margin-bottom:28px}.project-features .display{margin-bottom:28px;font-size:48px}.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;display:grid}.feature-grid h3{margin-bottom:16px;font-size:22px;font-weight:600;line-height:30px}.feature-grid p{color:var(--muted);max-width:375px;font-size:15px;line-height:27px}.project-responsive{grid-template-columns:minmax(0,1fr) 390px;align-items:center;gap:90px;padding-block:64px;display:grid}.project-responsive .display{margin-block:20px}.project-responsive p:not(.eyebrow){color:var(--muted);font-size:16px}.text-link{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding-bottom:5px;font-size:14px;font-weight:600;display:inline-flex}.text-link:hover{border-color:var(--accent);color:var(--accent)}.project-responsive .text-link{margin-top:24px}.mobile-project-capture img{border:1px solid var(--line);border-radius:4px;width:100%;height:auto}.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding-block:64px;display:grid}.gallery-image{aspect-ratio:636/420;border:1px solid var(--line);border-radius:4px;width:100%;position:relative;overflow:hidden}.gallery-image img{object-fit:contain;object-position:center}.next-project{padding-block:50px}.next-project>.eyebrow{margin-bottom:24px}.next-project-link{justify-content:space-between;align-items:center;gap:24px;max-width:1100px;display:flex}.next-project-link svg{color:var(--accent);width:40px;height:40px}.next-project-link:hover{color:var(--accent)}.next-project>p:not(.eyebrow){color:var(--muted);margin-top:24px;font-size:14px}.next-project>.button{margin-top:24px}.next-project>.project-contact{border-top:1px solid var(--line);color:var(--ink);margin-top:24px;padding-top:24px;font-size:20px;line-height:31px}.project-contact a{text-decoration:underline}.resume-page{max-width:1200px;padding-block:50px 65px}.resume-heading{justify-content:space-between;align-items:center;gap:24px;display:flex}.resume-heading .eyebrow{margin-bottom:20px}.resume-heading h1{margin-bottom:15px;font-size:80px}.resume-title{color:var(--muted);font-size:18px}.resume-contact{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:24px 40px;padding-block:24px;font-size:14px;display:flex}.resume-contact>a:hover{color:var(--accent)}.resume-summary{max-width:880px;margin-block:35px 45px;font-size:20px;line-height:34px}.resume-section{border-top:1px solid var(--line);grid-template-columns:260px minmax(0,1fr);gap:45px;padding-block:32px;display:grid}.resume-section>h2{font-size:35px}.resume-entry+.resume-entry{margin-top:28px}.resume-entry h3{margin-bottom:8px;font-size:19px;font-weight:600;line-height:30px}.resume-entry h3 a:hover{color:var(--accent)}.resume-entry>p,.resume-entry li{color:var(--muted);font-size:15px;line-height:27px}.resume-entry>.resume-role{color:var(--accent);font-size:13px;font-weight:500}.resume-entry ul{margin-block:12px 0;padding-left:20px}.resume-entry li+li{margin-top:7px}.resume-back{margin-top:30px}.not-found{min-height:65vh;padding-block:70px 120px}.not-found .display{max-width:800px;margin-block:25px;font-size:64px}.not-found>p:not(.eyebrow){color:var(--muted);max-width:700px}.not-found .button{margin-top:30px}@media (min-width:1441px){.hero-heading{font-size:91px}}.home-page{--opening-header-height:88px}.home-page>section{scroll-snap-align:start;scroll-snap-stop:normal}html:has(.home-page){scroll-snap-type:y mandatory;scroll-padding-top:0;overflow-x:clip}body:has(.home-page)>.site-footer{scroll-snap-align:end}.home-page .hero{min-height:calc(100vh - var(--opening-header-height));min-height:calc(100svh - var(--opening-header-height));scroll-margin-top:var(--opening-header-height);flex-direction:column;justify-content:center;display:flex}.home-page>section:not(.hero),.home-page :is(.systems-inner,.about-inner,.contact-inner){min-height:100svh}.home-page :is(.selected-work,.systems-inner,.capabilities-section){flex-direction:column;justify-content:center;display:flex}.home-page .about-inner{align-items:center}.home-page .contact-inner{justify-content:center}@media (min-width:1101px){.home-page .selected-work{padding-block:24px}.home-page .systems-inner{padding-block:48px}.home-page .selected-work .project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px}.home-page .collaboration-note{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;align-items:center;gap:32px;min-height:0;padding:20px;display:grid}.home-page .collaboration-heading .eyebrow{margin-bottom:8px}.home-page .collaboration-note .display{font-size:30px}.home-page .note-copy{font-size:14px;line-height:24px}.project-grid>[data-reveal]:nth-child(2n),.capability-grid>[data-reveal]:nth-child(2){--reveal-delay:80ms}}[data-reveal-state=pending]{opacity:0;transform:translateY(18px)}[data-reveal-state=visible]{opacity:1;transition:opacity .56s ease-out var(--reveal-delay,0s), transform .56s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay,0s);transform:translateY(0)}[data-reveal]:focus-within{opacity:1;transition:none;transform:none}@media print{html:has(.home-page){scroll-snap-type:none}.home-page>section,.home-page :is(.systems-inner,.about-inner,.contact-inner){min-height:0!important}[data-reveal]{opacity:1!important;transform:none!important}}@media (max-width:1100px){:root{--gutter:44px}.desktop-navigation{margin-right:0}.display{font-size:46px}.hero-heading{font-size:clamp(52px,6.65vw,68px)}.hero-copy>p{font-size:17px}.work-intro{max-width:300px;margin-right:0}.collaboration-note{gap:20px;min-height:440px;padding:32px}.collaboration-note .display{font-size:36px}.about-inner{grid-template-columns:minmax(280px,.7fr) 1fr;gap:44px}.about-copy .display{font-size:46px}.personal-gallery-stage{--shuffle-x:28px;height:495px}.personal-photo-image{height:390px}.about-actions{flex-wrap:wrap;gap:20px}.project-story{gap:44px}.project-facts{max-width:100%}.project-live-link{margin-top:25px;position:static}.project-responsive{grid-template-columns:1fr 330px;gap:44px}.contact-inner .display{font-size:58px}.contact-inner{gap:44px}.contact-form-footer{flex-direction:column;align-items:flex-start;gap:14px}.resume-section{grid-template-columns:220px minmax(0,1fr);gap:30px}}@media (max-width:700px){:root{--gutter:24px}html{scroll-padding-top:16px}body{font-size:15px}.desktop-copy{display:none}.mobile-copy{display:inline}.mobile-break{display:block}.display{font-size:38px}.desktop-navigation{display:none}.brand{font-size:22px}.menu-toggle{min-height:44px;color:var(--ink);background:0 0;border:0;justify-content:flex-end;align-items:center;gap:8px;padding:8px 0 8px 16px;font-size:13px;line-height:22px;display:inline-flex}.menu-toggle svg{width:16px;height:16px}.header-inner{padding-top:22px}.mobile-navigation{padding:20px var(--gutter) 0;border-bottom:1px solid var(--line);margin-inline:var(--gutter);grid-template-columns:1fr 1fr;gap:4px 16px;padding-inline:0;display:grid}.mobile-navigation a{padding:12px 0;font-size:14px}.hero{padding-top:27px;padding-bottom:36px}.home-page{--opening-header-height:94px}.home-page .about-inner{justify-content:center;align-items:stretch}.hero-kicker{margin-bottom:21px}.hero-heading{max-width:480px;font-size:46px;line-height:1.11}.hero-bottom{margin-top:21px;display:block}.hero-copy{width:100%;max-width:none}.hero-copy>p{margin-bottom:21px;font-size:15px;line-height:26px}.button-row{flex-direction:column;align-items:flex-start;gap:12px}.button{min-width:226px}.selected-work{padding-top:16px;padding-bottom:34px}.work-heading-row{margin-bottom:28px;padding-top:28px;display:block}.section-heading .eyebrow{margin-bottom:28px}.work-heading-row .display{font-size:36px}.work-intro,.collaboration-note{display:none}.project-grid{grid-template-columns:1fr;gap:28px}.project-collection .project-grid{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;gap:18px;display:flex;overflow-x:auto}.project-collection .project-grid::-webkit-scrollbar{display:none}.project-collection .project-card{scroll-snap-align:start;flex:0 0 100%}.project-collection .project-card:focus-visible{outline-offset:-2px}.project-collection[data-ready=true] .project-carousel-controls{justify-content:space-between;align-items:center;gap:16px;margin-top:18px;display:flex}.project-carousel-count{letter-spacing:.08em;color:var(--muted);font-size:11px;position:relative}.project-carousel-count .sr-only{inset:0 auto auto 0}.project-carousel-actions{align-items:center;gap:6px;display:flex}.project-carousel-actions button{border:1px solid var(--line);min-width:44px;min-height:44px;color:var(--ink);background:0 0;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:10px;font-size:12px;line-height:20px;display:inline-flex}.project-carousel-actions button:hover{border-color:var(--forest)}.project-carousel-actions svg{width:16px;height:16px}.project-carousel-actions .carousel-playback{margin-right:8px}.project-image{aspect-ratio:342/236}.project-card-title h3{font-size:24px}.project-card-compact .project-image{aspect-ratio:342/210}.systems-inner{padding-block:35px}.systems-inner>.eyebrow,.systems-inner>.display{margin-bottom:27px}.systems-inner>.display{max-width:300px;font-size:38px}.systems-copy{display:none}.capabilities-section{padding-block:22px}.capabilities-heading-row{margin-bottom:18px;display:block}.capabilities-heading-row .eyebrow{margin-bottom:16px}.capabilities-heading-row .display{font-size:37px}.capabilities-intro{display:none}.capability-grid{grid-template-columns:1fr;gap:16px}.approach-panel,.toolkit-panel{padding:16px}.approach-kicker{margin-bottom:12px;font-size:10px;line-height:15px}.approach-tabs button{padding-inline:4px;font-size:12px}.approach-stage{margin-top:16px}.approach-story{grid-template-columns:42px minmax(0,1fr);gap:12px;min-height:136px}.approach-number{font-size:40px;line-height:44px}.approach-story h3{margin-bottom:10px;font-size:23px;line-height:28px}.approach-story p{font-size:13px;line-height:22px}.approach-outcomes,.toolkit-heading .eyebrow{display:none}.toolkit-heading h3{font-size:23px;line-height:29px}.toolkit-groups{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.toolkit-group{border:0;padding:0;display:block}.toolkit-group>svg{width:20px;height:20px;margin:0 0 8px}.toolkit-group h4{margin:0 0 5px;font-size:11px;line-height:18px}.toolkit-group p{font-size:11px;line-height:19px}.toolkit-resume{border-top:1px solid var(--line);margin-top:12px;padding-top:10px;font-size:11px}.toolkit-resume svg{width:16px;height:16px}.capability-focus{margin-top:18px;padding-top:16px;display:block}.capability-focus .eyebrow{margin-bottom:8px;font-size:10px;line-height:15px}.capability-focus h3{font-size:21px;line-height:29px}.about-inner{flex-direction:column;gap:18px;padding-block:28px;display:flex}.about-copy{display:contents}.about-copy>.eyebrow{order:0}.about-copy>.display{order:1;font-size:36px}.personal-gallery{order:2}.personal-gallery-stage{--shuffle-x:18px;height:280px}.personal-photo{width:calc(100% - 28px);padding:8px;top:14px;left:14px}.personal-photo-image{height:210px}.personal-photo figcaption{min-height:17px;margin-top:10px;font-size:10px;line-height:17px}.personal-gallery-controls{margin-top:8px;padding-inline:14px}.biography,.personal-note{font-size:15px;line-height:27px}.biography{order:3}.personal-note{order:4}.experience-line{display:none}.about-actions{flex-flow:wrap;order:5;align-items:center;gap:16px;display:flex}.about-actions .button{min-width:155px}.about-actions .social-links{gap:16px}.contact-inner{grid-template-columns:minmax(0,1fr);gap:24px;padding-block:35px 38px}.contact-intro{gap:18px}.contact-inner .display{max-width:340px;font-size:40px}.contact-copy{font-size:15px;line-height:26px}.contact-email{gap:10px;font-size:19px;line-height:29px}.contact-email svg{width:20px;height:20px}.contact-form{gap:16px}.contact-field-row{grid-template-columns:minmax(0,1fr);gap:14px}.contact-field textarea{min-height:130px}.contact-form-footer{gap:12px}.contact-submit{width:100%}.contact-privacy{max-width:none}.contact-form-status{min-height:40px}.footer-inner{flex-direction:column;align-items:flex-start;gap:18px;font-size:11px;display:flex}.footer-links{gap:22px}.footer-links .social-links{font-size:11px}.project-intro{padding-block:27px 30px}.breadcrumbs{gap:7px;margin-bottom:22px;font-size:10px}.project-intro h1{overflow-wrap:anywhere;margin-bottom:22px;font-size:48px}.project-summary{margin-bottom:24px;font-size:17px;line-height:29px}.project-facts{grid-template-columns:1fr;gap:18px}.project-facts dd{font-size:15px;line-height:25px}.project-live-link{margin-top:24px}.project-hero{padding-bottom:35px}.project-hero-image{aspect-ratio:342/236}.project-story{grid-template-columns:1fr;gap:35px;padding-block:0 35px}.project-story .display{font-size:36px}.project-story>div{gap:20px}.project-story p:not(.eyebrow){font-size:15px;line-height:27px}.contribution-heading{font-size:21px;line-height:30px}.project-features{padding-block:35px}.project-features .eyebrow{margin-bottom:20px}.project-features .display{margin-bottom:28px;font-size:36px}.feature-grid{grid-template-columns:1fr;gap:27px}.feature-grid h3{margin-bottom:12px;font-size:21px;line-height:28px}.feature-grid p{font-size:14px;line-height:25px}.project-responsive{grid-template-columns:1fr;gap:30px;padding-block:35px}.project-responsive .display{font-size:36px}.mobile-project-capture{max-width:390px;margin-inline:auto}.project-gallery{grid-template-columns:1fr;gap:28px;padding-block:35px}.next-project{padding-block:35px}.next-project-link .display{font-size:36px}.next-project-link svg{width:28px;height:28px}.next-project>.project-contact{font-size:17px;line-height:29px}.resume-page{padding-block:27px 35px}.resume-heading{display:block}.resume-heading h1{font-size:56px}.resume-title{font-size:15px}.resume-heading .button{margin-top:24px}.resume-contact{flex-direction:column;align-items:flex-start;gap:18px;font-size:13px}.resume-summary{margin-block:28px;font-size:17px;line-height:29px}.resume-section{grid-template-columns:1fr;gap:25px;padding-block:28px}.resume-section>h2{font-size:32px}.not-found{padding-block:35px 70px}.not-found .display{font-size:42px}}@media (prefers-reduced-motion:reduce){.hero-animation *{animation:none!important}.hero-animation .hero-animation-canvas{transition:none;transform:none!important}.personal-photo{transition:none;animation:none!important}html{scroll-behavior:auto}html:has(.home-page){scroll-snap-type:none}[data-reveal]{opacity:1!important;transition:none!important;transform:none!important}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{.hero-animation{display:none!important}.project-collection .project-grid{display:grid;overflow:visible}.project-collection .project-card{min-width:0}.project-collection .project-carousel-controls{display:none!important}}
