/* Hallmark · genre: editorial · macrostructure: Photographic (H6 fold) into Long Document body · theme: custom "Limestone and Glass"
 * tone: calm institutional · anchor hue: 222 teal-ink, accent 195 glass-teal · enrichment: supplied campus photograph
 * nav: N9 edge-aligned, solid on scroll · footer: Ft1 mast-headed · motion: hero fade-in · hover/focus only
 * Hallmark · pre-emit critique: P4 H4 E4 S4 R5 V4 (re-scored session 2, after fixes)
 * slop test 2026-09-29: 58/58 after fixes (gates 26, 34, 40, 49 failed first pass, fixed) · contrast: pass (40–41)
 * honest: pass (46) · chrome: pass (47) · tokens: pass (48) · responsive: pass (49) · icons: pass (30) · mobile: pass (34, 49, 50–57)
 */

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { overflow-x: clip; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + var(--space-md)); }
body {
  margin: 0;
  background: var(--color-paper);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-body);
  font-kerning: normal;
  text-rendering: optimizeLegibility;
}
:lang(ar) body, body:lang(ar) { font-family: var(--font-arabic); font-size: 1.0625rem; line-height: var(--leading-arabic); }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, h4, p, ol, ul, dl, dd, blockquote, figure { margin: 0; }
ol, ul { padding: 0; list-style: none; }
h1, h2, h3, h4 { font-weight: 500; font-style: normal; overflow-wrap: anywhere; min-width: 0; }
a { color: inherit; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
address { font-style: normal; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

:focus-visible { outline: var(--rule-mark) solid var(--color-focus); outline-offset: 3px; }
.site-header :focus-visible, .hero :focus-visible, .register :focus-visible, .site-footer :focus-visible { outline-color: var(--color-focus-on-dark); }

.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }

.skip {
  position: absolute; inset-inline-start: var(--space-md); top: var(--space-xs); z-index: 30;
  padding: var(--space-xs) var(--space-md); background: var(--color-paper); color: var(--color-ink);
  border-radius: var(--radius-sm); transform: translateY(-200%);
}
.skip:focus-visible { transform: none; }

/* ---------- buttons and links ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 2.875rem; padding: 0 var(--space-lg);
  border-radius: var(--radius-sm); border: var(--rule-hair) solid transparent;
  font-weight: 600; font-size: var(--text-base); text-decoration: none; white-space: nowrap;
  transition: background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.btn:active { transform: translateY(1px); }
.btn--light { background: var(--color-on-dark); color: var(--color-band); }
.btn--light:hover { background: var(--color-accent-on-dark); }
.btn--glass {
  color: var(--color-on-dark); background: var(--glass-dark); border-color: var(--glass-edge);
  box-shadow: 0 1px 0 var(--glass-edge) inset;
  -webkit-backdrop-filter: blur(12px) saturate(1.4); backdrop-filter: blur(12px) saturate(1.4);
  transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.btn--glass:hover { background: var(--glass-dark-hover); border-color: var(--glass-edge-strong); }
.btn--compact { min-height: 2.5rem; padding: 0 var(--space-md); font-size: var(--text-sm); }
.btn--large { min-height: 3.25rem; padding: 0 var(--space-xl); font-size: var(--text-lg); }


/* ---------- header ---------- */
.site-header { position: fixed; inset: 0 0 auto 0; z-index: 20; color: var(--color-on-dark); }
/* over the photo: frosted glass; past the hero: solid ink (::before fades in) */
.site-header[data-state="over-photo"] {
  background: var(--glass-ink); box-shadow: inset 0 -1px 0 var(--glass-edge-soft);
  -webkit-backdrop-filter: blur(14px) saturate(1.3); backdrop-filter: blur(14px) saturate(1.3);
}
.site-header::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--color-band); border-bottom: var(--rule-hair) solid var(--color-rule-on-dark);
  opacity: 0; transition: opacity var(--dur-base) var(--ease-out);
}
.site-header[data-state="solid"]::before { opacity: 1; }
.site-header__inner {
  display: flex; align-items: center; gap: var(--space-lg);
  max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter);
  height: var(--header-h);
}
.brand { flex: none; display: block; }
.brand img { height: 2.5rem; width: auto; }
.site-nav { display: none; gap: var(--space-lg); margin-inline-start: auto; }
.site-nav a, .mobile-menu a {
  font-size: var(--text-sm); font-weight: 500; text-decoration: none; white-space: nowrap;
  color: var(--color-on-dark); text-underline-offset: 0.45em; text-decoration-thickness: 1px;
}
.site-nav a:hover, .mobile-menu a:hover { text-decoration-line: underline; text-decoration-color: var(--color-accent-on-dark); }
.site-header__actions { display: flex; align-items: center; gap: var(--space-sm); margin-inline-start: auto; }
.lang-switch, .menu-toggle {
  min-height: 2.5rem; padding: 0 var(--space-sm); font-size: var(--text-sm); font-weight: 500; white-space: nowrap;
  border-radius: var(--radius-sm); border: var(--rule-hair) solid var(--color-rule-on-dark);
}
.lang-switch:hover, .menu-toggle:hover { border-color: var(--color-on-dark-muted); }
.lang-switch:lang(ar) { font-family: var(--font-arabic); }
.lang-switch:lang(en) { font-family: var(--font-body); }
.mobile-menu {
  position: relative; display: grid; gap: var(--space-2xs);
  padding: var(--space-xs) var(--gutter) var(--space-lg);
  background: var(--color-band); border-bottom: var(--rule-hair) solid var(--color-rule-on-dark);
}
.mobile-menu a { padding: var(--space-sm) 0; font-size: var(--text-base); border-bottom: var(--rule-hair) solid var(--color-rule-on-dark); }
/* phones: the logo is wide (3.2:1), so the row is tightened to give it room */
@media (max-width: 419px) {
  .site-header__inner { gap: var(--space-xs); padding-inline: var(--space-sm); } .brand img { height: 2.125rem; }
  .site-header__actions { gap: 0.375rem; }
}
@media (max-width: 374px) {
  .site-header__inner { gap: 0.375rem; padding-inline: 0.625rem; } .brand img { height: clamp(1.875rem, 1.875rem + (100vw - 20rem) * 0.3, 2.125rem); } .site-header__actions { gap: var(--space-2xs); }
  .btn--compact { padding: 0 var(--space-xs); } .lang-switch, .menu-toggle { padding: 0 0.375rem; }
  .btn--large { padding: 0 var(--space-md); font-size: var(--text-base); }
}
.btn--large { max-width: 100%; }
button:disabled, .btn[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; }
@media (min-width: 720px) and (max-width: 899px) { .brand img { height: 2.75rem; } }
@media (min-width: 900px) {
  .site-nav { display: flex; }
  .site-header__actions { margin-inline-start: var(--space-md); }
  .menu-toggle { display: none; }
  .brand img { height: 3rem; }
}

/* ---------- hero ---------- */
.hero {
  position: relative; isolation: isolate;
  min-height: max(100svh, 36rem);
  display: flex; flex-direction: column; justify-content: flex-end;
  padding-top: calc(var(--header-h) + var(--space-2xl));
  color: var(--color-on-dark);
  background: var(--color-band);
}
.hero__photo, .hero__photo img, .hero__scrim { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__photo { z-index: -2; }
.hero__photo { overflow: hidden; }
.hero__photo img { object-fit: cover; filter: blur(var(--hero-blur, 0px)); transform: scale(var(--hero-zoom, 1)); }
/* shade "standard" (default): a sharp photo stays clear where no text sits; dark enough under
 * the text for >= 4.5:1 over a bright sky. Phones: text spans the width, so the shade rises
 * from the bottom and the photo shows between the header and the text. Desktop: the text
 * column side is shaded, the far side stays clear. */
.hero__scrim {
  z-index: -1;
  background:
    linear-gradient(to bottom, var(--scrim-strong) 0, var(--scrim-mid) var(--header-h), var(--scrim-clear) 12rem),
    linear-gradient(to top, var(--scrim-strong) 0, var(--scrim-strong) 45%, var(--scrim-text) 68%, var(--scrim-clear) 92%);
}
@media (min-width: 720px) {
  .hero__scrim {
    background:
      linear-gradient(to bottom, var(--scrim-strong) 0, var(--scrim-mid) var(--header-h), var(--scrim-clear) 12rem),
      linear-gradient(var(--scrim-side), var(--scrim-strong) 0, var(--scrim-text) 40%, var(--scrim-clear) 72%),
      linear-gradient(to top, var(--scrim-strong) 0, var(--scrim-mid) 50%, var(--scrim-clear) 90%);
  }
}
/* shade "deep" (settings.heroImage.shade): darker overall, for a soft or busy photo */
.hero[data-shade="deep"] .hero__scrim {
  background:
    linear-gradient(to top, var(--scrim-strong) 0, var(--scrim-mid) 55%, var(--scrim-soft) 100%),
    linear-gradient(var(--scrim-side), var(--scrim-mid) 0, var(--scrim-clear) 70%);
}
.hero { --scrim-side: to right; }
[dir="rtl"] .hero { --scrim-side: to left; }
.hero__body {
  width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter);
  padding-bottom: var(--space-xl);
}
/* phones: the text can start anywhere from mid-screen to just under the header (short screens put
 * it over the bright sky), so a shade rides with the text block itself: clear 4rem above it,
 * scrim-text from its first line down. Measured >= 4.5:1 on both photos at 320x568 and up. */
@media (max-width: 719px) {
  .hero__body { position: relative; }
  .hero__body::before {
    content: ""; position: absolute; inset: -4rem 0 0 0; z-index: -1; pointer-events: none;
    background: linear-gradient(to bottom, var(--scrim-clear) 0, var(--scrim-text) 4rem);
  }
}
.hero__host { font-size: var(--text-sm); font-weight: 500; color: var(--color-on-dark); max-width: 60ch; }
.hero__title {
  margin-top: var(--space-sm);
  font-weight: 500; font-size: var(--text-display);
  line-height: var(--leading-tight); letter-spacing: -0.025em; max-width: 14ch;
}
/* the conference slogan: second voice of the hero, larger than any section title, teal so it reads as its own line */
.hero__tagline {
  margin-top: var(--space-md); max-width: 22ch;
  font-size: var(--text-slogan); font-weight: 500; line-height: 1.15; letter-spacing: -0.015em;
  color: var(--color-accent-on-dark);
  text-wrap: balance;
}
.hero__actions { margin-top: var(--space-xl); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-md) var(--space-xl); }

.facts {
  width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter);
  display: grid; grid-template-columns: minmax(0, 1fr);
}
.facts__item {
  display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: var(--space-md);
  padding-block: var(--space-sm); border-top: var(--rule-hair) solid var(--color-rule-on-dark);
}
.facts dt { font-size: var(--text-sm); color: var(--color-on-dark-muted); }
.facts dd { display: flex; flex-wrap: wrap; column-gap: var(--space-xs); }
.facts__value { font-weight: 500; }
.facts__sub { color: var(--color-on-dark-muted); }
@media (min-width: 720px) {
  .facts { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--space-xl); padding-bottom: var(--space-lg); }
  .facts__item { grid-template-columns: minmax(0, 1fr); align-content: start; gap: var(--space-2xs); padding-block: var(--space-md) 0; }
  .facts dd { display: grid; }
  .facts__value { font-size: var(--text-lg); }
}

/* one gentle entrance, nothing else moves */
@keyframes rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.is-ready .hero__body, .is-ready .facts { animation: rise var(--dur-slow) var(--ease-out) both; }
.is-ready .facts { animation-delay: 120ms; }
@media (prefers-reduced-motion: reduce) {
  .is-ready .hero__body, .is-ready .facts { animation: none; }
  .site-header::before { transition: none; }
}

/* ---------- sections ---------- */
.section { padding-block: var(--space-2xl); }
@media (min-width: 720px) { .section { padding-block: var(--space-3xl); } }
.section-title {
  font-size: var(--text-3xl); font-weight: 500;
  line-height: var(--leading-snug); letter-spacing: -0.015em;
}
:lang(ar) .section-title, :lang(ar) .hero__title, :lang(ar) .hero__tagline, :lang(ar) .register__title, :lang(ar) .about__vision {
  font-weight: 600; letter-spacing: 0; line-height: 1.35;
}
:lang(ar) .about__vision { font-weight: 400; line-height: 1.7; }
:lang(ar) .hero__title { max-width: 12ch; text-wrap: balance; }

/* about */
.about__grid { display: grid; gap: var(--space-2xl); grid-template-columns: minmax(0, 1fr); }
.about__vision {
  margin-top: var(--space-lg); max-width: 34ch;
  font-size: var(--text-2xl); line-height: 1.35; letter-spacing: -0.01em; color: var(--color-ink);
}
.welcome { border-inline-start: var(--rule-mark) solid var(--color-accent); padding-inline-start: var(--space-lg); }
.welcome p { max-width: var(--measure); }
.welcome p + p, .welcome__rest p { margin-top: var(--space-md); }
.welcome__lead { font-size: var(--text-lg); }
.welcome__by { margin-top: var(--space-lg); display: grid; gap: var(--space-2xs); }
.welcome__author { font-weight: 600; }
.welcome__role { font-size: var(--text-sm); color: var(--color-neutral); max-width: 48ch; }
.text-toggle {
  margin-top: var(--space-md); min-height: 2.75rem; font-weight: 500; color: var(--color-accent);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.3em;
}
.text-toggle:hover { text-decoration-thickness: 2px; }
/* objectives: own section, one tonal step darker than About */
.objectives-section { background: var(--color-paper-2); }
.objectives { margin-top: var(--space-xl); counter-reset: obj; display: grid; grid-template-columns: minmax(0, 1fr); column-gap: var(--space-2xl); }
@media (min-width: 720px) { .objectives { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.objectives li {
  counter-increment: obj; display: grid; grid-template-columns: 2rem minmax(0, 1fr);
  padding-block: var(--space-sm); border-top: var(--rule-hair) solid var(--color-rule);
}
.objectives li::before { content: counter(obj); color: var(--color-accent); font-variant-numeric: tabular-nums; font-weight: 500; }
@media (min-width: 960px) {
  .about__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); row-gap: var(--space-2xl); column-gap: var(--space-xl); }
  .about__lead { grid-column: 1 / span 6; }
  .about__welcome { grid-column: 8 / span 5; padding-top: var(--space-xs); }
}

/* tracks */
.tracks { background: var(--color-paper-3); }
.track-list { margin-top: var(--space-xl); display: grid; grid-template-columns: minmax(0, 1fr); column-gap: var(--space-2xl); }
.track {
  display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: var(--space-sm);
  padding-block: var(--space-lg); border-top: var(--rule-hair) solid var(--color-rule);
}
.track { position: relative; isolation: isolate; }
/* the same glass sheet as the program rows, on hover only (tracks are not links); drawn on ::before so the rules stay aligned */
.track::before {
  content: ""; position: absolute; inset: -1px calc(-1 * var(--space-md)) 0; z-index: -1;
  border-radius: var(--radius-sm); border: var(--rule-hair) solid transparent;
  transition: background-color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
@media (hover: hover) {
  .track:hover::before {
    background: var(--glass-light); border-color: var(--glass-light-edge); box-shadow: var(--shadow-lift);
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  }
}
.track__num { font-variant-numeric: tabular-nums; color: var(--color-accent); font-weight: 500; padding-top: 0.2em; }
.track__name { font-weight: 500; font-size: var(--text-xl); line-height: var(--leading-snug); }
:lang(ar) .track__name { font-weight: 600; font-size: var(--text-lg); }
.track__text { margin-top: var(--space-xs); color: var(--color-muted); max-width: 52ch; }
@media (min-width: 720px) { .track-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* program */
.program { background: var(--color-paper-2); }
.program__head { display: grid; gap: var(--space-sm); }
.program__note { color: var(--color-muted); max-width: 60ch; }
.day-tabs { margin-top: var(--space-xl); display: flex; gap: var(--space-xl); border-bottom: var(--rule-hair) solid var(--color-rule); }
.day-tab {
  position: relative; display: grid; gap: 0; padding-block: var(--space-sm); text-align: start;
  color: var(--color-neutral); min-height: 2.75rem;
}
.day-tab::after {
  content: ""; position: absolute; inset-inline: 0; bottom: -1px; height: var(--rule-mark);
  background: var(--color-accent); transform: scaleX(0); transition: transform var(--dur-base) var(--ease-out);
}
.day-tab[aria-selected="true"] { color: var(--color-ink); }
.day-tab[aria-selected="true"]::after { transform: scaleX(1); }
.day-tab:hover { color: var(--color-ink); }
.day-tab__label { font-weight: 500; font-size: var(--text-xl); line-height: 1.2; }
:lang(ar) .day-tab__label { font-weight: 600; font-size: var(--text-lg); }
.day-tab__date { font-size: var(--text-sm); white-space: nowrap; }
@media (max-width: 359px) { .day-tabs { gap: var(--space-md); } .day-tab__date { font-size: var(--text-xs); } }
.day-panel__theme { margin-top: var(--space-lg); color: var(--color-muted); }
.rows { margin-top: var(--space-md); }
.row { border-bottom: var(--rule-hair) solid var(--color-rule); border-inline: var(--rule-hair) solid transparent; }
.row__line {
  display: grid; grid-template-columns: minmax(0, 1fr) 1.5rem; column-gap: var(--space-md); row-gap: var(--space-2xs);
  width: 100%; padding: var(--space-md); text-align: start; align-items: start;
}
/* shading: sessions lift off the paper, briefings stay on it, breaks recede */
.row--session {
  margin-block: var(--space-xs); background: var(--color-lift); box-shadow: var(--shadow-rest);
  border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-sm);
  transition: background-color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
.row--session:hover, .row--session:has(:focus-visible), .row--session:has([aria-expanded="true"]) {
  background: var(--glass-light); border-color: var(--glass-light-edge); box-shadow: var(--shadow-lift);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.row--session .row__line--button:focus-visible { outline-offset: -3px; }
.row--break .row__line { padding-block: var(--space-sm); }
.row--break .row__time { color: var(--color-neutral); }
.row__time { grid-column: 1 / -1; font-size: var(--text-sm); font-variant-numeric: tabular-nums; color: var(--color-neutral); direction: ltr; unicode-bidi: isolate; text-align: start; }
.row__main { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2xs) var(--space-sm); min-width: 0; }
.row__title { font-weight: 500; text-decoration-line: none; text-decoration-thickness: 1px; text-underline-offset: 0.3em; }
.row__tags { display: inline-flex; flex-wrap: wrap; gap: var(--space-xs); }
.tag {
  font-size: var(--text-xs); font-weight: 500; color: var(--color-muted); white-space: nowrap;
  padding: 0 var(--space-xs); border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-sm);
}
.row__note { flex-basis: 100%; color: var(--color-muted); font-size: var(--text-sm); }
.row--break .row__title { font-weight: 400; color: var(--color-muted); }
.row--group { border-bottom: 0; padding-top: var(--space-xl); }
.row__group { font-size: var(--text-sm); font-weight: 600; color: var(--color-neutral); padding-bottom: var(--space-xs); border-bottom: var(--rule-hair) solid var(--color-rule); }
.row__line--button:hover .row__title { text-decoration-line: underline; text-decoration-color: var(--color-accent); }
.row__line--button[aria-expanded="true"] .row__title { text-decoration-line: underline; text-decoration-color: var(--color-accent); text-decoration-thickness: 2px; }
.row__icon { position: relative; width: 1.5rem; height: 1.5rem; margin-top: 0.1em; border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-full); }
.row__icon::before, .row__icon::after {
  content: ""; position: absolute; inset: 50% auto auto 50%; width: 0.625rem; height: 1.5px; margin: -0.75px 0 0 -0.3125rem;
  background: var(--color-ink); transition: transform var(--dur-base) var(--ease-out);
}
.row__icon::after { transform: rotate(90deg); }
.row__line--button[aria-expanded="true"] .row__icon::after { transform: rotate(0deg); }
.row__line--button:hover .row__icon { border-color: var(--color-accent); }
.row__panel { padding: 0 var(--space-md) var(--space-lg); display: grid; gap: var(--space-lg); animation: fade var(--dur-base) var(--ease-out); }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .row__panel { animation: none; }
  .row__icon::before, .row__icon::after, .day-tab::after, .row--session, .track::before, .btn { transition: none; }
}
/* no backdrop-filter: the glass turns solid */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .site-header[data-state="over-photo"], .btn--glass { background: var(--glass-solid-dark); }
  .row--session:hover, .row--session:has(:focus-visible), .row--session:has([aria-expanded="true"]), .track:hover::before { background: var(--color-lift); }
}
.people { display: grid; gap: var(--space-xs); }
.people__item { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.people dt { font-size: var(--text-sm); color: var(--color-neutral); }
.people dd { font-weight: 500; }
.row__label { font-size: var(--text-sm); font-weight: 600; }
.row__objectives ul { margin-top: var(--space-xs); display: grid; gap: var(--space-xs); max-width: var(--measure); }
.row__objectives li { position: relative; padding-inline-start: var(--space-lg); color: var(--color-muted); }
.row__objectives li::before { content: ""; position: absolute; inset-inline-start: 0; top: 0.75em; width: 0.625rem; height: 1px; background: var(--color-accent); }
@media (min-width: 720px) {
  .program__head { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; column-gap: var(--space-2xl); }
  .row__line { grid-template-columns: 8rem minmax(0, 1fr) 1.5rem; }
  .row__time { grid-column: auto; font-size: var(--text-base); padding-top: 0.05em; }
  .row__panel { padding-inline-start: calc(8rem + 2 * var(--space-md)); padding-inline-end: calc(1.5rem + 2 * var(--space-md)); }
  .people__item { grid-template-columns: 10rem minmax(0, 1fr); gap: var(--space-md); }
  .row__note { font-size: var(--text-base); }
  .row .row__main .row__note { font-size: var(--text-sm); }
}

/* committee */
.committee-list { margin-top: var(--space-xl); display: grid; grid-template-columns: minmax(0, 1fr); column-gap: var(--space-xl); }
.member { padding-block: var(--space-md); border-top: var(--rule-hair) solid var(--color-rule); }
.member__name { font-weight: 600; }
.member__role { margin-top: var(--space-2xs); font-size: var(--text-sm); color: var(--color-muted); max-width: 45ch; }
@media (min-width: 640px) { .committee-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .committee-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* register + venue band */
.register { background: var(--color-band); color: var(--color-on-dark); }
.register__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-2xl); }
.register__title { font-weight: 500; letter-spacing: -0.015em; font-size: var(--text-3xl); line-height: var(--leading-snug); }
.register__note { margin-top: var(--space-sm); color: var(--color-on-dark-muted); }
.register .btn--large { margin-top: var(--space-xl); }
.calendar { margin-top: var(--space-xl); display: grid; gap: var(--space-2xs); }
.calendar__label { font-size: var(--text-sm); color: var(--color-on-dark-muted); }
.calendar__links { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-sm); align-items: baseline; }
.calendar__links a, .venue__map {
  color: var(--color-on-dark); font-weight: 500; white-space: nowrap;
  text-decoration-thickness: 1px; text-underline-offset: 0.3em; text-decoration-color: var(--color-on-dark-muted);
}
.calendar__links a:hover, .venue__map:hover { color: var(--color-accent-on-dark); text-decoration-color: var(--color-accent-on-dark); }
.sep { color: var(--color-on-dark-muted); }
.register__subhead { font-size: var(--text-sm); font-weight: 600; color: var(--color-on-dark-muted); }
.register__subhead + * { margin-top: var(--space-sm); }
.key-dates + .register__subhead { margin-top: var(--space-xl); }
.key-dates__item {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-md);
  padding-block: var(--space-sm); border-top: var(--rule-hair) solid var(--color-rule-on-dark);
}
.key-dates dd { font-variant-numeric: tabular-nums; font-weight: 500; text-align: end; }
.venue { display: grid; gap: var(--space-2xs); padding-top: var(--space-sm); border-top: var(--rule-hair) solid var(--color-rule-on-dark); }
.venue__name { font-weight: 600; font-size: var(--text-lg); }
.venue__city { color: var(--color-on-dark-muted); }
.venue__map { margin-top: var(--space-xs); justify-self: start; }
@media (min-width: 900px) {
  .register__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-xl); }
  .register__main { grid-column: 1 / span 6; }
  .register__facts { grid-column: 8 / span 5; }
}

/* footer */
.site-footer { background: var(--color-band-2); color: var(--color-on-dark-muted); padding-block: var(--space-xl); font-size: var(--text-sm); }
.site-footer__inner { display: grid; gap: var(--space-md); }
.site-footer__logos { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xl); }
.site-footer__logos img { height: 2.25rem; width: auto; }
.site-footer__host { color: var(--color-on-dark); }
@media (min-width: 900px) {
  .site-footer__inner { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; column-gap: var(--space-2xl); }
  .site-footer__rights { text-align: end; }
}

.noscript { padding: var(--space-2xl) var(--gutter); max-width: var(--measure); }
