/* Shared public identity: agenda, exhibition, artwork and reading pages. */
.public-site {
  --bg:#f8f7f2; --ink:#242431; --text:#242431; --accent:#3345d8;
  --line:#d9d9e2; --muted:#5e5e6b; --blue:#3345d8; --lemon:#edfa68;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --serif:Georgia,'Times New Roman',serif;
  margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans); font-size:16px;
  min-height:100vh; min-height:100dvh; display:flex; flex-direction:column;
}
.public-site a { color:inherit; }
.public-site button, .public-site select { font:inherit; }
.public-site h1, .public-site h2, .public-site h3 { text-wrap:balance; overflow-wrap:anywhere; }
.public-site h1 { font-family:var(--sans); font-weight:650; letter-spacing:-.055em; line-height:1.06; }
.public-site h2 { font-family:var(--sans); font-weight:600; letter-spacing:-.04em; }
.public-site h1 em, .public-site h2 em { font-family:var(--serif); font-weight:400; color:var(--blue); }
.public-site :is(a,button,select,summary,audio):focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
.public-site .button { background:var(--blue); border:1px solid var(--blue); color:#fff; border-radius:4px; min-height:48px; padding:12px 20px; display:inline-flex; justify-content:center; align-items:center; gap:12px; text-align:center; white-space:normal; text-decoration:none; }
.public-site .button:hover { background:#2434b6; color:#fff; }
.public-site .button-light { background:transparent; color:var(--blue); border-color:#a7ace3; }
.public-site .button-light:hover { background:#e9eaff; color:#242431; }
.site-footer { width:min(1440px,100%); margin-inline:auto; padding-inline:clamp(20px,4vw,56px); }
.site-footer { margin-top:auto; padding-block:32px; display:flex; justify-content:space-between; gap:28px; border-top:1px solid var(--line); }
.site-footer-brand { font-size:26px; font-weight:650; letter-spacing:-1px; }
.site-footer p { color:var(--muted); font-size:13px; margin:8px 0 0; }
.site-footer nav { display:flex; flex-wrap:wrap; align-items:center; gap:8px 24px; }
.site-footer nav a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; text-decoration:underline; text-underline-offset:5px; }
.public-site .editorial-main, .public-site .wrap { width:100%; max-width:1320px; margin-inline:auto; padding:40px clamp(20px,4vw,56px) 72px; flex:1; }
.public-site .eyebrow, .public-site .public-eyebrow { color:var(--muted); font-size:11px; letter-spacing:.1em; }
.public-site .orange-line { background:var(--blue); }
.public-site .subtle { color:var(--muted)!important; font-size:13px!important; }
.public-site .text-link { color:var(--blue); font-size:14px; min-height:44px; }

/* Agenda: large typographic posters also work when no licensed image exists. */
.public-site .agenda-intro { gap:48px; padding:24px 0 56px; }
.public-site .agenda-intro h1 { font-size:clamp(48px,6.5vw,88px); }
.public-site .editorial-lead { color:var(--muted); }
.public-site .intro-aside { background:var(--lemon); border-radius:0; padding:32px; }
.public-site .intro-aside h2 { font:600 32px/1.12 var(--sans); }
.public-site .intro-aside p { color:#454550; }
.public-site .intro-aside a { display:inline-flex; min-height:44px; align-items:center; }
.public-site .agenda-heading { scroll-margin-top:20px; }
.public-site .agenda-heading h2 { font-size:32px; }
.public-site .agenda-filters { background:#eeedf5; border-radius:4px; padding:24px; gap:16px 24px; }
.public-site .agenda-filters label { color:#4d4d5b; }
.public-site .agenda-filters select { border-color:#adadbe; width:100%; }
.public-site .event-grid { gap:32px; }
.public-site .event-card { background:transparent; border:0; border-bottom:1px solid #c9c9d4; border-radius:0; }
.agenda-poster { position:relative; display:block; height:280px; padding:24px; background:#e6e2f3; }
.agenda-poster img { width:100%; height:100%; object-fit:contain; display:block; }
.agenda-poster-type { display:flex; flex-direction:column; justify-content:space-between; background:var(--lemon); color:var(--ink); padding-right:64px; }
.event-card:nth-child(3n) .agenda-poster-type { background:#f4c9d7; }
.event-card:nth-child(3n + 1) .agenda-poster-type { background:#dee1ff; }
.agenda-poster-type > span { font-size:12px; }
.agenda-poster-type strong { font-size:clamp(40px,5vw,68px); font-weight:600; line-height:1; letter-spacing:-.055em; }
.agenda-poster-type strong span { display:block; font-size:.65em; margin-top:8px; }
.agenda-poster-arrow { position:absolute; right:20px; bottom:20px; display:grid; place-items:center; width:44px; height:44px; border:1px solid currentColor; border-radius:50%; font-size:24px!important; }
.public-site .event-card-top { background:transparent; padding:20px 0 0; color:var(--muted); }
.public-site .event-card-body { padding:18px 0 24px; }
.public-site .event-card h3 { font:600 30px/1.16 var(--sans); letter-spacing:-.035em; }
.public-site .event-dates { color:var(--blue); }
.public-site .event-venue, .public-site .event-excerpt { color:var(--muted); }
.public-site .event-card-bottom { padding:8px 0 12px; align-items:center; border-top:1px solid var(--line); }
.public-site .event-card-bottom > span { color:var(--muted); }
.public-site .event-card-bottom a { min-height:44px; display:flex; align-items:center; color:var(--blue); }
.public-site .pagination { align-items:center; flex-wrap:wrap; font-size:14px; }
.public-site .pagination a { min-height:44px; }

/* Event details and catalogue. */
.public-site .event-heading h1 { font-size:clamp(40px,5.6vw,76px); }
.public-site .breadcrumbs { flex-wrap:wrap; margin-bottom:24px; }
.public-site .breadcrumbs a { min-height:44px; display:flex; align-items:center; }
.public-site .breadcrumbs > span { align-self:center; }
.public-site .event-layout { gap:48px; }
.public-site .visit-card { background:#efedf8; border-top:4px solid var(--blue); border-radius:0; }
.public-site .visit-card dt, .public-site .visit-card dd span { color:var(--muted); }
.public-site .listening-invite { background:var(--blue); color:white; border:0; border-radius:0; }
.public-site .listening-invite h2 { font:600 32px/1.15 var(--sans); }
.public-site .listening-invite .eyebrow, .public-site .listening-invite p { color:#e8eaff; }
.public-site .listening-invite .button { background:var(--lemon); color:var(--ink); border-color:var(--lemon); }
.public-site .listening-invite a:focus-visible { outline-color:var(--lemon); }
.public-site .source-note { color:var(--muted); }
.event-artwork { display:block; background:#e6e2f3; padding:24px; margin-bottom:32px; }
.event-artwork img { display:block; width:100%; height:clamp(240px,34vw,440px); object-fit:contain; background:none; }
.event-artwork > span { display:flex; justify-content:space-between; align-items:center; min-height:44px; margin-top:14px; font-size:14px; color:var(--blue); }
.public-site .gallery-intro { gap:48px; }
.public-site .gallery-intro h1 { font:650 clamp(42px,6vw,80px)/1.06 var(--sans); letter-spacing:-.055em; }
.public-site .gallery-subtitle { color:var(--muted); }
.public-site .gallery-author { font-size:16px; }
.public-site .gallery-location { font-size:15px; }
.public-site .gallery-description { color:#50505e; font-size:16px; line-height:1.8; }
.public-site .guide-start { margin-top:12px; padding:28px 32px; background:var(--blue); color:white; border:0; border-radius:0; }
.public-site .guide-start strong { font:600 30px/1.16 var(--sans); }
.public-site .guide-start p { font-size:14px; color:#e8eaff; }
.public-site .guide-start a { display:inline-flex; align-items:center; min-height:52px; padding:14px 22px; background:var(--lemon); color:var(--ink); font-size:15px; }
.public-site .guide-start a:focus-visible { outline-color:var(--lemon); }
.public-site .catalog-heading { gap:20px; flex-wrap:wrap; }
.public-site .catalog-heading h2 { font-size:clamp(30px,3.5vw,44px); }
.public-site .catalog-heading > span { color:var(--muted); }
.public-site .art-card { display:block; min-width:0; }
.public-site .art-card-image { background:#eddfef; }
.public-site .art-card:nth-child(3n + 2) .art-card-image { background:#f2d9c7; }
.public-site .art-card:nth-child(3n) .art-card-image { background:#e4e7b5; }
.public-site .art-card h3 { font:600 24px/1.2 var(--sans); letter-spacing:-.03em; }
.public-site .art-card p { font-size:14px; }
.public-site .catalog-audio-state { background:#e7e9ff; color:#293cae; font-size:13px; padding:10px 12px; }
.public-site .no-image, .public-site .no-image small, .public-site .catalog-empty { color:var(--muted); }
.public-site .owner-banner, .public-site .banner { color:#414269; background:#eeedf8; border-color:#b8bde8; font-size:13px; }
.public-site .journal-item { border-color:var(--blue); }
.public-site .journal-item h2 { font-family:var(--sans); font-weight:600; }

/* One recording, native player, large optional controls. */
.public-site .wrap > .sheet { max-width:none; }
.public-site .sheet > h1 { font:650 clamp(38px,5vw,66px)/1.08 var(--sans); letter-spacing:-.05em; margin:20px 0 12px; }
.public-site .kicker { font-size:14px; color:var(--blue); }
.public-site .kicker a { display:inline-flex; align-items:center; min-height:44px; }
.public-site .author { color:var(--muted); font-size:17px; margin:0 0 28px; }
.artwork-layout { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(320px,1fr); align-items:start; gap:36px; }
.artwork-listen { grid-column:2; grid-row:1; position:sticky; top:24px; min-width:0; }
.artwork-listen:has(details[open]) { position:static; }
.artwork-media { grid-column:1; grid-row:1; min-width:0; }
.public-site .frame { padding:24px; margin:0 0 8px; background:#eddfef; }
.public-site .frame img { max-height:720px; width:100%; object-fit:contain; }
.public-site .meta { color:var(--muted); font-size:14px; }
.public-site .sheet > p:not([class]) { font-size:17px; color:#50505e; }
.public-site .guide-player.audio { background:#eeedf8; padding:24px; border:0; border-top:4px solid var(--blue); border-radius:0; margin:0; scroll-margin-top:20px; }
.public-site .player-icon { color:var(--blue); background:#dddffd; flex-shrink:0; }
.public-site .guide-player figcaption { font-size:20px; line-height:1.25; font-weight:600; }
.public-site .guide-player .player-heading { margin-bottom:18px; }
.public-site .player-title { font-weight:600; }
.public-site .player-subtitle { display:block; margin-top:6px; }
.public-site .player-subtitle, .public-site .player-options { color:var(--muted); font-size:13px; }
.public-site .player-options { flex-wrap:wrap; }
.public-site .player-options label { display:flex; align-items:center; margin-left:auto; }
.public-site .player-options select { background:white; border-color:#a7a7bf; color:var(--ink); min-height:44px; font-size:14px; }
.audio-extra-controls { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:16px; }
.audio-extra-controls button, .audio-retry { min-height:44px; padding:8px 14px; border:1px solid #aeb2d2; border-radius:4px; color:var(--blue); background:#fff; cursor:pointer; }
.audio-extra-controls button:disabled { cursor:default; opacity:.5; }
.audio-extra-controls [data-audio-status] { font-size:13px; color:var(--muted); flex-basis:100%; }
.public-site .audio-error { color:#842733; font-size:14px; background:#fff1f2; padding:12px; border:1px solid #cf9fa6; margin-top:16px; }
.public-site .audio-error p { margin:0 0 10px; }
.public-site .audio-transcript { border-color:#cecee3; }
.public-site .audio-transcript summary { font-size:15px; min-height:44px; padding:10px 0; color:var(--blue); }
.public-site .audio-transcript > div { font-size:16px; color:#414150; line-height:1.85; }
.public-site .audio-unavailable { background:#eeedf8; color:var(--muted); margin:0; padding:24px; }
.public-site .no-artwork-image { color:var(--muted); margin:0; background:#eddfef; }
.public-site .nav-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding-top:28px; gap:20px; }
.public-site .nav-row a { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding:22px; background:#eeedf8; font-size:14px; }
.public-site .nav-row a:last-child { background:var(--lemon); }
.public-site .nav-row strong { font-size:22px; line-height:1.2; font-weight:550; }
.listening-dock { position:fixed; z-index:15; bottom:20px; left:50%; transform:translateX(-50%); width:min(680px,calc(100% - 40px)); display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:12px 16px; background:#242431; color:#fff; border-radius:8px; box-shadow:0 4px 24px #11132a33; }
.listening-dock button, .listening-dock .dock-next { min-width:44px; height:44px; border:1px solid #646475; border-radius:4px; display:grid; place-items:center; padding:6px; background:none; color:white; font-size:13px; cursor:pointer; }
.listening-dock button:disabled { opacity:.5; }
.listening-dock .dock-toggle { min-width:70px; background:var(--lemon); color:var(--ink); border-color:var(--lemon); }
.dock-info { flex:1 1 60px; min-width:0; }
.dock-info a { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:14px; }
.dock-error { flex-basis:100%; margin:0; font-size:13px; color:#ffe1e6; }
.dock-error a { text-decoration:underline; min-height:44px; display:inline-flex; align-items:center; }
.dock-time { display:block; font-size:12px; color:#d4d6e5; font-variant-numeric:tabular-nums; margin-top:4px; }
.public-site .listening-dock :is(a,button):focus-visible { outline-color:var(--lemon); }
.public-site.has-listening-dock { padding-bottom:calc(110px + env(safe-area-inset-bottom)); }
.public-site:has(.listening-dock:not([hidden]) .dock-error:not([hidden])) { padding-bottom:calc(220px + env(safe-area-inset-bottom)); }
.public-site [hidden] { display:none!important; }
.public-site .viewer { background:#191923; }
.public-site .viewer-title { color:white; font-family:var(--sans); }
.public-site .viewer button { min-height:48px; font-size:14px; border-radius:4px; color:white; }
.public-site .viewer :is(a,button):focus-visible { outline-color:var(--lemon); }
.public-site .viewer-toggle { background:var(--lemon); border-color:var(--lemon); color:#242431; }

@media (max-width:900px) {
  .public-site .event-layout { grid-template-columns:1fr; gap:28px; }
  .public-site .visit-card { grid-row:1; }
  .artwork-layout { grid-template-columns:1fr; gap:24px; }
  .artwork-listen, .artwork-media { grid-column:auto; grid-row:auto; position:static; }
  .public-site .frame img { max-height:80vh; }
  .public-site .gallery-intro { gap:28px; }
}
@media (max-width:600px) {
  .public-site .editorial-main, .public-site .wrap { padding:24px 20px 48px; }
  .site-footer { padding-inline:20px; }
  .site-footer { flex-direction:column; gap:16px; }
  .site-footer nav { gap:4px 20px; }
  .public-site .agenda-intro { grid-template-columns:1fr; gap:16px; padding:0 0 36px; }
  .public-site .agenda-intro h1 { font-size:52px; }
  .public-site .intro-aside { padding:24px; }
  .public-site .intro-aside h2 { font-size:28px; }
  .public-site .agenda-heading { gap:16px; align-items:baseline; }
  .public-site .agenda-heading h2 { font-size:28px; }
  .public-site .agenda-heading > span { font-size:13px; text-align:right; }
  .public-site .agenda-filters { padding:20px; gap:16px; }
  .public-site .agenda-filters > label:not(.filter-checkbox) { flex:1 1 100%; min-width:0; }
  .public-site .agenda-filters .button { flex:1; }
  .public-site .event-grid { grid-template-columns:1fr; gap:32px; }
  .agenda-poster { height:250px; }
  .public-site .event-card h3 { font-size:28px; }
  .public-site .event-heading h1 { font-size:40px; margin-bottom:28px; }
  .public-site .visit-card, .public-site .listening-invite { padding:24px; }
  .public-site .visit-card .button { font-size:14px; }
  .event-artwork { padding:20px; }
  .public-site .gallery-intro { grid-template-columns:1fr; }
  .public-site .gallery-intro h1 { font-size:46px; }
  .public-site .gallery-location { border-left:0; padding-left:0; }
  .public-site .guide-start { padding:24px; flex-direction:column; align-items:stretch; }
  .public-site .guide-start a { justify-content:space-between; white-space:normal; }
  .public-site .art-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 16px; }
  .public-site .art-card-image { padding:12px; aspect-ratio:1; }
  .public-site .art-card h3 { font-size:19px; }
  .public-site .art-card p { font-size:12px; }
  .public-site .catalog-audio-state { font-size:12px; padding:8px; }
  .public-site .sheet > h1 { font-size:40px; }
  .public-site .guide-player.audio { padding:20px 16px; }
  .public-site .player-heading { gap:12px; }
  .public-site .guide-player figcaption { font-size:18px; }
  .public-site .frame { padding:16px; }
  .public-site .nav-row { gap:12px; }
  .public-site .nav-row a { padding:16px; font-size:12px; }
  .public-site .nav-row strong { font-size:18px; }
  .listening-dock { bottom:0; left:0; transform:none; width:100%; border-radius:0; gap:8px; padding:10px max(12px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left)); }
  .listening-dock .dock-toggle { min-width:54px; font-size:12px; }
  .listening-dock .dock-next { min-width:36px; }
  .dock-info a { font-size:12px; }
  .dock-time { font-size:11px; }
}
@media (max-width:360px) {
  .public-site .editorial-main, .public-site .wrap, .site-footer { padding-inline:16px; }
  .public-site .agenda-intro h1 { font-size:46px; }
  .public-site .gallery-intro h1 { font-size:40px; }
  .public-site .art-grid { grid-template-columns:1fr; }
  .public-site .art-card h3 { font-size:24px; }
  .public-site .nav-row { grid-template-columns:1fr; }
  .listening-dock { gap:6px; padding-inline:8px; }
  .listening-dock button { min-width:40px; }
}
@media (prefers-reduced-motion:reduce) {
  .public-site *, .public-site *::before, .public-site *::after { transition:none!important; animation:none!important; scroll-behavior:auto!important; }
}
@media print { .site-header, .site-footer, .listening-dock { display:none!important; } .artwork-layout { display:block; } .artwork-listen { position:static; } }

/* Reserve room for focus/anchor scrolling above the floating audio controls. */
.audio-languages { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin:0 0 22px; font-size:13px; }
.audio-language-options { display:flex; flex-wrap:wrap; gap:4px; padding:4px; border:1px solid #c8cbd6; border-radius:10px; background:#fff; }
.audio-language-options a,.audio-language-current { display:inline-flex; min-height:44px; align-items:center; justify-content:center; padding:8px 16px; border-radius:6px; text-decoration:none; box-sizing:border-box; }
.audio-language-options a { color:#293cae; }
.audio-language-options a:hover { background:#edf0ff; }
.audio-language-options .audio-language-current { background:#293cae; color:#fff; font-weight:600; }
.audio-language-options a:focus-visible { outline:3px solid #293cae; outline-offset:3px; }
.public-site .audio-language-note { font-size:13px; line-height:1.5; color:var(--muted); margin:12px 0; }
.gallery-audio-languages { justify-content:flex-start; margin-top:24px; margin-bottom:8px; }
.dock-language { font-size:11px; margin-right:8px; }
.public-site .sheet :is(a,button,select,audio,summary) { scroll-margin-block:24px 140px; }
.public-site .transcript-missing { font-size:14px; color:var(--muted); margin:18px 0 0; }

.public-site .is-current[aria-current="page"]{color:var(--blue);font-weight:600;cursor:default}
.site-footer nav>.is-current{display:inline-flex;align-items:center;min-height:44px;font-size:14px;border-bottom:2px solid var(--blue)}
.public-site .button.is-current,.public-site .button.is-current:hover{background:#e7e9ff;color:#293cae;border-color:var(--blue)}
.public-site .reset-filters.is-current{color:var(--muted);text-decoration:none;font-weight:500}

/* Intrinsic dimensions reserve poster space without fixing its responsive height. */
.public-site .gallery-poster{height:auto}

.public-site .author-link{text-decoration:underline;text-underline-offset:4px;color:#293cae}
.public-site .art-card-main{display:block;text-decoration:none;color:inherit}
