:root{--paper: #f4f3ee;--surface: #fbfaf7;--ink: #1d211e;--muted: #656b66;--line: rgba(29, 33, 30, .2);--line-light: rgba(255, 255, 255, .17);--accent: #31594c;--dark: #1d2622;--page: 1392px;font-family:Inter,Helvetica Neue,Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--paper)}a{color:inherit;text-decoration:none}a,button{-webkit-tap-highlight-color:transparent}figure{margin:0}.section-pad{padding-left:max(24px,calc((100vw - var(--page)) / 2));padding-right:max(24px,calc((100vw - var(--page)) / 2))}.site-header{width:min(100% - 48px,var(--page));height:68px;margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line);position:relative;z-index:10}.wordmark{width:max-content;display:inline-flex;align-items:center;gap:12px;font-size:14px;font-weight:650;letter-spacing:-.02em}.wordmark>span:first-child{width:30px;height:30px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;font-size:10px;letter-spacing:-.08em}.site-header nav{display:flex;gap:30px;font-size:13px}.site-header nav a,.text-link,.nav-cta,.project-link{position:relative}.site-header nav a:after,.text-link:after,.project-link:after{content:"";height:1px;position:absolute;left:0;right:100%;bottom:-5px;background:currentColor;transition:right .2s ease}.site-header nav a:hover:after,.text-link:hover:after,.project-link:hover:after{right:0}.header-actions{justify-self:end;display:flex;align-items:center;gap:20px}.header-resume{min-height:36px;padding:0 14px;display:inline-flex;align-items:center;gap:10px;color:#fff;background:var(--ink);border-radius:2px;font-size:12px}.nav-cta,.text-link,.project-link{display:inline-flex;align-items:center;gap:9px;font-size:13px}.hero{min-height:690px;padding-top:44px;padding-bottom:70px;display:flex;flex-direction:column;justify-content:space-between}.hero-kicker{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.hero h1{max-width:1160px;margin:68px 0 88px;font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:clamp(64px,8vw,120px);font-weight:400;line-height:.96;letter-spacing:-.062em}.hero-summary{display:grid;grid-template-columns:1.2fr .75fr auto;gap:56px;align-items:end;padding-top:28px;border-top:1px solid var(--line)}.hero-summary p{margin:0;max-width:650px;font-size:21px;line-height:1.45;letter-spacing:-.02em}.hero-summary .hero-note{max-width:370px;color:var(--muted);font-size:15px;line-height:1.6;letter-spacing:0}.hero-links{justify-self:end;display:flex;flex-direction:column;align-items:flex-start;gap:18px}.button{min-height:48px;padding:0 18px;display:inline-flex;align-items:center;gap:28px;color:#fff;background:var(--accent);border-radius:2px;font-size:13px}.fact-strip{min-height:112px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.fact-strip>div{padding:25px 28px;border-right:1px solid var(--line)}.fact-strip>div:first-child{padding-left:0}.fact-strip>div:last-child{border-right:0}.fact-strip span,.fact-strip strong{display:block}.fact-strip span{margin-bottom:10px;color:var(--muted);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.fact-strip strong{max-width:390px;font-family:Iowan Old Style,Georgia,serif;font-size:18px;font-weight:400;line-height:1.35}.section-label{margin:0;color:var(--muted);font-size:11px;font-weight:650;letter-spacing:.13em;text-transform:uppercase}.section-label.light{color:#98a19c}.section-heading{margin-bottom:84px;display:grid;grid-template-columns:.7fr 2.2fr .9fr;gap:48px;align-items:end}.section-heading h2{max-width:800px;margin:0;font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:clamp(48px,5vw,76px);font-weight:400;line-height:1;letter-spacing:-.052em}.section-heading>p:last-child{max-width:340px;margin:0 0 4px;color:var(--muted);font-size:15px;line-height:1.6}.section-heading.compact h2{font-size:clamp(42px,4.5vw,64px)}.work{padding-top:142px;padding-bottom:150px;background:var(--surface)}.case-study{border-top:1px solid var(--line)}.case-featured{padding:30px 0 100px;display:grid;grid-template-columns:.75fr 1.45fr;gap:72px}.case-meta{margin-bottom:50px;display:flex;justify-content:space-between;gap:20px;align-items:center}.project-index{font-family:Iowan Old Style,Georgia,serif;font-size:18px}.project-type{color:var(--muted);font-size:10px;letter-spacing:.1em;text-align:right;text-transform:uppercase}.case-info h3{margin:0 0 24px;font-family:Iowan Old Style,Georgia,serif;font-size:clamp(42px,4vw,64px);font-weight:400;line-height:1;letter-spacing:-.05em}.case-info p{max-width:580px}.case-info .case-lede{margin:0 0 18px;color:var(--ink);font-size:19px;line-height:1.5;letter-spacing:-.02em}.case-copy{margin:0 0 25px;color:var(--muted);font-size:15px;line-height:1.68}.project-link{width:max-content;margin:4px 0 0;color:var(--accent);font-weight:650}.tag-list{margin-top:30px;display:flex;flex-wrap:wrap;gap:7px}.tag-list span{padding:7px 10px;border:1px solid var(--line);border-radius:2px;color:#565c57;font-size:11px}.project-visual{aspect-ratio:1586 / 992;position:relative;overflow:hidden;background:#e2e4df;box-shadow:inset 0 0 0 1px #1d211e1f}.project-visual img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}.project-visual figcaption{position:absolute;right:12px;bottom:12px;padding:7px 9px;color:#ffffffeb;background:#121614d1;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.record-list{margin:28px 0 0;border-top:1px solid var(--line)}.record-list>div{padding:17px 0;display:grid;grid-template-columns:minmax(120px,.55fr) 1.45fr;gap:24px;border-bottom:1px solid var(--line)}.record-list dt{color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.record-list dd{margin:0;font-size:14px;line-height:1.55}.supporting-work-heading{padding-top:30px;display:grid;grid-template-columns:.7fr 2.2fr .9fr;gap:48px;border-top:1px solid var(--line)}.supporting-work-heading h3{grid-column:2 / 3;max-width:760px;margin:0;font-family:Iowan Old Style,Georgia,serif;font-size:34px;font-weight:400;line-height:1.2;letter-spacing:-.035em}.case-grid{margin-top:72px;display:grid;grid-template-columns:1fr 1fr;gap:80px 42px}.supporting-case{padding-top:0;border-top:0}.supporting-case .case-info{padding-top:24px;border-top:1px solid var(--line)}.supporting-case .case-meta{margin-bottom:36px}.supporting-case .case-info h3{font-size:clamp(36px,3.4vw,50px)}.supporting-case .record-list>div{grid-template-columns:110px 1fr}.technical-record{padding-top:125px;padding-bottom:120px;color:#edf0ed;background:var(--dark)}.technical-record .section-heading>p:last-child{color:#9ca59f}.technical-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-light)}.technical-grid>div{min-height:250px;padding:30px 30px 30px 0;border-right:1px solid var(--line-light)}.technical-grid>div:not(:first-child){padding-left:30px}.technical-grid>div:last-child{border-right:0}.technical-grid h3{margin:86px 0 20px;font-family:Iowan Old Style,Georgia,serif;font-size:24px;font-weight:400}.technical-grid p{margin:0;color:#a9b0ac;font-size:14px;line-height:1.7}.experience{padding-top:140px;padding-bottom:150px}.experience .section-heading>.text-link{justify-self:end;margin-bottom:8px}.experience-list{border-top:1px solid var(--line)}.experience-row{min-height:128px;display:grid;grid-template-columns:.8fr 1.35fr 1.5fr;gap:36px;align-items:center;border-bottom:1px solid var(--line)}.experience-date{color:var(--muted);font-family:Iowan Old Style,Georgia,serif;font-size:15px}.experience-row h3{margin:0;font-family:Iowan Old Style,Georgia,serif;font-size:23px;font-weight:400;line-height:1.25;letter-spacing:-.025em}.experience-row p{margin:0;display:grid;grid-template-columns:120px 1fr;gap:24px;font-size:14px;line-height:1.55}.experience-row p b{font-weight:650}.experience-row p span{color:var(--muted)}.contact{min-height:520px;padding-top:90px;color:#edf0ed;background:var(--dark);display:flex;flex-direction:column}.contact-main{margin-top:72px;display:grid;grid-template-columns:1fr 1fr;gap:60px}.contact-main h2{margin:0;font-family:Iowan Old Style,Georgia,serif;font-size:clamp(54px,7vw,96px);font-weight:400;line-height:.95;letter-spacing:-.055em}.contact-main>div{align-self:end}.contact-main p{max-width:530px;margin:0 0 30px;color:#b2b9b5;font-size:16px;line-height:1.65}.contact-email{width:max-content;padding-bottom:7px;display:flex;align-items:center;gap:14px;border-bottom:1px solid #86918a;font-size:clamp(17px,2vw,24px)}.contact-footer{min-height:100px;margin-top:auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-top:1px solid var(--line-light)}.contact-footer>div{display:flex;gap:26px;font-size:12px}.contact-footer>span{justify-self:end;color:#9ca59f;font-size:11px}@media(max-width:1000px){.site-header{width:calc(100% - 32px);grid-template-columns:1fr auto}.site-header nav{display:none}.hero-summary{grid-template-columns:1fr 1fr}.hero-links{grid-column:1 / -1;justify-self:start;flex-direction:row;align-items:center}.section-heading{grid-template-columns:.65fr 2fr}.section-heading>p:last-child{grid-column:2}.case-featured{grid-template-columns:1fr}.case-featured .case-info{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}.case-featured .case-meta,.case-featured h3{grid-column:1 / -1}.case-featured .project-link,.case-featured .tag-list,.case-featured .case-lede{grid-column:1}.case-featured .case-copy{grid-column:2;grid-row:3 / 5}.supporting-work-heading{grid-template-columns:.65fr 2fr}.supporting-work-heading h3{grid-column:2}.technical-grid{grid-template-columns:1fr 1fr}.technical-grid>div:nth-child(2){border-right:0}.technical-grid>div{border-bottom:1px solid var(--line-light)}.experience-row{grid-template-columns:110px 1fr;padding:28px 0}.experience-row p{grid-column:2}}@media(max-width:700px){.wordmark-name{display:none}.site-header{height:60px}.header-actions{gap:12px}.nav-cta{font-size:0}.nav-cta span{font-size:16px}.hero{min-height:calc(100svh - 60px);padding-top:30px;padding-bottom:42px}.hero-kicker span:last-child{display:none}.hero h1{margin:60px 0 70px;font-size:clamp(52px,15vw,78px)}.hero-summary{grid-template-columns:1fr;gap:22px}.hero-summary p{font-size:18px}.hero-summary .hero-note{font-size:14px}.hero-links{grid-column:1;margin-top:8px;flex-wrap:wrap}.fact-strip{grid-template-columns:1fr;padding-top:8px;padding-bottom:8px}.fact-strip>div,.fact-strip>div:first-child{padding:18px 0;border-right:0;border-bottom:1px solid var(--line)}.fact-strip>div:last-child{border-bottom:0}.work,.experience{padding-top:95px;padding-bottom:100px}.section-heading,.supporting-work-heading{grid-template-columns:1fr;gap:28px;margin-bottom:60px}.section-heading h2,.supporting-work-heading h3,.section-heading>p:last-child{grid-column:1}.section-heading h2{font-size:46px}.case-featured{padding-bottom:78px;gap:44px}.case-featured .case-info{display:block}.case-meta,.supporting-case .case-meta{margin-bottom:28px}.case-info h3,.supporting-case .case-info h3{font-size:40px}.project-visual figcaption{right:7px;bottom:7px;font-size:8px}.record-list>div,.supporting-case .record-list>div{grid-template-columns:1fr;gap:7px}.case-grid{grid-template-columns:1fr;gap:70px;margin-top:52px}.technical-record{padding-top:90px;padding-bottom:90px}.technical-grid{grid-template-columns:1fr}.technical-grid>div,.technical-grid>div:not(:first-child){min-height:auto;padding:27px 0;border-right:0}.technical-grid h3{margin:12px 0 14px}.experience .section-heading>.text-link{justify-self:start}.experience-row{grid-template-columns:1fr;gap:12px}.experience-row p{grid-column:1;grid-template-columns:1fr;gap:6px}.contact{min-height:560px;padding-top:78px}.contact-main{margin-top:58px;grid-template-columns:1fr;gap:40px}.contact-footer{grid-template-columns:1fr auto}.contact-footer>div{gap:16px}.contact-footer>div a:nth-child(3),.contact-footer>div a:nth-child(4),.contact-footer>span{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
