@font-face{font-family:Geist;src:url('/assets/geist-latin.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:'Geist Mono';src:url('/assets/geist-mono-latin.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--bg:#151515;--panel:#1d1d1d;--ink:#f1f1ef;--muted:#b6b6b3;--line:#3c3c3c;--gutter:clamp(22px,5vw,80px)}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--ink);scroll-behavior:smooth;scroll-padding-top:28px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Geist,Arial,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-weight:450;line-height:1.1;letter-spacing:-.045em}
p{color:var(--muted)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
a,button{-webkit-tap-highlight-color:transparent}
button{background:none;border:0}
a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
img{display:block;max-width:100%;height:auto}
svg{flex-shrink:0}
::selection{background:#e7e7e3;color:#151515}
.wrap{width:min(100% - var(--gutter)*2,1440px);margin-inline:auto}
.skip-link{position:absolute;left:20px;top:-100px;background:var(--ink);color:var(--bg);padding:12px 18px;z-index:30}
.skip-link:focus{top:12px}
.site-header{min-height:90px;display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--line)}
.brand{display:flex;gap:15px;align-items:center;font-size:23px;font-weight:570;letter-spacing:-.05em}
.brand img{width:52px;height:48px;object-fit:contain;background:#fff;padding:3px}
.site-header nav{display:flex;gap:32px;font-size:14px}
.site-header nav a{padding:14px 0;color:var(--muted);transition:color .2s}
.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--ink)}
.intro{padding-top:54px}
.intro h1{font-size:clamp(38px,4.6vw,72px);font-weight:450;letter-spacing:-.055em;line-height:1.07}
.intro h1 span{color:var(--ink)}
.intro-role{font-size:clamp(17px,1.6vw,24px);margin-top:17px;letter-spacing:-.025em}
.social-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.hero-social{margin-top:30px;max-width:760px}
.hero-social a{min-height:54px;display:flex;align-items:center;gap:11px;padding:12px 16px;border:1px solid #555553;background:#1d1d1d;font-size:14px;transition:background .18s,border-color .18s}
.hero-social a:hover{background:#2a2a2a;border-color:#aaa}
.social-arrow{width:14px;height:14px;margin-left:auto}
.hero-social a:active{transform:translateY(1px)}
.welcome{display:flex;align-items:flex-end;justify-content:space-between;gap:55px;margin-top:40px;padding-bottom:39px}
.welcome p{max-width:74ch;font-size:16px;line-height:1.7}
.explore-link{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;white-space:nowrap;padding:12px 0 10px;border-bottom:1px solid #aaa;font-size:14px}
.explore-link svg{transition:transform .2s}
.explore-link:hover svg{transform:translateY(4px)}
.hero-project a{display:block}
.hero-project img{width:100%}
.hero-project figcaption{display:flex;justify-content:space-between;gap:16px;padding-top:16px;font-size:13px;color:var(--muted)}
.hero-project figcaption span:first-child{color:var(--ink)}
.portfolio-section{padding-block:105px 110px}
.section-heading{border-top:1px solid var(--line);padding-top:30px;margin-bottom:49px}
.section-heading h2,.about-copy h2{font-size:clamp(38px,4.5vw,64px)}
.section-heading p{margin-top:20px;font-size:16px}
.project-entry+.project-entry{margin-top:88px}
.project-image-link{display:block;background:var(--panel);outline-offset:8px}
.project-image-link img{width:100%;transition:filter .25s}
.project-image-link:hover img{filter:brightness(1.055)}
.project-copy{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;padding-top:24px}
.academic-meta{font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.035em;display:flex;flex-wrap:wrap;gap:8px 23px;color:var(--muted);margin-bottom:14px}
.project-copy h3{font-size:clamp(25px,2.45vw,36px);max-width:27ch;line-height:1.2}
.project-excerpt p{max-width:57ch;font-size:15px}
.project-link{display:inline-flex;gap:35px;align-items:center;font-size:14px;padding-block:14px;min-height:48px;margin-top:8px}
.project-link svg{width:19px;height:19px;transition:transform .2s}
.project-link:hover svg{transform:translate(3px,-3px)}
.project-excerpt .independence{font-size:12px;margin-top:10px;line-height:1.6}
.portrait-entry .project-image-link{padding:30px}
.portrait-entry .project-image-link img{width:auto;max-height:820px;max-width:100%;margin-inline:auto}
.about-section{background:var(--panel);border-block:1px solid var(--line);padding-block:90px}
.about-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(42px,8vw,130px);align-items:start}
.about-portrait img{width:100%}
.about-portrait>p{display:flex;justify-content:space-between;gap:10px;padding-top:14px;font-size:13px;color:var(--ink)}
.about-portrait>p span{color:var(--muted)}
.about-copy h2{margin-bottom:33px}
.about-copy p{margin-top:23px;max-width:61ch}
.about-copy .about-lead{font-size:21px;line-height:1.6;color:var(--ink);letter-spacing:-.015em}
.tools-note{border-top:1px solid #454545;margin-top:34px;padding-top:28px}
.tools-note h3{font-size:17px;letter-spacing:-.02em}
.tools-note p{font-size:15px;margin-top:14px}
.site-footer{padding-top:77px}
.footer-heading h2{font-size:clamp(30px,4vw,55px)}
.footer-heading p{margin-top:18px;font-size:16px}
.footer-social{margin-top:35px;gap:0;border-block:1px solid var(--line)}
.footer-social a{min-height:72px;display:flex;align-items:center;gap:15px;padding:20px;border-right:1px solid var(--line);transition:background .2s;font-size:15px}
.footer-social a:first-child{padding-left:0}
.footer-social a:last-child{border-right:0}
.footer-social a:hover{background:#202020}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-block:36px;font-size:11px}
.footer-brand{font-size:23px;font-weight:550;letter-spacing:-.05em}
.footer-bottom>a:last-child{padding-block:12px}
.footer-bottom>a:last-child span{margin-left:20px}
.project-page{padding-top:38px}
.back-link{display:inline-flex;align-items:center;gap:13px;font-size:13px;color:var(--muted);min-height:44px}
.back-link svg{width:18px}
.project-heading{padding-block:48px 40px}
.project-category{font-family:'Geist Mono',monospace;font-size:12px;margin-bottom:19px}
.project-heading h1{font-size:clamp(38px,5.5vw,79px);max-width:21ch;line-height:1.1;text-wrap:balance}
.project-facts{display:flex;flex-wrap:wrap;gap:12px 34px;font-size:14px;margin-top:26px}
.concept-block{border-top:1px solid var(--line);padding-top:33px;display:grid;grid-template-columns:.65fr 1.35fr;gap:50px;padding-bottom:54px}
.concept-block h2{font-size:20px;letter-spacing:-.025em}
.concept-block p{max-width:75ch;font-size:17px;line-height:1.8}
.concept-block .project-notice{font-size:14px;color:var(--ink);border-left:1px solid #aaa;padding-left:20px;margin-top:24px}
.concept-block .study-note{font-size:12px;margin-top:20px}
.gallery-figure+.gallery-figure{margin-top:55px}
.render-button{display:block;width:100%;padding:0;background:var(--panel);cursor:zoom-in}
.render-button img{width:100%}
.gallery-figure figcaption{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px;color:var(--muted);padding-top:8px}
.gallery-figure figcaption button{display:flex;gap:12px;align-items:center;min-height:44px;padding:8px 0;color:var(--ink);font-size:12px}
.gallery-figure figcaption svg{width:16px}
.vertical-render .render-button{padding:32px}
.vertical-render .render-button img{width:auto;max-height:1000px;max-width:100%;margin-inline:auto}
.project-navigation{display:grid;grid-template-columns:1fr auto 1fr;gap:40px;border-block:1px solid var(--line);margin-block:75px 10px;padding-block:32px}
.project-navigation>a{display:flex;flex-direction:column;gap:15px;padding-block:10px}
.project-navigation>a:last-child{text-align:right;align-items:flex-end}
.project-navigation span{display:flex;align-items:center;gap:14px;font-size:12px;color:var(--muted)}
.project-navigation strong{font-weight:450;font-size:18px;letter-spacing:-.02em}
.project-navigation svg{width:17px}
.project-navigation .portfolio-return{justify-content:center;text-decoration:underline;text-underline-offset:6px;font-size:12px}
.lightbox{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;border:0;padding:16px 30px;background:#111;color:var(--ink);overscroll-behavior:contain}
.lightbox::backdrop{background:rgba(0,0,0,.94)}
.lightbox-layout{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px}
.lightbox-toolbar,.lightbox-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:48px}
.lightbox-toolbar p{font-size:13px}
.lightbox-toolbar p span{margin-left:24px}
.lightbox button,.lightbox-bottom a{display:inline-flex;gap:12px;align-items:center;justify-content:center;min-height:48px;padding:10px 8px;font-size:13px}
.lightbox button:hover,.lightbox-bottom a:hover{background:#292929}
.lightbox-stage{min-height:0;display:flex;align-items:center;justify-content:center}
.lightbox-stage img{width:100%;height:100%;object-fit:contain}
.lightbox-bottom a{color:var(--muted)}
.fallback{padding-block:100px;min-height:80dvh}
.fallback h1{font-size:clamp(38px,6vw,72px);margin-block:35px}
.fallback p{margin-bottom:30px}
.fallback button{border:1px solid var(--line);padding:12px;margin-right:24px}
@media(min-width:1700px){.intro{padding-top:70px}.welcome{padding-bottom:48px}}
@media(max-width:1000px){.welcome{display:block;margin-top:30px}.welcome p{max-width:75ch}.welcome .explore-link{margin-top:20px}.project-copy{gap:30px;grid-template-columns:1fr 1fr}.about-grid{gap:40px}.about-copy .about-lead{font-size:19px}.project-navigation{gap:24px}}
@media(max-width:700px){
 :root{--gutter:22px}.site-header{min-height:116px;gap:6px;flex-wrap:wrap;padding-top:15px;padding-bottom:7px}.brand{font-size:22px}.brand img{width:43px;height:39px}.site-header nav{width:100%;gap:30px;font-size:13px}.site-header nav a{padding-block:9px;min-height:44px}
 .intro{padding-top:33px}.intro h1{font-size:clamp(35px,8vw,50px);max-width:17ch}.intro-role{font-size:17px;max-width:26ch;line-height:1.5;margin-top:14px}.hero-social{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:23px}.hero-social a{font-size:13px;min-height:50px;padding:12px}.hero-social svg{width:19px}.hero-social .social-arrow{width:12px}.welcome{margin-top:29px;padding-bottom:30px}.welcome p{font-size:14px;line-height:1.8}.welcome .explore-link{margin-top:16px}
 .hero-project figcaption{font-size:10px;display:block;line-height:1.8}.hero-project figcaption span{display:block}.portfolio-section{padding-block:65px}.section-heading{padding-top:25px;margin-bottom:33px}.section-heading p{font-size:14px;max-width:28ch;margin-top:15px}.project-entry+.project-entry{margin-top:55px}.project-copy{grid-template-columns:1fr;gap:17px;padding-top:20px}.academic-meta{font-size:9px;gap:6px 16px;margin-bottom:12px}.project-copy h3{font-size:28px}.project-excerpt p{font-size:14px}.project-link{margin-top:3px}.portrait-entry .project-image-link{padding:16px}
 .about-section{padding-block:48px}.about-grid{grid-template-columns:1fr;gap:43px}.about-portrait{max-width:440px}.about-copy h2{margin-bottom:24px}.about-copy .about-lead{font-size:20px}.about-copy p{font-size:15px}.site-footer{padding-top:48px}.footer-heading p{font-size:14px}.footer-social{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:25px}.footer-social a{padding:16px 12px;min-height:63px;font-size:13px}.footer-social a:first-child{padding-left:12px}.footer-social a:nth-child(2){border-right:0}.footer-social a:nth-child(-n+2){border-bottom:1px solid var(--line)}.footer-bottom{flex-wrap:wrap;gap:14px;padding-block:25px}.footer-bottom p{order:3;flex-basis:100%;font-size:11px}
 .project-page{padding-top:20px}.project-heading{padding-block:27px 30px}.project-heading h1{font-size:clamp(34px,9vw,54px);max-width:20ch}.project-facts{font-size:12px;gap:9px 22px;margin-top:20px}.concept-block{grid-template-columns:1fr;gap:20px;padding-block:24px 35px}.concept-block h2{font-size:19px}.concept-block p{font-size:15px}.gallery-figure+.gallery-figure{margin-top:33px}.gallery-figure figcaption{align-items:flex-start;gap:10px;font-size:11px}.gallery-figure figcaption>span{padding-top:14px}.gallery-figure figcaption button{flex-shrink:0;font-size:10px;gap:7px}.vertical-render .render-button{padding:14px}.project-navigation{grid-template-columns:1fr 1fr;gap:20px;padding-block:22px;margin-top:45px}.project-navigation .portfolio-return{grid-column:1/-1;grid-row:2;align-items:center;border-top:1px solid var(--line);padding-top:22px}.project-navigation strong{font-size:15px}.project-navigation span{font-size:10px;gap:7px}.lightbox{padding:10px 12px}.lightbox-toolbar p span{display:block;margin-left:0;font-size:10px;max-width:30ch}.lightbox-bottom{gap:8px}.lightbox-bottom span{font-size:11px}.lightbox-bottom a{font-size:11px;gap:5px}.lightbox-bottom svg{width:17px}.lightbox-toolbar>button span{display:none}
}
@media(max-height:500px) and (orientation:landscape){.site-header{min-height:68px;flex-wrap:nowrap;padding:0}.site-header nav{width:auto}.intro{padding-top:25px}.intro h1{font-size:40px;max-width:none}.intro-role{max-width:none;margin-top:8px}.hero-social{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:18px}.welcome{margin-top:24px}.lightbox{padding:5px 15px}.lightbox-layout{gap:3px}.lightbox-toolbar,.lightbox-bottom{min-height:42px}.lightbox button,.lightbox-bottom a{min-height:42px;padding:4px 8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

