:root{
  --canvas:#d2d7d4;
  --panel:#c1cac4;
  --ink:#17201d;
  --muted:#4f5b56;
  --line:#9fa9a3;
  --accent:#3f6b60;
  --accent-light:#9cbbae;
  --night:#101714;
  --on-dark:#dce5e0;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:32px}
body{background:var(--canvas);color:var(--ink);font:300 16px/1.65 Manrope,sans-serif;margin:0;overflow-x:hidden}
body.lightbox-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
img{max-width:100%}
::selection{background:var(--accent);color:var(--on-dark)}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}

header{align-items:center;border-bottom:1px solid #dce5e026;color:var(--on-dark);display:flex;height:70px;justify-content:space-between;padding:0 clamp(22px,4.5vw,70px);position:absolute;width:100%;z-index:20}
.brand{font:400 1.35rem Italiana,serif;letter-spacing:.05em}
.brand span{font:500 .58rem Manrope,sans-serif;letter-spacing:.22em;margin-left:12px;text-transform:uppercase}
nav{align-items:center;display:flex;gap:32px}
nav a,.menu{font-size:.67rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
nav a{position:relative}
nav a:not(.inquire):after{background:currentColor;bottom:-5px;content:"";height:1px;left:0;position:absolute;transform:scaleX(0);transform-origin:right;transition:transform .25s;width:100%}
nav a:not(.inquire):hover:after{transform:scaleX(1);transform-origin:left}
.inquire{border:1px solid #dce5e06b;padding:9px 16px;transition:background .25s,color .25s}
.inquire:hover{background:var(--on-dark);color:var(--night)}
.menu{display:none}

.hero{background:var(--night);color:var(--on-dark);isolation:isolate;min-height:620px;min-height:clamp(620px,84svh,760px);overflow:hidden;padding:150px 7vw 62px;padding:clamp(128px,12vw,170px) clamp(24px,7vw,110px) 62px;position:relative}
.hero:before{background:radial-gradient(circle at 78% 42%,#5271682b,transparent 35%),radial-gradient(circle at 18% 80%,#33494430,transparent 40%);content:"";inset:0;position:absolute;z-index:0}
.hero:after{content:"";inset:0;pointer-events:none;position:absolute;z-index:3}
.hero-copy{max-width:850px;position:relative;z-index:4}
.eyebrow{font-size:.65rem;font-weight:500;letter-spacing:.2em;margin:0 0 17px;text-transform:uppercase}
.hero h1,.contact h2{font-family:Italiana,serif;font-weight:400;letter-spacing:-.035em;margin:0}
.hero h1{font-size:6.5rem;font-size:clamp(4rem,7.8vw,7.7rem);line-height:.86}
.contact h2{font-size:5rem;font-size:clamp(3.3rem,5.7vw,5.8rem);line-height:.92}
.hero h1 em,.contact h2 em{color:var(--accent-light);font-style:italic}
.hero-copy>p:nth-of-type(2){color:#dce5e0b5;font-size:1rem;margin:28px 0 24px;max-width:520px}
.arrow-link{align-items:center;border-bottom:1px solid;display:inline-flex;font-size:.68rem;font-weight:500;gap:50px;letter-spacing:.16em;padding:0 0 7px;text-transform:uppercase}
.arrow-link span{transition:transform .25s}
.arrow-link:hover span{transform:translateY(3px)}
.frame{border:1px solid #dce5e04f;height:54vh;margin:0;max-height:540px;min-height:390px;padding:10px;position:absolute;right:7vw;top:96px;top:clamp(88px,11vh,116px);width:29vw;z-index:3}
.frame:before{content:none}
.frame img{display:block;height:100%;object-fit:cover;width:100%}
.frame-one img{object-position:center 41%}
.frame figcaption{bottom:-32px;font-size:.58rem;font-weight:500;letter-spacing:.25em;position:absolute;text-transform:uppercase}
.frame-two{height:31vh;min-height:240px;right:-3vw;top:350px;top:clamp(330px,48vh,420px);transform:rotate(4deg);width:19vw}
.frame-two img{object-position:40% center}
.scroll{bottom:24px;font-size:.58rem;font-weight:500;letter-spacing:.16em;position:absolute;right:5vw;text-transform:uppercase;z-index:4}

.statement{margin:auto;max-width:1000px;padding:52px 24px;padding:clamp(44px,4.8vw,64px) 24px;text-align:center}
.statement p{font-family:Italiana,serif;font-size:3.5rem;font-size:clamp(2.35rem,4.4vw,4.25rem);font-weight:400;line-height:1.12;margin:0}
.statement em{color:var(--accent);font-style:italic}
.section-top{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;margin-bottom:34px;padding-bottom:10px}
.section-top>*{margin:0}
.section-top span{font-size:.63rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase}
.section-top b{font:inherit}
.work,.services{padding:64px 5vw;padding:clamp(48px,5.5vw,72px) clamp(22px,5vw,80px)}
.work{padding-top:56px;padding-top:clamp(46px,5vw,66px)}
.work-intro{align-items:end;display:grid;gap:5vw;grid-template-columns:1.25fr .75fr;margin-bottom:32px}
.work-intro h2{font-family:Italiana,serif;font-size:4.3rem;font-size:clamp(2.8rem,5vw,5.2rem);font-weight:400;letter-spacing:-.025em;line-height:.96;margin:0}
.work-intro p{color:var(--muted);margin:0;max-width:480px}

.collection-grid{display:grid;gap:10px;grid-template-columns:repeat(5,1fr)}
.collection-card{align-content:end;aspect-ratio:.82;background-color:#202724;background-position:center;background-size:cover;border:0;cursor:pointer;display:grid;isolation:isolate;min-height:280px;overflow:hidden;padding:21px;position:relative;text-align:left}
.collection-card:before{background:linear-gradient(180deg,#00000010 15%,#000000c9 100%);content:"";inset:0;position:absolute;transition:background .35s,transform .7s;z-index:-1}
.collection-card:after{border:1px solid #dce5e000;content:"";inset:10px;pointer-events:none;position:absolute;transition:border-color .25s}
.collection-card:hover:before{background:linear-gradient(180deg,#00000000 10%,#000000b0 100%);transform:scale(1.02)}
.collection-card:hover:after,.collection-card[aria-pressed="true"]:after{border-color:#dce5e08c}
.collection-creative{background-image:url('/assets/photos/thumbs/DSC01066.webp');background-position:center 35%}
.collection-event{background-image:url('/assets/photos/thumbs/DSC01772.webp');background-position:40% center}
.collection-portrait{background-image:url('/assets/photos/thumbs/DSC00964.webp');background-position:center 32%}
.collection-boudoir{background-image:url('/assets/photos/thumbs/DSC00278.webp');background-position:center}
.collection-nature{background-image:url('/assets/photos/thumbs/DSC01548.webp');background-position:center}
.collection-number,.collection-detail{color:#e6ece8bd;font-size:.6rem;font-style:normal;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
.collection-name{color:#edf2ef;font-family:Italiana,serif;font-size:2.2rem;font-size:clamp(1.5rem,2.1vw,2.5rem);font-weight:400;line-height:1;margin:8px 0 14px;overflow-wrap:anywhere}
.collection-detail{align-items:center;display:flex;justify-content:space-between}
.collection-detail b{font:inherit}
.collection-detail i{font-size:1rem;font-style:normal;transition:transform .25s}
.collection-card:hover .collection-detail i{transform:translate(3px,3px)}

.gallery-toolbar{align-items:end;border-bottom:1px solid var(--line);display:flex;gap:28px;justify-content:space-between;margin-top:36px;padding-bottom:15px}
.gallery-controls{display:grid;gap:11px;min-width:0}
.filter-group{display:flex;flex-wrap:wrap;gap:8px}
.filter-button{background:transparent;border:1px solid var(--line);border-radius:99px;cursor:pointer;font-size:.63rem;font-weight:500;letter-spacing:.1em;padding:9px 13px;text-transform:uppercase;transition:background .2s,border-color .2s,color .2s}
.filter-button span{color:var(--muted);font-size:.55rem;margin-left:6px}
.filter-button:hover{border-color:var(--ink)}
.filter-button.active,.filter-button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}
.filter-button.active span,.filter-button[aria-pressed="true"] span{color:#dce5e09e}
.album-browser{align-items:center;display:flex;gap:12px;min-width:0}
.album-browser[hidden]{display:none}
.album-label{color:var(--muted);flex:0 0 auto;font-size:.58rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.album-group{display:flex;flex-wrap:wrap;gap:6px}
.album-button{background:transparent;border:0;border-bottom:1px solid transparent;color:var(--muted);cursor:pointer;font-size:.68rem;padding:3px 1px;transition:border-color .2s,color .2s}
.album-button span{font-size:.56rem;margin-left:5px;opacity:.72}
.album-button:hover{color:var(--ink)}
.album-button.active,.album-button[aria-pressed="true"]{border-color:var(--accent);color:var(--ink)}
.gallery-status{color:var(--muted);font-size:.7rem;margin:0 0 7px 28px;white-space:nowrap}
.gallery-grid{column-gap:10px;columns:3;margin-top:10px}
.gal-item{background:#b8c0bb;border:0;break-inside:avoid;cursor:zoom-in;display:block;margin:0 0 10px;overflow:hidden;padding:0;position:relative;width:100%}
.gal-item[hidden]{display:none}
.gal-item:after{align-items:end;background:linear-gradient(transparent 40%,#000000d1);color:var(--on-dark);content:attr(data-label);display:flex;font-size:.58rem;font-weight:500;inset:0;letter-spacing:.12em;opacity:0;padding:20px;pointer-events:none;position:absolute;text-transform:uppercase;transform:translateY(6px);transition:opacity .3s,transform .3s}
.gal-item img{display:block;height:auto;transition:filter .35s,transform .65s;width:100%}
.gal-item:hover img{filter:saturate(.88);transform:scale(1.018)}
.gal-item:hover:after,.gal-item:focus-visible:after{opacity:1;transform:none}

.services{background:var(--panel)}
.service-list article{align-items:start;border-top:1px solid var(--line);display:grid;gap:24px;grid-template-columns:48px .8fr 1fr;padding:26px 0}
.service-list article:last-child{border-bottom:1px solid var(--line)}
.service-list span{font-size:.63rem;font-weight:500}
.service-list h3{font-family:Italiana,serif;font-size:2.4rem;font-size:clamp(1.8rem,3vw,3rem);font-weight:400;margin:0}
.service-list p{color:var(--muted);margin:0;max-width:520px}
.about{align-items:center;display:grid;gap:6vw;grid-template-columns:.65fr 1.35fr;padding:72px 7vw;padding:clamp(56px,6.5vw,84px) clamp(24px,7vw,112px)}
.about-mark{align-items:center;aspect-ratio:1;background:var(--accent);border-radius:50%;color:var(--on-dark);display:flex;font-family:Italiana,serif;font-size:7rem;font-size:clamp(4.6rem,9vw,8rem);font-weight:400;justify-content:center;justify-self:center;max-width:360px;width:100%}
.about h2{font-family:Italiana,serif;font-size:3.2rem;font-size:clamp(2.2rem,3.8vw,3.8rem);font-weight:400;line-height:1.08;margin:0 0 24px}
.about div:last-child>p:last-child{color:var(--muted);max-width:650px}
.contact{background:var(--night);color:var(--on-dark);padding:72px 24px;padding:clamp(58px,6.5vw,84px) 24px;text-align:center}
.contact>p:not(.eyebrow){color:#dce5e0a8;margin:28px auto 24px;max-width:590px}
.light{color:var(--on-dark)}
footer{background:var(--night);border-top:1px solid #dce5e021;color:#dce5e08f;display:flex;font-size:.6rem;font-weight:500;justify-content:space-between;letter-spacing:.16em;padding:24px clamp(24px,5vw,80px);text-transform:uppercase}
footer i{font-style:normal}

.lb-overlay{background:#0d0e0deb;display:grid;inset:0;place-items:center;position:fixed;z-index:1000}
.lb-overlay[hidden]{display:none}
.lb-figure{display:grid;height:100%;margin:0;padding:42px 70px 24px;place-items:center;width:100%}
.lb-img{display:block;filter:none;max-height:calc(100vh - 118px);max-width:min(88vw,1800px);object-fit:contain;transition:filter .18s}
.lb-caption{align-items:center;bottom:20px;color:var(--on-dark);display:flex;font-size:.62rem;font-weight:500;justify-content:space-between;left:50%;letter-spacing:.14em;max-width:min(88vw,1800px);position:fixed;text-transform:uppercase;transform:translateX(-50%);width:100%}
.lb-count{color:#dce5e080}
.lb-btn{align-items:center;background:#1113;border:1px solid #dce5e030;border-radius:50%;color:var(--on-dark);cursor:pointer;display:flex;height:48px;justify-content:center;line-height:1;position:fixed;transition:background .2s,border-color .2s;width:48px}
.lb-btn:hover{background:var(--on-dark);color:var(--night)}
.lb-close{font-size:1.7rem;right:20px;top:18px}
.lb-prev,.lb-next{font-size:2rem;top:50%;transform:translateY(-50%)}
.lb-prev{left:18px}.lb-next{right:18px}

@media(min-width:1280px){.gallery-grid{columns:4}}

@media(max-width:1200px){
  .collection-grid{grid-template-columns:repeat(3,1fr)}
  .collection-card{aspect-ratio:1.05;min-height:250px}
}

@media(max-width:1050px){
  .hero:after{background:linear-gradient(90deg,var(--night) 0%,#101714ed 55%,#10171473 100%)}
  .frame{opacity:.6;right:-2vw;width:40vw}
  .frame-two{right:-10vw;width:27vw}
  .gallery-toolbar{align-items:start;flex-direction:column}
  .gallery-status{margin-left:0}
}

@media(max-width:800px){
  .menu{background:none;border:1px solid #dce5e06b;color:var(--on-dark);display:block;padding:8px 12px}
  nav{background:var(--night);border-bottom:1px solid #dce5e021;display:none;flex-direction:column;left:0;padding:26px;position:absolute;right:0;top:69px}
  nav.open{display:flex}
  .frame{opacity:.34;right:-17vw;width:65vw}
  .frame-two{display:none}
  .hero-copy{z-index:4}
  .collection-grid{grid-template-columns:repeat(2,1fr)}
  .collection-card{aspect-ratio:1.25;min-height:230px}
  .work-intro{gap:25px;grid-template-columns:1fr}
  .gallery-toolbar{align-items:start;gap:20px;flex-direction:column}
  .gallery-controls{width:100%}
  .gallery-status{margin:0}
  .gallery-grid{columns:2}
  .service-list article{grid-template-columns:40px 1fr}
  .service-list p{grid-column:2}
  .about{grid-template-columns:1fr}
  .about-mark{max-width:350px}
  .brand span{display:none}
}

@media(max-width:560px){
  .hero{min-height:620px;padding-left:22px;padding-right:22px}
  .hero h1{font-size:4.2rem;font-size:clamp(3.4rem,17vw,4.9rem)}
  .hero-copy>p:nth-of-type(2){font-size:.93rem;margin-top:23px;max-width:92%}
  .frame{height:52vh;min-height:350px;right:-42vw;top:112px;width:90vw}
  .scroll{display:none}
  .statement{padding-bottom:52px;padding-top:52px}
  .statement p{font-size:2.45rem;font-size:clamp(2.1rem,10vw,2.8rem)}
  .section-top{align-items:start;gap:10px;flex-direction:column;margin-bottom:28px}
  .work,.services{padding-left:18px;padding-right:18px}
  .collection-grid{display:flex;gap:8px;margin-left:-18px;margin-right:-18px;overflow-x:auto;padding:0 18px 12px;scroll-snap-type:x mandatory;scrollbar-width:none}
  .collection-grid::-webkit-scrollbar{display:none}
  .collection-card{aspect-ratio:.86;flex:0 0 74vw;min-height:295px;scroll-snap-align:center}
  .gallery-toolbar{margin-top:40px}
  .filter-group{flex-wrap:nowrap;gap:6px;max-width:100%;overflow-x:auto;padding:2px 2px 7px;scrollbar-color:var(--line) transparent;scrollbar-width:thin;width:100%}
  .filter-button{flex:0 0 auto;font-size:.59rem;min-height:42px;padding:8px 11px}
  .album-browser{align-items:flex-start;gap:8px;flex-direction:column}
  .album-group{flex-wrap:nowrap;max-width:100%;overflow-x:auto;padding:0 2px 6px;scrollbar-color:var(--line) transparent;scrollbar-width:thin;width:100%}
  .album-button{flex:0 0 auto;min-height:36px}
  .gallery-grid{column-gap:6px;margin-top:6px}
  .gal-item{margin-bottom:6px}
  .gal-item:after{display:none}
  .service-list article{display:block}
  .service-list h3{margin:15px 0}
  .about{gap:30px;padding-left:20px;padding-right:20px}
  .about-mark{max-width:250px}
  .contact h2{font-size:3.9rem;font-size:clamp(3.2rem,16vw,4.5rem)}
  footer{gap:20px;flex-direction:column;text-align:center}
  .lb-figure{padding:58px 12px 58px}
  .lb-img{max-height:calc(100vh - 130px);max-width:96vw}
  .lb-caption{bottom:18px;max-width:calc(100vw - 32px)}
  .lb-prev,.lb-next{bottom:66px;top:auto;transform:none}
  .lb-prev{left:12px}.lb-next{right:12px}
  .lb-close{right:12px;top:12px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}
}
