@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:light;--paper:#f4f2eb;--ink:#172e29;--muted:#65716a;--line:#d5d9cf;--accent:#cfe664;--green:#244b40;--body-copy:#526158;--link-hover:#6c8025;--focus:#7f9629;--button-text:#fff;--tag-line:#cbd2c4;--hover:#e9eddf;--timeline-line:#b6c1b1;--highlight:#cfe664;--contact-bg:#172e29;--contact-text:#f4f2eb}
:root[data-theme="dark"]{color-scheme:dark;--paper:#101c19;--ink:#f0f1e8;--muted:#abb9ad;--line:#35473e;--accent:#cfe664;--green:#cfe664;--body-copy:#bdcabe;--link-hover:#d6ed88;--focus:#cfe664;--button-text:#101c19;--tag-line:#4c6052;--hover:#20342a;--timeline-line:#526c58;--highlight:#354c2b;--contact-bg:#0a1511;--contact-text:#f0f1e8}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:6px}header{max-width:1320px;margin:auto;padding:30px 48px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.wordmark{font-weight:800;font-size:18px;letter-spacing:-.5px}.wordmark span{display:block;font-size:9px;letter-spacing:2px;font-weight:500;margin-top:2px}nav{display:flex;gap:34px;font-size:13px}nav a:hover,.text-link:hover{color:var(--link-hover)}.hero{max-width:1320px;margin:auto;padding:72px 48px 0;position:relative}.eyebrow,.section-label,.project-index,.date{font-size:11px;letter-spacing:1.7px;font-weight:600}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#819b34;margin-right:9px}.hero h1{font-family:Manrope,sans-serif;font-size:clamp(68px,8.7vw,122px);line-height:1.07;font-weight:500;letter-spacing:-7px;margin:36px 0 42px}em{font-family:Georgia,serif;font-weight:400}.hero h1 em{background:linear-gradient(transparent 78%,var(--highlight) 78%,var(--highlight) 94%,transparent 94%)}.hero-bottom{display:flex;justify-content:space-between;align-items:center;gap:40px}.hero-bottom p{max-width:520px;font-size:19px;line-height:1.65}.hero-links{display:flex;align-items:center;gap:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:45px;background:var(--ink);color:var(--button-text);padding:18px 24px;font-size:13px;border-radius:3px}.button:hover{background:var(--green)}.text-link{font-size:13px;border-bottom:1px solid var(--ink);padding-bottom:5px}.hero-meta{display:flex;justify-content:space-between;padding:30px 0;margin-top:50px;border-top:1px solid var(--line);font-size:10px;letter-spacing:1.1px;color:var(--muted)}.section{max-width:1320px;margin:auto;padding:96px 48px;border-top:1px solid var(--line)}h2{font-family:Manrope,sans-serif;font-size:clamp(30px,3.8vw,49px);line-height:1.2;font-weight:500;letter-spacing:-2px;margin:20px 0 26px}.intro{display:grid;grid-template-columns:1fr 2fr;gap:60px}.intro>div>p{max-width:730px}.large-copy{font-size:21px;line-height:1.6}.section-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:50px}.section-top>p{font-size:14px;color:var(--muted);padding-bottom:12px}.project{display:grid;grid-template-columns:1.1fr 1fr;gap:68px;align-items:center;margin:0 0 90px}.project.reverse .project-art{order:2}.project-art{min-height:370px;position:relative;padding:24px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;border-radius:4px}.art-label,.art-foot{font-size:9px;letter-spacing:1.4px}.metro{background:#dce3d6;color:#29473b;background-image:linear-gradient(#b6c4ac33 1px,transparent 1px),linear-gradient(90deg,#b6c4ac33 1px,transparent 1px);background-size:24px 24px}.relay{display:flex;align-items:center;justify-content:center;gap:12px}.relay span{background:#f4f2eb;border:1px solid #a8b7a0;padding:22px 14px;font-size:8px;letter-spacing:1px;box-shadow:4px 4px 0 #bbc8b0}.relay b{font-size:10px}.relay i{font-style:normal}.imaging{background:#173d34;color:#c9d8cf}.imaging svg{width:100%;max-height:270px}.defect{background:#e7e3d9;color:#4d5145}.balls{display:grid;grid-template-columns:repeat(7,24px);gap:12px;margin:auto}.balls span{width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 38% 35%,#f5f2e9,#8d9486 60%,#536554);box-shadow:0 2px 5px #1b2d2920}.balls span:nth-child(19),.balls span:nth-child(33){background:#d4e76c;outline:1px solid #6e812a;outline-offset:5px}.project-index{font-size:10px;color:var(--muted)}h3{font-family:Manrope,sans-serif;font-weight:600}.project h3{font-size:35px;line-height:1.2;letter-spacing:-1.5px;margin:16px 0 20px}.project-copy p{font-size:14px;color:var(--body-copy)}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:22px 0}.tags span{border:1px solid var(--tag-line);border-radius:3px;padding:3px 9px;font-size:10px}details{border-top:1px solid var(--line);padding-top:12px}summary{cursor:pointer;list-style:none;font-size:12px;display:flex;justify-content:space-between}summary::-webkit-details-marker{display:none}details[open] summary span{transform:rotate(45deg)}.more-work{border-top:1px solid var(--line);padding-top:18px}.more-work h3{font-size:20px}.more-work>a,.work-row{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding:21px 0}.more-work>a:hover{background:var(--hover)}.more-work b{font-size:17px;font-weight:500}.more-work small{display:block;font-size:12px;color:var(--muted);margin-top:3px}.more-work>a>span:last-child,.work-row>span:last-child{font-size:11px;color:var(--muted)}.experience{display:grid;grid-template-columns:1fr 1.1fr;gap:85px}.experience h2{font-size:40px}.timeline article{padding:0 0 28px 24px;margin-bottom:28px;border-left:1px solid var(--timeline-line);position:relative}.timeline article:before{content:'';position:absolute;width:7px;height:7px;background:#839b3b;left:-4px;top:5px;border-radius:50%}.date{font-size:9px;color:var(--muted)}.timeline h3{font-size:18px;margin:10px 0 2px;line-height:1.5}.timeline h3 span{font-weight:400}.timeline h4{font-weight:400;font-size:12px;margin:0;color:var(--muted)}.timeline p{font-size:13px;color:var(--body-copy);margin-bottom:0}.foundation-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:90px}.foundation-grid h3{font-size:17px;margin-top:35px}.foundation-grid p{font-size:13px}.foundation-grid strong{font-weight:500}.muted{color:var(--muted)}.skills{padding-top:16px}.skills>div{border-bottom:1px solid var(--line);padding:13px 0}.skills h4{font-size:13px;font-weight:600;margin:0}.skills p{color:var(--muted);margin:8px 0}.contact{max-width:none;background:var(--contact-bg);color:var(--contact-text);padding-left:max(48px,calc((100vw - 1224px)/2));padding-right:max(48px,calc((100vw - 1224px)/2))}.contact .eyebrow{color:#b7ca9b}.contact h2{font-size:clamp(40px,5.2vw,70px);margin-top:34px}.contact h2 em{color:var(--accent)}.contact>p{max-width:500px;color:#b8c7bc;font-size:15px}.contact-email{display:inline-block;font-size:clamp(19px,3vw,30px);border-bottom:1px solid #819584;margin:25px 0 55px;padding-bottom:8px}.contact-bottom{border-top:1px solid #3b5046;padding-top:25px;display:flex;justify-content:space-between;font-size:12px;color:#c0cbbf}.contact-bottom>div{display:flex;gap:25px}footer{padding:22px 48px;max-width:1320px;margin:auto;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.skip{position:absolute;top:-80px;background:var(--paper);padding:10px;z-index:10}.skip:focus{top:0}@media(max-width:800px){header{padding:22px 24px}nav{gap:18px;font-size:11px}.hero{padding:55px 24px 0}.hero h1{letter-spacing:-4px;font-size:76px}.hero-bottom{display:block}.hero-links{margin-top:25px}.hero-meta{display:block;line-height:2}.hero-meta span{display:block}.section{padding:65px 24px}.intro,.project,.experience,.foundation-grid{grid-template-columns:1fr;gap:25px}.intro .section-label{margin-bottom:0}.section-top{display:block}.project{margin-bottom:65px}.project.reverse .project-art{order:0}.project-art{min-height:330px}.section-top>p br{display:none}.more-work>a,.work-row{align-items:start}.more-work>a>span:last-child,.work-row>span:last-child{max-width:110px;text-align:right}.experience h2{font-size:36px}.timeline{margin-top:25px}.contact-bottom{display:block}.contact-bottom>div{margin-top:20px}.eyebrow{font-size:9px;letter-spacing:1.2px}footer{padding:22px 24px}}@media(max-width:420px){.wordmark{font-size:15px}.wordmark span{font-size:7px}nav{gap:13px}nav a:first-child{display:none}.hero h1{font-size:60px;letter-spacing:-3px}.hero-bottom p{font-size:17px}.hero-links{gap:22px}.button{gap:25px}.relay{gap:8px}.relay span{padding:20px 10px}.balls{gap:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Theme control: native button keyboard support and a 44px touch target. */
.header-actions{display:flex;align-items:center;gap:28px}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer}
.theme-toggle[hidden]{display:none}
.theme-toggle:hover{background:var(--hover);border-color:var(--tag-line)}
.theme-toggle:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.theme-icon-sun{display:none}
[data-theme="dark"] .theme-icon-sun{display:block}
[data-theme="dark"] .theme-icon-moon{display:none}
[data-theme="dark"] .project-art{box-shadow:inset 0 0 0 1px #ffffff12}
@media(max-width:800px){.header-actions{gap:18px}}
@media(max-width:420px){.header-actions{gap:12px}.hero h1{font-size:clamp(46px,14.3vw,60px)}}
@media(max-width:360px){header{display:grid;grid-template-columns:1fr auto;gap:18px}.header-actions{display:contents}header nav{grid-column:1/-1;grid-row:2;justify-content:space-between}header .theme-toggle{grid-column:2;grid-row:1}header nav a:first-child{display:inline}}
