@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,600;0,700;0,800;1,700;1,800&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#101010;--white:#f4f4ef;--muted:#aaa9a5;--lime:#c6ff3a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--white);font-family:Manrope,Arial,sans-serif;font-size:16px}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid var(--lime);outline-offset:6px}header{min-height:90px;padding:25px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #393939;gap:25px}.brand{font-size:22px;font-weight:800;letter-spacing:-1px;white-space:nowrap}.brand span{font-weight:500}.brand i{font-size:12px;vertical-align:top;color:var(--lime);font-style:normal;margin-left:4px}nav{display:flex;gap:35px;align-items:center;font-size:14px}nav a:hover,.text-link:hover{color:var(--lime)}.nav-contact{border:1px solid #777;padding:12px 20px;border-radius:30px}.hero,.work,.about{padding:40px 5%}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700}.hero>.eyebrow{display:flex;justify-content:space-between;color:#b4b4ad}h1,h2,h3,p{margin:0}h1,h2{font-family:'Barlow Condensed','Arial Narrow',Impact,sans-serif;font-weight:700}h1{font-size:clamp(62px,9.9vw,160px);line-height:.95;letter-spacing:-.015em;margin:36px 0}h1 em,h2 em{color:var(--lime);font-style:italic}.hero-photo{height:clamp(340px,43vw,680px);position:relative;overflow:hidden}.hero-photo>img{height:100%;width:100%;object-fit:cover;object-position:center 53%;filter:saturate(.65)}.hero-photo-shade{position:absolute;inset:0;background:linear-gradient(0deg,#000a,transparent 60%)}.photo-caption{position:absolute;bottom:35px;left:35px;right:35px;display:flex;align-items:end;justify-content:space-between;gap:20px}.photo-caption>span{font-size:clamp(24px,3.3vw,50px);font-weight:800;line-height:1.1;letter-spacing:-1px}.button{display:inline-flex;justify-content:center;align-items:center;min-height:50px;padding:15px 24px;border-radius:0;font-size:14px;font-weight:700;border:1px solid transparent;transition:background .2s}.light{background:var(--white);color:#101010}.light:hover{background:var(--lime)}.dark{background:#101010;color:var(--white)}.dark:hover{background:#333}.sample-label{position:absolute;top:22px;left:25px;font-size:12px;letter-spacing:1px;background:#0009;padding:8px}.hero-foot{display:flex;justify-content:space-between;align-items:center;margin-top:25px;gap:25px}.hero-foot p{font-size:14px;line-height:1.7;color:#b4b4ad}.edition{font-size:12px;letter-spacing:1px;color:#96968e}.work{padding-top:95px;padding-bottom:90px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:50px}.section-heading h2{font-size:clamp(55px,7vw,100px);line-height:1;margin-top:22px}.section-heading p{color:var(--muted);max-width:340px;line-height:1.7}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:45px 35px;align-items:start}.photo-card{border:0;background:transparent;color:var(--white);padding:0;text-align:left;width:100%}.image-wrap{position:relative;overflow:hidden;background:#262626}.image-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s,filter .5s;filter:saturate(.7)}.photo-card:hover img{transform:scale(1.025);filter:saturate(1)}.portrait .image-wrap{height:600px}.automotive{margin-top:100px}.automotive .image-wrap{height:460px}.street{grid-column:1/-1}.street .image-wrap{height:430px}.expand{position:absolute;bottom:18px;right:18px;background:#111c;padding:11px 15px;font-size:12px;letter-spacing:1px}.card-caption{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:17px}.card-caption h3{font-weight:500;font-size:20px}.card-caption>span{font-size:12px;color:var(--muted);letter-spacing:1px}.credits{font-size:12px;color:#94948f;line-height:1.7;margin-top:32px}.about{border-top:1px solid #393939;padding-top:55px;padding-bottom:95px}.about-content{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;margin-top:35px;align-items:end}.about h2{font-size:clamp(50px,6.5vw,94px);line-height:1}.about h2 span{color:#72726d}.about-content>div{max-width:430px}.about p{color:var(--muted);line-height:1.8;margin-bottom:25px}.about .intro{font-size:25px;line-height:1.5;color:var(--white)}.text-link{font-size:14px;display:inline-block;border-bottom:1px solid #777;padding-bottom:7px}.session{background:var(--lime);color:#101010;padding:50px 5% 65px}.session-content{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;margin-top:25px;align-items:end}.session h2{font-size:clamp(54px,7vw,108px);line-height:1}.session h2 em{color:#101010}.session p{max-width:330px;line-height:1.7;margin-bottom:25px}.session .small{font-size:12px;margin:14px 0 0}footer{padding:35px 5%;display:flex;justify-content:space-between;gap:25px;align-items:center}footer>span{font-size:12px;letter-spacing:1px;color:var(--muted)}footer>a:last-child{font-size:14px}dialog{background:#151515;color:var(--white);border:1px solid #555;padding:35px;max-width:90vw}dialog::backdrop{background:#000e}.close{position:absolute;top:10px;right:13px;font-size:32px;line-height:1;background:#141414;color:white;border:1px solid #777;width:42px;height:42px;z-index:2}#viewer{width:min(1100px,94vw);padding:20px}#full-image{display:block;max-height:78vh;width:100%;object-fit:contain}.viewer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:15px;font-size:14px}.viewer-bottom>span:last-child{color:var(--muted);font-size:12px}#brief{width:530px;max-height:90vh}#brief h2{font-size:48px;line-height:1;margin:18px 0}#brief p{color:var(--muted);line-height:1.6;font-size:14px;margin:15px 0}label{display:block;margin:18px 0;font-size:14px}input,select,textarea{display:block;width:100%;margin-top:8px;background:#242424;color:white;border:1px solid #777;border-radius:0;padding:12px;min-width:0;font-size:16px}textarea{resize:vertical}#brief .button{width:100%}input:focus,textarea:focus,select:focus{outline:2px solid var(--lime)}[hidden]{display:none!important}@media(min-width:1600px){main,header,footer{max-width:1800px;margin:auto}}@media(max-width:700px){header{padding:22px 6%;flex-wrap:wrap;gap:20px}.brand{font-size:20px}nav{width:100%;justify-content:space-between;gap:12px;font-size:12px}.nav-contact{padding:8px 13px}.hero,.work,.about{padding-left:6%;padding-right:6%}.hero{padding-top:25px}.hero>.eyebrow{font-size:10px;letter-spacing:1px}.hero>.eyebrow span:last-child{display:none}h1{font-size:clamp(54px,12.6vw,88px);margin:25px 0}.hero-photo{height:450px}.photo-caption{left:22px;bottom:22px;right:22px;align-items:start;flex-direction:column}.photo-caption>span{font-size:32px}.hero-foot{align-items:start}.edition{max-width:100px;line-height:1.7;font-size:10px}.work{padding-top:60px;padding-bottom:60px}.section-heading{display:block;margin-bottom:30px}.section-heading p{margin-top:25px;font-size:14px}.gallery{grid-template-columns:1fr;gap:35px}.automotive{margin:0}.portrait .image-wrap{height:480px}.automotive .image-wrap{height:320px}.street .image-wrap{height:370px}.card-caption h3{font-size:18px}.card-caption>span{font-size:10px}.about{padding-top:40px;padding-bottom:55px}.about-content{grid-template-columns:1fr;gap:30px}.about h2{font-size:60px}.about .intro{font-size:22px}.session{padding:35px 6% 40px}.session-content{grid-template-columns:1fr;gap:30px}.session h2{font-size:clamp(49px,11.8vw,72px)}footer{flex-wrap:wrap;padding:30px 6%}footer>span{display:none}dialog{padding:25px}#brief h2{font-size:42px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Compact contact shortcuts, kept clear of content and phone safe areas. */
body{padding-bottom:100px}
.contact-dock{position:fixed;z-index:30;right:24px;bottom:max(18px,env(safe-area-inset-bottom));display:flex;width:auto;gap:4px;padding:6px;border:1px solid #74746c;border-radius:18px;background:#191919;box-shadow:0 8px 32px #0009}
.contact-dock a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:65px;min-height:58px;padding:7px 10px;border-radius:12px;color:#f4f4ef;font-size:12px;line-height:1.2}
.contact-dock svg{width:21px;height:21px;flex-shrink:0}
.contact-dock a:first-child{background:var(--lime);color:#101010}
.contact-dock a:hover{background:#383838;color:white}
.contact-dock a:first-child:hover{background:#d8ff7b;color:#101010}
footer .instagram-profile{font-size:14px;color:var(--muted)}footer .instagram-profile:hover{color:var(--lime)}
@media(max-width:700px){body{padding-bottom:calc(100px + env(safe-area-inset-bottom))}.contact-dock{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));gap:3px;padding:5px}.contact-dock a{min-width:62px;padding:7px 8px}.instagram-profile{order:3;width:100%}}

.hero-photo.sports-hero{display:grid;grid-template-columns:1fr 1fr;height:auto;gap:16px;background:transparent;align-items:start}
.hero-photo.sports-hero>img{width:100%;height:auto;object-fit:contain;filter:none;display:block}
.sports-hero-caption{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:25px}
.sports-hero-caption>span{font-size:clamp(22px,3vw,40px);line-height:1.15;font-weight:800}
.sports-gallery .image-wrap{height:auto;aspect-ratio:2/3}
.sports-gallery .image-wrap img{height:auto;filter:none;object-fit:contain}
.sports-gallery .photo-card:hover img{transform:none;filter:none}
@media(max-width:700px){.hero-photo.sports-hero{gap:8px}.sports-hero-caption{align-items:start;flex-direction:column}.sports-gallery{grid-template-columns:1fr}}

/* Preserve mixed portrait and landscape compositions in a compact gallery. */
.gallery.sports-gallery{display:block;columns:3;column-gap:26px}
.sports-gallery .photo-card{display:inline-block;break-inside:avoid;width:100%;margin:0 0 32px;vertical-align:top}
.sports-gallery .image-wrap{aspect-ratio:auto;height:auto}
.sports-gallery .image-wrap img{width:100%;height:auto;display:block;filter:none}
.sports-gallery .card-caption{align-items:start;flex-wrap:wrap;gap:7px;margin-top:12px}
.sports-gallery .card-caption h3{font-size:18px}
@media(max-width:1000px){.gallery.sports-gallery{columns:2;column-gap:20px}}
@media(max-width:600px){.gallery.sports-gallery{columns:1}.sports-gallery .photo-card{margin-bottom:30px}}

.gallery.featured-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;columns:auto;align-items:start}
.gallery-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:18px;margin:12px 0 38px}
#gallery-count{color:var(--muted);font-size:14px}
#full-gallery{padding-top:12px}
@media(max-width:700px){.gallery.featured-gallery{grid-template-columns:1fr;gap:0}}
@media(prefers-reduced-motion:no-preference){
 @keyframes entrance{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
 @keyframes text-nudge{0%,72%,100%{transform:translateY(0)}79%{transform:translateY(-3px)}86%{transform:translateY(0)}93%{transform:translateY(-2px)}}
 .hero h1{animation:entrance .7s ease-out both}
 .sports-hero{animation:entrance .9s .15s ease-out both}
 .scroll-reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}
 .scroll-reveal.is-visible{opacity:1;transform:none}
 #full-gallery:not([hidden]){animation:entrance .4s ease-out}
 dialog[open]{animation:entrance .25s ease-out}
 .contact-dock a:first-child svg{animation:text-nudge 4s ease-in-out 3}
 .button,.photo-card,.contact-dock a{transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
 @media(hover:hover){.sports-gallery .photo-card:hover{transform:translateY(-5px)}.button:hover{transform:translateY(-2px)}.contact-dock a:hover{transform:translateY(-2px)}}
}
@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none}*{animation:none!important}}

/* A brief camera capture, with a CSS-only exit if scripting is unavailable. */
#camera-intro{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#101010;color:var(--lime);pointer-events:none;animation:intro-exit 1.65s ease forwards}
.intro-camera-mark{display:flex;align-items:center;flex-direction:column;gap:19px;position:relative;z-index:2;animation:camera-capture 1.25s ease both}
.intro-camera-icon{width:84px;height:84px}
.intro-lens{transform-box:fill-box;transform-origin:center;animation:lens-click 1.05s ease both}
.intro-brand{font-size:clamp(20px,5vw,30px);font-weight:800;letter-spacing:1px;color:var(--white)}
.intro-caption{font-size:12px;letter-spacing:2px;color:var(--muted)}
.intro-shutter{position:absolute;left:0;right:0;height:50%;background:#020202;z-index:3;animation:shutter-click 1.1s ease-in-out both}
.intro-shutter-top{top:0;transform-origin:top}
.intro-shutter-bottom{bottom:0;transform-origin:bottom}
@keyframes shutter-click{0%,42%{transform:scaleY(0)}56%,62%{transform:scaleY(1)}79%,100%{transform:scaleY(0)}}
@keyframes lens-click{0%,36%{transform:scale(1)}48%{transform:scale(.2)}68%,100%{transform:scale(1)}}
@keyframes camera-capture{0%{opacity:0;transform:scale(.94)}20%,68%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.04)}}
@keyframes intro-exit{0%,70%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:no-preference){body:has(#camera-intro) .hero h1{animation-delay:1.15s}body:has(#camera-intro) .sports-hero{animation-delay:1.25s}}
@media(prefers-reduced-motion:reduce){#camera-intro{display:none!important}}

.footer-contact{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.footer-contact a{display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:11px 16px;border:1px solid #777;border-radius:25px;font-size:14px;color:var(--white)}
.footer-contact svg{width:20px;height:20px;flex-shrink:0}
.footer-contact a:hover{color:var(--lime);border-color:var(--lime)}
@media(max-width:700px){.footer-contact{order:3;width:100%}}

.deposit-panel{margin-top:28px;padding-top:24px;border-top:1px solid #62625c}
.deposit-panel h3{font-size:20px;line-height:1.4}
#brief .cash-button{background:var(--lime);color:#101010;text-align:center;width:100%}
#brief .cash-button:hover{background:#d8ff7b}
.cash-handle{display:block;font-size:12px;line-height:1.6;color:var(--muted);margin-top:10px;overflow-wrap:anywhere}
