/* Responsive editorial layout. Image groups flow without a fixed canvas height. */
.archive-editorial { --archive-serif:'Times New Roman',Georgia,serif; --archive-gutter:clamp(20px,4.5vw,80px); background:#f3efe8; padding:0 var(--archive-gutter) 40px; }
.archive-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.archive-study-note { display:flex; justify-content:center; gap:20px; padding:12px var(--archive-gutter); margin:0 calc(-1 * var(--archive-gutter)); background:#e8e1d5; color:#514638; font-size:12px; line-height:1.5; }
.archive-study-note>span { text-transform:uppercase; letter-spacing:.1em; font-weight:500; white-space:nowrap; }
.archive-composition { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-areas:
 'lead lead lead lead lead . mast mast mast mast mast mast'
 'lead lead lead lead lead . filters filters filters filters filters filters'
 'lead lead lead lead lead . detail detail detail portrait portrait portrait'
 'quote quote quote quote . motion motion motion motion motion motion motion'
 '. hands hands hands hands . wide wide wide wide wide wide'
 'community community community . worn worn worn worn still still still still'
 'contact contact contact . end end end end end end end end';
 column-gap:clamp(18px,2vw,32px); row-gap:40px; max-width:1320px; margin:0 auto; padding:64px 0 80px; scroll-margin-top:100px; align-items:start; }
.archive-masthead { grid-area:mast; min-width:0; padding:18px 0 0; }
.archive-masthead h1 { font:normal clamp(68px,7.7vw,112px)/1 var(--archive-serif); letter-spacing:-.06em; text-transform:uppercase; margin:0; padding-bottom:.12em; }
.archive-masthead h1>span { display:block; font-size:.32em; letter-spacing:-.02em; line-height:1; margin-bottom:12px; }
.archive-masthead>p { font:12px/1.8 Jost,Arial,sans-serif; text-transform:uppercase; letter-spacing:.16em; margin:28px 0 0; }
.archive-masthead>p br { display:none; }
.archive-masthead>p em { font-style:normal; }
.archive-filters:not([hidden]) { grid-area:filters; display:flex; flex-wrap:wrap; gap:8px 28px; border-bottom:1px solid var(--line); }
.archive-filters button { border:0; border-bottom:2px solid transparent; background:none; padding:12px 0; font:11px/1.5 Jost,Arial,sans-serif; letter-spacing:.14em; text-transform:uppercase; min-height:44px; cursor:pointer; }
.archive-filters button[aria-pressed=true] { border-color:var(--red); color:var(--red); }
.archive-editorial :is(button,a):focus-visible { outline:2px solid var(--red); outline-offset:5px; }
.archive-margin-note,.archive-handwritten { display:none; }
.archive-tile { width:100%; margin:0; min-width:0; min-height:0; position:relative; display:grid; grid-template-rows:minmax(0,1fr) auto; align-self:stretch; }
.archive-tile .archive-image,.archive-reference-crop { width:100%; height:100%; min-height:0; display:block; background:#e2ddd3; overflow:hidden; contain:size; }
.archive-tile .archive-image { position:relative; }
.archive-tile .archive-image img { width:100%; height:100%; object-fit:cover; display:block; }
.archive-tile--lead { grid-area:lead; aspect-ratio:4 / 5; }
.archive-tile--detail { grid-area:detail; aspect-ratio:3 / 4.3; }
.archive-tile--portrait { grid-area:portrait; aspect-ratio:3 / 4.3; }
.archive-tile--motion { grid-area:motion; aspect-ratio:16 / 10; align-self:center; }
.archive-tile--hands { grid-area:hands; aspect-ratio:3 / 4; }
.archive-tile--wide { grid-area:wide; aspect-ratio:1.55; align-self:center; }
.archive-tile--worn { grid-area:worn; aspect-ratio:3 / 4; background:#e9e3d8; padding:16px 16px 6px; }
.archive-tile--still { grid-area:still; aspect-ratio:3 / 4; }
.archive-tile--contact { grid-area:contact; aspect-ratio:1; }
.archive-tile figcaption { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 12px; color:#514d46; font:11px/1.5 Jost,Arial,sans-serif; letter-spacing:.07em; text-transform:uppercase; padding:12px 0 0; }
.archive-tile figcaption small { font-size:10px; letter-spacing:.03em; text-transform:none; }
.archive-piece-title { display:block; }
.archive-credit { display:block; font-size:11px; text-transform:none; letter-spacing:0; }
.archive-enlarge { position:absolute; bottom:14px; right:14px; color:#fff; width:22px; height:22px; filter:drop-shadow(0 1px 4px #000); }
.archive-house-note { grid-area:quote; align-self:center; padding:clamp(24px,3vw,44px); background:#360000; color:#f6f0e5; }
.archive-index { font:10px/1.6 Jost,Arial,sans-serif; letter-spacing:.14em; text-transform:uppercase; }
.archive-house-note p { font:normal clamp(27px,3.2vw,44px)/1.08 var(--archive-serif); text-transform:uppercase; letter-spacing:-.02em; margin:28px 0; }
.archive-house-note em { color:#d9c5a6; font-style:normal; }
.archive-note-rule { display:block; width:38px; border-top:1px solid #b69d79; }
.archive-house-note small { display:block; font:10px/1.8 Jost,Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; margin-top:22px; }
.archive-community { grid-area:community; align-self:center; padding:20px 0; }
.archive-community h2 { font:normal clamp(25px,2.5vw,36px)/1.08 var(--archive-serif); margin:0 0 22px; letter-spacing:-.02em; }
.archive-community p { font:11px/1.8 Jost,Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.archive-community a { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:44px; font-size:12px; text-decoration:none; border-bottom:1px solid var(--line); max-width:200px; margin-top:20px; }
.archive-community svg,.archive-colophon svg,.archive-film-heading svg { width:18px; height:18px; flex-shrink:0; }
.archive-endnote { grid-area:end; align-self:center; padding:40px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:32px; }
.archive-endnote>span:first-child { font:clamp(24px,3vw,42px)/1.08 var(--archive-serif); }
.archive-endnote>span:last-child { font:10px/1.8 Jost,Arial,sans-serif; text-transform:uppercase; letter-spacing:.14em; max-width:110px; }
.archive-placeholder { background:#dfd9cd; border:1px solid #c7beae; display:flex; flex-direction:column; justify-content:space-between; padding:24px; color:#635a4a; min-height:220px; }
.archive-placeholder>span,.archive-placeholder>small { font:11px/1.6 Jost,Arial,sans-serif; letter-spacing:.07em; text-transform:uppercase; }
.archive-placeholder>p { font:clamp(22px,2vw,30px)/1.1 var(--archive-serif); margin:20px 0; }
.archive-placeholder.archive-tile--lead { background:#aaa18f; color:#fff; }
.archive-placeholder.archive-tile--portrait { background:#b8afa0; }
.archive-placeholder.archive-tile--wide { background:#cbc4b6; }
.archive-placeholder.archive-tile--still { background:#aaa18f; }
/* More entries continue below the curated opening composition. */
.archive-piece:not(.archive-tile) { grid-column:span 4; margin:0; min-width:0; }
.archive-piece:not(.archive-tile) img { width:100%; height:auto; }
.archive-composition.is-filtered { grid-template-areas:none; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.archive-composition.is-filtered .archive-masthead,.archive-composition.is-filtered .archive-filters { grid-area:auto; grid-column:1 / -1; }
.archive-composition.is-filtered .archive-tile { grid-area:auto; aspect-ratio:3 / 4; }
.archive-film-shelf { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,280px) minmax(0,.7fr); align-items:center; gap:48px; padding:64px 0; max-width:1100px; margin:0 auto; border-top:1px solid var(--line); }
.archive-film-heading h2 { font:36px/1.08 var(--archive-serif); margin:20px 0 16px; }
.archive-film-heading>p { font-size:14px; line-height:1.7; max-width:30ch; }
.archive-film-heading>a { display:inline-flex; align-items:center; gap:20px; font-size:12px; min-height:44px; }
.archive-film-frame { position:relative; background:var(--charcoal,#282827); }
.archive-film-frame video { width:100%; height:auto; aspect-ratio:9/16; display:block; }
.archive-play:not([hidden]) { position:absolute; inset:auto 10px 12px; display:flex; align-items:center; gap:12px; border:0; background:var(--paper); color:var(--ink); padding:14px; text-align:left; font-size:12px; min-height:54px; cursor:pointer; }
.archive-play svg { width:18px; height:18px; }
.archive-play small { display:block; font-size:10px; color:var(--muted); margin-top:3px; }
.archive-film-shelf details { align-self:end; font-size:12px; }
.archive-film-shelf summary { font-size:12px; min-height:44px; cursor:pointer; }
.archive-colophon { border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:30px; align-items:center; padding:24px 0 0; max-width:1320px; margin:auto; font:10px/1.6 Jost,Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.archive-colophon a { display:inline-flex; gap:20px; align-items:center; text-decoration:none; min-height:44px; }
@media(max-width:1000px) {
 .archive-composition { grid-template-columns:repeat(6,minmax(0,1fr)); grid-template-areas:
  'mast mast mast mast mast mast'
  'filters filters filters filters filters filters'
  'lead lead lead detail detail detail'
  'lead lead lead portrait portrait portrait'
  'quote quote quote quote quote quote'
  'motion motion motion motion motion motion'
  'hands hands hands wide wide wide'
  'community community community community community community'
  'worn worn worn still still still'
  'contact contact . end end end'; gap:32px; padding:48px 0 64px; }
 .archive-masthead { display:flex; justify-content:space-between; align-items:end; gap:32px; padding:0; }
 .archive-masthead h1 { font-size:clamp(72px,11vw,105px); }
 .archive-masthead>p { max-width:180px; margin:0 0 5px; }
 .archive-tile--detail,.archive-tile--portrait { aspect-ratio:4 / 3; }
 .archive-tile--wide { aspect-ratio:1; }
 .archive-house-note { display:grid; grid-template-columns:1fr 2fr; column-gap:32px; padding:32px; }
 .archive-house-note p { grid-column:2; grid-row:1 / 4; margin:0; font-size:36px; }
 .archive-house-note p br { display:none; }
 .archive-house-note p br::after { content:' '; }
 .archive-note-rule { align-self:end; }
 .archive-house-note small { margin-top:14px; }
 .archive-community { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:12px 32px; padding:24px 0 0; }
 .archive-community h2 { margin:0; grid-row:1 / 3; }
 .archive-community p { margin:0; }
 .archive-community a { margin:0; }
 .archive-endnote { display:block; }
 .archive-endnote>span:last-child { display:block; max-width:none; margin-top:20px; }
 .archive-film-shelf { grid-template-columns:1fr minmax(180px,280px); gap:32px; }
 .archive-film-shelf details { grid-column:1 / -1; }
}
@media(max-width:600px) {
 .archive-study-note { display:block; font-size:11px; }
 .archive-study-note>span { display:block; margin-bottom:4px; }
 .archive-composition { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-areas:
  'mast mast' 'filters filters' 'lead lead' 'detail portrait' 'quote quote'
  'motion motion' 'hands still' 'wide wide' 'community community' 'worn contact' 'end end'; column-gap:20px; row-gap:32px; padding:36px 0 48px; }
 .archive-masthead { display:block; }
 .archive-masthead h1 { font-size:clamp(58px,16vw,94px); }
 .archive-masthead>p { font-size:11px; max-width:none; margin:24px 0 0; }
 .archive-filters:not([hidden]) { gap:8px 24px; }
 .archive-filters button { font-size:10px; }
 .archive-tile--lead { aspect-ratio:4 / 5; }
 .archive-tile--detail,.archive-tile--portrait { aspect-ratio:3 / 4; }
 .archive-tile--hands,.archive-tile--still { aspect-ratio:3 / 4.5; }
 .archive-tile--wide { aspect-ratio:1.4; }
 .archive-tile--worn { padding:8px 8px 4px; }
 .archive-tile--contact { align-self:center; }
 .archive-tile figcaption { display:block; font-size:10px; letter-spacing:.04em; padding-top:10px; }
 .archive-tile figcaption small { display:block; margin-top:3px; font-size:10px; }
 .archive-house-note { display:block; padding:28px; }
 .archive-house-note p { margin:22px 0; font-size:clamp(28px,7vw,40px); }
 .archive-house-note small { font-size:10px; }
 .archive-community { gap:20px; padding:8px 0; }
 .archive-community h2 { font-size:26px; }
 .archive-community p { font-size:10px; }
 .archive-community a { font-size:11px; }
 .archive-endnote { padding:28px 0 0; }
 .archive-placeholder { padding:16px; min-height:180px; }
 .archive-placeholder>span,.archive-placeholder>small { font-size:10px; }
 .archive-placeholder>p { font-size:21px; }
 .archive-composition.is-filtered { grid-template-columns:1fr 1fr; gap:24px 20px; }
 .archive-composition.is-filtered .archive-tile--motion { grid-column:1 / -1; aspect-ratio:16 / 10; }
 .archive-piece:not(.archive-tile) { grid-column:span 2; }
 .archive-film-shelf { grid-template-columns:1fr; padding:40px 0; gap:28px; }
 .archive-film-heading h2 { font-size:32px; }
 .archive-film-frame { width:min(100%,300px); justify-self:center; }
 .archive-colophon { flex-direction:column; align-items:flex-start; gap:12px; }
}
.archive-lightbox { border:0; padding:20px 24px; background:var(--paper); color:var(--ink); width:min(94vw,1300px); max-width:none; max-height:94dvh; }
.archive-lightbox::backdrop { background:rgb(25 24 22 / .88); }
.archive-lightbox-bar { display:flex; justify-content:space-between; align-items:center; font-size:12px; }
.archive-lightbox button { width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--line); background:transparent; }
.archive-lightbox button svg { width:20px; height:20px; stroke:currentColor; stroke-width:1.25; fill:none; }
.archive-lightbox figure { margin:10px 0; }
.archive-lightbox img { display:block; max-width:100%; width:auto; height:auto; max-height:65dvh; margin:auto; }
.archive-lightbox figcaption { text-align:center; font-size:13px; margin-top:20px; }
.archive-lightbox-controls { display:flex; justify-content:center; gap:12px; }
html.archive-modal-open { overflow:hidden; }

@media(max-width:600px) { .archive-lightbox { width:96vw; padding:12px; } }
/* Six supplied campaign photographs replace the nine borrowed reference crops. */
.has-campaign-photos .archive-composition:not(.is-filtered) {grid-template-areas:
 'lead lead lead lead lead . mast mast mast mast mast mast'
 'lead lead lead lead lead . filters filters filters filters filters filters'
 'lead lead lead lead lead . detail detail detail portrait portrait portrait'
 'quote quote quote quote . motion motion motion motion motion motion motion'
 '. hands hands hands hands . wide wide wide wide wide wide'
 'community community community community . end end end end end end end'}
.has-campaign-photos .archive-tile--motion {aspect-ratio:4/5;max-width:440px;justify-self:center}
.has-campaign-photos .archive-tile--wide {aspect-ratio:4/5;max-width:420px;justify-self:center}
.campaign-film-grid {max-width:1320px;margin:0 auto;padding:50px 0 70px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.campaign-film-grid header {grid-column:1/-1;margin-bottom:12px}
.campaign-film-grid h2 {font:clamp(32px,4vw,58px)/1.1 'Times New Roman',serif}
.campaign-film-grid h3 {font-size:16px;font-family:Jost,sans-serif;margin-top:16px;font-weight:400}
.campaign-film-grid video {width:100%;display:block;aspect-ratio:9/16;object-fit:cover;background:#282827}
.campaign-film-grid .campaign-film {margin:0;aspect-ratio:auto}
@media(max-width:1000px){.has-campaign-photos .archive-composition:not(.is-filtered){grid-template-areas:'mast mast mast mast mast mast' 'filters filters filters filters filters filters' 'lead lead lead detail detail detail' 'lead lead lead portrait portrait portrait' 'quote quote quote motion motion motion' 'hands hands hands wide wide wide' 'community community community end end end'}}
@media(max-width:600px){.has-campaign-photos .archive-composition:not(.is-filtered){grid-template-areas:'mast mast' 'filters filters' 'lead lead' 'detail portrait' 'quote quote' 'motion motion' 'hands wide' 'community community' 'end end'}.campaign-film-grid{grid-template-columns:1fr;gap:32px}.campaign-film-grid article{max-width:340px;width:100%;justify-self:center}.has-campaign-photos .archive-tile--motion{max-width:340px}.has-campaign-photos .archive-tile--wide{max-width:none;aspect-ratio:3/4.5}}
/* Campaign additions sit below the original scrapbook composition. */
.archive-continuation {max-width:1320px;margin:0 auto;padding:70px 0 100px;border-top:1px solid var(--line)}
.archive-continuation>header {margin-bottom:clamp(40px,6vw,88px)}
.archive-continuation h2 {font:clamp(34px,4vw,58px)/1.12 'Times New Roman',serif;margin:12px 0}
.archive-campaign-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(24px,5vw,80px);row-gap:clamp(48px,7vw,110px);align-items:start}
.archive-campaign-grid .archive-piece:not(.archive-tile) {position:static;grid-column:auto;width:auto;margin:0;min-width:0;transform:none}
.archive-campaign-grid .archive-piece:nth-child(3n+2) {margin-top:70px}
.archive-campaign-grid .archive-image {position:relative;display:block;aspect-ratio:2/3}
.archive-campaign-grid .archive-piece img {display:block;width:100%;height:100%;object-fit:contain}
.archive-campaign-grid figcaption {display:grid;gap:7px;padding-top:14px}
.archive-campaign-grid .archive-piece-title {font-size:15px}
@media(max-width:800px){.archive-campaign-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 24px}.archive-campaign-grid .archive-piece:nth-child(3n+2){margin-top:0}.archive-campaign-grid .archive-piece:nth-child(2n){margin-top:50px}}
@media(max-width:480px){.archive-continuation {padding-block:45px 60px}.archive-campaign-grid {grid-template-columns:1fr;gap:44px}.archive-campaign-grid .archive-piece:nth-child(n){margin:0 auto;max-width:380px;width:100%}}
