:root{
  --paper:#f1ede4;
  --paper-soft:#eae4d6;
  --ink:#0d0c0a;
  --ink-soft:#1a1815;
  --muted:#5a554c;
  --line:rgba(13,12,10,.14);
  --line-dark:rgba(241,237,228,.16);
  --accent:oklch(54% 0.13 36);
  --sans:'Inter Tight','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  --display:'Neue Haas Grotesk Display','Soehne','Avenir Next','Helvetica Neue',Arial,system-ui,sans-serif;
  --mono:'JetBrains Mono','IBM Plex Mono','SFMono-Regular',ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.23,1,.32,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--paper);color:var(--ink);font-family:var(--sans);overflow-x:hidden}
body{-webkit-font-smoothing:antialiased;font-feature-settings:'ss01','cv11'}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;border:0;background:transparent;cursor:pointer}

/* ---------- HERO ---------- */
.pf-hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(130px,16vh,180px) 5vw clamp(48px,6vh,72px);background:var(--ink);color:var(--paper);overflow:hidden;isolation:isolate}
.pf-hero__photo{position:absolute;inset:0;z-index:0}
.pf-hero__photo img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);animation:pfKB 32s var(--ease) infinite alternate;filter:saturate(.92) contrast(1.02)}
@keyframes pfKB{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.10) translate(-1.2%,1%)}}
.pf-hero__veil{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(13,12,10,.55) 0%,rgba(13,12,10,.08) 36%,rgba(13,12,10,.30) 60%,rgba(13,12,10,.88) 100%)}
.pf-hero__inner{position:relative;z-index:2;max-width:1640px;width:100%;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);gap:32px;align-items:end}
.pf-hero__kicker{font:10px/1.7 var(--mono);letter-spacing:.28em;text-transform:uppercase;color:rgba(241,237,228,.62);margin-bottom:18px}
.pf-hero h1{font-family:var(--display);font-weight:500;font-size:clamp(56px,9.2vw,148px);line-height:.9;letter-spacing:-.038em;color:var(--paper)}
.pf-hero__sub{font:14px/1.4 var(--sans);color:rgba(241,237,228,.7);max-width:34ch;align-self:end;padding-bottom:8px}
@keyframes pfHeroIn{from{opacity:0;transform:translateY(16px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
.pf-hero__inner > *{animation:pfHeroIn 1s var(--ease) both}
.pf-hero__sub{animation-delay:.15s}

/* ---------- INDEX STRIP ---------- */
.pf-index{position:relative;background:var(--ink-soft);border-bottom:1px solid var(--line-dark);overflow-x:auto;scrollbar-width:none}
.pf-index::-webkit-scrollbar{display:none}
.pf-index ol{list-style:none;display:flex;width:max-content;min-width:100%;padding:0 5vw}
.pf-index li{flex:1 0 auto}
.pf-index a{display:block;padding:18px 28px;border-right:1px solid var(--line-dark);font:10px var(--mono);letter-spacing:.22em;text-transform:uppercase;color:rgba(241,237,228,.55);transition:color .25s var(--ease),background .25s var(--ease)}
.pf-index a:hover,.pf-index a.is-active{color:var(--paper);background:rgba(241,237,228,.05)}
.pf-index a b{font-weight:500;color:var(--paper);margin-right:10px;letter-spacing:.04em}
.pf-index li:last-child a{border-right:0}

.pf-context{background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line)}
.pf-context__inner{max-width:1640px;margin:0 auto;padding:clamp(54px,7vw,92px) 5vw;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,78px);align-items:start}
.pf-context__kicker{font:10px var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.pf-context h2{font-family:var(--sans);font-weight:500;font-size:clamp(34px,5.4vw,82px);line-height:.92;letter-spacing:-.04em;max-width:14ch}
.pf-context p{margin:0;max-width:68ch;color:rgba(13,12,10,.68);font-size:clamp(16px,1.08vw,19px);line-height:1.62}
.pf-context p + p{margin-top:16px}

/* ---------- SPREAD (canonical pattern, used by all 6 genres) ---------- */
.pf-spread{position:relative;min-height:auto;display:flex;flex-direction:column;justify-content:space-between;gap:clamp(32px,5vh,56px);padding:clamp(72px,9vh,120px) 5vw clamp(72px,9vh,120px);background:var(--ink);color:var(--paper);overflow:hidden;isolation:isolate;content-visibility:auto;contain-intrinsic-size:900px}
.pf-spread__head{position:relative;z-index:2;max-width:1640px;width:100%;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);gap:28px clamp(28px,5vw,72px);align-items:end}
.pf-spread__kicker{font:10px var(--mono);letter-spacing:.28em;text-transform:uppercase;color:rgba(241,237,228,.62);margin-bottom:14px}
.pf-spread h2{font-family:var(--sans);font-weight:500;font-size:clamp(46px,7.2vw,116px);line-height:.92;letter-spacing:-.038em;color:var(--paper);max-width:16ch;text-wrap:balance}
.pf-spread__link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;font:10px var(--mono);letter-spacing:.2em;text-transform:uppercase;padding:14px 20px;border:1px solid rgba(241,237,228,.34);color:var(--paper);transition:background .25s var(--ease),border-color .25s var(--ease);white-space:nowrap;align-self:end}
.pf-spread__link:hover{background:rgba(241,237,228,.10);border-color:var(--paper)}
.pf-spread__strip{position:relative;z-index:2;max-width:1640px;width:100%;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.pf-spread__strip .pf-photo{aspect-ratio:1;width:100%}

/* Light variant — alternating sections */
.pf-spread.is-light{background:var(--paper);color:var(--ink)}
.pf-spread.is-light .pf-spread__kicker{color:var(--muted)}
.pf-spread.is-light h2{color:var(--ink)}
.pf-spread.is-light .pf-spread__link{border-color:rgba(13,12,10,.28);color:var(--ink)}
.pf-spread.is-light .pf-spread__link:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pf-spread.is-light .pf-photo{background:#e7e1d3}

.pf-photo{position:relative;display:block;overflow:hidden;background:#1a1815;cursor:zoom-in;transform:translateY(18px);opacity:0;transition:transform .9s var(--ease),opacity .9s var(--ease)}
.is-visible .pf-photo{transform:none;opacity:1}
.pf-photo img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.pf-photo:hover img{transform:scale(1.04)}
.pf-photo:nth-child(2){transition-delay:.06s}
.pf-photo:nth-child(3){transition-delay:.12s}
.pf-photo:nth-child(4){transition-delay:.18s}

/* ---------- ARCHIVE WALL — column-count masonry, gap-free ---------- */
.pf-archive{padding:clamp(80px,12vh,140px) 5vw clamp(80px,10vh,120px);background:var(--paper);color:var(--ink);content-visibility:auto;contain-intrinsic-size:1800px}
.pf-archive__head{max-width:1640px;margin:0 auto clamp(40px,6vh,72px)}
.pf-archive__kicker{font:10px var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.pf-archive__head h2{font-family:var(--sans);font-weight:500;font-size:clamp(48px,7.4vw,118px);line-height:.92;letter-spacing:-.038em;max-width:18ch;text-wrap:balance}
.pf-archive__grid{max-width:1640px;margin:0 auto;column-count:4;column-gap:4px}
.pf-archive__grid .pf-photo{width:100%;break-inside:avoid;margin:0 0 4px;display:block;cursor:zoom-in;transform:translateY(10px);opacity:0;transition:transform .6s var(--ease),opacity .6s var(--ease)}
.pf-archive__grid .pf-photo img{width:100%;height:auto;display:block}
.pf-archive__grid .pf-photo.is-shown{transform:none;opacity:1}
.pf-archive__foot{max-width:1640px;margin:clamp(48px,6vh,72px) auto 0;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:18px;font:10px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.pf-archive__foot a{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:14px 18px;border:1px solid var(--ink);color:var(--ink);transition:background .25s var(--ease),color .25s var(--ease)}
.pf-archive__foot a:hover{background:var(--ink);color:var(--paper)}

/* ---------- LIGHTBOX ---------- */
.pf-viewer{position:fixed;inset:0;z-index:240;display:grid;place-items:center;padding:clamp(20px,4vw,60px);background:rgba(8,7,5,.94);backdrop-filter:blur(20px);opacity:0;pointer-events:none;transition:opacity .3s var(--ease)}
.pf-viewer.is-open{opacity:1;pointer-events:auto}
.pf-viewer__figure{position:relative;width:100%;max-width:1500px;height:min(86vh,1000px);display:flex;align-items:center;justify-content:center}
.pf-viewer img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 60px 200px rgba(0,0,0,.7)}
.pf-viewer__close,.pf-viewer__prev,.pf-viewer__next{position:absolute;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5);border:1px solid rgba(241,237,228,.2);backdrop-filter:blur(10px);font:10px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--paper);padding:12px 16px;transition:background .2s var(--ease)}
.pf-viewer__close:hover,.pf-viewer__prev:hover,.pf-viewer__next:hover{background:rgba(0,0,0,.85)}
.pf-viewer__close{top:20px;right:20px}
.pf-viewer__prev{left:20px;top:50%;transform:translateY(-50%)}
.pf-viewer__next{right:20px;top:50%;transform:translateY(-50%)}
.pf-viewer__cap{position:absolute;left:50%;bottom:-30px;transform:translateX(-50%);font:10px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:rgba(241,237,228,.7);white-space:nowrap}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1080px){
  .pf-archive__grid{column-count:3}
  .pf-spread__strip{grid-template-columns:repeat(3,1fr)}
  .pf-spread__strip .pf-photo:nth-child(4){display:none}
}
@media (max-width:720px){
  .pf-hero{min-height:100svh;padding:120px 5vw 48px}
  .pf-hero__inner{grid-template-columns:1fr;gap:18px;align-items:start}
  .pf-hero h1{font-size:clamp(46px,12vw,76px)}
  .pf-hero__sub{padding-bottom:0}
  .pf-context__inner{grid-template-columns:1fr}
  .pf-spread{min-height:auto;padding:56px 5vw 36px}
  .pf-spread__head{grid-template-columns:1fr;gap:18px;align-items:start}
  .pf-spread h2{font-size:clamp(38px,11vw,64px)}
  .pf-spread__strip{grid-template-columns:repeat(2,1fr);gap:4px}
  .pf-spread__strip .pf-photo:nth-child(4){display:block}
  .pf-archive__grid{column-count:2}
  .pf-archive__head h2{font-size:clamp(38px,11vw,64px)}
  .pf-archive__foot{flex-direction:column;align-items:flex-start;gap:14px}
  .pf-viewer__close{top:14px;right:14px;padding:10px 12px}
  .pf-viewer__prev{left:10px;padding:14px 10px}
  .pf-viewer__next{right:10px;padding:14px 10px}
}
@media (prefers-reduced-motion:reduce){
  .pf-hero__photo img,.pf-photo,.pf-hero__inner > *,.pf-archive__grid .pf-photo{animation:none!important;transition:none!important;transform:none!important;opacity:1!important;filter:none!important}
}
