/* Two activities per row, with complete photographs modestly smaller than the first layout. */
body.academic-page .activity-archive { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 32px; align-items: start; }
body.academic-page .activity-entry { min-width: 0; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
body.academic-page .activity-entry[hidden] { display: none; }
body.academic-page .activity-pagination { max-width: none; }
body.academic-page .activity-entry-copy { min-width: 0; }
body.academic-page .activity-entry > .activity-photo,
body.academic-page .activity-entry > .activity-carousel { margin-bottom: 18px; }
body.academic-page .activity-photo { min-width: 0; margin: 0; }
body.academic-page .activity-photo > a { display: block; background: var(--mist); }
body.academic-page .activity-photo img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; max-height: 300px; object-fit: contain; background: var(--mist); }
body.academic-page .activity-entry-meta { display: flex; flex-wrap: wrap; gap: 4px 18px; color: var(--ink-soft); font-size: 14px; line-height: 1.75; font-variant-numeric: tabular-nums; }
body.academic-page .activity-entry-meta time,
body.academic-page .activity-entry-meta .activity-date { font-weight: 700; }
body.academic-page .activity-entry-meta > span:not(.activity-date) { color: var(--teal); }
body.academic-page .activity-entry h3 { margin: 8px 0 12px; font-size: 21px; line-height: 1.5; text-wrap: pretty; }
body.academic-page .activity-description { margin: 0; color: var(--ink-soft); font-size: 16px; line-height: 1.85; }

/* Without JavaScript, all photographs remain reachable in a native horizontal strip. */
body.academic-page .activity-carousel { position: relative; min-width: 0; }
body.academic-page .activity-carousel-viewport { overflow-x: auto; scroll-snap-type: x mandatory; }
body.academic-page .activity-carousel-track { display: flex; align-items: start; }
body.academic-page .activity-carousel .activity-photo { flex: 0 0 100%; scroll-snap-align: start; }
body.academic-page .activity-carousel.is-enhanced .activity-carousel-viewport { overflow: hidden; scroll-snap-type: none; touch-action: pan-y pinch-zoom; }
body.academic-page .activity-carousel.is-enhanced .activity-carousel-track { transition: transform 320ms ease; }
body.academic-page .activity-carousel-dots { position: absolute; right: 8px; bottom: 8px; display: flex; flex-wrap: wrap; justify-content: flex-end; max-width: calc(100% - 16px); padding: 0; border: 0; background: transparent; }
body.academic-page .activity-carousel-dots[hidden] { display: none; }
body.academic-page .activity-carousel-dots button { display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
body.academic-page .activity-carousel-dots button > span { display: block; width: 6px; height: 6px; border: 0; border-radius: 50%; background: #788990; }
body.academic-page .activity-carousel-dots button[aria-pressed="true"] > span { background: var(--teal); }
body.academic-page .activity-carousel-dots button:not([aria-pressed="true"]):hover > span { background: var(--ink); }
body.academic-page .activity-carousel-dots button:focus-visible { outline: 2px solid var(--teal); outline-offset: -2px; }
body.academic-page .activity-photo a:focus-visible,
body.academic-page .activity-carousel-viewport:focus-visible { outline: 3px solid var(--teal); outline-offset: -3px; }

@media (max-width: 700px) {
  body.academic-page .activity-archive { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  body.academic-page .activity-entry h3 { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  body.academic-page .activity-carousel.is-enhanced .activity-carousel-track { transition: none; }
}
@media (pointer: coarse) {
  body.academic-page .activity-carousel-dots button { flex-basis: 44px; width: 44px; height: 44px; }
}
