:root{color-scheme:dark;--bg:#000;--text:#f5f5f2;--muted:#a5a5a0;--line:#343431;--accent:#d1ff56;--gutter:clamp(22px,4.5vw,76px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:6px}img{display:block;max-width:100%}button{cursor:pointer}h1,h2,p{margin:0}button[hidden],[hidden]{display:none!important}.skip-link{position:fixed;top:-100px;left:16px;z-index:10;background:var(--accent);color:#000;padding:12px}.skip-link:focus{top:16px}
.header{height:100px;padding:0 var(--gutter);display:flex;justify-content:space-between;align-items:center}.wordmark{font-size:27px;font-weight:700;letter-spacing:-1.3px}.header nav{display:flex;align-items:center;gap:38px;font-size:15px}.header nav a{padding:10px 0}.header nav a:hover,.socials a:hover{color:var(--accent)}
.down-link{font-size:34px;line-height:1;padding:10px 4px}.down-link:hover{transform:translateY(4px)}
.works-section{padding:75px var(--gutter) 0}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}h2{font-size:clamp(44px,5.5vw,80px);line-height:1;letter-spacing:-.055em}.count{font-size:15px;letter-spacing:0;vertical-align:top;display:inline-block;margin:8px 0 0 18px;font-weight:400;color:var(--muted)}.filters{display:flex;gap:24px;padding-bottom:5px}.filters button{border:0;background:none;padding:7px 0;border-bottom:1px solid transparent;color:var(--muted);font-size:14px}.filters button[aria-pressed=true]{color:var(--text);border-color:var(--text)}.filters button:hover{color:var(--accent)}.section-note{color:var(--muted);font-size:14px;line-height:1.6;margin:24px 0 32px}.section-note a{color:var(--text)}.section-note a:hover{text-decoration:underline}.works-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;row-gap:42px}.work-image{position:relative;display:block;width:100%;padding:0;border:0;background:#171715;overflow:hidden;text-align:left}.work-image img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.3,1),filter .3s}.work-image:hover img{transform:scale(1.035);filter:brightness(.85)}.work-view{position:absolute;bottom:18px;right:18px;font-size:13px;background:#000c;padding:10px 13px;opacity:0;transform:translateY(5px);transition:opacity .2s,transform .2s}.work-image:hover .work-view,.work-image:focus-visible .work-view{opacity:1;transform:none}.media-label{position:absolute;top:16px;right:16px;font-size:12px;background:#0009;padding:7px 10px}.work-caption{display:flex;justify-content:space-between;gap:12px;font-size:13px;line-height:1.5;padding:15px 0 0}.work-caption:hover{color:var(--accent)}.work-date{display:flex;align-items:center;gap:18px}.work-date time{font-size:11px;color:var(--muted);white-space:nowrap}.work-date>span{font-size:24px;line-height:1}.gallery-status{font-size:12px;color:var(--muted);margin-top:20px;min-height:16px}.more-link{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0;font-size:16px;margin-top:26px}.more-link>span{font-size:28px}.more-link:hover{color:var(--accent)}
.about{padding:135px var(--gutter) 125px;text-align:center}.about-label{font-size:13px;letter-spacing:.05em;color:var(--muted);margin-bottom:28px}.about h2{font-size:clamp(25px,3.4vw,49px);letter-spacing:-.04em}.about-copy{color:var(--muted);font-size:clamp(16px,1.5vw,21px);line-height:1.65;margin:30px auto 0;max-width:780px}.about-copy span{color:var(--text)}.contact{margin:0 var(--gutter);padding:54px 0 80px;border-top:1px solid #777;display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:center}.contact h2{font-size:clamp(46px,5.9vw,88px);line-height:1.02}.contact-links{width:100%;max-width:350px;justify-self:end}.contact-cta{background:var(--accent);color:#000;display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:16px;padding:23px 28px;transition:background .2s}.contact-cta:hover{background:#e3ff9d}.contact-cta>span{font-size:27px;font-weight:400}.socials{display:flex;justify-content:space-between;margin-top:27px;font-size:15px}.socials a{display:flex;gap:20px}footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:27px var(--gutter);color:var(--muted);font-size:12px}footer>a{font-size:19px;font-weight:700;color:var(--text);letter-spacing:-.6px}
.preview{width:min(1100px,calc(100vw - 40px));max-height:90svh;overflow:auto;background:#0e0e0d;color:var(--text);border:1px solid var(--line);padding:60px 28px 28px}.preview::backdrop{background:#000e;backdrop-filter:blur(8px)}.close-preview{position:absolute;right:23px;top:17px;border:0;background:none;font-size:13px;display:flex;align-items:center;gap:20px}.close-preview span{font-size:28px}.preview-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:center}.preview-image{width:100%;max-height:72svh;object-fit:contain}.preview-eyebrow{font-size:12px;color:var(--muted);margin-bottom:20px}.preview-info h2{font-size:30px;line-height:1.15;overflow-wrap:anywhere}.preview-caption{white-space:pre-wrap;font-size:15px;line-height:1.5;margin-top:20px;overflow-wrap:anywhere}.preview-note{font-size:14px;line-height:1.6;color:var(--muted);margin:24px 0}.preview-original{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:16px 0;color:var(--accent);font-size:15px}body.modal-open{overflow:hidden}
@media(min-width:1600px){body{max-width:1900px;margin:auto}}
@media(max-width:900px){.header{height:84px}.works-section{padding-top:45px}.work-date time{display:none}.contact{grid-template-columns:1.2fr 1fr;gap:24px}.contact-cta{padding:18px;font-size:14px}.about{padding-top:100px;padding-bottom:100px}}
@media(max-width:600px){.header{height:80px}.wordmark{font-size:23px}.header nav{gap:22px;font-size:12px}.header nav a:nth-child(2){display:none}.down-link{font-size:28px}.works-section{padding-top:66px}.section-heading{align-items:center}.section-heading h2{font-size:43px}.count{font-size:12px;margin:3px 0 0 10px}.filters{gap:15px;padding:0}.filters button{font-size:12px}.section-note{font-size:12px;margin:20px 0 26px;max-width:280px}.works-grid{grid-template-columns:1fr;gap:30px}.work-caption{font-size:12px}.work-date time{display:block}.work-view{opacity:1;transform:none;font-size:11px;bottom:12px;right:12px;padding:8px 10px}.media-label{font-size:10px;top:12px;right:12px}.about{padding-top:85px;padding-bottom:85px}.about-label{font-size:11px;margin-bottom:20px}.about h2{font-size:clamp(21px,5.3vw,31px);letter-spacing:-.055em;white-space:nowrap}.about-copy{font-size:15px;margin-top:23px}.about-copy br{display:none}.contact{grid-template-columns:1fr;gap:32px;padding:38px 0 52px}.contact h2{font-size:clamp(42px,10.7vw,63px)}.contact-links{justify-self:start;max-width:none}.contact-cta{padding:20px 24px;font-size:15px}.socials{font-size:14px}footer{padding-top:24px;padding-bottom:24px;gap:20px}footer>span:nth-child(2){display:none}.preview{width:calc(100vw - 24px);padding:55px 18px 22px;max-height:92svh}.preview-layout{grid-template-columns:1fr;gap:24px}.preview-image{max-height:48svh}.preview-info h2{font-size:30px}.preview-note{margin:16px 0}.preview-eyebrow{margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
.brand-logo{width:clamp(220px,30vw,340px);height:auto;margin:0 auto 44px}

/* Shared interaction language: outlined controls, solid selection, directional arrows. */
a,button{touch-action:manipulation}
.header nav{gap:10px}
.header nav a{min-height:44px;padding:12px 18px;border-radius:999px;transition:background .22s,color .22s,transform .22s}
.header nav a:last-child{border:1px solid #55554e;display:flex;gap:24px;align-items:center}
.header nav a span{display:inline-block;transition:transform .25s}
.filters{gap:4px;padding:5px;border:1px solid var(--line);border-radius:999px;background:#11110f}
.filters button{min-height:40px;min-width:64px;padding:10px 18px;border:0;border-radius:999px;color:#c2c2bb;transition:background .2s,color .2s,transform .2s}
.filters button[aria-pressed=true]{background:var(--text);color:#111}
.down-link{width:56px;height:56px;display:grid;place-items:center;border:1px solid #77776e;border-radius:50%;padding:0;font-size:26px;transition:background .22s,color .22s,transform .22s}
.contact-cta{border-radius:999px;padding:10px 10px 10px 28px;min-height:76px;gap:20px;font-weight:500;font-size:17px;transition:background .25s,transform .25s,box-shadow .25s}
.contact-cta>span{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:50%;background:#13150d;color:var(--accent);font-size:26px;transition:transform .3s,background .25s,color .25s}
.socials{gap:12px;margin-top:14px}
.socials a{flex:1;justify-content:space-between;align-items:center;min-height:54px;border:1px solid var(--line);border-radius:999px;padding:14px 18px;gap:10px;transition:background .22s,border-color .22s,color .22s}
.socials a span{transition:transform .25s}
.more-link{border:1px solid var(--line);border-radius:12px;padding:18px 22px;min-height:76px;transition:background .25s,border-color .25s,color .25s}
.more-link>span{width:40px;height:40px;display:grid;place-items:center;border:1px solid #77776e;border-radius:50%;transition:transform .25s,background .25s,color .25s}
.work-image{border-radius:8px}
.work-view{opacity:1;transform:none;display:flex;gap:18px;align-items:center;border:1px solid #ffffff4d;border-radius:999px;background:#10100ee6;padding:10px 15px;transition:background .22s,color .22s,transform .22s,border-color .22s}
.work-view>span{display:inline-block;transition:transform .25s}
.work-image:focus-visible .work-view{background:var(--accent);color:#111}
.close-preview{padding:8px 10px 8px 16px;min-height:44px;border:1px solid var(--line);border-radius:999px;transition:background .22s,color .22s}
.close-preview span{display:grid;place-items:center;width:26px;height:26px;transition:transform .25s}
.preview-original{padding:16px 20px;background:var(--accent);color:#111;border:0;border-radius:999px;align-items:center;min-height:54px;transition:background .22s,transform .22s}
.preview-original span{transition:transform .25s}
.work-caption{transition:color .2s}.wordmark{transition:opacity .2s}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.filters button:focus-visible{outline-offset:2px}
.contact-cta:focus-visible,.preview-original:focus-visible{outline-color:white}
a:active,button:active{transform:translateY(1px)}
@media(hover:hover){
 .header nav a:hover{color:#111;background:var(--text)}
 .header nav a:last-child:hover{background:var(--accent);border-color:var(--accent)}
 .header nav a:hover span,.socials a:hover span,.preview-original:hover span{transform:translate(2px,-2px)}
 .filters button:not([aria-pressed=true]):hover{background:#33332d;color:white}
 .down-link:hover{background:var(--accent);border-color:var(--accent);color:#111;transform:translateY(3px)}
 .contact-cta:hover{background:#e3ff9d;box-shadow:0 5px 24px #d1ff5619;transform:translateY(-2px)}
 .contact-cta:hover>span{transform:rotate(45deg);background:#000}
 .socials a:hover{background:var(--text);border-color:var(--text);color:#111}
 .more-link:hover{background:#171714;border-color:#828276;color:var(--text)}
 .more-link:hover>span{background:var(--accent);border-color:var(--accent);color:#111;transform:rotate(45deg)}
 .work-image:hover .work-view{background:var(--accent);border-color:var(--accent);color:#111}
 .work-image:hover .work-view>span{transform:translate(2px,-2px)}
 .close-preview:hover{background:var(--text);color:#111}
 .close-preview:hover span{transform:rotate(90deg)}
 .preview-original:hover{background:#e3ff9d;transform:translateY(-1px)}
 .wordmark:hover{opacity:.65}
}
@media(max-width:600px){
 .header nav{gap:3px}.header nav a{padding:10px 12px}.header nav a:last-child{gap:12px}
 .section-heading{flex-wrap:wrap;gap:22px}.filters{padding:4px;gap:2px}.filters button{min-height:40px;min-width:61px;padding:10px 14px}
 .down-link{width:46px;height:46px;font-size:23px}.contact-cta{min-height:72px;padding:9px 9px 9px 24px;font-size:16px}.contact-cta>span{width:52px;height:52px}
 .socials a{padding:14px 18px}.more-link{font-size:14px;padding:16px;gap:15px}
 .work-view{padding:10px 14px;min-height:40px;font-size:12px}.about-copy br{display:block}
}
@media(prefers-reduced-motion:reduce){a:hover,button:hover,a:active,button:active{transform:none!important}}
.socials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.socials .email-link{grid-column:1/-1;letter-spacing:0}







/* The hero stays in document flow so copy, image and controls cannot overlap. */
.hero{margin:0 var(--gutter);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(32px,5vw,96px);row-gap:26px;align-items:center}
.hero-copy{grid-column:1;grid-row:1;min-width:0;display:flex;flex-direction:column;gap:28px}
.hero h1{font-size:clamp(44px,6.2vw,112px);font-weight:700;line-height:1.02;letter-spacing:-.065em}
.hero-description{max-width:520px;font-size:clamp(16px,1.2vw,21px);line-height:1.6;color:#c2c2bb;letter-spacing:-.015em;text-wrap:pretty}
.hero-photo{grid-column:2;grid-row:1;width:100%;max-width:560px;min-width:0;justify-self:end}
.hero-photo>img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center;border-radius:4px}
.hero-photo>span{display:block;text-align:right;font-size:12px;line-height:1.4;color:var(--muted);padding-top:12px}
.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;align-items:center;padding-top:4px}
.hero-bottom p{font-size:16px;line-height:1.4}
@media(max-width:900px){
 .hero{grid-template-columns:1fr;row-gap:32px;padding-top:24px}
 .hero-copy{grid-column:1;grid-row:1;gap:24px}
 .hero h1{font-size:clamp(48px,9.5vw,80px)}
 .hero-description{max-width:600px;font-size:18px}
 .hero-photo{grid-column:1;grid-row:2;max-width:560px}
 .hero-bottom{grid-column:1;grid-row:3;padding-top:0}
}
@media(max-width:600px){
 .hero{padding-top:24px;row-gap:28px}
 .hero h1{font-size:clamp(42px,10.5vw,64px)}
 .hero-copy{gap:22px}
 .hero-description{font-size:16px;line-height:1.55;max-width:100%}
 .hero-photo{max-width:none}
 .hero-photo>span{font-size:10px;padding-top:10px}
 .hero-bottom p{font-size:13px}
}
