:root {
  color-scheme: light;
  --paper: #f8f7f3;
  --white: #fff;
  --ink: #202026;
  --muted: #625f66;
  --rule: #cbc8c4;
  --soft: #ece9e3;
  --violet: #50388a;
  --violet-dark: #302346;
  --violet-wash: #eeebf2;
  --gold: #e4bb58;
  --sans: "Instrument Sans", "Avenir Next", Avenir, sans-serif;
  --display: "Newsreader", Georgia, serif;
  --mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;
  --wrap: min(1200px, calc(100% - 72px));
  font-family: var(--sans);
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth;
  scroll-padding-top: 88px;
}

*, *::before, *::after { box-sizing: border-box; }
body { min-width: 320px; margin: 0; background: var(--paper); font-size: 15px; line-height: 1.6; }
::selection { color: var(--ink); background: #d9cbea; }
img, svg { display: block; max-width: 100%; }
button { font: inherit; }
a { color: inherit; }
a, button { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid #a04b35; outline-offset: 4px; }
.wrap { width: var(--wrap); margin-inline: auto; }
.section-pad { padding-block: clamp(68px, 8vw, 104px); }
.skip-link { position: fixed; z-index: 100; top: 12px; left: 12px; padding: 10px 16px; transform: translateY(-180%); background: var(--violet-dark); color: white; }
.skip-link:focus { transform: translateY(0); }

.site-header { position: sticky; z-index: 30; top: 0; border-bottom: 1px solid var(--rule); background: rgb(248 247 243 / 97%); }
.nav-wrap { position: relative; width: var(--wrap); min-height: 72px; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; }
.brand img { width: 42px; height: 44px; object-fit: contain; }
.brand > span { display: grid; font-size: 13px; font-weight: 700; letter-spacing: .16em; line-height: 1.15; }
.brand small { margin-top: 4px; color: var(--muted); font: 9px/1.2 var(--mono); letter-spacing: .08em; }
.site-nav { display: flex; align-items: center; gap: clamp(12px, 1.5vw, 22px); }
.site-nav a { min-height: 44px; display: inline-flex; align-items: center; color: #3e3b42; font-size: 12px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.site-nav a:hover { color: var(--violet); }
.site-nav .nav-original { min-height: 40px; padding-inline: 12px; border: 1px solid var(--rule); }
.menu-toggle { min-height: 44px; display: none; align-items: center; gap: 10px; border: 0; padding: 8px 0 8px 10px; background: transparent; color: var(--ink); cursor: pointer; }
.menu-label { font: 10px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.menu-icon { position: relative; width: 22px; height: 14px; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; }
.menu-icon::after { position: absolute; top: 6px; right: 0; left: 0; border-top: 1px solid currentColor; content: ""; }

.hero { padding-top: clamp(24px, 3.3vw, 42px); }
.hero-topline { min-height: 39px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule); color: var(--muted); font: 10px/1.4 var(--mono); letter-spacing: .075em; text-transform: uppercase; }
.archive-identity { display: flex; align-items: center; gap: 11px; }
.archive-divider { width: 1px; height: 13px; background: var(--violet); }
.archive-place { text-align: right; }
.hero-main { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(310px, .78fr); align-items: center; gap: clamp(42px, 7.5vw, 92px); padding-block: clamp(42px, 6.2vw, 76px) clamp(36px, 5vw, 58px); }
.hero-copy { min-width: 0; }
.eyebrow, .record-label, .section-marker, .fields-head > span:last-child, .record-heading, .day-copy small, .schedule-type, .schedule-moderator, .speaker-index, .fee-label > span, .fee-status, .committee-index, .committee-count, .footer-bottom { font-family: var(--mono); text-transform: uppercase; letter-spacing: .065em; }
.eyebrow { margin: 0; color: var(--violet); font-size: 10px; line-height: 1.5; }
.eyebrow-divider { padding-inline: 7px; color: #99939e; }
.hero h1 { margin: 20px 0 21px -3px; font: 500 clamp(58px, 6.3vw, 82px)/.94 var(--display); letter-spacing: -.052em; }
.hero h1 > span { display: block; }
.hero-title-second { color: var(--violet); font-size: .78em; font-style: italic; font-weight: 400; }
.hero-title-last { max-width: 680px; margin-top: 3px; font: 600 .69em/.98 var(--sans); letter-spacing: -.06em; }
.hero-summary { max-width: 520px; margin: 20px 0 5px; font-size: 16px; line-height: 1.55; font-weight: 500; }
.hero-fr { max-width: 480px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 22px; margin-top: 27px; }
.button { min-height: 48px; padding: 11px 15px; display: inline-flex; align-items: center; justify-content: center; gap: 15px; border: 1px solid transparent; font-size: 12px; font-weight: 600; text-decoration: none; transition: background-color .18s ease, color .18s ease; }
.button svg, .plain-link svg { width: 17px; height: 17px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: square; stroke-linejoin: miter; }
.button-blue { background: var(--violet); color: white; }
.button-blue:hover { background: var(--violet-dark); }
.plain-link { min-height: 44px; display: inline-flex; align-items: center; gap: 9px; padding-block: 6px; border-bottom: 1px solid currentColor; color: var(--violet); font-size: 12px; font-weight: 600; text-decoration: none; }
.plain-link:hover { color: var(--ink); }
.hero-agenda { min-width: 0; padding: 0 0 0 22px; border-top: 3px solid var(--violet); border-bottom: 1px solid var(--ink); background: var(--white); }
.agenda-heading { min-height: 48px; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--ink); }
.agenda-heading h2 { margin: 0; font: 600 13px/1.3 var(--sans); }
.agenda-heading > span { color: var(--muted); font: 9px var(--mono); text-transform: uppercase; letter-spacing: .05em; }
.agenda-excerpt { margin: 0; padding: 0; list-style: none; }
.agenda-excerpt li { min-height: 64px; display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 12px; align-items: start; padding: 12px 0 11px; border-bottom: 1px solid var(--rule); }
.agenda-excerpt time { padding-top: 1px; color: var(--violet); font: 500 11px var(--mono); font-variant-numeric: tabular-nums; }
.agenda-excerpt li div { display: grid; gap: 1px; }
.agenda-excerpt li span { color: var(--muted); font: 9px/1.4 var(--mono); letter-spacing: .045em; text-transform: uppercase; }
.agenda-excerpt li strong { font-size: 12px; line-height: 1.4; font-weight: 600; }
.agenda-excerpt li small { color: #4f4b53; font-size: 10px; line-height: 1.4; }
.agenda-caption { margin: 0; padding: 11px 0 12px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.agenda-caption a { color: var(--violet); font-weight: 600; text-underline-offset: 3px; }
.hero-record { display: grid; grid-template-columns: .9fr .9fr 1.18fr .92fr; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.hero-record > * { min-width: 0; min-height: 88px; padding: 13px 17px 13px 0; display: flex; flex-direction: column; justify-content: center; }
.hero-record > * + * { padding-left: 18px; border-left: 1px solid var(--rule); }
.record-label { margin-bottom: 5px; color: var(--muted); font-size: 9px; }
.hero-record strong { font-size: 12px; line-height: 1.4; }
.hero-record small { margin-top: 2px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.record-status { text-decoration: none; }
.record-status strong { color: var(--violet); }
.record-status:hover strong { text-decoration: underline; text-underline-offset: 3px; }

.section-marker { min-height: 27px; display: flex; align-items: center; gap: 13px; padding-top: 7px; border-top: 1px solid var(--rule); color: var(--muted); font-size: 9px; }
.marker-rule { height: 1px; flex: 1 1 auto; background: var(--rule); }
.section-marker > span:last-child { color: var(--violet); text-align: right; }
.gathering { background: var(--paper); }
.gathering-grid { display: grid; grid-template-columns: 1fr .94fr; gap: clamp(40px, 8vw, 108px); align-items: start; padding-block: 53px 52px; }
.gathering-title .eyebrow, .section-intro-row .eyebrow, .research-copy .eyebrow, .visit-copy .eyebrow { margin-bottom: 14px; }
h2 { margin: 0; font: 500 clamp(38px, 4.25vw, 58px)/1.03 var(--display); letter-spacing: -.045em; }
.gathering-copy { max-width: 560px; padding-top: 3px; color: var(--muted); font-size: 14px; line-height: 1.78; }
.gathering-copy p { margin: 0 0 13px; }
.fields-sheet { padding-top: 16px; border-top: 1px solid var(--ink); }
.fields-head { display: flex; justify-content: space-between; gap: 20px; align-items: baseline; padding-bottom: 12px; }
.fields-head > span:last-child { color: var(--muted); font-size: 9px; }
.field-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; margin: 0; padding: 0; list-style: none; }
.field-list li { min-height: 48px; display: grid; grid-template-columns: 28px 1fr; align-items: center; gap: 9px; border-top: 1px solid var(--rule); font-size: 12px; line-height: 1.45; }
.field-list li span { color: var(--violet); font: 10px var(--mono); }

.programme { background: #f0eef2; }
.programme-heading { display: flex; justify-content: space-between; align-items: end; gap: 35px; padding-block: 48px 32px; }
.programme-heading h2 { margin-top: 7px; font-size: clamp(48px, 5.2vw, 68px); }
.programme-heading > p { max-width: 360px; margin: 0 0 3px; color: var(--muted); font-size: 12px; line-height: 1.7; }
.day-switch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--ink); }
.day-switch button { position: relative; min-height: 66px; padding: 10px 14px 10px 0; display: flex; align-items: center; border: 0; background: transparent; color: var(--muted); text-align: left; cursor: pointer; }
.day-switch button + button { padding-left: 18px; border-left: 1px solid var(--rule); }
.day-copy { font-size: 14px; font-weight: 600; }
.day-copy small { display: block; margin-top: 2px; color: var(--muted); font-size: 9px; font-weight: 400; }
.tab-indicator { position: absolute; right: 0; bottom: -1px; left: 0; height: 3px; background: transparent; }
.day-switch button[aria-selected="true"] { color: var(--ink); }
.day-switch button[aria-selected="true"] .day-copy small { color: var(--violet); }
.day-switch button[aria-selected="true"] .tab-indicator { background: var(--violet); }
.day-switch button + button[aria-selected="true"] .tab-indicator { left: 18px; }
.schedule-list { margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; }
.schedule-row { min-width: 0; display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 17px; padding: 15px 10px 15px 0; border-bottom: 1px solid var(--rule); }
.schedule-row > time { padding-top: 2px; color: var(--violet); font: 500 11px/1.5 var(--mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.schedule-entry { min-width: 0; }
.schedule-type { display: block; color: var(--muted); font-size: 9px; line-height: 1.5; }
.schedule-entry h3 { margin: 2px 0 0; font-size: 14px; line-height: 1.45; font-weight: 600; }
.schedule-entry > p:not(.schedule-moderator) { max-width: 820px; margin: 3px 0 0; color: #45424a; font-size: 12px; line-height: 1.55; }
.schedule-moderator { margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; text-transform: none; }
.schedule-break .schedule-type, .schedule-break > time { color: #66616a; }
.schedule-break .schedule-entry h3 { font-weight: 500; }
.schedule-opening, .schedule-talk { background: rgb(255 255 255 / 44%); }
.schedule-detail, .programme-sessions { margin-top: 10px; }
.schedule-detail summary, .programme-sessions summary { position: relative; width: fit-content; min-height: 38px; padding: 6px 27px 6px 0; display: flex; align-items: center; color: var(--violet); font-size: 11px; font-weight: 600; cursor: pointer; list-style: none; }
.schedule-detail summary::-webkit-details-marker, .programme-sessions summary::-webkit-details-marker, .payment-details summary::-webkit-details-marker, .committee summary::-webkit-details-marker { display: none; }
.schedule-detail summary::after, .programme-sessions summary::after { position: absolute; top: 50%; right: 3px; width: 10px; height: 10px; transform: translateY(-65%) rotate(45deg); border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; content: ""; }
.schedule-detail[open] summary::after, .programme-sessions[open] summary::after { transform: translateY(-25%) rotate(225deg); }
.schedule-detail > ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; margin: 0; padding: 0; list-style: none; }
.schedule-detail > ul li { min-width: 0; padding: 10px 0; border-top: 1px solid var(--rule); }
.schedule-detail strong, .schedule-detail li span { display: block; }
.schedule-detail strong { font-size: 11px; }
.schedule-detail li span { margin-top: 2px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.parallel-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.parallel-session { min-width: 0; padding: 14px 17px 15px 0; }
.parallel-session + .parallel-session { padding-left: 17px; border-left: 1px solid var(--rule); }
.parallel-session h4 { margin: 0 0 3px; color: var(--violet); font: 600 12px var(--sans); }
.parallel-session p { min-height: 30px; margin: 0 0 8px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.parallel-session ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px 10px; margin: 0; padding: 0; list-style: none; }
.parallel-session li { min-width: 0; padding-block: 3px; font-size: 10px; line-height: 1.4; overflow-wrap: anywhere; }
.programme-foot { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding-top: 17px; color: var(--muted); font: 9px var(--mono); }
.programme-foot .plain-link { font: 600 11px var(--sans); }

.speakers { background: var(--paper); }
.section-intro-row { display: flex; justify-content: space-between; align-items: end; gap: 34px; padding-block: 47px 34px; }
.section-intro-row h2 { font-size: clamp(44px, 5vw, 64px); }
.intro-aside { max-width: 300px; margin: 0 0 3px; color: var(--muted); font-size: 12px; line-height: 1.7; }
.speaker-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 38px; margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; }
.speaker-list > li { min-width: 0; min-height: 139px; display: grid; grid-template-columns: 23px 72px minmax(0, 1fr); align-items: center; gap: 13px; padding: 14px 0; border-bottom: 1px solid var(--rule); }
.speaker-index { align-self: start; padding-top: 4px; color: var(--violet); font-size: 9px; }
.speaker-list img { width: 72px; height: 91px; object-fit: cover; object-position: center 35%; background: var(--soft); }
.speaker-details { min-width: 0; }
.speaker-details h3 { margin: 0 0 2px; font: 600 17px/1.2 var(--sans); letter-spacing: -.02em; }
.speaker-details p { margin: 0 0 6px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.speaker-details > span { display: block; color: #41364c; font-size: 11px; line-height: 1.5; }

.research { background: var(--violet-wash); }
.research-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: start; gap: clamp(40px, 8vw, 100px); padding-top: 49px; }
.research-copy h2 { margin-bottom: 21px; font-size: clamp(43px, 5.1vw, 66px); }
.research-copy > p:not(.eyebrow):not(.closed-note) { max-width: 510px; margin: 0 0 13px; color: #504c55; font-size: 12px; line-height: 1.75; }
.research-copy .button { margin-top: 9px; }
.closed-note { display: flex; align-items: flex-start; gap: 9px; max-width: 370px; margin: 14px 0 0; color: #4c4652; font-size: 10px; line-height: 1.55; }
.closed-note > span { width: 17px; height: 17px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid var(--violet); color: var(--violet); font: 11px var(--mono); }
.research-record { padding: 21px 25px 23px; border-top: 2px solid var(--violet); border-bottom: 1px solid var(--ink); background: var(--white); }
.record-heading { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--rule); color: var(--muted); font-size: 9px; }
.record-heading span:first-child { color: var(--violet); }
.deadline-list { margin: 0; }
.deadline-list > div { min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--rule); }
.deadline-list dt { color: var(--muted); font-size: 11px; }
.deadline-list dd { margin: 0; color: var(--violet); font: 500 11px var(--mono); white-space: nowrap; }
.award-record { margin-top: 21px; padding-top: 16px; border-top: 1px solid var(--rule); }
.award-heading { display: flex; align-items: center; gap: 11px; }
.award-mark { width: 19px; height: 19px; flex: 0 0 auto; fill: var(--violet); }
.award-heading .eyebrow { font-size: 9px; }
.award-heading h3 { margin: 1px 0 0; font: 600 19px/1.2 var(--sans); letter-spacing: -.025em; }
.award-record > p { margin: 10px 0 12px; color: var(--muted); font-size: 10px; line-height: 1.6; }
.criteria-list { margin: 0; padding: 0; list-style: none; }
.criteria-list li { display: flex; justify-content: space-between; gap: 20px; padding: 7px 0; border-top: 1px solid var(--rule); font-size: 11px; }
.criteria-list li span:last-child { color: var(--violet); font: 500 10px var(--mono); }

.fees { background: var(--violet-dark); color: white; }
.fees .eyebrow { color: #e0c7ff; }
.fees .section-marker { border-color: rgb(255 255 255 / 36%); color: #ded7e6; }
.fees .section-marker .marker-rule { background: rgb(255 255 255 / 35%); }
.fees .section-marker > span:last-child { color: #ead8a2; }
.fees-heading { display: flex; justify-content: space-between; align-items: end; gap: 33px; padding-block: 43px 31px; }
.fees-heading h2 { margin-top: 7px; font-size: clamp(47px, 5.2vw, 67px); }
.fees-warning { max-width: 365px; margin: 0 0 4px; padding: 12px 15px; border-left: 3px solid var(--gold); color: #f4f0f7; font-size: 11px; line-height: 1.55; }
.fees-warning strong { display: block; margin-bottom: 3px; color: white; font-size: 12px; }
.fees-warning strong span { margin-right: 6px; color: var(--gold); }
.fee-table { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgb(255 255 255 / 45%); border-bottom: 1px solid rgb(255 255 255 / 45%); }
.fee-entry { min-width: 0; padding: 21px 28px 21px 0; }
.fee-entry + .fee-entry { padding-left: 28px; border-left: 1px solid rgb(255 255 255 / 36%); }
.fee-label > span { color: #d7d0df; font-size: 9px; }
.fee-label h3 { margin: 4px 0 0; font-size: 15px; line-height: 1.4; }
.fee-amount { display: flex; align-items: baseline; gap: 9px; margin: 12px 0 9px; color: #eed17c; }
.fee-amount strong { font: 500 clamp(72px, 8vw, 108px)/.9 var(--display); letter-spacing: -.04em; }
.fee-amount span { font: 500 13px var(--mono); }
.fee-includes { max-width: 400px; min-height: 42px; margin: 0; color: #ece7f0; font-size: 11px; line-height: 1.55; }
.fee-status { display: inline-block; margin-top: 12px; padding-top: 7px; border-top: 1px solid rgb(255 255 255 / 38%); color: #f3e5b6; font-size: 9px; }
.payment-details { margin-top: 16px; border-bottom: 1px solid rgb(255 255 255 / 40%); }
.payment-details summary { min-height: 49px; display: flex; justify-content: space-between; align-items: center; gap: 12px; color: white; font-size: 11px; font-weight: 600; cursor: pointer; list-style: none; }
.summary-symbol, .committee-toggle { position: relative; width: 14px; height: 14px; flex: 0 0 auto; color: var(--gold); font-size: 0; }
.summary-symbol::before, .summary-symbol::after, .committee-toggle::before, .committee-toggle::after { position: absolute; top: 6px; left: 1px; width: 12px; border-top: 1px solid currentColor; content: ""; }
.summary-symbol::after, .committee-toggle::after { transform: rotate(90deg); }
.payment-details[open] .summary-symbol::after, .committee[open] .committee-toggle::after { transform: rotate(0); }
.payment-body { padding: 0 0 18px; color: #eee9f3; }
.warning-note { margin: 6px 0 14px; padding: 11px 13px; border-left: 3px solid var(--gold); background: rgb(255 255 255 / 8%); font-size: 10px; line-height: 1.55; }
.payment-body dl { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.payment-body dl > div { min-width: 0; }
.payment-body dt { color: #d9d0e4; font: 9px var(--mono); text-transform: uppercase; }
.payment-body dd { margin: 4px 0 0; font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }

.people { background: var(--paper); }
.people .section-intro-row { padding-bottom: 31px; }
.committee-list { border-top: 1px solid var(--ink); }
.committee { border-bottom: 1px solid var(--rule); }
.committee summary { min-height: 64px; display: grid; grid-template-columns: 1fr 110px 20px; align-items: center; gap: 16px; cursor: pointer; list-style: none; }
.committee-index { display: none; }
.committee-name { font-size: 13px; font-weight: 600; }
.committee-count { color: var(--muted); text-align: right; font-size: 9px; }
.committee-toggle { justify-self: end; color: var(--violet); }
.committee-roster { margin: 0; padding: 0 40px 19px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 30px; list-style: none; }
.committee-roster li { min-width: 0; padding: 9px 0; border-top: 1px solid var(--rule); }
.committee-roster strong { display: block; font-size: 11px; line-height: 1.5; }
.committee-roster span { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; line-height: 1.5; }

.visit { background: var(--white); }
.visit-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(35px, 7vw, 88px); align-items: start; padding-block: 50px 54px; }
.visit-copy h2 { margin-bottom: 18px; font-size: clamp(48px, 5.5vw, 70px); }
.visit-copy h2 span { color: var(--violet); }
.visit-copy > p:not(.eyebrow) { margin: 0 0 20px; color: var(--muted); font-size: 12px; line-height: 1.75; }
.visit-copy > p strong { color: var(--ink); }
.visit-records { min-width: 0; }
.venue-photo { position: relative; aspect-ratio: 1.62 / 1; margin: 0 0 20px; overflow: hidden; background: #c8c5be; }
.venue-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 53%; }
.venue-photo figcaption { position: absolute; right: 0; bottom: 0; left: 0; display: flex; justify-content: space-between; gap: 12px; padding: 24px 13px 9px; color: white; background: linear-gradient(transparent, rgb(23 20 28 / 80%)); font: 9px/1.4 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.contact-sheet { margin-top: 0; padding: 15px 0; border-top: 2px solid var(--violet); border-bottom: 1px solid var(--rule); }
.contact-sheet .eyebrow { font-size: 9px; }
.contact-sheet h3 { margin: 9px 0 6px; font: 500 28px/1.1 var(--display); }
.contact-sheet > a { min-height: 37px; display: flex; width: fit-content; align-items: center; color: var(--violet); font-size: 12px; font-weight: 600; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.contact-sheet > p { margin: 10px 0 0; padding-top: 9px; border-top: 1px solid var(--rule); color: var(--muted); font-size: 10px; line-height: 1.55; }
.supporters { padding-top: 23px; border-top: 1px solid var(--rule); }
.supporter-heading { display: flex; align-items: baseline; gap: 18px; }
.supporter-heading .eyebrow { flex: 0 0 auto; }
.supporter-heading h3 { margin: 0; font: 500 23px/1.2 var(--display); }
.supporter-logos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: center; gap: 28px; padding-top: 23px; }
.supporter-logos img { width: 100%; height: 70px; object-fit: contain; }

.site-footer { padding-block: 24px 15px; border-top: 1px solid var(--rule); background: var(--paper); color: var(--ink); }
.footer-main { display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; gap: 26px; padding-bottom: 19px; }
.footer-brand { color: var(--ink); }
.footer-brand small { color: var(--muted); }
.footer-main > p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.footer-top { min-height: 44px; display: inline-flex; align-items: center; gap: 7px; color: var(--violet); font-size: 11px; text-decoration: none; }
.footer-top svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: square; stroke-linejoin: miter; }
.footer-bottom { display: flex; justify-content: space-between; gap: 16px; padding-top: 12px; border-top: 1px solid var(--rule); color: var(--muted); font-size: 9px; }
.footer-bottom a { text-decoration: none; }
.footer-bottom a:hover { color: var(--violet); }

@media (max-width: 1100px) {
  :root { --wrap: min(100% - 48px, 960px); }
  .menu-toggle { display: inline-flex; }
  .site-nav { position: absolute; top: calc(100% + 1px); right: 0; left: 0; display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; padding: 8px 17px; border: 1px solid var(--rule); background: var(--paper); box-shadow: 0 12px 22px rgb(24 22 30 / 10%); }
  .site-nav.is-open { display: grid; }
  .site-nav a { min-height: 44px; border-bottom: 1px solid var(--rule); }
  .site-nav .nav-original { justify-content: center; margin-block: 8px; }
  .hero-main { grid-template-columns: minmax(0, 1fr) minmax(290px, .85fr); gap: 35px; }
  .hero h1 { font-size: clamp(56px, 7.1vw, 76px); }
  .hero-title-last { font-size: .62em; }
  .hero-record { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-record > * { min-height: 76px; }
  .hero-record > :nth-child(3) { border-left: 0; }
  .hero-record > :nth-child(n + 3) { border-top: 1px solid var(--rule); }
}

@media (max-width: 760px) {
  :root { --wrap: calc(100% - 40px); scroll-padding-top: 76px; }
  body { font-size: 14px; }
  .nav-wrap { min-height: 64px; }
  .brand img { width: 38px; height: 40px; }
  .hero { padding-top: 20px; }
  .hero-topline { min-height: 35px; font-size: 8px; }
  .archive-identity { gap: 7px; }
  .hero-main { grid-template-columns: 1fr; gap: 26px; padding-block: 30px 29px; }
  .hero-copy { padding: 0; }
  .hero h1 { margin: 16px 0 15px -2px; font-size: clamp(52px, 11.6vw, 72px); }
  .hero-title-second { font-size: .79em; }
  .hero-title-last { max-width: 550px; margin-top: 5px; font-size: .63em; line-height: 1.03; }
  .hero-summary { margin-top: 16px; font-size: 15px; }
  .hero-fr { font-size: 12px; }
  .hero-actions { gap: 10px 16px; margin-top: 19px; }
  .hero-agenda { padding-left: 15px; }
  .agenda-heading { min-height: 43px; }
  .agenda-excerpt li { min-height: 57px; grid-template-columns: 54px minmax(0, 1fr); gap: 8px; padding-block: 9px; }
  .hero-record > * { min-height: 70px; padding: 9px 11px 9px 0; }
  .hero-record > * + * { padding-left: 12px; }
  .hero-record > :nth-child(3) { padding-left: 0; }
  .hero-record strong { font-size: 11px; }
  .hero-record small { font-size: 9px; }
  .section-marker { gap: 8px; font-size: 8px; }
  .section-marker > span:last-child { text-align: right; }
  .section-pad { padding-block: 62px; }
  .gathering-grid { grid-template-columns: 1fr; gap: 21px; padding-block: 37px 34px; }
  h2 { font-size: clamp(37px, 8.7vw, 50px); }
  .gathering-copy { font-size: 13px; }
  .field-list { column-gap: 18px; }
  .field-list li { grid-template-columns: 24px 1fr; min-height: 52px; font-size: 11px; }
  .programme-heading { align-items: start; flex-direction: column; gap: 13px; padding-block: 36px 26px; }
  .programme-heading h2 { font-size: clamp(46px, 10vw, 60px); }
  .programme-heading > p { max-width: 490px; }
  .day-switch button { min-height: 60px; }
  .schedule-row { grid-template-columns: 82px minmax(0, 1fr); gap: 10px; padding-block: 12px; }
  .schedule-row > time { font-size: 9px; }
  .schedule-entry h3 { font-size: 13px; }
  .schedule-entry > p:not(.schedule-moderator) { font-size: 11px; }
  .schedule-type { font-size: 8px; }
  .schedule-moderator { font-size: 8px; }
  .schedule-detail > ul { grid-template-columns: 1fr; }
  .parallel-grid { grid-template-columns: 1fr; }
  .parallel-session { padding: 12px 0; }
  .parallel-session + .parallel-session { padding-left: 0; border-top: 1px solid var(--rule); border-left: 0; }
  .parallel-session p { min-height: 0; }
  .parallel-session ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .programme-foot { align-items: flex-start; flex-direction: column; }
  .section-intro-row { align-items: start; flex-direction: column; gap: 14px; padding-block: 37px 27px; }
  .section-intro-row h2 { font-size: clamp(40px, 9vw, 53px); }
  .intro-aside { max-width: 440px; }
  .speaker-list { grid-template-columns: 1fr; }
  .speaker-list > li { min-height: 119px; grid-template-columns: 21px 64px minmax(0, 1fr); gap: 10px; }
  .speaker-list img { width: 64px; height: 82px; }
  .speaker-details h3 { font-size: 18px; }
  .speaker-details > span { font-size: 10px; }
  .research-grid { grid-template-columns: 1fr; gap: 28px; padding-top: 36px; }
  .research-copy h2 { font-size: clamp(40px, 9vw, 54px); }
  .fees-heading { align-items: start; flex-direction: column; gap: 18px; padding-block: 36px 25px; }
  .fees-heading h2 { font-size: clamp(42px, 9.4vw, 56px); }
  .fees-warning { max-width: 500px; }
  .fee-entry { padding: 19px 16px 18px 0; }
  .fee-entry + .fee-entry { padding-left: 16px; }
  .fee-amount strong { font-size: clamp(68px, 15vw, 90px); }
  .fee-includes { min-height: 64px; font-size: 10px; }
  .payment-body dl { grid-template-columns: 1fr; gap: 10px; }
  .committee summary { min-height: 61px; grid-template-columns: minmax(0, 1fr) 78px 16px; gap: 8px; }
  .committee-name { font-size: 12px; }
  .committee-count { font-size: 8px; }
  .committee-roster { padding: 0 8px 15px 0; grid-template-columns: 1fr; }
  .visit-grid { grid-template-columns: 1fr; gap: 28px; padding-block: 37px 42px; }
  .visit-copy h2 { font-size: clamp(46px, 10vw, 60px); }
  .venue-photo { aspect-ratio: 1.35 / 1; margin-bottom: 16px; }
  .supporter-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; }
  .supporter-logos img { height: 65px; }
  .footer-main { grid-template-columns: 1fr auto; gap: 13px; }
  .footer-main > p { grid-column: 1 / -1; grid-row: 2; }
  .footer-top { grid-column: 2; grid-row: 1; }
  .footer-bottom { align-items: start; flex-direction: column; gap: 7px; }
}

@media (max-width: 440px) {
  :root { --wrap: calc(100% - 32px); }
  .hero-topline { font-size: 7px; }
  .archive-place { max-width: 118px; }
  .hero h1 { font-size: clamp(48px, 12.6vw, 59px); }
  .hero-title-second { font-size: .76em; }
  .hero-title-last { max-width: 100%; font-size: clamp(23px, 7.2vw, 28px); }
  .hero-record > * { padding-right: 8px; }
  .hero-record > * + * { padding-left: 9px; }
  .hero-record > :nth-child(3) { padding-left: 0; }
  .agenda-heading > span { font-size: 8px; }
  .agenda-excerpt li { grid-template-columns: 47px minmax(0, 1fr); }
  .agenda-excerpt time { font-size: 10px; }
  .agenda-excerpt li strong { font-size: 11px; }
  .agenda-excerpt li small { font-size: 9px; }
  .section-marker > span:last-child { display: none; }
  .field-list { grid-template-columns: 1fr; }
  .field-list li { min-height: 42px; }
  .day-switch button { padding-right: 9px; }
  .day-switch button + button { padding-left: 11px; }
  .day-switch button + button[aria-selected="true"] .tab-indicator { left: 11px; }
  .schedule-row { grid-template-columns: 72px minmax(0, 1fr); gap: 8px; }
  .schedule-row > time { font-size: 8px; }
  .parallel-session ul { grid-template-columns: 1fr; }
  .speaker-list > li { grid-template-columns: 19px 56px minmax(0, 1fr); gap: 8px; }
  .speaker-list img { width: 56px; height: 74px; }
  .speaker-details h3 { font-size: 17px; }
  .speaker-details p { font-size: 8px; }
  .speaker-details > span { font-size: 9px; }
  .fee-table { grid-template-columns: 1fr; }
  .fee-entry { padding: 19px 0; }
  .fee-entry + .fee-entry { padding: 19px 0; border-top: 1px solid rgb(255 255 255 / 36%); border-left: 0; }
  .fee-includes { min-height: 0; }
  .committee summary { grid-template-columns: minmax(0, 1fr) 65px 15px; gap: 6px; }
  .committee-name { font-size: 11px; }
  .supporter-heading { align-items: start; flex-direction: column; gap: 4px; }
  .supporter-logos { gap: 15px; }
  .footer-bottom { font-size: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
