@font-face{font-family:Archivo;src:url('assets/fonts/archivo-variable-latin.woff2') format('woff2');font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('assets/fonts/ibm-plex-mono-regular-latin.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('assets/fonts/ibm-plex-mono-medium-latin.woff2') format('woff2');font-weight:500;font-display:swap}
:root{--bg:#0a0a0b;--raised:#111113;--ink:#edeae4;--dim:#8b877e;--faint:#4d4a44;--accent:#9363f6;--line:rgba(237,234,228,.13);--soft:rgba(237,234,228,.045);--gutter:32px;--header-height:72px;--radius:16px;--ease:cubic-bezier(.22,.68,0,1.02);color-scheme:dark}
:root[data-theme=light]{--bg:#f0eee8;--raised:#e8e5dd;--ink:#171716;--dim:#75716a;--faint:#aaa59a;--line:rgba(23,23,22,.15);--soft:rgba(23,23,22,.035);color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Archivo,Arial,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;transition:background-color .3s,color .3s}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{border:0}svg{display:block;width:24px;height:24px}img{display:block;max-width:100%}::selection{background:var(--accent);color:#fff}main:focus{outline:none}main{min-height:60vh}.skip-link{position:fixed;top:-80px;left:20px;background:var(--ink);color:var(--bg);padding:12px 20px;border-radius:8px;z-index:1000}.skip-link:focus{top:12px}
.site-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;background:var(--bg);padding-left:var(--gutter)}
.wordmark{display:flex;align-items:center;gap:11px;font-size:17px;font-weight:850;letter-spacing:-.04em;font-variation-settings:'wdth' 125;white-space:nowrap}.brand-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);display:inline-block}
.primary-nav{display:flex;align-items:stretch;height:100%;margin-left:auto}.primary-nav a{display:flex;align-items:center;padding:0 clamp(17px,1.9vw,34px);font:400 11px 'IBM Plex Mono',monospace;letter-spacing:.12em;border-left:1px solid var(--line);position:relative;transition:color .2s,background .2s}.primary-nav a:hover{color:var(--accent);background:var(--soft)}.primary-nav a::after{content:'';position:absolute;bottom:-1px;left:18px;right:18px;height:2px;background:var(--accent);transform:scaleX(0);transition:transform .25s var(--ease)}.primary-nav a[aria-current=page]{color:var(--accent)}.primary-nav a[aria-current=page]::after{transform:scaleX(1)}
.theme-control{height:100%;display:flex;align-items:center;justify-content:center;width:94px;flex-shrink:0;border-left:1px solid var(--line)}.theme-toggle{background:transparent;padding:8px;border-radius:30px}.theme-track{display:block;width:52px;height:29px;border:1px solid var(--line);border-radius:30px;background:var(--raised);position:relative}.theme-track svg{position:absolute;width:13px;height:13px;top:7px;fill:none;stroke:var(--dim);stroke-width:1.5;z-index:2}.sun-icon{left:6px}.moon-icon{right:6px}.theme-thumb{position:absolute;top:3px;right:3px;height:21px;width:21px;border-radius:50%;background:var(--ink);transition:transform .3s var(--ease)}[data-theme=dark] .moon-icon{stroke:var(--bg)}[data-theme=light] .theme-thumb{transform:translateX(-23px)}[data-theme=light] .sun-icon{stroke:var(--bg)}.mobile-menu-toggle{display:none}
.meta,.eyebrow,.text-link,.filter-button,.project-tag,.field label,.contact-note,.footer-note,.photo-caption,.post-date{font:400 10px/1.65 'IBM Plex Mono',monospace;letter-spacing:.12em;text-transform:uppercase}.eyebrow{display:flex;align-items:center;gap:14px;color:var(--accent);margin:0 0 22px}.slash-mark{display:inline-block;width:37px;height:9px;background:repeating-linear-gradient(132deg,transparent,transparent 5px,var(--accent) 5px,var(--accent) 7px)}.text-link{display:inline-flex;align-items:center;gap:16px;font-size:11px}.text-link svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.3;transition:transform .2s}.text-link:hover{color:var(--accent)}.text-link:hover svg{transform:translate(3px,-3px)}
.hero{min-height:calc(100svh - var(--header-height));position:relative;display:flex;align-items:flex-end;isolation:isolate;padding:64px var(--gutter) 40px;overflow:hidden}.hero-image{position:absolute;inset:0;z-index:-3}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;filter:saturate(.55) brightness(.72)}.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 0%,transparent 83%),linear-gradient(0deg,var(--bg) 1%,rgba(10,10,11,.3) 55%,var(--bg) 100%);z-index:-2}.hero::after{content:'';position:absolute;inset:0;background:var(--bg);opacity:.14;z-index:-1}.hero-topline{position:absolute;top:36px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:flex-start;color:var(--dim);font-size:9px}.hero-topline span:last-child{text-align:right}.hero-copy{width:100%}.hero .eyebrow{margin-bottom:26px}.hero-name{margin:0;font-weight:800;font-variation-settings:'wdth' 125;font-size:clamp(96px,20.5vw,330px);line-height:.82;letter-spacing:-.055em;text-transform:uppercase;max-width:100%}.hero-name span{display:block}.hero-name .outlined{-webkit-text-stroke:1px var(--ink);color:transparent}.hero-bottom{margin-top:35px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.hero-description{max-width:340px;margin:0;color:var(--dim);font-size:13px;line-height:1.7}.hero-link{padding-bottom:4px;white-space:nowrap}.hero-link::after{content:'';height:1px;width:48px;background:var(--accent)}
.section-shell{padding:90px var(--gutter) 100px}.section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:40px}.section-header .eyebrow{margin:0 0 14px}.section-heading,.page-heading{margin:0;font-weight:800;font-variation-settings:'wdth' 125;letter-spacing:-.045em;line-height:.94;text-transform:uppercase}.section-heading{font-size:clamp(38px,5.7vw,88px)}.section-aside{color:var(--dim);max-width:270px;font-size:12px;margin:0 0 3px;text-align:right}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:26px;row-gap:46px}.work-card{min-width:0;position:relative}.card-link{display:block;outline-offset:9px!important}.card-art{position:relative;aspect-ratio:1.6;background:var(--raised);border-radius:var(--radius)}.card-surface{position:absolute;inset:0;border-radius:var(--radius);overflow:hidden;background:#151718;transition:inset .55s var(--ease),box-shadow .4s;isolation:isolate}.card-image{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .6s;filter:saturate(.78)}.card-surface::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,7,8,.88),transparent 65%);opacity:0;transition:opacity .4s;z-index:0}.card-corner{position:absolute;right:18px;top:18px;width:34px;height:34px;border-radius:50%;border:1px solid #ffffff45;display:grid;place-items:center;color:#fff;opacity:0;transform:translateY(4px);transition:opacity .25s,transform .3s;background:#0002}.card-corner>svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.4}.hover-progress{position:absolute;inset:-4px;width:40px!important;height:40px!important;transform:rotate(-90deg)}.hover-progress circle{fill:none;stroke:#fff;stroke-width:1;stroke-dasharray:113.1;stroke-dashoffset:113.1}.work-card.is-waiting .hover-progress circle{animation:hover-wait 2s linear forwards}.work-card.is-waiting .card-corner,.work-card:focus-within .card-corner,.work-card.is-expanded .card-corner{opacity:1;transform:none}.work-card:focus-within .card-image{filter:saturate(1)}.card-details{position:absolute;left:28px;right:28px;bottom:25px;color:#f4f1eb;opacity:0;transform:translateY(16px);transition:opacity .3s,transform .45s var(--ease);z-index:1}.card-details p{font-size:14px;max-width:350px;margin:0 0 15px;line-height:1.55}.card-details .project-tags{gap:7px}.card-details .project-tag{font-size:9px;padding:4px 9px;border-color:#ffffff30;background:#ffffff08;color:#f4f1eb}.work-card.is-expanded{z-index:5}.work-card.is-expanded .card-surface{inset:-10px -10px -74px;box-shadow:0 28px 70px #0006}.work-card.is-expanded .card-image{transform:scale(1.035);filter:saturate(1)}.work-card.is-expanded .card-surface::after{opacity:1}.work-card.is-expanded .card-details{opacity:1;transform:none;transition-delay:.1s}.card-meta{display:flex;align-items:baseline;justify-content:space-between;padding-top:17px;gap:15px}.card-title{font-size:17px;font-weight:650;letter-spacing:-.02em}.card-type{color:var(--dim);font-size:9px;text-align:right}.card-meta .arrow-mini{color:var(--dim)}@keyframes hover-wait{to{stroke-dashoffset:0}}.section-bottom{border-top:1px solid var(--line);margin-top:54px;padding-top:24px;display:flex;justify-content:space-between;align-items:center;gap:20px}.preview-caption{font-size:9px;color:var(--dim)}
.home-contact{padding:60px var(--gutter) 90px;border-top:1px solid var(--line)}.home-contact .eyebrow{margin-bottom:22px}.contact-callout{display:flex;align-items:center;justify-content:space-between;gap:30px;font-size:clamp(48px,8vw,125px);line-height:1;font-weight:800;letter-spacing:-.05em;font-variation-settings:'wdth' 125;text-transform:uppercase}.contact-callout>span{display:inline-block}.callout-arrow{display:grid;place-items:center;border:1px solid var(--line);width:80px;height:80px;border-radius:50%;flex-shrink:0;transition:background .25s,color .25s,transform .3s var(--ease)}.callout-arrow svg{width:32px;height:32px;stroke:currentColor;fill:none;stroke-width:1.1}.contact-callout:hover .callout-arrow{background:var(--accent);color:#fff;transform:rotate(45deg);border-color:var(--accent)}
.site-footer{position:relative;border-top:1px solid var(--line);padding:38px var(--gutter) 25px;display:flex;flex-direction:column;align-items:center;gap:24px}.social-links{display:flex;justify-content:center;align-items:center;gap:14px}.social-link{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);color:var(--ink);transition:color .2s,border-color .2s,transform .25s,background .2s}.social-link svg{width:19px;height:19px;fill:currentColor}.social-link:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-3px);background:var(--soft)}.footer-meta{display:flex;align-items:center;justify-content:space-between;width:100%;color:var(--dim)}.footer-note{font-size:8px;letter-spacing:.1em}.footer-top{font-size:9px;display:flex;align-items:center;gap:8px}.footer-top svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.5}
.page-shell{padding:78px var(--gutter) 100px;min-height:calc(100svh - 250px)}.page-intro{margin-bottom:55px}.page-heading{font-size:clamp(60px,10vw,150px)}.page-intro .eyebrow{margin-bottom:23px}.page-subtitle{max-width:520px;color:var(--dim);font-size:15px;line-height:1.8;margin:25px 0 0}.page-topline{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.filter-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:40px 0 34px}.filter-button{border:1px solid var(--line);background:none;padding:9px 16px;border-radius:30px;font-size:9px;color:var(--dim);transition:background .2s,color .2s,border-color .2s}.filter-button:hover{color:var(--ink);border-color:var(--faint)}.filter-button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.filter-status{margin-left:auto;color:var(--dim);font-size:9px}
.project-page{padding-top:0}.project-cover{position:relative;height:min(79svh,920px);min-height:480px;background:var(--raised);overflow:hidden}.project-cover>img{width:100%;height:100%;object-fit:cover}.project-cover::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#060809d9,transparent 75%)}.project-cover-copy{position:absolute;left:var(--gutter);right:var(--gutter);bottom:45px;z-index:1;color:#edeae4}.project-cover-copy .eyebrow{margin-bottom:16px}.project-cover h1{font-size:clamp(70px,12vw,190px);font-weight:800;letter-spacing:-.055em;font-variation-settings:'wdth' 125;line-height:.9;margin:0;text-transform:uppercase}.project-cover-type{margin:22px 0 0;color:#edeae4b3;font-size:11px}.project-content{padding:70px var(--gutter) 90px}.project-overview{display:grid;grid-template-columns:1.25fr .75fr;gap:90px;padding-bottom:65px}.project-introduction h2{font-size:clamp(28px,3vw,45px);line-height:1.2;font-weight:550;letter-spacing:-.035em;max-width:740px;margin:0 0 26px}.project-introduction p{color:var(--dim);max-width:590px;line-height:1.9;margin:0;font-size:14px}.project-info{display:grid;grid-template-columns:1fr 1fr;gap:24px 30px;padding-top:6px}.project-info dt{color:var(--dim);margin-bottom:7px;font-size:9px}.project-info dd{margin:0;font-size:13px}.project-tags{display:flex;gap:8px;flex-wrap:wrap}.project-tag{padding:5px 12px;border:1px solid var(--line);border-radius:20px;font-size:9px;color:var(--dim);letter-spacing:.03em}.project-process-image{margin:0 0 50px}.project-process-image img{width:100%;max-height:82vh;object-fit:cover;border-radius:var(--radius)}.project-process-image figcaption{display:flex;justify-content:space-between;gap:20px;padding-top:14px;color:var(--dim);font-size:9px}.breakdown-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:20px 0 60px}.breakdown-grid h3{font-size:25px;font-weight:550;letter-spacing:-.03em;margin:10px 0 20px}.breakdown-grid p{font-size:14px;color:var(--dim);max-width:500px;line-height:1.9}.project-next{border-top:1px solid var(--line);padding-top:35px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.project-next .meta{color:var(--dim)}.next-project-title{font-size:clamp(40px,6vw,85px);font-weight:750;line-height:1.1;letter-spacing:-.04em}.project-next>a:hover{color:var(--accent)}.project-back{display:inline-flex;align-items:center;gap:10px;padding:20px var(--gutter);border-bottom:1px solid var(--line);width:100%;color:var(--dim);font-size:10px}.project-back svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5}
.project-overlay{position:fixed;inset:0;padding:0;margin:0;width:100%;height:100%;max-width:none;max-height:none;border:0;background:var(--bg);color:var(--ink);overflow:hidden}.project-overlay::backdrop{background:#000b}.overlay-scroll{height:100%;overflow-y:auto;overscroll-behavior:contain}.project-overlay .project-cover{height:100svh;min-height:0}.overlay-close,.photo-close{position:fixed;right:26px;top:24px;z-index:12;background:rgba(15,16,17,.56);backdrop-filter:blur(16px);border:1px solid #ffffff40;color:#f5f3ed;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;transition:background .2s,transform .3s}.overlay-close:hover,.photo-close:hover{background:var(--accent);transform:rotate(90deg)}.overlay-close svg,.photo-close svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5}.project-overlay.is-entering .project-cover>img{visibility:hidden}.project-overlay.is-entering .project-cover-copy,.project-overlay.is-entering .project-content,.project-overlay.is-entering .overlay-close{opacity:0}.project-overlay .project-cover-copy,.project-overlay .project-content,.project-overlay .overlay-close{transition:opacity .3s}.project-overlay.is-closing .overlay-scroll,.project-overlay.is-closing .overlay-close{opacity:0;transition:opacity .15s}.transition-image{position:fixed;z-index:100;object-fit:cover;pointer-events:none;max-width:none;will-change:left,top,width,height,border-radius}.source-hidden{visibility:hidden!important}
.demo-layout{padding:0 var(--gutter) 80px}.demo-frame{position:relative;aspect-ratio:16/8.5;min-height:300px;overflow:hidden;border-radius:var(--radius);background:var(--raised)}.demo-frame>img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;filter:brightness(.6) saturate(.6)}.demo-frame::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0a0a0bc9,transparent 75%)}.demo-center{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#edeae4;text-align:center;padding:30px}.demo-center h2{font-size:clamp(35px,6vw,90px);line-height:1;letter-spacing:-.045em;font-variation-settings:'wdth' 125;font-weight:800;margin:15px 0 25px}.demo-center p{color:#d3d1c9;font-size:13px}.reel-play{border:1px solid #ffffff50;width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:#ffffff12;backdrop-filter:blur(8px);margin-bottom:18px}.reel-play svg{fill:currentColor;width:21px;height:21px;margin-left:3px}.demo-meta{display:flex;justify-content:space-between;gap:20px;padding:22px 0;color:var(--dim)}.demo-meta .meta{font-size:9px}.demo-layout iframe{width:100%;height:100%;position:absolute;border:0}
.photography-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:25px;align-items:start}.photo-card{background:none;padding:0;display:block;width:100%;text-align:left}.photo-card figure{margin:0}.photo-card img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);transition:filter .4s,transform .6s var(--ease);filter:saturate(.7)}.photo-card:nth-child(3n+2){padding-top:90px}.photo-card:hover img{filter:saturate(1);transform:translateY(-5px)}.photo-card figcaption{padding-top:16px;display:flex;justify-content:space-between;gap:10px}.photo-card .photo-title{font-size:13px}.photo-card .meta{color:var(--dim);font-size:8px}.photo-overlay{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;border:0;padding:50px 80px;margin:0;background:#08090af5;color:#edeae4}.photo-overlay::backdrop{background:#08090a}.photo-overlay figure{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;margin:0}.photo-overlay figure img{max-height:calc(100svh - 140px);max-width:100%;object-fit:contain;border-radius:8px}.photo-caption{font-size:9px;color:#aaa79f;text-align:center}.photo-prev,.photo-next{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff0b;border:1px solid #ffffff24;border-radius:50%;width:42px;height:42px;display:grid;place-items:center}.photo-prev{left:20px}.photo-next{right:20px}.photo-prev svg,.photo-next svg{fill:none;stroke:currentColor;stroke-width:1.4}
.about-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:90px;align-items:start;padding-top:15px}.about-image{position:relative}.about-image img{width:100%;aspect-ratio:4/4.5;object-fit:cover;border-radius:var(--radius);filter:saturate(.55)}.about-image .meta{color:var(--dim);font-size:8px;display:block;margin-top:14px}.about-copy h2{font-size:clamp(30px,4vw,58px);line-height:1.13;letter-spacing:-.045em;font-weight:550;margin:0 0 30px}.about-copy p{font-size:15px;line-height:1.9;color:var(--dim);max-width:590px}.about-note{font-size:11px!important;margin-top:24px}.about-disciplines{margin:40px 0;border-top:1px solid var(--line)}.discipline{padding:17px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px}.discipline .meta{color:var(--dim);font-size:9px}.discipline span:first-child{font-size:14px}.about-copy .text-link{margin-top:10px}
.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:27px}.post-card{display:block;min-width:0}.post-card img{width:100%;aspect-ratio:1.3;object-fit:cover;border-radius:var(--radius);filter:saturate(.65);transition:filter .4s,transform .5s}.post-card:hover img{filter:saturate(1);transform:translateY(-5px)}.post-category{margin:22px 0 12px;color:var(--accent);font-size:9px}.post-card h2{margin:0;font-size:27px;font-weight:550;letter-spacing:-.035em;line-height:1.2}.post-card>p{font-size:13px;color:var(--dim);line-height:1.8}.post-card .text-link{font-size:9px;margin-top:10px}.blog-placeholder-note{margin:45px 0 0;color:var(--dim);font-size:10px}.article{max-width:900px;margin:0 auto}.article .page-heading{font-size:clamp(50px,7vw,100px);text-transform:none;line-height:1}.article-image{width:100%;max-height:70vh;object-fit:cover;border-radius:var(--radius);margin:40px 0}.article-body{max-width:640px;margin:0 auto}.article-body p{font-size:17px;line-height:1.95;color:var(--dim);margin-bottom:25px}.article-body p:first-child{font-size:25px;color:var(--ink);line-height:1.6;letter-spacing:-.02em}.article-back{margin-bottom:45px;color:var(--dim)}
.contact-page{padding-top:115px;padding-bottom:120px;display:flex;align-items:center;min-height:calc(100svh - var(--header-height) - 202px)}.contact-layout{width:100%;max-width:1250px;margin:0 auto;display:grid;grid-template-columns:.8fr 1.6fr;gap:85px;align-items:start}.contact-copy{padding-top:5px}.contact-copy h1{font-size:clamp(40px,4.5vw,68px);line-height:1;letter-spacing:-.045em;font-weight:750;margin:0 0 27px;font-variation-settings:'wdth' 125}.contact-copy>p{font-size:14px;color:var(--dim);line-height:1.9;max-width:300px;margin-bottom:35px}.contact-detail{margin:23px 0;font-size:13px}.contact-detail .meta{color:var(--dim);font-size:9px;display:block;margin-bottom:6px}.contact-detail a:hover{color:var(--accent)}.contact-inline-socials{display:flex;flex-wrap:wrap;gap:15px;font-size:12px}.contact-inline-socials a{display:inline-flex;gap:3px;align-items:center}.contact-inline-socials svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.4}.contact-form{padding-top:3px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{margin-bottom:22px}.field label{color:var(--dim);display:block;margin-bottom:8px;font-size:9px}.field label span{color:var(--accent)}.field input,.field textarea{width:100%;background:transparent;border:1px solid var(--line);border-radius:9px;color:var(--ink);padding:13px 15px;outline:none;font-size:13px;line-height:1.7;transition:border-color .2s,background .2s}.field input:focus,.field textarea:focus{border-color:var(--accent);background:var(--soft)}.field input::placeholder,.field textarea::placeholder{color:var(--faint)}.field textarea{min-height:190px;resize:vertical}.form-bottom{display:flex;align-items:center;gap:22px}.send-button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;border:1px solid var(--line);border-radius:9px;padding:13px 22px;background:transparent;font-size:12px;font-weight:650;transition:background .2s,border-color .2s,color .2s}.send-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.4}.send-button:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.contact-note{font-size:8px;color:var(--dim);letter-spacing:.07em}.form-status{font-size:12px;line-height:1.7;color:var(--accent);margin-top:18px}.contact-page .eyebrow{font-size:9px;margin-bottom:23px}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,15px);padding:13px 23px;background:var(--ink);color:var(--bg);border-radius:10px;box-shadow:0 10px 50px #0003;z-index:120;opacity:0;pointer-events:none;transition:opacity .2s,transform .25s;font-size:12px;max-width:calc(100vw - 40px);text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1800px){:root{--gutter:48px;--header-height:78px}.hero-name{font-size:19vw}.section-shell{padding-top:110px}.hero{padding-bottom:50px}.hero-description{font-size:15px;max-width:390px}.work-grid{gap:52px 32px}.card-title{font-size:21px}.card-type{font-size:10px}.primary-nav a{padding-left:37px;padding-right:37px}}
@media(max-width:1100px){:root{--gutter:25px;--header-height:68px}.primary-nav a{padding:0 15px;font-size:9px}.theme-control{width:77px}.wordmark{font-size:15px}.project-overview{gap:45px}.contact-layout{gap:55px;grid-template-columns:.8fr 1.4fr}.contact-page{padding-top:90px}.about-layout{gap:50px}.hero-name{font-size:24vw}.hero-topline{top:28px}.card-meta{align-items:flex-start}.card-type{font-size:8px;max-width:45%}.card-details p{font-size:13px}.section-heading{font-size:6vw}}
@media(max-width:800px){:root{--gutter:20px;--header-height:64px}.primary-nav{position:fixed;top:var(--header-height);left:0;right:0;height:auto;background:var(--bg);display:none;flex-direction:column;padding:15px 20px 24px;border-bottom:1px solid var(--line);max-height:calc(100svh - 64px);overflow:auto}.primary-nav.is-open{display:flex}.primary-nav a{font-size:13px;padding:17px 10px;border-left:0;border-bottom:1px solid var(--line)}.primary-nav a::after{display:none}.mobile-menu-toggle{display:flex;flex-direction:column;gap:6px;justify-content:center;align-items:center;margin-left:auto;width:56px;height:44px;background:none;border-radius:8px}.mobile-menu-toggle span{display:block;width:20px;height:1px;background:var(--ink);transition:transform .2s}.mobile-menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.mobile-menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.theme-control{width:76px}.hero{min-height:calc(89svh - var(--header-height));padding-bottom:32px}.hero-name{font-size:29vw;line-height:.88;letter-spacing:-.05em}.hero-bottom{align-items:flex-start;margin-top:26px}.hero-description{font-size:12px;max-width:250px}.hero-link{font-size:9px;gap:9px}.hero-link::after{width:25px}.hero-topline{font-size:8px;top:26px}.hero .eyebrow{font-size:8px;margin-bottom:18px}.hero-image img{object-position:60% center}.section-shell{padding-top:65px;padding-bottom:70px}.section-heading{font-size:7.2vw}.section-header{margin-bottom:30px}.section-aside{font-size:11px;max-width:200px}.work-grid{gap:32px 18px}.card-art{aspect-ratio:1.35}.card-title{font-size:15px}.card-type{font-size:7px}.card-meta{padding-top:12px;gap:8px}.card-details{left:17px;right:17px;bottom:20px}.card-details p{font-size:12px}.card-details .project-tag{font-size:7px;padding:3px 7px}.work-card.is-expanded .card-surface{inset:-6px -6px -70px}.page-shell{padding-top:55px;padding-bottom:70px}.page-heading{font-size:12vw}.page-subtitle{font-size:13px}.page-intro{margin-bottom:38px}.filter-status{display:none}.filter-bar{gap:7px;margin-top:30px}.filter-button{padding:8px 13px;font-size:8px}.project-overview{grid-template-columns:1fr;gap:38px;padding-bottom:40px}.project-info{grid-template-columns:repeat(3,1fr);gap:20px}.project-info div:last-child{grid-column:1/-1}.project-content{padding-top:40px;padding-bottom:65px}.project-cover{height:70svh;min-height:380px}.project-cover-copy{bottom:35px}.project-cover h1{font-size:15vw}.project-cover-copy .eyebrow{font-size:9px}.breakdown-grid{gap:30px;padding-bottom:35px}.breakdown-grid h3{font-size:22px}.breakdown-grid p{font-size:13px}.contact-callout{font-size:9vw}.callout-arrow{width:60px;height:60px}.callout-arrow svg{width:26px;height:26px}.home-contact{padding-top:45px;padding-bottom:60px}.photography-grid{grid-template-columns:1fr 1fr;gap:32px 18px}.photo-card:nth-child(3n+2){padding-top:0}.photo-card:nth-child(2n){padding-top:65px}.photo-card figcaption{flex-direction:column;gap:4px}.photo-card .photo-title{font-size:12px}.about-layout{gap:35px}.about-copy h2{font-size:35px}.about-copy p{font-size:13px}.discipline{flex-direction:column;align-items:flex-start;gap:4px}.blog-grid{grid-template-columns:1fr 1fr;gap:38px 20px}.post-card h2{font-size:24px}.blog-grid .post-card:last-child{grid-column:1/-1;max-width:calc(50% - 10px)}.contact-page{padding-top:70px;min-height:75vh}.contact-layout{gap:40px;grid-template-columns:.8fr 1.3fr}.contact-copy h1{font-size:40px}.contact-copy>p{font-size:13px}.form-row{grid-template-columns:1fr;gap:0}.contact-note{font-size:7px}.form-bottom{align-items:flex-start;flex-direction:column;gap:15px}.field textarea{min-height:180px}}
@media(max-width:520px){:root{--gutter:18px;--radius:12px}.hero{min-height:78svh}.hero-name{font-size:32vw}.hero-name .outlined{margin-left:12vw}.hero-description{font-size:11px;max-width:225px}.hero-bottom{flex-direction:column;gap:22px}.hero-topline span:last-child{max-width:100px}.hero .eyebrow{font-size:7px;letter-spacing:.08em;gap:9px}.slash-mark{width:28px}.section-header{flex-direction:column;align-items:flex-start;gap:18px}.section-heading{font-size:10vw}.section-aside{text-align:left;max-width:280px;font-size:11px}.work-grid{column-gap:13px;row-gap:29px}.card-art{aspect-ratio:.92}.card-meta{flex-direction:column;gap:3px;padding-top:10px}.card-title{font-size:14px}.card-type{max-width:none;font-size:7px;text-align:left;letter-spacing:.04em}.card-details{left:13px;right:13px}.card-details p{font-size:11px}.card-details .project-tags{display:none}.card-corner{right:11px;top:11px;width:28px;height:28px}.hover-progress{width:34px!important;height:34px!important;inset:-4px}.work-card.is-expanded .card-surface{inset:-5px -5px -63px}.section-bottom{align-items:flex-start;flex-direction:column;gap:15px;margin-top:35px}.section-bottom .text-link{font-size:10px}.preview-caption{font-size:8px}.home-contact .eyebrow{font-size:8px}.contact-callout{font-size:10vw}.callout-arrow{width:45px;height:45px}.callout-arrow svg{width:20px;height:20px}.site-footer{padding-top:30px;gap:25px}.social-links{gap:13px}.social-link{width:40px;height:40px}.social-link svg{width:17px;height:17px}.footer-meta{gap:15px;flex-wrap:wrap;justify-content:center}.footer-note{font-size:7px}.footer-top{font-size:8px}.page-heading{font-size:14vw}.page-intro .eyebrow{font-size:8px}.page-subtitle{font-size:12px;line-height:1.9}.page-topline{align-items:flex-start;flex-direction:column}.filter-bar{gap:6px}.filter-button{font-size:7px;padding:7px 10px;letter-spacing:.05em}.project-cover h1{font-size:19vw}.project-cover-copy{bottom:30px}.project-cover-type{font-size:9px}.project-cover-copy .eyebrow{font-size:8px}.project-introduction h2{font-size:27px}.project-introduction p{font-size:13px}.project-info{grid-template-columns:1fr 1fr;gap:20px}.project-info dt{font-size:8px}.project-info dd{font-size:12px}.project-info div:last-child{grid-column:auto}.project-info .project-tag{font-size:7px;padding:3px 7px}.project-process-image{margin-bottom:30px}.project-process-image figcaption{font-size:7px}.breakdown-grid{grid-template-columns:1fr;gap:20px}.next-project-title{font-size:42px}.project-next .text-link{font-size:8px}.overlay-close,.photo-close{top:17px;right:17px;width:42px;height:42px}.demo-layout{padding-bottom:50px}.demo-frame{min-height:390px;aspect-ratio:3/4}.demo-center h2{font-size:40px}.demo-meta{flex-direction:column;gap:7px}.demo-meta .meta{font-size:8px}.photography-grid{gap:25px 13px}.photo-card:nth-child(2n){padding-top:40px}.photo-card .photo-title{font-size:11px}.photo-card .meta{font-size:7px}.photo-overlay{padding:70px 40px}.photo-prev,.photo-next{width:30px;height:30px}.photo-prev{left:5px}.photo-next{right:5px}.photo-prev svg,.photo-next svg{width:17px;height:17px}.photo-caption{font-size:7px}.about-layout{grid-template-columns:1fr;gap:35px}.about-image img{aspect-ratio:4/3}.about-copy h2{font-size:37px}.about-copy p{font-size:14px}.discipline{flex-direction:row;align-items:center;gap:15px}.discipline .meta{font-size:8px}.blog-grid{grid-template-columns:1fr;gap:40px}.blog-grid .post-card:last-child{grid-column:auto;max-width:none}.post-card img{aspect-ratio:1.45}.post-card h2{font-size:28px}.article .page-heading{font-size:50px}.article-body p{font-size:14px}.article-body p:first-child{font-size:21px}.contact-page{padding-top:55px}.contact-layout{grid-template-columns:1fr;gap:38px}.contact-copy>p{max-width:340px;margin-bottom:25px}.contact-copy h1{font-size:48px}.contact-copy .eyebrow{font-size:8px}.contact-detail{margin:18px 0}.contact-inline-socials{font-size:11px}.form-row{grid-template-columns:1fr 1fr;gap:12px}.field{margin-bottom:18px}.field input,.field textarea{padding:12px;font-size:12px}.field textarea{min-height:170px}.form-bottom{flex-direction:row;align-items:center;gap:15px}.send-button{font-size:11px;padding:12px 15px;gap:18px}.contact-note{max-width:130px}}
.wip-page{min-height:calc(100svh - var(--header-height) - 194px);padding:105px var(--gutter) 48px;display:flex;flex-direction:column;justify-content:center;position:relative}.wip-copy{width:min(100%,1100px);margin:0 auto}.wip-copy .eyebrow{margin-bottom:35px}.wip-heading{font-size:clamp(65px,10vw,150px);font-weight:800;font-variation-settings:'wdth' 125;line-height:.95;letter-spacing:-.055em;margin:0}.wip-heading>span{display:block}.wip-period{color:var(--accent)}.wip-note{color:var(--dim);font-size:14px;margin:30px 0 32px;line-height:1.8}.wip-blog-link{font-size:10px}.wip-bottom{color:var(--faint);font-size:8px;margin:65px auto 0;width:min(100%,1100px)}
@media(max-width:800px){.wip-page{padding-top:90px;padding-bottom:40px;min-height:calc(100svh - var(--header-height) - 190px)}.wip-heading{font-size:11vw}.wip-note{font-size:12px}.wip-bottom{font-size:7px}}
@media(max-width:520px){.wip-heading{font-size:12.2vw}.wip-copy .eyebrow{font-size:8px;margin-bottom:27px}.wip-note{max-width:260px}.wip-page{padding-top:75px;min-height:calc(100svh - var(--header-height) - 186px)}.wip-bottom{font-size:6px;letter-spacing:.07em}}
.project-overlay.is-closing{background:transparent}.project-overlay.is-closing::backdrop{background:transparent}
@media(max-width:800px){.project-cover h1.long-title{font-size:10.5vw}.project-cover h1.medium-title{font-size:12.5vw}}
@media(max-width:520px){.page-heading{font-size:12.3vw}.project-cover h1{font-size:19vw;letter-spacing:-.05em}.project-cover h1.long-title{font-size:11.4vw}.project-cover h1.medium-title{font-size:12.5vw}.project-next{flex-direction:column;align-items:flex-start;gap:28px}.next-project-title{font-size:clamp(30px,9vw,44px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
