:root{--ink:#171717;--soft:#7d7a75;--line:#e8e4de;--bg:#faf9f7;--dark:#0d0d0d;--gold:#b08d57}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"Jost","Helvetica Neue",Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
.wordmark{font-family:"Jost","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:200;text-transform:uppercase}
body,.nav a,.intro p,figcaption,.count,button{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}

/* ---------- home ---------- */
.intro{padding:64px 48px 44px;text-align:center;border-bottom:1px solid var(--line)}
.intro h1{font-size:clamp(21px,2.95vw,34px);letter-spacing:.42em;text-indent:.42em;font-weight:200;
 font-family:"Jost","Helvetica Neue",Helvetica,Arial,sans-serif;text-transform:uppercase}
.intro h1 a,.intro .wordmark a{text-decoration:none}
.intro p{margin-top:16px;font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--soft)}
.nav{margin-top:22px;display:flex;justify-content:center;gap:34px;flex-wrap:wrap}
.nav a{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--soft);text-decoration:none}
.nav a:hover,.nav a[aria-current]{color:var(--ink)}
.split{display:flex;height:78vh;min-height:460px}
.panel{position:relative;flex:1;overflow:hidden;transition:flex .65s cubic-bezier(.4,0,.2,1)}
.panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.panel:hover{flex:1.8}
.panel:hover img{transform:scale(1.045)}
.panel::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.42),rgba(0,0,0,0) 45%)}
.panel .label{position:absolute;left:30px;bottom:30px;z-index:2;color:#fff}
.panel .label h2{font-size:clamp(17px,1.8vw,24px);font-weight:300;letter-spacing:.16em;text-transform:uppercase}
.panel a{position:absolute;inset:0;z-index:3;text-indent:-9999px;overflow:hidden}
.panel+.panel{border-left:3px solid var(--bg)}
footer{padding:30px 48px;border-top:1px solid var(--line);display:flex;justify-content:space-between;
 gap:18px;flex-wrap:wrap;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--soft)}
footer a{text-decoration:none}
footer a:hover{color:var(--ink)}

/* ---------- immersive gallery ---------- */
.fullbleed{position:fixed;inset:0;overflow-y:auto;background:var(--dark);
 scroll-snap-type:y mandatory;overscroll-behavior:contain}
.scrim{position:fixed;top:0;left:0;right:0;height:120px;z-index:70;pointer-events:none;
 background:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0));transition:opacity .6s}
.fnav{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;justify-content:space-between;
 align-items:center;padding:22px 40px;transition:opacity .6s;color:#fff}
.fnav a,.fnav .title,.fnav button{background:none;border:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
 color:rgba(255,255,255,.92);text-decoration:none}
.fnav a,.fnav button{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:300;
 text-shadow:0 1px 10px rgba(0,0,0,.45);cursor:pointer}
.fnav a:hover,.fnav button:hover{color:#fff}
.fnav .title{font-size:12px;letter-spacing:.34em;text-transform:uppercase;text-shadow:0 1px 10px rgba(0,0,0,.45)}
.faded{opacity:0}.fnav.faded{pointer-events:none}
.slide{position:relative;height:100vh;height:100dvh;scroll-snap-align:start;scroll-snap-stop:always;
 overflow:hidden;background:var(--dark)}
.slide img{width:100%;height:100%;object-fit:cover}
.slide.fit{display:flex;align-items:center;justify-content:center}
.slide.fit img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.slide figcaption{position:absolute;left:34px;bottom:24px;z-index:5;color:#fff;font-size:10.5px;
 letter-spacing:.18em;text-transform:uppercase;text-shadow:0 1px 12px rgba(0,0,0,.6);opacity:.9}
.slide figcaption a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:2px}
.slide figcaption a:hover{border-color:#fff}
.slide .num{position:absolute;right:34px;bottom:24px;z-index:5;color:#fff;font-size:10.5px;
 letter-spacing:.18em;text-shadow:0 1px 12px rgba(0,0,0,.6);opacity:.65}
.slide.overview{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:64px 30px 34px}
.ov-title{color:rgba(255,255,255,.85);font-size:11px;letter-spacing:.32em;text-transform:uppercase}
.ov-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;width:var(--ovw);max-width:94vw}
.ov-grid a{position:relative;aspect-ratio:1/1;overflow:hidden;display:block}
.ov-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s,opacity .3s}
.ov-grid a:hover img{transform:scale(1.06);opacity:.85}
.ov-grid span{position:absolute;inset:auto 0 0 0;padding:16px 8px 6px;color:#fff;font-size:8.5px;
 letter-spacing:.1em;text-transform:uppercase;opacity:0;transition:.3s;text-align:center;
 background:linear-gradient(to top,rgba(0,0,0,.75),transparent)}
.ov-grid a:hover span{opacity:1}
.ov-next{color:rgba(255,255,255,.85);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;
 text-decoration:none;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:4px}
.ov-next:hover{color:#fff;border-color:#fff}

/* framed one-per-screen */
.fullbleed.framed{background:var(--bg)}
.fnav.light a,.fnav.light .title,.fnav.light button{color:#6f6c67;text-shadow:none}
.fnav.light a:hover,.fnav.light button:hover{color:var(--ink)}
.fullbleed.framed .fnav{background:linear-gradient(to bottom,rgba(250,249,247,.96) 55%,rgba(250,249,247,0))}
.fslide{height:100vh;height:100dvh;scroll-snap-align:start;scroll-snap-stop:always;display:flex;
 flex-direction:column;align-items:center;justify-content:center;padding:88px 40px 56px;gap:20px}
.mat{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;width:100%}
.mat img{max-width:min(1180px,88vw);max-height:100%;width:auto;height:auto;object-fit:contain;
 box-shadow:0 18px 48px rgba(0,0,0,.12)}
.fcap{display:flex;align-items:baseline;gap:20px;font-size:10.5px;letter-spacing:.2em;
 text-transform:uppercase;color:var(--soft)}
.fcap .fnum{opacity:.55}
.fslide.overview{background:var(--bg);gap:18px;padding:64px 30px 34px}
.light-ov .ov-title{color:var(--soft)}
.light-ov .ov-next{color:var(--soft);border-color:#cfcac3}
.light-ov .ov-next:hover{color:var(--ink);border-color:var(--ink)}

/* ---------- content pages ---------- */
.gv-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 48px;
 border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(250,249,247,.94);
 backdrop-filter:blur(8px);z-index:10}
.gv-head a.back{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--soft);text-decoration:none}
.gv-head a.back:hover{color:var(--ink)}
.gv-head h1,.gv-head .h{font-size:13px;letter-spacing:.3em;text-transform:uppercase;font-weight:600}
.gv-head .count{font-size:11px;letter-spacing:.14em;color:var(--soft);text-transform:uppercase}
.gv-head .private{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.pagetitle{font-size:12px;letter-spacing:.28em;text-transform:uppercase;font-weight:600;color:var(--soft);margin-bottom:24px}
.ovnav{display:flex;gap:26px;flex-wrap:wrap;justify-content:center;margin-top:26px}
.ovnav a{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.55);text-decoration:none}
.ovnav a:hover{color:#fff}
.light-ov .ovnav a{color:var(--soft)}.light-ov .ovnav a:hover{color:var(--ink)}
.workwrap{max-width:1080px;margin:0 auto;padding:60px 48px 90px}
.lede{font-size:17px;line-height:1.75;font-weight:300;color:#3a3a3a;max-width:720px}
.ph{margin-top:14px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.pkgs{display:grid;grid-template-columns:repeat(2,1fr);max-width:760px;gap:26px;margin:46px 0 10px}
.pkgs.one{grid-template-columns:1fr;max-width:420px}
.pkg{border:1px solid var(--line);padding:28px 24px 26px;background:#fff}
.pkg h3{font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:600}
.pkg .price{margin-top:16px;font-size:30px;font-weight:300}
.pkg .meta{margin-top:6px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.pkg ul{margin-top:20px;list-style:none}
.pkg li{font-size:13.5px;line-height:1.55;color:#4a4a4a;padding:7px 0 7px 16px;position:relative;border-top:1px solid #f1eee9}
.pkg li:before{content:"—";position:absolute;left:0;color:#c9c3ba}
.duo{margin-top:56px;max-width:860px;border-top:1px solid var(--line);padding-top:34px}
.duo h2,.duo h3{font-size:12px;letter-spacing:.26em;text-transform:uppercase;font-weight:600;margin-bottom:16px}
.duo>p{font-size:14.5px;line-height:1.8;color:#4a4a4a;font-weight:300;max-width:720px}
.duorow{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:26px;max-width:640px}
.duorow>div{border:1px solid var(--line);padding:20px 22px;background:#fff;display:flex;flex-direction:column}
.dn{font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.dp{margin-top:12px;font-size:26px;font-weight:300}
.dpp{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-top:3px}
.dm{margin-top:10px;font-size:12.5px;color:var(--soft)}
.notes{margin-top:58px;max-width:760px}
.notes.wide{max-width:1080px}
.notes h2,.notes h3{font-size:12px;letter-spacing:.26em;text-transform:uppercase;font-weight:600;margin-bottom:16px}
.notes p{font-size:14.5px;line-height:1.8;color:#4a4a4a;font-weight:300}
.notes p+p{margin-top:14px}
.small{font-size:12.5px !important;color:var(--soft) !important}
.ptable{margin:18px 0 12px;border-collapse:collapse;width:100%;max-width:560px}
.ptable td{padding:9px 40px 9px 0;font-size:14px;border-bottom:1px solid var(--line)}
.ptable td:first-child{letter-spacing:.16em;text-transform:uppercase;font-size:11.5px;color:var(--soft)}
.ptable.big td{padding:13px 46px 13px 0;font-size:15px}
.ptable.big td:nth-child(2){font-size:12px;color:var(--soft);letter-spacing:.06em}
.hstrip{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:26px}
.hstrip img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;transition:transform .6s,filter .5s;filter:grayscale(.15)}
.hstrip figure:hover img{transform:scale(1.03);filter:none}
.hstrip figcaption,.strip figcaption{margin-top:8px;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--soft)}
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:58px;max-width:760px}
.strip a{text-decoration:none}
.strip img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;transition:transform .6s}
.strip a:hover img{transform:scale(1.04)}
.cta{margin-top:56px}
.cta a{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);text-decoration:none;
 border-bottom:1px solid var(--ink);padding-bottom:5px}
.inl{color:var(--ink);text-decoration:none;border-bottom:1px solid #cfcac3}
.inl:hover{border-color:var(--ink)}
.aboutgrid{display:grid;grid-template-columns:340px 1fr;gap:52px;align-items:start}
.portrait{position:sticky;top:100px}
.ph-slot{aspect-ratio:4/5;border:1px dashed #cfc8bd;display:flex;align-items:center;justify-content:center;
 text-align:center;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#b3aca2;padding:20px}
.abouttext p{font-size:15px;line-height:1.85;color:#3f3f3f;font-weight:300}
.abouttext p+p{margin-top:18px}
.abouttext .lede{font-size:18px;line-height:1.7}

/* justified rows */
.gnote{max-width:1440px;margin:34px auto -14px;padding:0 48px;font-size:12px;line-height:1.7;color:var(--soft)}
.jwrap{max-width:1500px;margin:0 auto;padding:52px 48px 20px}
.jrow{display:flex;gap:16px;margin-bottom:16px}
.jrow figure{position:relative;overflow:hidden;cursor:zoom-in;min-width:0}
.jrow img{width:100%;height:auto;object-fit:cover;transition:transform .6s}
.jrow figure:hover img{transform:scale(1.025)}
.jrow figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 12px 9px;color:#fff;
 background:linear-gradient(to top,rgba(0,0,0,.62),transparent);font-size:9.5px;
 letter-spacing:.14em;text-transform:uppercase;opacity:0;transition:.3s}
.jrow figure:hover figcaption{opacity:1}
.next-gallery{display:flex;justify-content:center;padding:56px 0 84px}
.next-gallery a{font-size:11px;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;
 border-bottom:1px solid var(--ink);padding-bottom:4px}

/* print pages */
.printgrid{display:grid;grid-template-columns:1.35fr 1fr;gap:56px;align-items:start;
 max-width:1300px;margin:0 auto;padding:56px 48px 40px}
.printgrid .shot img{width:100%;height:auto;box-shadow:0 18px 48px rgba(0,0,0,.12)}
.printmeta h1{font-size:23px;font-weight:300;letter-spacing:.05em;line-height:1.3}
.printmeta .loc{margin-top:10px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--soft)}
.printmeta .story{margin-top:26px;font-size:14.5px;line-height:1.8;color:#4a4a4a;font-weight:300}
.printmeta .story p+p{margin-top:13px}
.printmeta .buy{margin-top:34px;border-top:1px solid var(--line);padding-top:24px}
.printmeta h2,.printmeta h3{font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;font-weight:600;margin-bottom:12px}
.printnav{display:flex;justify-content:space-between;max-width:1300px;margin:0 auto;padding:20px 48px 90px;
 font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--soft)}
.printnav a{text-decoration:none}
.printnav a:hover{color:var(--ink)}
.pindex{max-width:1440px;margin:0 auto;padding:20px 48px 80px;display:grid;
 grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:20px}
.pindex a{text-decoration:none}
.pindex img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;transition:transform .5s}
.pindex a:hover img{transform:scale(1.04)}
.pindex span{display:block;margin-top:9px;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.pindex h2{grid-column:1/-1;font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;
 font-weight:600;margin-top:26px;padding-bottom:10px;border-bottom:1px solid var(--line)}

/* lightbox + protection */
img{-webkit-user-drag:none;user-drag:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}
.lightbox{position:fixed;inset:0;background:rgba(12,12,12,.97);z-index:100;display:none;
 align-items:center;justify-content:center;cursor:zoom-out}
.lightbox.open{display:flex}
.lightbox img{max-width:93vw;max-height:92vh;object-fit:contain}
.lbnav{position:absolute;top:50%;transform:translateY(-50%);color:rgba(255,255,255,.6);font-size:34px;
 padding:20px;cursor:pointer;user-select:none;font-weight:200}
.lbnav:hover{color:#fff}
#lbprev{left:10px}#lbnext{right:10px}
.toast{position:fixed;left:50%;bottom:58px;transform:translateX(-50%) translateY(8px);z-index:200;
 background:rgba(20,20,20,.88);color:#fff;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
 padding:9px 16px;border-radius:3px;opacity:0;pointer-events:none;transition:opacity .35s,transform .35s}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:300;background:#fff;padding:10px 14px;font-size:12px}

@media(max-width:820px){
 .split{flex-direction:column;height:auto}.panel{height:44vh}
 .panel+.panel{border-left:none;border-top:3px solid var(--bg)}
 .ov-grid{grid-template-columns:repeat(3,1fr);width:auto}
 .fnav{padding:18px 20px}
 .fslide{padding:76px 20px 44px}.mat img{max-width:92vw}
 .jrow{flex-wrap:wrap}.jwrap{padding-left:22px;padding-right:22px}
 .intro,.gv-head,footer,.gnote,.workwrap,.printgrid,.printnav,.pindex{padding-left:22px;padding-right:22px}
 .pkgs,.duorow,.aboutgrid{grid-template-columns:1fr}
 .portrait{position:static}
 .printgrid{grid-template-columns:1fr;gap:32px}
 .hstrip{grid-template-columns:repeat(3,1fr)}
 .strip{grid-template-columns:repeat(2,1fr)}
}
