@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=Manrope:wght@400;500;600&family=Newsreader:ital,opsz,wght@1,6..72,400&display=swap');

:root{--paper:#f6f5f0;--ink:#142326;--muted:#667273;--line:#cfd3cd;--accent:#ff6248;--acid:#d8ff65;--max:1440px;--pad:clamp(1.25rem,4vw,4rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Manrope",Arial,sans-serif;font-size:16px;line-height:1.55}a{color:inherit}button,input{font:inherit}.wrap{width:min(var(--max),100%);margin-inline:auto;padding-inline:var(--pad)}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:999;background:var(--ink);color:white;padding:.7rem 1rem}.skip-link:focus{top:1rem}.site-header{height:112px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:10}.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none;font-weight:600;letter-spacing:-.035em;font-size:1.05rem}.brand-mark{width:35px;height:35px;border:1.5px solid var(--ink);border-radius:50%;display:grid;place-items:center;position:relative;font-family:"DM Mono",monospace;font-size:.68rem}.brand-mark i{font-style:normal;position:absolute}.brand-mark i:first-child{transform:translate(-3px,-3px)}.brand-mark i:last-child{transform:translate(4px,4px);color:var(--accent)}.site-nav{display:flex;gap:clamp(1.5rem,3vw,3.3rem);font-family:"DM Mono",monospace;font-size:.76rem;text-transform:uppercase;letter-spacing:.07em}.site-nav a{text-decoration:none;padding-block:.25rem;position:relative}.site-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-.2rem;height:1px;background:var(--ink);transition:right .25s ease}.site-nav a:hover:after,.site-nav a[aria-current="page"]:after{right:0}.menu-toggle{display:none;background:none;border:0;text-transform:uppercase;font-family:"DM Mono",monospace;font-size:.78rem}.hero{min-height:610px;padding-top:clamp(5rem,10vw,9rem);padding-bottom:7rem;display:grid;grid-template-columns:1fr minmax(260px,470px);align-content:start;column-gap:4rem}.eyebrow,.section-index,.filter-label{font-family:"DM Mono",monospace;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem}.hero .eyebrow{grid-column:1/-1;margin:0 0 1.7rem}.hero h1,.page-intro h1,.about-copy h1,.contact-intro h1{font-size:clamp(4rem,9.4vw,9rem);font-weight:400;letter-spacing:-.07em;line-height:.84;margin:0}.hero h1 em{font-family:"Newsreader",Georgia,serif;font-weight:400;color:var(--accent)}.hero-copy{padding-top:clamp(2rem,9vw,6rem);font-size:clamp(1rem,1.3vw,1.2rem)}.hero-copy p{max-width:41ch}.text-link{display:inline-block;margin-top:1.3rem;text-decoration:none;border-bottom:1px solid;padding-bottom:.2rem}.portfolio{padding-bottom:9rem}.section-heading{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--ink);padding-bottom:1.5rem}.section-heading h2{font-size:clamp(2.4rem,5vw,4.8rem);font-weight:400;letter-spacing:-.055em;line-height:1;margin:.6rem 0 0}.result-count{font-family:"DM Mono",monospace;font-size:.76rem}.filters{display:grid;grid-template-columns:1.25fr .75fr;gap:3rem;padding:1.6rem 0 3.5rem}.filter-group{display:flex;align-items:flex-start;gap:2rem}.filter-label{padding-top:.6rem;white-space:nowrap}.filter-buttons{display:flex;flex-wrap:wrap;gap:.45rem}.filter-button{border:1px solid var(--line);background:transparent;border-radius:100px;padding:.45rem .9rem;cursor:pointer;font-size:.83rem;transition:.2s ease}.filter-button:hover{border-color:var(--ink)}.filter-button.is-active{background:var(--ink);border-color:var(--ink);color:white}.year-filter{display:grid;grid-template-columns:auto 1fr;gap:1.5rem}.year-controls{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.year-controls label{font-family:"DM Mono",monospace;font-size:.72rem;display:grid;grid-template-columns:1fr auto;gap:.55rem}.year-controls input{grid-column:1/-1;width:100%;accent-color:var(--accent)}.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:4.5rem 1.5rem}.project-card{grid-column:span 6}.project-card:nth-child(3n){grid-column:3/span 8}.project-open{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;position:relative;overflow:hidden;cursor:pointer;text-align:left}.artwork{aspect-ratio:4/3;background:var(--c1);overflow:hidden;position:relative}.project-card-tall .artwork{aspect-ratio:4/4.75}.shape{position:absolute;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.shape-one{width:60%;aspect-ratio:1;border-radius:50%;background:var(--c2);left:20%;top:16%}.shape-two{width:48%;height:65%;border-radius:50% 12% 45% 40%;background:var(--c3);left:6%;bottom:-24%;transform:rotate(16deg)}.shape-three{width:35%;height:60%;border:2px solid var(--c2);border-radius:50%;right:5%;bottom:-21%;transform:rotate(-27deg)}.visual-b .shape-one{border-radius:12%;width:42%;height:68%;left:29%;top:15%;transform:rotate(10deg)}.visual-b .shape-two{width:22%;height:22%;border-radius:50%;left:16%;bottom:15%}.visual-b .shape-three{width:56%;height:30%;bottom:13%;right:9%;border-radius:50%}.visual-c .shape-one{width:22%;top:22%;left:12%;box-shadow:80px 60px 0 var(--c3),160px -15px 0 var(--c2);filter:blur(1px)}.visual-c .shape-two{width:72%;height:2px;bottom:28%;left:14%;background:var(--c2);transform:rotate(-8deg)}.visual-c .shape-three{width:44%;height:44%;bottom:-12%;right:-4%;border-width:20px}.visual-d .shape-one{width:46%;border-radius:5% 55% 8% 48%;transform:rotate(20deg);left:10%}.visual-d .shape-two{width:34%;height:47%;border-radius:50% 6%;left:47%;bottom:8%;transform:rotate(-20deg)}.visual-d .shape-three{width:23%;height:42%;bottom:8%;right:5%;border-radius:0}.placeholder-label{position:absolute;left:1rem;bottom:1rem;background:rgba(246,245,240,.9);padding:.35rem .55rem;font-family:"DM Mono",monospace;font-size:.62rem;text-transform:uppercase;letter-spacing:.07em}.play-mark{position:absolute;display:grid;place-items:center;width:4rem;height:4rem;border-radius:50%;background:var(--acid);color:var(--ink);left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;padding-left:.18rem}.card-overlay{position:absolute;inset:0;background:rgba(20,35,38,.86);color:white;display:flex;justify-content:space-between;align-items:end;padding:1.3rem;opacity:0;transition:opacity .3s}.card-overlay span{transform:translateY(10px);transition:transform .3s}.card-overlay i{font-style:normal;font-size:1.8rem}.project-open:hover .card-overlay,.project-open:focus-visible .card-overlay{opacity:1}.project-open:hover .card-overlay span,.project-open:focus-visible .card-overlay span{transform:none}.project-open:hover .shape-one{transform:scale(1.08) rotate(4deg)}.project-open:hover .shape-two{transform:translate(12px,-12px) rotate(24deg)}.card-meta{display:flex;justify-content:space-between;gap:2rem;padding-top:1rem}.card-meta h3{font-size:1.1rem;margin:0 0 .2rem;font-weight:500}.card-meta p,.card-meta time{margin:0;font-size:.72rem;color:var(--muted);font-family:"DM Mono",monospace}.card-meta>div:last-child{text-align:right}.empty-state{padding:5rem;border:1px solid var(--line);text-align:center}.cta-band{background:var(--acid)}.cta-inner{min-height:220px;display:flex;align-items:center;justify-content:space-between;gap:2rem}.cta-inner p{font-size:clamp(1.3rem,2.5vw,2.4rem);letter-spacing:-.04em}.cta-inner a{text-decoration:none;font-size:clamp(1.3rem,2.5vw,2.4rem);border-bottom:2px solid}.site-footer{height:120px;display:flex;align-items:center;justify-content:space-between;font-family:"DM Mono",monospace;text-transform:uppercase;font-size:.68rem;letter-spacing:.07em}.project-dialog{width:min(1120px,94vw);max-height:90vh;padding:0;border:0;background:var(--paper);color:var(--ink);box-shadow:0 30px 100px rgba(0,0,0,.25)}.project-dialog::backdrop{background:rgba(13,24,26,.75);backdrop-filter:blur(4px)}.dialog-close{position:fixed;right:max(4vw,2rem);top:max(4vh,1rem);z-index:2;background:var(--paper);border:1px solid var(--ink);padding:.5rem .8rem;cursor:pointer}.dialog-content{display:grid;grid-template-columns:1.15fr .85fr}.artwork-large{height:75vh;aspect-ratio:auto}.dialog-copy{padding:clamp(2rem,6vw,5rem);display:flex;flex-direction:column;justify-content:center}.dialog-copy h2{font-size:clamp(2.5rem,5vw,5rem);font-weight:400;letter-spacing:-.06em;line-height:.95;margin:1rem 0 2rem}.dialog-copy>p:last-of-type{font-size:1.1rem}.dialog-copy dl{border-top:1px solid var(--line);margin-top:2rem}.dialog-copy dl div{display:grid;grid-template-columns:1fr 2fr;border-bottom:1px solid var(--line);padding:.7rem 0}.dialog-copy dt{font-family:"DM Mono",monospace;font-size:.7rem;text-transform:uppercase}.dialog-copy dd{margin:0}.page-main{padding-top:7rem;padding-bottom:9rem}.page-intro{display:grid;grid-template-columns:1fr minmax(260px,520px);column-gap:4rem}.page-intro .eyebrow{grid-column:1/-1}.page-intro h1{font-size:clamp(3.6rem,7.5vw,7rem);max-width:12ch}.lede{align-self:end;max-width:47ch;font-size:1.12rem}.service-list{border-top:1px solid var(--ink);margin-top:8rem}.service-row{display:grid;grid-template-columns:60px 1fr 220px;gap:2rem;padding:2.4rem 0;border-bottom:1px solid var(--line)}.service-row>span,.service-tags{font-family:"DM Mono",monospace;font-size:.7rem;text-transform:uppercase}.service-row h2{font-size:clamp(1.6rem,2.7vw,2.7rem);font-weight:400;letter-spacing:-.045em;margin:0}.service-row div p{max-width:60ch;margin:.6rem 0 0;color:var(--muted)}.service-tags{text-align:right}.process-section{margin-top:9rem;border-top:1px solid var(--ink);padding-top:1.5rem}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:4rem}.process-grid div{background:#eceae1;padding:2rem;min-height:245px}.process-grid strong{font-family:"DM Mono",monospace;font-size:.72rem}.process-grid h3{font-size:1.7rem;font-weight:400;margin:4rem 0 .7rem}.about-main{padding-top:5rem;padding-bottom:9rem}.about-hero{display:grid;grid-template-columns:minmax(380px,1fr) 1fr;gap:clamp(3rem,8vw,8rem);align-items:center}.portrait-placeholder{min-height:680px;background:#082d34;position:relative;overflow:hidden;color:white;display:flex;align-items:end;padding:1.5rem;font-family:"DM Mono",monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.portrait-orbit{position:absolute;border:1px solid rgba(216,255,101,.7);border-radius:50%}.orbit-one{width:540px;height:210px;top:24%;left:-10%;transform:rotate(20deg)}.orbit-two{width:430px;height:430px;top:8%;right:-20%}.portrait-silhouette{position:absolute;width:56%;height:63%;bottom:0;left:22%;background:#f1b393;border-radius:48% 48% 8% 8%}.portrait-silhouette:before{content:"";position:absolute;width:43%;aspect-ratio:1;border-radius:50%;background:#eab08e;left:28%;top:-27%}.portrait-silhouette:after{content:"";position:absolute;width:59%;height:42%;border-radius:50% 50% 30% 35%;background:#1b2522;left:20%;top:-31%}.portrait-silhouette span{position:absolute;width:150%;height:30%;background:var(--accent);left:-25%;bottom:17%;transform:rotate(-7deg)}.about-copy h1{font-size:clamp(3rem,6vw,6.4rem);margin:1.2rem 0 3rem}.about-copy p{max-width:57ch;font-size:1.06rem}.dropcap:first-letter{font-family:"Newsreader",Georgia,serif;font-size:5rem;float:left;line-height:.72;padding-right:.5rem;color:var(--accent)}blockquote{font-family:"Newsreader",Georgia,serif;font-size:clamp(1.5rem,2.5vw,2.3rem);line-height:1.2;margin:3rem 0 0;padding-left:1.5rem;border-left:3px solid var(--accent)}.about-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;margin-top:9rem}.about-notes article{border-top:1px solid var(--ink);padding-top:1.3rem}.about-notes h2{font-size:1.7rem;font-weight:400;letter-spacing:-.04em;margin:3rem 0 1rem}.contact-main{padding-top:clamp(5rem,10vw,10rem);padding-bottom:9rem;display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,8rem)}.contact-intro h1{font-size:clamp(4rem,8vw,8rem);margin:1.2rem 0 3rem}.contact-intro>p:last-child{max-width:46ch;font-size:1.1rem}.contact-card{border-top:1px solid var(--ink);align-self:center}.contact-card a{display:grid;grid-template-columns:100px 1fr auto;align-items:center;gap:1rem;padding:1.5rem 0;border-bottom:1px solid var(--line);text-decoration:none;transition:padding .2s}.contact-card a:hover{padding-left:.7rem}.contact-card span{font-family:"DM Mono",monospace;font-size:.7rem;text-transform:uppercase}.contact-card strong{font-weight:400}.contact-card i{font-style:normal;font-size:1.3rem}.contact-note{grid-column:2;border-left:2px solid var(--accent);padding-left:1.2rem;color:var(--muted);font-size:.85rem}.contact-note p{margin:.2rem 0}
@media(max-width:850px){.site-header{height:85px}.menu-toggle{display:block}.site-nav{display:none;position:absolute;top:74px;left:var(--pad);right:var(--pad);background:var(--ink);color:white;padding:1.2rem;flex-direction:column;gap:1rem}.site-nav.is-open{display:flex}.hero{grid-template-columns:1fr;min-height:550px;padding-top:5rem}.hero-copy{max-width:530px}.filters{grid-template-columns:1fr}.project-grid{gap:3rem 1rem}.project-card,.project-card:nth-child(3n){grid-column:span 6}.dialog-content{grid-template-columns:1fr}.artwork-large{height:50vh}.page-intro{grid-template-columns:1fr}.lede{margin-top:2rem}.service-row{grid-template-columns:40px 1fr}.service-tags{grid-column:2;text-align:left}.about-hero{grid-template-columns:1fr}.portrait-placeholder{min-height:570px}.about-notes{grid-template-columns:1fr}.contact-main{grid-template-columns:1fr}.contact-note{grid-column:1}.cta-inner{align-items:flex-start;flex-direction:column;justify-content:center}.site-footer{height:auto;padding-top:2rem;padding-bottom:2rem;gap:1rem;align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.hero h1{font-size:3.7rem}.project-card,.project-card:nth-child(3n){grid-column:1/-1}.filters{padding-bottom:2rem}.filter-group,.year-filter{display:block}.filter-label{display:block;margin-bottom:.8rem}.year-controls{margin-top:.8rem}.service-row{grid-template-columns:1fr}.service-row>span,.service-tags{grid-column:1}.process-grid{grid-template-columns:1fr}.about-main{padding-top:2rem}.portrait-placeholder{min-height:480px}.contact-card a{grid-template-columns:1fr auto}.contact-card strong{grid-column:1;font-size:.85rem}.contact-card i{grid-column:2;grid-row:1/3}.site-footer p{margin:0}.project-dialog{width:96vw}.dialog-close{position:sticky;float:right;top:.5rem;margin:.5rem}.artwork-large{height:42vh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Portfolio range and modular grid */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.year-filter{grid-template-columns:auto minmax(210px,1fr)}
.range-filter{--range-start:0%;--range-end:100%}
.range-values{display:flex;justify-content:center;gap:.55rem;font-family:"DM Mono",monospace;font-size:.78rem;font-weight:500}
.dual-range{height:28px;position:relative;margin-top:.15rem}
.range-track{position:absolute;left:0;right:0;top:13px;height:2px;background:linear-gradient(to right,var(--line) 0 var(--range-start),var(--accent) var(--range-start) var(--range-end),var(--line) var(--range-end) 100%)}
.dual-range input{position:absolute;left:0;top:0;width:100%;height:28px;margin:0;background:transparent;pointer-events:none;appearance:none;-webkit-appearance:none}
.dual-range input::-webkit-slider-runnable-track{height:2px;background:transparent}
.dual-range input::-moz-range-track{height:2px;background:transparent}
.dual-range input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:17px;height:17px;margin-top:-7px;border-radius:50%;border:2px solid var(--paper);background:var(--ink);box-shadow:0 0 0 1px var(--ink);cursor:grab;pointer-events:auto}
.dual-range input::-moz-range-thumb{width:13px;height:13px;border-radius:50%;border:2px solid var(--paper);background:var(--ink);box-shadow:0 0 0 1px var(--ink);cursor:grab;pointer-events:auto}
.dual-range input:focus-visible::-webkit-slider-thumb{outline:3px solid var(--acid);outline-offset:3px}
.dual-range input:focus-visible::-moz-range-thumb{outline:3px solid var(--acid);outline-offset:3px}
.range-limits{display:flex;justify-content:space-between;color:var(--muted);font-family:"DM Mono",monospace;font-size:.6rem}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(310px,31vw,470px);grid-auto-flow:dense;gap:1.5rem}
.project-card,.project-card:nth-child(3n){min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto}
.project-card.project-size-1x1{grid-column:span 1;grid-row:span 1}
.project-card.project-size-1x2{grid-column:span 1;grid-row:span 2}
.project-card.project-size-2x1{grid-column:span 2;grid-row:span 1}
.project-card.project-size-2x2{grid-column:span 2;grid-row:span 2}
.project-open{height:100%;min-height:0}
.project-card .artwork{width:100%;height:100%;aspect-ratio:auto}

@media(max-width:850px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(280px,47vw,400px);gap:1.5rem 1rem}.project-card,.project-card:nth-child(3n){grid-template-rows:minmax(0,1fr) auto}.project-card.project-size-1x1{grid-column:span 1;grid-row:span 1}.project-card.project-size-1x2{grid-column:span 1;grid-row:span 2}.project-card.project-size-2x1{grid-column:span 2;grid-row:span 1}.project-card.project-size-2x2{grid-column:span 2;grid-row:span 2}}
@media(max-width:560px){.project-grid{grid-template-columns:1fr;grid-auto-rows:auto;gap:3rem}.project-card,.project-card:nth-child(3n),.project-card.project-size-1x1,.project-card.project-size-1x2,.project-card.project-size-2x1,.project-card.project-size-2x2{grid-column:1;grid-row:auto}.project-open{height:auto}.project-card .artwork{height:auto;aspect-ratio:4/3}.project-card.project-size-1x2 .artwork{aspect-ratio:3/4}.range-filter{margin-top:.8rem}}

