/* Fotobogen chapter layouts. Shared by React routes and the preserved HTML archive. */
.fb-site { --reading:740px; }
.fb-site img { max-width:100%; }
body.fb-site .fb-header { border-bottom:0; }
body.fb-site .fb-home-hero { padding-top:0; }
body.fb-site .fb-home-copy { padding-top:67px; }
.fb-site .fb-header nav { gap:24px; }
.fb-site .fb-more-nav { position:relative; font:inherit; }
.fb-site .fb-more-nav summary { cursor:pointer; padding:12px 0; }
.fb-site .fb-more-nav > div { position:absolute; z-index:20; top:100%; right:0; min-width:195px; padding:12px 20px; background:var(--paper); border:1px solid var(--rule); }
.fb-site .fb-more-nav > div a { display:block; }
.fb-site .fb-subnav { border-top:1px solid var(--rule); }
.fb-site .fb-text-link { display:inline-block; margin-top:28px; padding-bottom:4px; border-bottom:1px solid var(--olive); font:20px/1.3 var(--serif); }
body.fb-site .work-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:38px; }
body.fb-site .work-card:first-child { grid-column:span 2; grid-row:span 2; }
body.fb-site .work-image { aspect-ratio:1.5; height:auto; }
body.fb-site .work-card:first-child .work-image { aspect-ratio:1.05; }
body.fb-site .work-copy { min-height:0; }
body.fb-site .work-caption { font:18px/1.5 var(--serif); }
body.fb-site .work-tags { gap:12px; }
body.fb-site .work-tags li { padding:0; border:0; font:12px/1.5 var(--sans); }
.fb-editorial-opening { display:grid; grid-template-columns:minmax(0,.62fr) minmax(0,1fr); gap:6%; padding:28px 0 52px; align-items:start; }
.fb-site .fb-opening-copy h1 { font-size:clamp(48px,5vw,78px); margin:24px 0 30px; line-height:1; }
.fb-opening-intro { font:23px/1.4 var(--serif); max-width:470px; }
.fb-opening-intro p { margin:0; }
.fb-opening-image { margin:0; }
.fb-opening-image img { display:block; width:100%; height:auto; }
.fb-opening-image figcaption { margin-top:10px; color:var(--muted); font:12px/1.4 var(--sans); }
.fb-opening-image figcaption { display:flex; justify-content:space-between; gap:20px; }
.fb-opening-copy > .eyebrow { margin:0 0 18px; }
.fb-monochrome { filter:grayscale(1); }
.fb-guide-photo { grid-column:2; grid-row:1/3; margin:0; }
.fb-guide-photo img { display:block; width:100%; height:auto; }
.fb-guide-photo figcaption { margin-top:10px; font:12px var(--sans); color:var(--muted); }
.fb-guide-detail:has(a[aria-current="page"][href$="nik-collection"]) .fb-guide-photo img { filter:grayscale(1); }
.fb-site .fb-guide-directory { display:grid; grid-template-columns:25.8% minmax(0,1fr); gap:6%; border-top:1px solid var(--rule); padding:40px 0 60px; }
.fb-site .fb-guide-directory > ol { grid-column:1; grid-row:1; align-self:start; border:0; }
.fb-site .fb-guide-directory > section { grid-column:2; grid-row:1; display:block; border:0; }
.fb-site .fb-guide-directory article { display:grid; grid-template-columns:35% minmax(0,1fr); gap:12px 35px; min-height:0; padding:0 0 30px; margin-bottom:30px; border:0; border-bottom:1px solid var(--rule); }
.fb-site .fb-guide-directory article > .eyebrow { grid-column:1; margin:0; }
.fb-site .fb-guide-directory article h2 { grid-column:1; grid-row:2/5; margin:0; font-size:38px; }
.fb-site .fb-guide-directory article > p:not(.eyebrow) { grid-column:2; margin:0; }
.fb-site .fb-guide-directory article > h2 + p { grid-row:2; }
.fb-site .fb-guide-directory article > p:last-of-type { grid-row:3; }
.fb-site .fb-guide-directory article > a { grid-column:2; padding-top:4px; margin:0; font:20px var(--serif); text-decoration:underline; }

/* Listening room: metadata in the margin, actual episodes on the facing page. */
.fb-site .podcast-page:not(.podcast-index-page) { display:grid; grid-template-columns:25.8% minmax(0,1fr); column-gap:6%; align-items:start; }
.fb-site .podcast-page > .fb-header,.fb-site .podcast-page > footer,.fb-site .podcast-page > .podcast-intro { grid-column:1/-1; }
.fb-site .podcast-intro { display:grid; grid-template-columns:1fr 1fr; gap:16px 7%; padding:48px 0 56px; border-bottom:1px solid var(--rule); }
.fb-site .podcast-intro > .eyebrow { grid-column:1/-1; font:14px/1.5 var(--sans); letter-spacing:0; text-transform:none; }
.fb-site .podcast-intro h1 { grid-column:1; font-size:clamp(48px,5.3vw,80px); }
.fb-site .podcast-intro > p:not(.eyebrow) { grid-column:2; margin:8px 0 0; align-self:end; font:24px/1.4 var(--serif); }
.fb-site .podcast-page:not(.podcast-index-page) > .podcast-summary { grid-column:1; grid-row:3; display:block; border:0; padding:32px 0; }
.fb-site .podcast-summary > div { min-height:0; display:block; padding:18px 0; border:0; border-bottom:1px solid var(--rule); }
.fb-site .podcast-summary .summary-number { display:block; font:36px/1.2 var(--serif); margin-bottom:7px; }
.fb-site .podcast-summary > div > span:last-child { font:13px/1.5 var(--sans); }
.fb-site .podcast-page:not(.podcast-index-page) > .archive { grid-column:2; grid-row:3/6; padding:48px 0 60px; border:0; }
.fb-site .podcast-page:not(.podcast-index-page) > .member-note { grid-column:1; grid-row:4; display:block; padding:20px 0; border:0; }
.fb-site .member-note h2 { font-size:30px; margin:12px 0 22px; }
.fb-site .member-note p { font:18px/1.5 var(--serif); }
.fb-site .archive .section-heading { display:block; }
.fb-site .archive .section-heading .eyebrow { display:none; }
.fb-site .archive .section-heading h2 { font-size:36px; margin:0; }
.fb-site .archive .section-note { max-width:none; margin:16px 0 0; font:14px/1.5 var(--sans); }
.fb-site .archive-controls { grid-template-columns:minmax(0,1fr) 140px; gap:16px 24px; margin:30px 0 18px; }
.fb-site .archive-controls input,.fb-site .archive-controls select { font:18px/1.4 var(--serif); padding:14px 0; height:auto; min-height:52px; }
.fb-site .result-count { grid-column:1/-1; text-align:left; margin:0; font:13px var(--sans); }
.fb-site .episode { grid-template-columns:95px minmax(0,1fr) 70px; gap:20px; padding:28px 0; }
.fb-site .episode a { font-size:26px; line-height:1.15; }
.fb-site .episode time,.fb-site .episode > span { font:12px/1.5 var(--sans); }
.fb-site .episode-copy p { font-size:19px; line-height:1.5; margin-top:12px; }
.fb-site .podcast-choice-section { display:grid; grid-template-columns:25.8% minmax(0,1fr); gap:6%; padding:44px 0 60px; border-bottom:1px solid var(--rule); }
.fb-site .podcast-choice-section-heading { display:block; padding:0; border:0; }
.fb-site .podcast-choice-section-heading h2 { margin:0 0 22px; font-size:38px; }
.fb-site .podcast-choice-section-heading .eyebrow { display:none; }
.fb-site .podcast-choice-section-heading > p { font:20px/1.45 var(--serif); }
.fb-site .podcast-choice-grid { display:grid; grid-template-columns:1fr 1fr; gap:25px 40px; }
.fb-site .podcast-choice { min-height:0; padding:24px 0; border-top:1px solid var(--rule); }
.fb-site .podcast-choice:first-child { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:15px 40px; padding-top:0; border-top:0; }
.fb-site .podcast-choice:first-child h3 { grid-column:1; grid-row:1/4; font-size:54px; max-width:350px; }
.fb-site .podcast-choice:first-child > p:not(.eyebrow),.fb-site .podcast-choice:first-child > div,.fb-site .podcast-choice:first-child > span { grid-column:2; margin:0; }
.fb-site .podcast-choice .eyebrow { display:none; }
.fb-site .podcast-choice h3 { font-size:32px; }
.fb-site .podcast-choice > p { font:20px/1.4 var(--serif); margin:18px 0; }
.fb-site .podcast-choice-meta { font:12px/1.5 var(--sans); }
.fb-site .podcast-choice-link { font:20px var(--serif); margin-top:20px; text-decoration:underline; }

/* Static articles receive semantic opening / navigation / reading containers. */
.fb-site .fb-article-opening { display:grid; grid-template-columns:44% minmax(0,1fr); gap:6%; align-items:end; padding:48px 0 54px; border-bottom:1px solid var(--rule); }
.fb-site .fb-article-opening h1 { margin:0; font-size:clamp(48px,5.2vw,80px); }
.fb-site .fb-article-opening > p { font:24px/1.4 var(--serif); margin:0; max-width:650px; }
.fb-site .fb-reading-layout { display:grid; grid-template-columns:22% minmax(0,1fr); gap:7%; padding-top:40px; align-items:start; }
.fb-site .fb-reading-nav { display:block; position:sticky; top:24px; max-height:calc(100vh - 48px); overflow:auto; font:15px/1.4 var(--serif); }
.fb-site .fb-reading-nav > p { margin:0 0 18px; font:24px var(--serif); }
.fb-site .fb-reading-nav a { display:block; padding:9px 0; border-bottom:1px solid var(--rule); text-decoration:none; color:var(--muted); }
.fb-site .fb-reading-nav a:hover { color:var(--ink); }
.fb-site .fb-reading-body { min-width:0; }
.fb-site .fb-reading-body > :is(p,ul,ol,dl,table,.profile,.exercise,.rights) { max-width:var(--reading); }
.fb-site .fb-reading-body > h2 { margin:56px 0 22px; padding-top:20px; border-top:1px solid var(--rule); font-size:38px; }
.fb-site .fb-reading-body > p:first-child { margin-top:0; font-size:23px; }
.fb-site .fb-reading-body p,.fb-site .fb-reading-body li { font-size:21px; line-height:1.6; }
.fb-site .fb-reading-body section { margin:44px 0; }
.fb-site .fb-reading-body section > h2 { font-size:38px; margin:0 0 26px; }
.fb-site .fb-reading-body .representative-gallery { grid-template-columns:1.3fr .7fr; gap:25px; align-items:start; }
.fb-site .fb-reading-body .representative-gallery > figure:first-child { grid-row:span 2; }
.fb-site .fb-reading-body .representative-gallery img { width:100%; height:auto; max-height:560px; object-fit:contain; }
.fb-site .fb-reading-body .representative-gallery figure { margin:0; }
.fb-site .fb-reading-body .work-analysis { display:block; }
.fb-site .fb-reading-body .work-analysis figure { display:grid; grid-template-columns:48% minmax(0,1fr); gap:30px; align-items:center; padding:30px 0; margin:0; border-top:1px solid var(--rule); }
.fb-site .fb-reading-body .work-analysis figcaption { padding:0; border:0; font:20px/1.5 var(--serif); }
.fb-site .fb-reading-body .work-analysis figcaption strong { display:block; font:26px/1.15 var(--serif); margin-bottom:16px; }
.fb-site .fb-reading-body .hero { display:block; margin-top:0; }
.fb-site .fb-reading-body .hero img { width:100%; height:auto; }
.fb-site .fb-reading-body .profile-facts,.fb-site .fb-reading-body .profile { padding:24px 0; border-width:1px 0; background:transparent; }
.fb-site .fb-reading-body .exercise,.fb-site .fb-reading-body .rights { padding:24px 0; border-width:1px 0; }
.fb-site .fb-reading-body table { width:100%; }
.fb-site .fb-reading-body table th,.fb-site .fb-reading-body table td { background:transparent; font-size:17px; }
.fb-site .fb-reading-body h2[id],.fb-site .fb-book-nav + *, .fb-chapter h2[id] { scroll-margin-top:24px; }

/* A book profile reads as successive spreads, not a boxed article. */
body.fb-book .book-hero { grid-template-columns:44% minmax(0,1fr); gap:8%; border-bottom:1px solid var(--rule); }
body.fb-book .book-head { align-self:center; }
body.fb-book .book-object { height:530px; }
body.fb-book .facts { grid-template-columns:1fr 1fr; gap:20px; border-top:1px solid var(--rule); padding-top:20px; }
body.fb-book .fact { border:0; padding:0; }
body.fb-book .content { width:min(1600px,90%); padding:40px 0; }
body.fb-book .content > :is(p,ul,ol,.pullquote,.local-box) { max-width:var(--reading); margin-left:32%; }
body.fb-book .content > .lead { margin-top:0; }
body.fb-book .fb-chapter { display:grid; grid-template-columns:25.8% minmax(0,1fr); gap:6%; padding:32px 0; border-top:1px solid var(--rule); }
body.fb-book .fb-chapter > h2 { margin:0; padding:0; font-size:36px; }
body.fb-book .fb-chapter-copy { max-width:var(--reading); min-width:0; }
body.fb-book .fb-chapter-copy > :first-child { margin-top:0; }
body.fb-book .fb-chapter-copy > :last-child { margin-bottom:0; }
body.fb-book .fb-chapter-copy :is(p,li) { font-size:21px; line-height:1.6; }
body.fb-book .fb-book-nav { display:flex; flex-wrap:wrap; gap:8px 24px; width:min(1600px,90%); margin:0 auto; padding:22px 0; border-bottom:1px solid var(--rule); font:16px/1.5 var(--serif); }
body.fb-book .fb-book-nav a { color:var(--muted); text-decoration:none; }
body.fb-book .reading-steps { grid-template-columns:1fr; }
body.fb-book .reading-step { min-height:0; padding:20px 0; }
body.fb-book .reading-step::before { font-size:28px; margin-bottom:12px; }
body.fb-book .spread-band { background:transparent; border-block:1px solid var(--rule); }
body.fb-book .spread-band .shell { width:min(1600px,90%); }

/* The practical handbook uses the same narrow marginal notes and broad image spreads. */
body.fb-handbook .hero { grid-template-columns:32% minmax(0,1fr); gap:7%; padding:32px 0 50px; border-color:var(--rule); }
body.fb-handbook .hero-image { background:transparent; margin:0; min-height:520px; }
body.fb-handbook .hero-image img { filter:none; object-fit:contain; }
body.fb-handbook figcaption { background:transparent; color:var(--muted); padding:12px 0; }
body.fb-handbook :is(.field-card,.section-title,.rule,.exercise) { grid-template-columns:25.8% minmax(0,1fr); gap:6%; border-color:var(--rule); }
body.fb-handbook .field-card ul { grid-template-columns:1fr; }
body.fb-handbook .field-card li { min-height:0; font:20px/1.5 var(--serif); }
body.fb-handbook .score { width:auto; height:auto; border:0; border-radius:0; justify-content:flex-start; font:32px var(--serif); }
body.fb-handbook .rule-grid { grid-template-columns:minmax(0,1fr); max-width:var(--reading); }
body.fb-handbook .rule h3 { font-size:34px; }
body.fb-handbook .rule-grid p,body.fb-handbook .rule-grid li { font:21px/1.55 var(--serif); }
body.fb-handbook .works { display:block; }
body.fb-handbook .work { display:grid; grid-template-columns:55% minmax(0,1fr); gap:5%; padding:32px 0; border-top:1px solid var(--rule); background:transparent; }
body.fb-handbook .work img { object-fit:contain; }

@media(max-width:1100px) {
  .fb-opening-image img { height:auto; }
  .fb-site .podcast-choice:first-child h3 { font-size:42px; }
  .fb-site .episode { grid-template-columns:80px minmax(0,1fr); }
  .fb-site .episode > span { grid-column:2; }
}
@media(max-width:760px) {
  body.fb-site .work-grid { grid-template-columns:1fr; }
  body.fb-site .work-card:first-child { grid-column:auto; grid-row:auto; }
  body.fb-site .work-card:first-child .work-image { aspect-ratio:1.5; }
  body.fb-handbook .hero,body.fb-handbook :is(.field-card,.section-title,.rule,.exercise),body.fb-handbook .work { grid-template-columns:1fr; gap:24px; }
  body.fb-handbook .hero-image { min-height:0; }
  body.fb-site .fb-home-copy { padding-top:0; }
  body.fb-site .fb-home-hero { padding-top:24px; }
  .fb-guide-photo { margin:26px 0; }
  .fb-guide-photo img { height:auto; }
  .fb-site .fb-more-nav > div { position:static; min-width:0; border:0; padding:0 0 10px 12px; }
  .fb-editorial-opening { display:flex; flex-direction:column; gap:28px; padding:22px 0 34px; }
  .fb-site .fb-opening-copy h1 { font-size:48px; margin:0 0 24px; }
  .fb-opening-intro { font-size:21px; }
  .fb-opening-image { width:100%; }
  .fb-opening-image img { height:auto; }
  .fb-site .fb-guide-directory { display:flex; flex-direction:column; gap:32px; padding:28px 0; }
  .fb-site .fb-guide-directory article { display:block; }
  .fb-site .fb-guide-directory article h2 { margin:12px 0 20px; font-size:36px; }
  .fb-site .fb-guide-directory article > p:not(.eyebrow) { margin:12px 0; }
  .fb-site .podcast-page:not(.podcast-index-page) { display:block; }
  .fb-site .podcast-intro { grid-template-columns:1fr; padding:28px 0 34px; gap:14px; }
  .fb-site .podcast-intro > p:not(.eyebrow),.fb-site .podcast-intro h1 { grid-column:1; }
  .fb-site .podcast-intro h1 { font-size:48px; }
  .fb-site .podcast-intro > p:not(.eyebrow) { font-size:21px; margin-top:12px; }
  .fb-site .podcast-page:not(.podcast-index-page) > .podcast-summary { display:flex; flex-wrap:wrap; gap:20px; padding:20px 0; }
  .fb-site .podcast-summary > div { flex:1 1 100px; }
  .fb-site .podcast-summary .summary-number { font-size:28px; }
  .fb-site .podcast-choice-section { display:block; padding:30px 0; }
  .fb-site .podcast-choice-section-heading { margin-bottom:28px; }
  .fb-site .podcast-choice-grid { display:block; }
  .fb-site .podcast-choice,.fb-site .podcast-choice:first-child { display:block; padding:28px 0; border-top:1px solid var(--rule); }
  .fb-site .podcast-choice:first-child h3 { margin-bottom:24px; }
  .fb-site .podcast-choice:first-child > div { margin:20px 0; }
  .fb-site .archive-controls { grid-template-columns:minmax(0,1fr) 100px; gap:12px; }
  .fb-site .archive-controls input,.fb-site .archive-controls select { font-size:16px; width:100%; min-width:0; }
  .fb-site .episode { display:block; }
  .fb-site .episode-copy { margin:14px 0; }
  .fb-site .fb-article-opening { grid-template-columns:1fr; gap:24px; padding:28px 0 32px; }
  .fb-site .fb-article-opening h1 { font-size:48px; }
  .fb-site .fb-article-opening > p { font-size:22px; }
  .fb-site .fb-reading-layout { grid-template-columns:1fr; gap:30px; padding-top:24px; }
  .fb-site .fb-reading-nav { position:static; max-height:none; columns:2; column-gap:22px; }
  .fb-site .fb-reading-nav > p { column-span:all; }
  .fb-site .fb-reading-nav a { break-inside:avoid; font-size:15px; }
  .fb-site .fb-reading-body .representative-gallery { grid-template-columns:1fr; }
  .fb-site .fb-reading-body .work-analysis figure { grid-template-columns:1fr; gap:20px; }
  .fb-site .fb-reading-body p,.fb-site .fb-reading-body li { font-size:20px; }
  .fb-site .fb-reading-body table { display:block; overflow:auto; }
  body.fb-book .book-hero { grid-template-columns:1fr; gap:24px; }
  body.fb-book .book-object { height:330px; }
  body.fb-book .content,body.fb-book .fb-book-nav { width:calc(100% - 40px); }
  body.fb-book .content > :is(p,ul,ol,.pullquote,.local-box) { margin-left:0; }
  body.fb-book .fb-chapter { grid-template-columns:1fr; gap:24px; }
  body.fb-book .fb-chapter-copy :is(p,li) { font-size:20px; }
}
