@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:200 800;font-display:swap;src:url('../fonts/PlusJakartaSans-VariableFont_wght.ttf') format('truetype-variations')}
@font-face{font-family:'Plus Jakarta Sans';font-style:italic;font-weight:200 800;font-display:swap;src:url('../fonts/PlusJakartaSans-Italic-VariableFont_wght.ttf') format('truetype-variations')}

:root{--bg:#0B0B0B;--fg:#F4F3F1;--dim:#8A8884;--line:rgba(244,243,241,.16)}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--fg);font-family:'Plus Jakarta Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--fg);outline-offset:3px}
.skip{position:fixed;top:10px;left:10px;z-index:99;background:var(--fg);color:var(--bg);font-weight:600;font-size:13px;
  padding:10px 16px;transform:translateY(-200%);transition:transform .2s}
.skip:focus{transform:none}
.ak-hp7{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.cf-turnstile{margin:0 0 16px}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;flex-direction:column;align-items:flex-end;gap:14px;
  padding:44px 40px 40px;color:#fff;opacity:0;animation:fade .9s .3s forwards;pointer-events:none;
  background:linear-gradient(180deg, rgba(6,6,6,.6) 0%, rgba(6,6,6,.3) 46%, rgba(6,6,6,0) 100%);
  transition:background .45s ease}
.nav .brand,.nav .menu,.nav .nav-toggle{pointer-events:auto}
body.nav-solid .nav{background:linear-gradient(180deg, rgba(6,6,6,.97) 0%, rgba(6,6,6,.82) 55%, rgba(6,6,6,0) 100%)}
.brand{font-weight:800;font-size:calc(clamp(44px,8.5vw,124px) * var(--k,1));letter-spacing:calc(-.03em - .012em*(1 - var(--k,1)));line-height:.88;text-align:right;white-space:nowrap;will-change:font-size}
.menu{display:flex;gap:24px;font-size:13px;font-weight:500;justify-content:flex-end}
.menu a{position:relative;text-transform:lowercase}
.menu a::after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:1.5px;background:#fff;transform:scaleX(0);transform-origin:right;transition:transform .35s ease}
.menu a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-toggle{display:none;order:2;width:32px;height:20px;position:relative;background:none;border:0;padding:0;cursor:pointer}
.nav-toggle .bar{position:absolute;left:0;width:100%;height:2px;background:#fff;transition:transform .35s ease,top .35s ease,bottom .35s ease}
.nav-toggle .bar:nth-child(1){top:3px}
.nav-toggle .bar:nth-child(2){bottom:3px}
body.menu-open .nav-toggle .bar:nth-child(1){top:9px;transform:rotate(45deg)}
body.menu-open .nav-toggle .bar:nth-child(2){bottom:9px;transform:rotate(-45deg)}

/* hero carousel: a normal 100vh section — vertical scroll always scrolls the page */
.heroc{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;touch-action:pan-y}
.rail{position:absolute;inset:0}
.panel{position:absolute;top:0;left:0;width:100vw;height:100%;color:inherit;overflow:hidden;will-change:transform}
.panel .bg{position:absolute;inset:0}
.panel .bg img{filter:grayscale(1) contrast(1.06) brightness(.82);transform:scale(1.08);transition:transform 1.2s ease,filter 1.8s ease}
.panel.live .bg img{transform:scale(1);filter:grayscale(0) contrast(1.03) brightness(.9)}
.panel .bg::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(11,11,11,.5),rgba(11,11,11,.18) 42%,rgba(11,11,11,.85))}

/* work panels */
.panel .cap{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:0 40px 56px;pointer-events:none}
.cap .k{font-size:12px;font-weight:700;letter-spacing:.3em;color:#CFCDC9;margin-bottom:16px}
.cap .t{font-weight:800;letter-spacing:-.03em;line-height:.9;font-size:clamp(40px,7vw,110px);mix-blend-mode:difference;color:#fff}
.cap .pl{margin-top:14px;font-size:14px;color:#B9B7B2;letter-spacing:.06em}
.cap .t,.cap .k,.cap .pl{opacity:0;transform:translateY(26px);transition:opacity .8s ease .15s,transform .8s ease .15s}
.panel.live .cap .t,.panel.live .cap .k,.panel.live .cap .pl{opacity:1;transform:none}

/* index with backdrop reveal */
.index{position:relative;padding:16vh 40px;overflow:hidden}
.backs{position:absolute;inset:0;pointer-events:none}
.back{position:absolute;inset:0;opacity:0;transition:opacity .55s ease}
.back img{filter:grayscale(1) brightness(.5) contrast(1.05);transform:scale(1.06);transition:transform 2.8s ease,filter 1.4s ease}
.back.on{opacity:1}
.back.on img{transform:scale(1);filter:grayscale(0) brightness(.55) contrast(1.05)}
.index h2{position:relative;z-index:2;font-size:12px;font-weight:600;letter-spacing:.28em;color:var(--dim);margin-bottom:34px;transition:color .4s}
.index.lit h2{color:#CFCDC9}
.row{position:relative;z-index:2;display:flex;align-items:baseline;gap:22px;padding:28px 4px;border-top:1px solid var(--line);cursor:pointer;transition:padding-left .4s ease,opacity .4s}
.row:last-of-type{border-bottom:1px solid var(--line)}
.row .n{font-size:13px;font-weight:600;color:var(--dim);width:38px;transition:color .35s}
.row .t{font-weight:700;letter-spacing:-.02em;font-size:clamp(30px,5vw,64px);line-height:1;text-transform:lowercase;transition:transform .4s ease,letter-spacing .4s ease}
.row .meta{margin-left:auto;font-size:13px;color:var(--dim);font-weight:500;transition:opacity .3s}
.row .go{font-size:22px;opacity:0;transform:translateX(-10px);transition:.35s}
.index.lit .row{opacity:.35}
.index.lit .row.hot{opacity:1;padding-left:22px}
.row.hot .t{transform:translateX(6px);letter-spacing:0}
.row.hot .n{color:var(--fg)}
.row.hot .go{opacity:1;transform:none}

/* statement + footer */
.state{padding:110px 40px;max-width:1100px}
.state p{font-weight:500;font-size:clamp(26px,3.6vw,46px);line-height:1.18;letter-spacing:-.015em}
.state em{font-style:italic;color:var(--dim)}
.foot{border-top:1px solid var(--line);padding:56px 40px 40px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.foot .big{font-weight:700;font-size:clamp(24px,3vw,40px);letter-spacing:-.02em;max-width:18ch;line-height:1.05}
.foot .big em{font-style:italic;font-weight:500;color:var(--dim)}
.foot .cr{font-size:12.5px;line-height:1.7;color:var(--dim);text-align:right}
.foot .cr a{border-bottom:1px solid var(--line)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}

/* hero lightbox (a link-less Selected Work frame = a photo, opens full-screen) */
.hlb{position:fixed;inset:0;z-index:70;background:rgba(7,7,7,.97);display:none;align-items:center;justify-content:center;padding:5vh 6vw}
.hlb.open{display:flex}
.hlb figure{margin:0;max-width:92vw;max-height:88vh;display:flex;flex-direction:column;align-items:center;gap:12px}
.hlb img{max-width:92vw;max-height:82vh;width:auto;height:auto;object-fit:contain}
.hlb figcaption{color:#CFCDC9;font-size:14px;font-weight:600;letter-spacing:-.01em}
.hlb button{position:fixed;background:none;border:0;color:#EDEBE7;font-size:26px;cursor:pointer;opacity:.7;transition:opacity .25s;font-family:inherit}
.hlb button:hover{opacity:1}
.hlb .hlb-close{top:24px;right:32px}.hlb .hlb-prev{left:28px;top:50%}.hlb .hlb-next{right:28px;top:50%}

/* cookie consent */
.consent{position:fixed;left:24px;bottom:24px;z-index:80;max-width:320px;background:#161615;border:1px solid var(--line);
  padding:18px 20px;font-size:13px;line-height:1.55;color:#CFCDC9;opacity:0;transform:translateY(14px);transition:opacity .4s ease,transform .4s ease}
.consent.in{opacity:1;transform:none}
.consent a{border-bottom:1px solid var(--line)}
.consent-actions{display:flex;gap:10px;margin-top:12px}
.consent button{font-family:inherit;font-size:12px;font-weight:600;letter-spacing:.06em;cursor:pointer;padding:8px 16px;border:1px solid var(--line);background:none;color:var(--fg);transition:.25s}
.consent .ok{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.consent button:hover{opacity:.85}

@keyframes fade{to{opacity:1}}
@media(max-width:820px){
  .heroc{min-height:0}
  .nav{left:0;flex-direction:row;justify-content:space-between;align-items:center;padding:22px 24px;
    background:linear-gradient(to bottom,rgba(0,0,0,.82),rgba(0,0,0,.55) 55%,rgba(0,0,0,0))}
  .brand{order:0;font-size:clamp(34px,9vw,54px);text-align:left;white-space:normal}
  .nav-toggle{display:block;order:1;z-index:31}
  .menu{position:fixed;inset:0;z-index:26;background:#0B0B0B;flex-direction:column;justify-content:center;align-items:flex-start;
    gap:6px;padding:0 34px;clip-path:circle(0px at calc(100% - 40px) 38px);
    transition:clip-path .6s cubic-bezier(.76,0,.24,1);pointer-events:none}
  body.menu-open .menu{clip-path:circle(170vh at calc(100% - 40px) 38px);pointer-events:auto}
  .menu a{font-size:clamp(34px,10vw,54px);font-weight:800;letter-spacing:-.03em;line-height:1.12;
    opacity:0;transform:translateY(22px);transition:opacity .4s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
  body.menu-open .menu a{opacity:1;transform:none}
  body.menu-open .menu a:nth-child(1){transition-delay:.16s}
  body.menu-open .menu a:nth-child(2){transition-delay:.22s}
  body.menu-open .menu a:nth-child(3){transition-delay:.28s}
  body.menu-open .menu a:nth-child(4){transition-delay:.34s}
  body.menu-open .menu a:nth-child(5){transition-delay:.40s}
  .menu a::after{display:none}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important}
 .title .l span,.eyebrow span{transform:none}.nav,.subrow{opacity:1}.reveal{opacity:1;transform:none}
 .panel .cap .t,.panel .cap .k,.panel .cap .pl{opacity:1;transform:none}}
