:root{--bg:#111213;--panel:#1b1c1e;--text:#f3f2ee;--muted:#a8aaaf;--line:#35373b;--blue:#629dff;--gutter:clamp(20px,4.5vw,80px);font-family:Arial,Helvetica,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:default;opacity:.35}a,button{touch-action:manipulation}img{display:block;max-width:100%}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:5px}[hidden]{display:none!important}.skip{position:fixed;left:20px;top:-100px;background:var(--text);color:var(--bg);z-index:20;padding:14px}.skip:focus{top:10px}.header{height:88px;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:10}.brand{font-size:17px;letter-spacing:.15em;font-weight:600;white-space:nowrap}.brand span{color:var(--blue);font-weight:400}.header nav{display:flex;gap:38px;font-size:13px;align-items:center}.header nav a{padding:12px 0}.header nav a:hover{color:var(--blue)}sup{font-size:9px;color:var(--muted);margin-left:3px}.wrap{padding:0 var(--gutter);max-width:2000px;margin:auto}.eyebrow{font-family:Consolas,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;line-height:1.7}.muted{color:var(--muted)}.intro{padding-top:45px}.intro-top{display:flex;justify-content:space-between;align-items:center;gap:24px}.intro-top p{margin:0}.availability{display:inline-flex;align-items:center;gap:9px}.availability:before{content:'';width:6px;height:6px;border-radius:50%;background:#82c4a3}.wordmark{font-size:clamp(48px,12.05vw,190px);font-weight:400;letter-spacing:-.065em;line-height:.96;margin:27px 0 24px;white-space:nowrap}.wordmark span{color:var(--blue)}.intro-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:18px 0 29px;align-items:center;gap:20px}.intro-bottom p{margin:0;font-size:13px;line-height:1.5}.scroll-link{font-size:12px;display:flex;gap:20px;align-items:center}.scroll-link span{font-size:22px}.hero{margin:0;position:relative}.hero-image{display:block;overflow:hidden;position:relative;background:#18191b}.hero-image img{width:100%;height:auto;transition:transform .8s cubic-bezier(.2,.8,.2,1)}.hero-image:hover img{transform:scale(1.015)}.image-cta{position:absolute;right:26px;bottom:26px;background:#f3f2ee;color:#141414;width:64px;height:64px;display:grid;place-items:center;font-size:32px;border-radius:50%;transition:background .2s}.hero-image:hover .image-cta{background:var(--blue)}.hero-caption{display:flex;align-items:baseline;justify-content:space-between;gap:25px;padding:22px 0;border-bottom:1px solid var(--line)}.hero-caption h2{font-size:clamp(16px,2vw,27px);font-weight:400;letter-spacing:-.025em;line-height:1.35;margin:0}.hero-caption .eyebrow{white-space:nowrap}.projects-section{padding-top:112px;padding-bottom:100px}.section-heading{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:35px;gap:20px}.section-heading h2{font-size:clamp(36px,5vw,72px);font-weight:400;letter-spacing:-.05em;margin:0}.section-heading h2 sup{font-size:12px;letter-spacing:0;vertical-align:top;margin-left:10px;line-height:3}.filters{display:flex;justify-content:space-between;gap:25px;padding:19px 0;border-block:1px solid var(--line);margin-bottom:35px;align-items:center}.years{display:flex;gap:8px;flex-wrap:wrap}.filter{border:1px solid transparent;background:transparent;color:var(--muted);font-size:12px;padding:10px 14px;border-radius:22px}.filter[aria-pressed=true]{background:var(--text);color:var(--bg)}.filter:hover{border-color:var(--line);color:var(--text)}.filter[aria-pressed=true]:hover{color:var(--bg)}.search{display:flex;align-items:center;gap:10px;min-width:190px;border-bottom:1px solid #62656d;padding:9px 0}.search span{font-size:21px;line-height:1}.search input{background:none;border:0;outline:0;color:var(--text);font-size:12px;width:180px}.search input::placeholder{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:46px 24px}.project-card{min-width:0}.card-image{overflow:hidden;position:relative;background:var(--panel);aspect-ratio:404/316}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}.project-card:hover .card-image img{transform:scale(1.04)}.card-arrow{position:absolute;right:12px;bottom:12px;background:var(--text);color:var(--bg);height:34px;width:34px;border-radius:50%;display:grid;place-items:center;font-size:20px;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s}.project-card:hover .card-arrow,.project-card:focus-visible .card-arrow{opacity:1;transform:none}.card-meta{display:flex;justify-content:space-between;color:var(--muted);font-family:Consolas,monospace;font-size:10px;letter-spacing:.08em;margin-top:15px}.project-card h3{font-size:17px;font-weight:400;line-height:1.4;margin:8px 0 0;letter-spacing:-.015em}.result-count{font-family:Consolas,monospace;font-size:11px;color:var(--muted);margin-top:32px}.empty{padding:50px 0;color:var(--muted);grid-column:1/-1}.about{background:#eae9e4;color:#1b1c1e;padding:85px var(--gutter)}.about-grid{max-width:1700px;margin:auto;display:grid;grid-template-columns:1fr 2fr;gap:8vw}.portrait{width:150px;height:150px;border-radius:50%;object-fit:cover;margin:30px 0}.about h2{font-weight:400;font-size:clamp(48px,6.5vw,94px);letter-spacing:-.06em;line-height:1;margin:22px 0}.occupation{font-size:17px;line-height:1.5;max-width:350px}.about .biography{font-size:clamp(21px,2.3vw,34px);line-height:1.5;letter-spacing:-.025em;margin:46px 0}.software{display:flex;gap:14px;flex-wrap:wrap;font-family:Consolas,monospace;font-size:11px;padding-bottom:32px}.software span{padding-bottom:8px;border-bottom:1px solid #aaa}.resume{border-block:1px solid #b8b8b4}.resume summary{padding:24px 0;cursor:pointer;font-size:15px;list-style:none;display:flex;justify-content:space-between}.resume summary::-webkit-details-marker{display:none}.resume summary:after{content:'+';font-size:22px}.resume[open] summary:after{content:'−'}.experience-item{display:grid;grid-template-columns:1fr 1.6fr;gap:24px;border-top:1px solid #c7c7c1;padding:20px 0}.experience-item p{margin:4px 0;line-height:1.5;font-size:13px}.experience-item h4{margin:0 0 7px;font-size:16px;font-weight:500}.experience-item .period{font-family:Consolas,monospace;font-size:11px;color:#55595f}.resume-extra{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;border-top:1px solid #c7c7c1;padding:28px 0}.resume-extra h4{font-size:10px;letter-spacing:.08em;margin:0 0 15px}.resume-extra p{font-size:12px;line-height:1.7}.resume-source{font-size:12px;text-decoration:underline;display:inline-block;margin-bottom:24px}.original-banner{width:100%;height:auto;margin-top:50px}.contact{padding:110px var(--gutter) 80px;display:grid;grid-template-columns:1.4fr 1fr;gap:8vw;max-width:2000px;margin:auto}.contact h2{font-size:clamp(62px,10vw,140px);font-weight:400;letter-spacing:-.06em;margin:20px 0 30px}.contact p{line-height:1.7;font-size:13px;color:var(--muted)}.contact-links{display:flex;flex-direction:column;align-self:center}.contact-link{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:22px 0;font-size:20px}.contact-link span{font-size:24px;color:var(--muted)}.contact-link:hover,.contact-link:hover span{color:var(--blue)}.footer{padding:32px var(--gutter);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:11px;color:var(--muted)}.footer .brand{font-size:12px;color:var(--text)}.project-page{padding-top:35px;padding-bottom:70px}.project-bar{display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted);padding-bottom:55px}.back-link:hover{color:var(--blue)}.project-heading{display:grid;grid-template-columns:2fr 1fr;gap:8vw;margin-bottom:52px;align-items:end}.project-heading h1{font-size:clamp(38px,5.7vw,88px);font-weight:400;letter-spacing:-.045em;line-height:1.07;margin:16px 0 0;overflow-wrap:anywhere}.project-info{border-top:1px solid var(--line);padding-top:15px;font-size:12px;line-height:1.7}.project-info dl{margin:0}.project-info dl>div{display:flex;justify-content:space-between;gap:15px;margin-bottom:10px}.project-info dt{color:var(--muted)}.project-info dd{margin:0;text-align:right}.project-tags{display:flex;flex-wrap:wrap;gap:7px;margin:22px 0 0}.project-tags span{border:1px solid var(--line);padding:5px 8px;font-size:10px;color:var(--muted)}.project-description{font-size:18px;line-height:1.7;max-width:860px;white-space:pre-wrap;margin:0 0 50px;overflow-wrap:anywhere}.gallery{max-width:1600px;margin:auto}.gallery-item{margin:0 0 32px}.gallery-item button{width:100%;display:block;padding:0;border:0;background:none;position:relative;color:var(--text);cursor:zoom-in}.gallery-item img{width:100%;height:auto}.gallery-item button .zoom-label{position:absolute;right:14px;bottom:14px;opacity:0;background:#111e;padding:10px 14px;font-size:12px;transition:opacity .2s}.gallery-item button:hover .zoom-label,.gallery-item button:focus-visible .zoom-label{opacity:1}.gallery-item figcaption{display:flex;justify-content:space-between;font-family:Consolas,monospace;font-size:10px;color:var(--muted);padding:12px 0}.module-text{font-size:clamp(20px,3vw,38px);text-align:center;white-space:pre-wrap;margin:60px 0}.embed-wrap iframe{width:100%;aspect-ratio:16/9;border:0;background:var(--panel)}.embed-wrap a{font-size:12px;text-decoration:underline;display:inline-block;margin:15px 0 30px}.project-bottom{margin-top:70px;padding-top:28px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:30px}.project-bottom a:last-child{text-align:right}.project-bottom .next-title{font-size:clamp(18px,2vw,28px);margin-top:15px;line-height:1.3}.project-bottom a:hover .next-title{color:var(--blue)}.noscript{padding:40px}.noscript a{text-decoration:underline}dialog{border:0;padding:0;background:#0d0e10;color:var(--text);width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0}dialog::backdrop{background:#000e}body:has(dialog[open]){overflow:hidden}.lightbox-top,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 28px;height:70px;font-size:12px}.lightbox-top{border-bottom:1px solid #25262b}.lightbox-top>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lightbox-bottom{font-family:Consolas,monospace;border-top:1px solid #25262b}.lightbox-media{height:calc(100dvh - 140px);display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;justify-items:center;gap:10px;padding:10px}.lightbox-media img{max-height:100%;max-width:100%;object-fit:contain;min-height:0}.icon-button{color:var(--text);background:#25262b;border:1px solid #37393e;border-radius:50%;width:42px;height:42px;flex-shrink:0;font-size:20px}.icon-button:hover{background:#41454c}.lightbox-bottom a{border-bottom:1px solid var(--muted);padding-bottom:4px}.key-hint{color:var(--muted)}
@media(min-width:1600px){.wordmark{font-size:11.6vw;max-width:1850px}.wrap{max-width:2000px}}
@media(max-width:1000px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-grid{grid-template-columns:1fr 1.6fr;gap:5vw}.project-heading{grid-template-columns:1.7fr 1fr;gap:5vw}.filters{align-items:flex-start}.years{gap:0}.filter{padding:10px 12px}.contact{gap:5vw}.resume-extra{grid-template-columns:1fr 1fr}.lightbox-media{grid-template-columns:48px minmax(0,1fr) 48px}}
@media(max-width:640px){.header{height:70px}.brand{font-size:12px;letter-spacing:.09em}.header nav{gap:18px;font-size:11px}.header nav sup{display:none}.intro{padding-top:25px}.intro-top .eyebrow{font-size:9px;letter-spacing:.02em}.intro-top .availability{gap:5px}.wordmark{font-size:11.5vw;margin:27px 0 24px}.intro-bottom{align-items:flex-start;padding:15px 0 24px}.intro-bottom p{font-size:11px;max-width:220px}.intro-bottom .scroll-link{font-size:0;gap:0}.intro-bottom .scroll-link span{font-size:24px}.image-cta{width:42px;height:42px;font-size:22px;bottom:12px;right:12px}.hero-caption{gap:15px;align-items:flex-start;padding:16px 0}.hero-caption h2{font-size:15px}.hero-caption .eyebrow{font-size:9px}.projects-section{padding-top:64px;padding-bottom:64px}.section-heading{margin-bottom:22px}.section-heading>.eyebrow{font-size:9px}.filters{flex-direction:column;gap:16px;margin-bottom:25px}.years{width:100%;justify-content:space-between}.filter{padding:9px 11px;font-size:11px}.search{width:100%;padding:6px 0 10px}.search input{width:100%;font-size:14px}.grid{grid-template-columns:1fr;gap:32px}.project-card h3{font-size:17px}.card-meta{margin-top:13px}.card-arrow{opacity:1;transform:none}.about{padding:55px var(--gutter)}.about-grid{grid-template-columns:1fr;gap:10px}.portrait{width:95px;height:95px;margin:24px 0}.about h2{font-size:58px}.about .biography{margin:20px 0 30px;font-size:23px}.occupation{font-size:15px;max-width:280px}.experience-item{grid-template-columns:1fr;gap:10px}.resume-extra{grid-template-columns:1fr 1fr;gap:15px}.original-banner{margin-top:32px}.contact{padding:60px var(--gutter);grid-template-columns:1fr;gap:20px}.contact h2{font-size:72px;margin:20px 0}.contact-link{font-size:20px;padding:20px 0}.footer{padding:28px var(--gutter);flex-wrap:wrap;gap:22px}.footer>span{order:3;width:100%;font-size:10px}.project-page{padding-top:26px}.project-bar{padding-bottom:35px;font-size:11px}.project-heading{grid-template-columns:1fr;gap:28px;margin-bottom:32px}.project-heading h1{font-size:42px}.project-info{max-width:none}.project-description{font-size:16px;margin-bottom:30px}.gallery-item{margin-bottom:18px}.gallery-item button .zoom-label{display:none}.project-bottom{margin-top:45px;gap:20px}.project-bottom .next-title{font-size:17px}.project-bottom .eyebrow{font-size:9px}.lightbox-top,.lightbox-bottom{padding:12px 16px;height:65px;font-size:10px}.lightbox-media{height:calc(100dvh - 130px);grid-template-columns:32px minmax(0,1fr) 32px;gap:2px;padding:4px}.lightbox-media .icon-button{width:30px;height:30px;font-size:16px}.key-hint{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

@media(max-width:640px){.card-arrow,.form-number{display:none!important}}

.loop-progress{display:none!important}

.social-block .contact-link{display:flex;align-items:center;gap:12px}.social-icon{display:block;width:20px;height:20px;flex:0 0 20px;color:var(--blue)}.social-label{flex:1}

/* Hide the decorative sequence markers on all screen sizes. */
.form-number{display:none!important}

/* Remove every visible sequence, date, gallery and project-count label. */
.hero-caption .eyebrow,
.section-heading>.eyebrow,
.years,
.card-meta,
.period,
.service-heading>.eyebrow,
.process-intro>.eyebrow,
.process-steps>div>span,
.project-info dl>div:nth-child(2),
.project-info dl>div:nth-child(3),
.gallery-item figcaption>span:first-child,
#lightbox-count{display:none!important}.resume-source{display:none!important}
