/* Retrospective-only styles. All photo frames preserve the complete source composition. */
.season-opening { text-align:center; background:radial-gradient(ellipse at 50% 15%,#9f783523,transparent 65%),var(--deep); }
.season-opening h1 { font-size:clamp(3.7rem,7vw,6.6rem); line-height:1.04; letter-spacing:-.04em; }
.opening-line { font:italic clamp(1.3rem,2vw,1.8rem)/1.6 var(--serif); color:var(--gold); margin-top:28px; }
.opening-context { color:var(--muted); font-size:.95rem; margin-top:12px; }
.pending-label { color:var(--gold); font: .72rem/1.8 var(--sans); letter-spacing:.08em; text-transform:uppercase; margin-top:24px; }
.chapter-nav { display:flex; justify-content:center; flex-wrap:wrap; gap:10px 30px; margin:35px auto 0; padding-top:24px; border-top:1px solid var(--line); }
.chapter-nav a { display:inline-flex; align-items:center; min-height:44px; font-size:.78rem; color:var(--muted); }
.pending-chapter { display:grid; grid-template-columns:70px 1fr; gap:30px; padding-block:38px; border-top:1px solid var(--line); background:#1a241d; }
.pending-chapter:nth-of-type(odd) { background:#151f19; }
.chapter-number { color:var(--gold); font:italic 2.4rem/1.3 var(--serif); }
.pending-chapter .eyebrow { margin-bottom:10px; }
.pending-chapter h2 { font-size:clamp(1.9rem,3vw,2.7rem); }
.pending-chapter .pending-label { margin-top:15px; }
.pending-copy { font-size:.85rem; color:var(--muted); margin-top:6px; }
.willow-chapter { background:#eee5d3; color:#29372b; --gold:#70532d; --muted:#535c4f; --line:#79633c40; }
.willow-introduction { display:grid; grid-template-columns:.9fr 1.1fr; gap:65px; align-items:center; }
.willow-copy h2 { font-size:clamp(2.8rem,4.6vw,4.2rem); }
.venue-name { font:1.2rem/1.6 var(--serif); margin-top:25px; }
.venue-location { font-size:.85rem; margin-top:3px; }
.reflection-space { border-block:1px solid var(--line); padding:20px 0; margin:28px 0; }
.reflection-space .pending-label { margin:0; }
.reflection-space p:last-child { font:italic .94rem/1.8 var(--serif); margin-top:9px; color:var(--muted); }
.willow-feature { padding:12px; border:1px solid var(--line); background:#ded3bb; box-shadow:0 12px 35px #3729131a; }
.photo-link { display:block; color:inherit; text-decoration:none; cursor:zoom-in; }
.photo-link img { width:100%; height:auto; max-height:none; object-fit:contain; filter:none; transform:none; }
.photo-open { display:flex; justify-content:space-between; align-items:center; padding:9px 8px; min-height:44px; font-size:.72rem; }
.photo-link:hover .photo-open { text-decoration:underline; }
.willow-chapter a:focus-visible { outline-color:#52634e; }
.willow-feature figcaption { display:flex; flex-wrap:wrap; justify-content:space-between; gap:5px 20px; padding:3px 8px 7px; font:italic .76rem/1.7 var(--serif); }
.caption-pending { color:var(--muted); font: .68rem/1.7 var(--sans); }
.gallery-heading { border-top:1px solid var(--line); margin-top:60px; padding-top:32px; }
.gallery-heading .eyebrow { margin-bottom:13px; }
.gallery-heading h3 { font-size:clamp(1.9rem,3vw,2.8rem); }
.gallery-heading>p:last-child { font-size:.77rem; color:var(--muted); margin-top:15px; }
.willow-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:34px 24px; margin-top:30px; }
.gallery-item { min-width:0; padding:8px; border:1px solid var(--line); background:#f5eedf; box-shadow:0 5px 15px #44351d0c; }
.gallery-item figcaption { padding:7px 7px 5px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px; font: .68rem/1.7 var(--sans); }
.scrapbook-detail { width:76%; justify-self:center; margin-top:18px; background:#e3d7bd; }
.scrapbook-detail .photo-open { font-size:.68rem; }
.story-moment { grid-column:span 2; }
.closing-photo { grid-column:1/-1; width:min(100%,450px); justify-self:center; margin-top:20px; }
.season-closing { text-align:center; background:radial-gradient(ellipse,#8b71300c,transparent),#17221b; }
.season-closing h2 { font-size:clamp(2.5rem,4vw,3.8rem); }
.season-closing .text-link { display:inline-block; margin-top:25px; }
.viewer-open { overflow:hidden; }
.photo-dialog { color:var(--paper); background:#111b16; border:1px solid var(--gold); padding:0; width:min(1200px,96vw); max-width:96vw; max-height:96dvh; }
.photo-dialog::backdrop { background:#040a07ed; }
.viewer-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:12px 20px; }
.viewer-toolbar h2 { font:1.2rem/1.4 var(--serif); letter-spacing:0; }
.viewer-image-wrap { display:flex; justify-content:center; align-items:center; min-height:120px; padding:0 16px; }
.viewer-image { max-height:calc(96dvh - 195px); width:auto; max-width:100%; height:auto; object-fit:contain; }
.viewer-controls { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 20px; }
.viewer-position { margin:0; font-size:.8rem; white-space:nowrap; }
.viewer-help { text-align:center; font-size:.7rem; margin:0; padding:0 16px 12px; color:var(--muted); }
@media(max-width:950px) { .willow-introduction { gap:35px; } .willow-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .willow-introduction { grid-template-columns:1fr; gap:30px; } .willow-feature { width:min(100%,500px); justify-self:center; } .pending-chapter { grid-template-columns:40px 1fr; gap:17px; } .chapter-number { font-size:1.9rem; } .willow-gallery { gap:25px 15px; } .scrapbook-detail { width:85%; } .gallery-item figcaption { display:block; } .gallery-item figcaption span { display:block; } .viewer-controls,.viewer-toolbar { padding:10px 12px; } .viewer-controls .button { padding:10px 12px; } }
@media(max-width:500px) { .willow-gallery { grid-template-columns:1fr; } .story-moment { grid-column:auto; } .scrapbook-detail { width:70%; max-width:260px; margin-top:0; } .gallery-item figcaption { display:flex; } .viewer-toolbar h2 { font-size:1rem; } .viewer-help { font-size:.65rem; } }

/* Approved Willow reflection: a dedicated reading passage, separate from photo captions. */
.reflection-invitation { display:block; margin:25px 0 18px; font:italic 1rem/1.7 var(--serif); color:var(--gold); }
.willow-reflection { margin-top:55px; padding:42px clamp(22px,5vw,60px); border-block:1px solid var(--line); background:#f6efdf; }
.willow-reflection>.eyebrow,.willow-reflection>h3,.reflection-prose { max-width:66ch; margin-left:auto; margin-right:auto; }
.willow-reflection>h3 { font:clamp(1.9rem,3vw,2.7rem)/1.3 var(--serif); margin-bottom:28px; }
.reflection-prose { font:1.08rem/1.85 var(--serif); }
.reflection-prose p { margin:0 0 21px; }
.reflection-prose p:last-child { margin-bottom:0; }
.reflection-prose em { color:inherit; }
.people-section { border-top:1px solid var(--line); margin-top:55px; padding-top:35px; }
.people-section h3 { font-size:clamp(1.9rem,3vw,2.7rem); }
.people-gallery { margin-top:25px; border:1px solid var(--line); background:#f6efdf; }
.people-gallery summary { padding:20px 24px; cursor:pointer; font:1.1rem/1.7 var(--serif); }
.people-gallery summary span { display:block; margin-left:20px; color:var(--muted); font:.72rem/1.8 var(--sans); }
.people-gallery summary:focus-visible { outline:3px solid #52634e; outline-offset:4px; }
.people-pending { padding:0 24px 24px; color:var(--muted); font:.9rem/1.8 var(--sans); }
.caption-pending { font-size:.64rem; }
@media(max-width:600px) { .willow-reflection { margin-top:35px; padding:28px 20px; } .reflection-prose { font-size:1.02rem; } }

/* People collection: equal-width featured portraits; complete uncropped frames. */
.people-gallery-content { padding:24px; }
.people-featured-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; align-items:start; }
.people-supporting-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 22px; align-items:start; border-top:1px solid var(--line); margin-top:32px; padding-top:28px; }
.people-photo { min-width:0; padding:9px; border:1px solid var(--line); background:#eee5d3; }
.people-photo figcaption { padding:8px 7px 5px; font: .8rem/1.7 var(--serif); }
.people-featured { padding:11px; background:#e4d8bf; box-shadow:0 6px 18px #44351d10; }
.people-detail { width:75%; justify-self:center; }
@media(max-width:950px) { .people-supporting-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .people-gallery-content { padding:16px; } .people-featured-grid,.people-supporting-grid { grid-template-columns:1fr; gap:24px; } .people-detail { max-width:250px; } }

/* One unified scrapbook: DOM order is the reading and viewer order; no dense reordering. */
.willow-gallery { grid-template-columns:repeat(4,minmax(0,1fr)); }
.guest-highlight { grid-column:span 2; padding:11px; background:#e4d8bf; box-shadow:0 6px 18px #44351d10; }
.gallery-item figcaption { line-height:1.8; }
.guest-highlight figcaption { font: .8rem/1.7 var(--serif); }
.guest-highlight figcaption>span:first-child { display:block; width:100%; font: .68rem/1.7 var(--sans); }
@media(max-width:1100px) { .willow-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } .guest-highlight { grid-column:span 1; } }
@media(max-width:500px) { .willow-gallery { grid-template-columns:1fr; } .guest-highlight { grid-column:auto; } }

/* Only approved photo captions are shown; hidden viewer captions occupy no space. */
.viewer-caption { margin:0; padding:8px 20px; text-align:center; font: .85rem/1.6 var(--serif); }
.photo-dialog:has(.viewer-caption:not([hidden])) .viewer-image { max-height:calc(96dvh - 250px); }

/* Screen-reader prompt: retain the link label without reserving visible frame space. */
.photo-link { position:relative; }
.photo-link .photo-open {
  position:absolute;
  width:1px;
  height:1px;
  min-height:0;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
}
.willow-gallery .gallery-item figcaption {
  font: .85rem/1.7 var(--serif);
}

/* Provisional Twilight video: independent of the photograph viewer. */
#twilight > div:last-child { min-width:0; }
.twilight-video-interlude {
  width:min(100%,340px);
  margin:30px auto 0;
  padding:10px;
  border:1px solid #79633c40;
  background:#eee5d3;
  color:#29372b;
  box-shadow:0 6px 18px #0002;
}
.twilight-video-interlude video {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:9 / 16;
  object-fit:contain;
  background:#101a14;
}
.twilight-video-interlude video:focus-visible { outline:3px solid #70532d; outline-offset:4px; }
.twilight-video-interlude figcaption { padding:10px 5px 3px; font:italic .85rem/1.7 var(--serif); }

/* Opening weekend reuses the Willow document, frames and shared photo viewer. */
.opening-weekend-chapter .opening-feature { padding:12px; background:#ded3bb; }
.opening-weekend-chapter .opening-feature img { max-height:650px; object-fit:contain; }
.opening-weekend-chapter .opening-photo-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.opening-weekend-chapter .opening-portrait { grid-column:span 1; }
.opening-weekend-chapter .twilight-video-interlude { margin:28px auto 40px; }
.opening-weekend-chapter .opening-bookstore { max-width:900px; margin:30px auto 0; }
.opening-weekend-chapter .opening-bookstore-photo { padding:12px; }
.opening-weekend-chapter [id] { scroll-margin-top:110px; }
@media(max-width:950px) {
 .opening-weekend-chapter .opening-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .opening-weekend-chapter .opening-portrait { grid-row:span 2; }
}
@media(max-width:500px) {
 .opening-weekend-chapter .opening-photo-grid { grid-template-columns:1fr; }
 .opening-weekend-chapter .opening-portrait { grid-row:auto; }
}

/* Season collection and chapter navigation; approved event styles remain shared. */
.season-collection { background:radial-gradient(ellipse at 50% 0%,#9f78351b,transparent 65%),var(--deep); padding-block:55px; }
.season-collection>h1 { font-size:clamp(2.6rem,5vw,4.5rem); text-align:center; }
.season-collection>.eyebrow { text-align:center; margin-bottom:18px; }
.collection-intro { max-width:68ch; margin:22px auto 36px; text-align:center; color:var(--muted); }
.season-chapter-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }
.season-chapter-card { min-width:0; border:1px solid #79633c40; padding:10px; background:#eee5d3; color:#29372b; --gold:#70532d; --muted:#535c4f; }
.season-chapter-card>img { display:block; width:100%; height:240px; object-fit:contain; background:#ded3bb; }
.chapter-card-copy { padding:20px 12px 13px; display:flex; flex-direction:column; gap:15px; height:calc(100% - 240px); }
.chapter-card-copy .eyebrow { font-size:.68rem; margin:0; }
.chapter-card-copy h2 { font-size:clamp(1.65rem,2.1vw,2rem); }
.chapter-card-copy p { font-size:.87rem; }
.chapter-card-copy .chapter-card-event { font:italic .92rem/1.65 var(--serif); }
.chapter-card-copy .text-link,.chapter-card-copy .coming-soon { margin-top:auto; padding-top:8px; min-height:44px; }
.chapter-card-copy .text-link:focus-visible { outline-color:#52634e; }
.chapter-art-pending { height:240px; display:grid; place-items:center; text-align:center; border:1px solid #bda77b45; background:#1b2721; color:#c7ae7b; font:2rem/1.4 var(--serif); }
.coming-soon { font:italic 1rem/1.7 var(--serif); color:#535c4f; }
.chapter-return { padding:24px clamp(24px,8vw,120px); }
.chapter-return a { color:var(--gold); display:inline-flex; align-items:center; min-height:44px; font:italic 1rem/1.7 var(--serif); }
.chapter-page-title { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.chapter-pagination { display:flex; flex-wrap:wrap; justify-content:space-between; gap:20px; padding-block:25px; border-block:1px solid var(--line); }
.chapter-pagination a { display:inline-flex; align-items:center; min-height:44px; color:var(--gold); }
@media(max-width:950px) { .season-chapter-cards { gap:16px; } .chapter-card-copy { padding-inline:5px; } .season-chapter-card>img,.chapter-art-pending { height:200px; } .chapter-card-copy { height:calc(100% - 200px); } }
@media(max-width:700px) { .season-chapter-cards { grid-template-columns:1fr; max-width:480px; margin:auto; gap:24px; } .season-chapter-card>img,.chapter-art-pending { height:220px; } .chapter-card-copy { height:auto; padding:20px 12px 13px; } .season-collection { padding-block:35px; } }
/* Tablet cards use a wider reading column instead of three narrow columns. */
@media(min-width:701px) and (max-width:950px) {
 .season-chapter-cards { grid-template-columns:1fr; }
 .season-chapter-card { display:grid; grid-template-columns:180px minmax(0,1fr); gap:16px; align-items:center; }
 .season-chapter-card>img,.chapter-art-pending { height:230px; }
 .chapter-card-copy { height:auto; padding:12px; }
 .chapter-card-copy .text-link,.chapter-card-copy .coming-soon { margin-top:0; }
 .chapter-art-pending { font-size:1.65rem; }
}

/* Factual visual context for the two event videos. */
.season-page .video-scene-description {
  margin:12px 4px 2px;
  font:normal .875rem/1.6 var(--serif);
  color:inherit;
}
