:root{--ink:#171817;--paper:#fafaf8;--pad:clamp(22px,3.4vw,64px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:104px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid #ccf955;outline-offset:6px}header{height:104px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:15px var(--pad);background:var(--paper);position:sticky;top:0;z-index:10}.brand{display:block;flex-shrink:0}.brand img{width:130px;height:auto;display:block}nav{display:flex;gap:clamp(20px,2.8vw,54px);align-items:center}nav a,.studio-link{font-size:14px;padding:9px 0;white-space:nowrap}nav a{border-bottom:1px solid transparent}nav a[aria-current],nav a:hover{border-color:currentColor}.studio-link{border-bottom:1px solid #9d9d99}.project-panel,.detail-hero{position:relative;height:calc(100svh - 104px);min-height:520px;background:#333;overflow:hidden;color:white}.project-link{display:block;height:100%;position:relative}.project-panel img,.detail-hero>img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.3,1)}.project-link:hover img{transform:scale(1.025)}.shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.16),transparent 35%,transparent 50%,rgba(0,0,0,.55));pointer-events:none}.panel-top{position:absolute;top:30px;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;font-size:14px}.caption{position:absolute;bottom:46px;left:var(--pad);right:var(--pad);display:flex;align-items:end;justify-content:space-between;gap:24px}.eyebrow{display:block;font-size:14px;line-height:1.5;margin-bottom:14px}h1,h2,p{margin:0}h1{font-size:clamp(36px,5.5vw,88px);line-height:1.02;font-weight:400;letter-spacing:-.045em;max-width:1000px}.view{font-size:14px;flex-shrink:0;display:flex;align-items:center;gap:35px;padding-bottom:9px;border-bottom:1px solid #ffffff80}.view b{font-weight:400;font-size:30px}.back{position:absolute;top:30px;left:var(--pad);font-size:14px;border-bottom:1px solid #ffffff80;padding-bottom:7px}.project-info{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:95px var(--pad);scroll-margin-top:0}.project-info h2{font-size:clamp(30px,3.3vw,52px);font-weight:400;letter-spacing:-.04em}.project-info p{font-size:18px;line-height:1.65;max-width:650px;margin-bottom:24px}.photo-count{font-size:14px;color:#676863}.gallery{background:#111}.gallery-photo{display:block;border:0;padding:0;position:relative;width:100%;height:100svh;background:#141414;color:white}.gallery-photo img{width:100%;height:100%;object-fit:contain;display:block}.gallery-photo>span{position:absolute;bottom:25px;right:var(--pad);font-size:14px;background:#0008;padding:10px 15px}.gallery-photo b{font-size:24px;margin-left:25px;font-weight:400}.next-project{display:block;padding:85px var(--pad);border-bottom:1px solid #ccc}.next-project>span{font-size:14px}.next-project h2{font-weight:400;font-size:clamp(30px,5vw,72px);letter-spacing:-.04em;margin-top:22px}.studio{padding:80px var(--pad) 110px}.studio>h1{font-size:clamp(46px,7.2vw,112px);line-height:1.06;margin-top:36px;max-width:1250px}.studio-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;border-top:1px solid #bbb;margin-top:100px;padding-top:55px}.studio-grid h2{font-size:clamp(28px,3vw,48px);font-weight:400;letter-spacing:-.025em;line-height:1.2}.studio p{font-size:20px;line-height:1.6;max-width:630px;margin-bottom:22px}address{font-style:normal;display:flex;flex-direction:column;align-items:start;gap:16px;margin-top:55px}address span{font-size:14px;color:#666}address a{font-size:clamp(19px,2vw,28px);border-bottom:1px solid #aaa;padding-bottom:5px}footer{background:#1d201d;color:#f8f8f4;padding:64px var(--pad) 28px}footer>a{font-size:clamp(26px,3.6vw,56px);letter-spacing:-.035em;display:flex;justify-content:space-between;gap:30px}footer>div{border-top:1px solid #ffffff40;margin-top:65px;padding-top:24px;display:flex;justify-content:space-between;gap:20px;font-size:14px}.skip{position:fixed;z-index:100;left:20px;top:-80px;padding:15px;background:white;color:black}.skip:focus{top:10px}dialog{position:fixed;inset:0;max-width:none;max-height:none;width:100%;height:100%;margin:0;border:0;padding:70px 20px 85px;background:#101110;color:white}dialog::backdrop{background:#101110}dialog>img{height:100%;width:100%;object-fit:contain}dialog button{border:0;background:transparent;color:white;padding:12px;min-width:48px;min-height:48px}.close{position:absolute;right:20px;top:10px}.viewer-controls{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:30px}.viewer-controls button{font-size:24px}.counter{white-space:nowrap;font-size:14px}body:has(dialog[open]){overflow:hidden}@media(min-width:1800px){.brand img{width:150px}}@media(max-width:760px){header{height:118px;padding:12px 22px 0;display:grid;grid-template-columns:1fr auto;gap:5px 20px}.brand img{width:104px}.studio-link{grid-column:2;grid-row:1;font-size:13px;justify-self:end}nav{grid-row:2;grid-column:1/-1;justify-content:space-between;gap:10px;padding-bottom:10px}nav a{font-size:13px;padding:7px 0}html{scroll-padding-top:118px}.project-panel,.detail-hero{height:calc(100svh - 118px);min-height:460px}.caption{bottom:30px;align-items:start;flex-direction:column;gap:24px}.caption h1{font-size:42px;max-width:85vw}.view{gap:35px;padding-bottom:4px}.panel-top{top:22px;font-size:13px}.eyebrow{font-size:13px;margin-bottom:10px}.project-info{grid-template-columns:1fr;gap:30px;padding:55px 22px}.gallery-photo{height:75svh;min-height:350px}.studio{padding-top:55px}.studio-grid{grid-template-columns:1fr;margin-top:65px;gap:35px}.studio p{font-size:18px}.studio-grid h2{font-size:30px}.studio>h1{font-size:48px}.next-project{padding:55px 22px}footer{padding-top:45px}footer>div{flex-direction:column;margin-top:42px;gap:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Photography fills the viewport beneath a transparent, fixed navigation. */
html.snap-pages{scroll-snap-type:y mandatory;scroll-padding-top:0}
header{position:fixed;inset:0 0 auto;background:transparent;color:white;mix-blend-mode:difference}
header .brand img{filter:brightness(0) invert(1)}
header .studio-link{border-color:currentColor}
.project-panel,.detail-hero,.gallery-photo{height:100svh;min-height:0;scroll-snap-align:start;scroll-snap-stop:always}
.gallery-photo img{object-fit:cover}
.panel-top,.back{top:130px}
.hero-open{position:absolute;inset:110px 0 180px;width:100%;border:0;background:transparent}
.caption,.back{z-index:1}
.project-info,.next-project,footer{scroll-snap-align:start;scroll-snap-stop:always}
.project-info{min-height:100svh;align-content:center;padding-top:140px;padding-bottom:100px}
.next-project{padding-top:140px}
.studio-page .studio{padding-top:180px}
.gallery-photo>span{background:transparent;text-shadow:0 1px 5px #000;bottom:35px}
@media(max-width:760px){
 .project-panel,.detail-hero,.gallery-photo{height:100svh;min-height:0}
 .panel-top,.back{top:142px}
 .hero-open{top:125px;bottom:240px}
 .project-info{padding-top:155px;padding-bottom:70px}
 .studio-page .studio{padding-top:170px}
 header nav a,header .studio-link{font-size:14px}
}

/* Only reserve the actual device safe area, not a guessed browser toolbar. */
.photo-scroll{display:contents}
@media(max-width:760px){
 :root{--mobile-safe-top:env(safe-area-inset-top,0px);--photo-height:100vh;--photo-height:100dvh}
 header{height:calc(108px + var(--mobile-safe-top));padding-top:calc(12px + var(--mobile-safe-top));padding-left:max(22px,env(safe-area-inset-left,0px));padding-right:max(22px,env(safe-area-inset-right,0px))}
 html.snap-pages,html.snap-pages body{height:100%;overflow:hidden;scroll-snap-type:none;overscroll-behavior-y:none}
 .snap-pages .photo-scroll{display:block;position:fixed;top:0;left:0;width:100%;height:100vh;height:100dvh;overflow-x:hidden;overflow-y:auto;scroll-snap-type:y mandatory;scroll-padding:0;scroll-behavior:smooth;overscroll-behavior-y:none;overflow-anchor:none}
 .snap-pages .project-panel,.snap-pages .detail-hero,.snap-pages .gallery-photo{height:var(--photo-height);min-height:0;scroll-margin:0}
 .snap-pages .project-info{min-height:var(--photo-height)}
 .caption{bottom:calc(30px + env(safe-area-inset-bottom,0px))}
 .panel-top,.back{top:calc(125px + var(--mobile-safe-top))}
 .hero-open{top:calc(150px + var(--mobile-safe-top));bottom:240px}
 .project-info{padding-top:calc(140px + var(--mobile-safe-top));padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}
 .studio-page .studio{padding-top:calc(145px + var(--mobile-safe-top))}
 dialog{padding-top:calc(60px + var(--mobile-safe-top));padding-bottom:calc(85px + env(safe-area-inset-bottom,0px))}
 .close{top:calc(10px + var(--mobile-safe-top))}
 .viewer-controls{bottom:calc(15px + env(safe-area-inset-bottom,0px))}
 .photo-scroll:has(dialog[open]){overflow:hidden}
 @media(prefers-reduced-motion:reduce){.snap-pages .photo-scroll{scroll-behavior:auto}}
}
.cms-preview-banner{position:fixed;z-index:30;bottom:20px;left:50%;transform:translateX(-50%);background:#fff;color:#222;padding:12px 20px;border:1px solid #ddd;font:14px Arial,sans-serif;box-shadow:0 4px 20px #0003;max-width:90vw}.cms-preview-banner a{margin-left:18px;text-decoration:underline}
