/* The unenhanced layout is the complete, readable three-audience story. */
.audience-section { padding-block:clamp(56px,7vw,108px); color:var(--ink); overflow:visible; }
.audience-section .audience-heading { display:grid; grid-template-columns:1.35fr 1fr; gap:48px; align-items:end; margin-bottom:36px; }
.audience-section .audience-heading h2 { margin:0; font-size:clamp(38px,4.4vw,64px); line-height:1.05; letter-spacing:-.045em; }
.audience-section .audience-heading > p { margin:0; max-width:35ch; color:var(--muted); font-size:18px; line-height:1.55; }
.audience-section .audience-tour { position:relative; margin:0; }
.audience-section .audience-selector { display:flex; align-items:center; gap:8px; margin-bottom:16px; padding:5px 0; }
.audience-section .audience-selector a { position:relative; padding:10px 16px; border-radius:30px; color:var(--muted); font-size:15px; line-height:1.3; text-decoration:none; white-space:nowrap; }
.audience-section .audience-selector a[aria-current="step"] { color:var(--page); background:var(--signal); }
.audience-section .audience-selector a:focus-visible,.audience-section .audience-narrative a:focus-visible,.audience-section .audience-footnote a:focus-visible { outline:2px solid var(--signal); outline-offset:5px; }
.audience-section .audience-scroll-cue { display:none; margin-left:auto; color:var(--muted); font-size:13px; }
.audience-section .audience-scroll-cue span { margin-left:8px; }
.audience-section .audience-script-source { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.audience-section .audience-stages { display:grid; gap:42px; }
.audience-section .audience-face { position:relative; margin:0; scroll-margin-top:100px; }
.audience-section .audience-canvas { position:relative; height:clamp(280px,42vw,520px); isolation:isolate; }
.audience-section .audience-film { position:absolute; inset:0; overflow:hidden; border-radius:8px; background:var(--panel); }
.audience-section [data-audience="solo"] .audience-film { inset-inline:16%; }
.audience-section [data-audience="pair"] .audience-film { inset-inline:3%; }
.audience-section .audience-film video { display:block; width:100%; height:100%; object-fit:contain; }
.audience-section [data-audience="solo"] video { object-fit:cover; object-position:center; }
.audience-section .audience-stations { position:absolute; inset:0; pointer-events:none; }
.audience-section .audience-station { position:absolute; bottom:4%; width:30%; min-height:130px; box-sizing:border-box; padding:15px 18px 18px; border:1px solid color-mix(in srgb,var(--ink) 24%,transparent); border-radius:8px; color:var(--ink); background:color-mix(in srgb,var(--page) 58%,transparent); box-shadow:0 14px 35px -20px color-mix(in srgb,var(--ink) 50%,transparent); backdrop-filter:blur(5px); }
.audience-section .audience-station[data-tour-station="left"] { left:3%; }
.audience-section .audience-station[data-tour-station="centre"] { left:35%; }
.audience-section .audience-station[data-tour-station="right"] { right:3%; }
.audience-section [data-audience="solo"] .audience-station { width:36%; left:32%; }
.audience-section .audience-station > span { display:block; margin-bottom:9px; font-size:13px; line-height:1.2; color:var(--muted); }
.audience-section .audience-station p { margin:0; font-size:clamp(19px,2.1vw,29px); line-height:1.35; letter-spacing:-.022em; }
.audience-section .audience-station .is-read { opacity:.52; }
.audience-section .audience-station .is-current { padding:0 .08em; margin-inline:-.08em; border-radius:3px; color:var(--page); background:var(--signal); box-decoration-break:clone; }
.audience-section .audience-station.is-live { border-color:color-mix(in srgb,var(--signal) 70%,transparent); }
.audience-section .audience-station.is-preview { opacity:.52; }
.audience-section .audience-station.is-absent { visibility:hidden; opacity:0; }
.audience-section .audience-narrative { display:grid; grid-template-columns:1fr 1.2fr; gap:32px; padding-top:22px; }
.audience-section .audience-narrative h3 { margin:0; font-size:clamp(23px,2.3vw,31px); font-weight:500; line-height:1.2; letter-spacing:-.025em; }
.audience-section .audience-narrative p { margin:0; color:var(--muted); font-size:16px; line-height:1.55; max-width:63ch; }
.audience-section .audience-narrative a,.audience-section .audience-footnote a { color:var(--ink); text-decoration-line:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.audience-section .audience-footnote { max-width:75ch; margin:26px 0 0; color:var(--muted); font-size:14px; line-height:1.6; }
.audience-section .audience-reading-progress { display:none; height:2px; background:color-mix(in srgb,var(--muted) 18%,transparent); }
.audience-section .audience-reading-progress span { display:block; width:100%; height:100%; background:var(--signal); transform:scaleX(var(--tour-progress,0)); transform-origin:left; }
/* Pinning is enabled only after the runtime measures a usable viewport. */
.audience-section .audience-track[data-pinned="true"] { height:calc(var(--audience-pin-height) + var(--audience-travel)); }
.audience-section .audience-track[data-pinned="true"] .audience-tour { position:sticky; top:var(--audience-top); height:var(--audience-pin-height); display:grid; grid-template-rows:auto minmax(0,1fr) 2px; }
.audience-section .audience-track[data-pinned="true"] .audience-stages { position:relative; display:block; min-height:0; }
.audience-section .audience-track[data-pinned="true"] .audience-face { position:absolute; inset:0; display:grid; grid-template-rows:minmax(0,1fr) 112px; visibility:hidden; opacity:0; pointer-events:none; transform:translateY(6px); transition:opacity .22s,transform .22s,visibility 0s linear .22s; }
.audience-section .audience-track[data-pinned="true"] .audience-face.is-active { visibility:visible; opacity:1; pointer-events:auto; transform:none; transition-delay:0s; z-index:1; }
.audience-section .audience-track[data-pinned="true"] .audience-canvas { height:100%; min-height:0; }
.audience-section .audience-track[data-pinned="true"] .audience-scroll-cue,.audience-section .audience-track[data-pinned="true"] .audience-reading-progress { display:block; }
.audience-section .audience-track[data-pinned="true"] .audience-narrative { padding-top:19px; }
@media (max-width:760px) {
  .audience-section .audience-heading { grid-template-columns:1fr; gap:18px; margin-bottom:22px; }
  .audience-section .audience-heading h2 { font-size:clamp(35px,8vw,52px); }
  .audience-section .audience-heading > p { max-width:40ch; font-size:16px; }
  .audience-section .audience-selector { gap:2px; flex-wrap:wrap; }
  .audience-section .audience-selector a { padding:10px 12px; font-size:14px; }
  .audience-section .audience-canvas { height:clamp(320px,58vw,430px); }
  .audience-section .audience-film { height:calc(100% - 110px); bottom:auto; }
  .audience-section [data-audience="solo"] .audience-film { inset-inline:0; }
  .audience-section [data-audience="pair"] .audience-film { inset-inline:0; }
  .audience-section .audience-station { bottom:2%; width:42%; min-height:108px; padding:10px 11px 12px; }
  .audience-section .audience-station p { font-size:clamp(16px,4.1vw,23px); }
  .audience-section .audience-station > span { font-size:12px; margin-bottom:7px; }
  .audience-section .audience-station[data-tour-station="left"] { left:1%; }
  .audience-section .audience-station[data-tour-station="right"] { right:1%; }
  .audience-section .audience-station[data-tour-station="centre"] { left:29%; }
  .audience-section [data-audience="solo"] .audience-station { width:74%; left:13%; }
  .audience-section [data-audience="room"] .audience-station { width:32%; min-height:126px; padding-inline:8px; }
  .audience-section [data-audience="room"] [data-tour-station="centre"] { left:34%; }
  .audience-section [data-audience="room"] .audience-station p { font-size:clamp(14px,3.6vw,19px); }
  .audience-section .audience-narrative { grid-template-columns:1fr; gap:10px; padding-top:18px; }
  .audience-section .audience-narrative p { font-size:15px; }
}
@media (prefers-reduced-motion:reduce) {
  .audience-section * { scroll-behavior:auto; }
}
