.camp-intro { padding: 150px var(--pad) 52px; max-width: 1500px; }
.camp-intro h1 { margin: 24px 0 32px; font: 620 clamp(44px,6.5vw,100px)/.98 var(--display); font-stretch: 85%; letter-spacing: -.035em; }
.camp-lede { margin: 0 0 16px; font-size: clamp(24px,3vw,42px); letter-spacing: -.025em; }
.camp-description { max-width: 58ch; font-size: 19px; line-height: 1.6; color: #aaa79f; }
.camp-draft-note { max-width: 78ch; margin-top: 26px; font: 11px/1.7 var(--meta); color: var(--muted); }
.camp-scope { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 0 var(--pad); border-block: 1px solid var(--line); }
.camp-scope > div { padding: 26px 20px; border-right: 1px solid var(--line); }
.camp-scope > div:first-child { padding-left: 0; }
.camp-scope > div:last-child { border: 0; }
.camp-scope strong { display: block; font-size: clamp(20px,2vw,30px); font-weight: 550; letter-spacing: -.025em; margin-bottom: 10px; }
.camp-scope span, .camp-caption > span { font: 11px/1.6 var(--meta); color: var(--muted); }
.camp-section { margin: 0 var(--pad); padding: 64px 0; border-bottom: 1px solid var(--line); }
.camp-section-head { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: 28px; }
.camp-section h2 { margin: 14px 0 0; font: 550 clamp(30px,3.5vw,52px)/1.08 var(--display); letter-spacing: -.025em; }
.camp-section-head > p { max-width: 48ch; margin: 0; font-size: 17px; line-height: 1.55; color: #aaa79f; }
.camp-film-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.camp-photo-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.camp-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; border: 1px solid var(--line); background: var(--ink); text-align: center; padding: 20px; }
.camp-placeholder--film { aspect-ratio: 16/9; }
.camp-placeholder--photo { aspect-ratio: 3/2; }
.camp-placeholder span { font: 11px/1.5 var(--meta); color: var(--muted); }
.camp-placeholder p { margin: 0; font-size: 18px; }
.camp-caption { margin-top: 16px; }
.camp-caption h3 { margin: 0 0 8px; font: 550 21px/1.2 var(--display); letter-spacing: -.015em; }
.camp-details dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; margin: 32px 0 0; }
.camp-details dt { font: 11px/1.5 var(--meta); color: var(--muted); margin-bottom: 10px; }
.camp-details dd { margin: 0; font-size: 17px; line-height: 1.5; max-width: 48ch; }
@media(max-width:900px) { .camp-scope { grid-template-columns: 1fr 1fr; } .camp-scope > div { padding-left: 0; border: 0; } .camp-film-grid { grid-template-columns: 1fr; gap: 32px; } }
@media(max-width:600px) { .camp-intro { padding-top: 118px; } .camp-section-head, .camp-details dl { grid-template-columns: 1fr; gap: 20px; } .camp-photo-grid { grid-template-columns: 1fr; } .camp-section { padding: 40px 0; } .camp-scope strong { font-size: 20px; } }

.camp-video { position: relative; aspect-ratio: 16 / 9; background: var(--ink); }
.camp-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.camp-watch { display: flex; align-items: center; gap: 10px; width: fit-content; min-height: 44px; margin-top: 8px; font: 11px/1.5 var(--meta); text-decoration: underline; text-underline-offset: 4px; }

/* Camp assets: preserve artwork and full group compositions. */
.camp-cover { display: block; position: relative; color: var(--paper, #eeeae0); }
.camp-cover[hidden] { display: none; }
.camp-cover img { display: block; width: 100%; height: auto; }
.camp-play { position: absolute; top: 12px; left: 12px; padding: 10px 14px; background: #080808e8; border: 1px solid #d7d3c855; font: 11px/1.5 var(--meta); }
.camp-cover:hover .camp-play { background: #eeeae0; color: #080808; }
.camp-cover:focus-visible, .camp-photo:focus-visible { outline: 2px solid #eeeae0; outline-offset: 5px; }
.camp-photo-chapter + .camp-photo-chapter { margin-top: 40px; }
.camp-photo-chapter h3 { margin: 0 0 18px; font: 500 16px/1.5 var(--meta); }
.camp-photo-grid figure { margin: 0; min-width: 0; }
.camp-photo { display: block; }
.camp-photo img { display: block; width: 100%; height: auto; }
.camp-photo-grid figcaption { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; margin-top: 10px; font: 11px/1.6 var(--meta); color: #aaa79f; }
.camp-photo-grid figcaption a { min-height: 44px; display: inline-flex; align-items: center; text-underline-offset: 4px; }
@media(min-width:901px) { .camp-film-grid { gap: 20px; } }

/* Full-resolution photographic opening, with a quiet reading surface. */
.camp-intro {
  position: relative;
  isolation: isolate;
  max-width: none;
  min-height: min(850px, 90svh);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(140px, 16vh, 210px) var(--pad) clamp(48px, 7vw, 100px);
  background: #080808;
}
.camp-hero-image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 58%;
}
.camp-intro::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(8,8,8,.85), rgba(8,8,8,.48) 58%, rgba(8,8,8,.16)), linear-gradient(0deg, #080808 0%, rgba(8,8,8,.18) 50%, rgba(8,8,8,.22));
}
.camp-intro h1 { max-width: 13ch; }
.camp-intro .camp-description { color: #d7d3c8; margin-bottom: 0; }
.camp-intro .eyebrow { color: #d7d3c8; }
@media(max-width:600px) {
  .camp-intro { min-height: 740px; min-height: min(850px, 105svh); padding-top: 128px; padding-bottom: 48px; }
  .camp-hero-image { object-position: 52% center; }
  .camp-intro::before { background: linear-gradient(0deg, #080808 0%, rgba(8,8,8,.82) 38%, rgba(8,8,8,.32) 100%); }
  .camp-intro .camp-lede { max-width: 21ch; }
}
