* {
  box-sizing:border-box}
html {
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:var(--canvas);
  font-size:16px;
  line-height:1.5;
  scrollbar-color:var(--muted) var(--canvas)}
body {
  margin:0}
::selection {
  background:var(--teal);
  color:white}
a {
  color:var(--teal);
  text-underline-offset:3px}
a:hover {
  text-decoration-thickness:2px}
button,input,select {
  font:inherit;
  min-height:44px;
  border-radius:var(--control-radius);
  border:1px solid var(--control-border);
  padding:10px 14px;
  color:var(--text);
  background:white}
button {
  cursor:pointer}
button:hover,.resource-link:hover {
  background:var(--tint)}
input {
  width:100%;
  caret-color:var(--teal)}
input::placeholder {
  color:var(--muted)}
:focus-visible {
  outline:3px solid var(--teal);
  outline-offset:3px}
[hidden] {
  display:none!important}
.site-header {
  background:var(--navy);
  color:white}
.header-inner {
  max-width:1120px;
  margin:auto;
  padding:20px 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px}
.brand {
  color:white;
  font-size:20px;
  font-weight:700;
  text-decoration:none;
  line-height:1.3}
.brand span {
  display:block;
  font-size:13px;
  font-weight:400;
  margin-top:4px;
  color:#d3e2ec}
nav {
  display:flex;
  align-items:center;
  gap:12px}
.site-header nav a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  color:white;
  padding:10px 12px;
  text-decoration:none;
  border-radius:8px}
.site-header nav a[aria-current] {
  background:#29475c;
  text-decoration:underline}
.site-header :focus-visible {
  outline-color:white}
.admin-entry {
  font-size:14px}
main {
  max-width:1120px;
  margin:auto;
  padding:32px;
  min-height:70vh}
h1,h2,h3 {
  color:var(--navy);
  margin:0;
  line-height:1.3;
  overflow-wrap:anywhere}
h1 {
  font-size:32px;
  letter-spacing:-.02em;
  text-wrap:balance}
h2 {
  font-size:22px}
h3 {
  font-size:18px}
p {
  margin:12px 0}
.page-intro {
  margin-bottom:24px}
.page-intro p,.muted,.site-footer {
  color:var(--muted)}
.filters {
  display:flex;
  align-items:end;
  gap:12px;
  padding:20px;
  background:white;
  border:1px solid var(--border);
  border-radius:12px;
  margin-bottom:20px}
.filters label {
  display:block;
  font-weight:600;
  margin-bottom:8px}
.search-field {
  flex:1;
  min-width:0}
.filters select {
  width:100%}
.primary {
  background:var(--teal);
  color:white;
  border-color:var(--teal)}
.primary:hover {
  background:#005459;
  color:white}
.reset {
  padding:10px;
  min-height:44px;
  display:inline-flex;
  align-items:center}
section {
  margin-top:32px}
.nearest-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:16px}
.event-card {
  background:white;
  border:1px solid var(--border);
  border-radius:12px;
  padding:24px;
  min-width:0}
.event-meta {
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:12px}
.status {
  display:inline-block;
  padding:4px 10px;
  border-radius:8px;
  font-size:14px;
  font-weight:600;
  color:var(--navy);
  background:#eaf0f5}
.status-ongoing {
  color:var(--teal);
  background:var(--tint)}
.status-finished {
  color:var(--muted);
  background:#edf1f4}
.event-card h2 a,.event-card h3 a {
  display:flex;
  align-items:center;
  min-height:44px;
  color:var(--navy);
  text-decoration:none}
.event-card h3 a:hover {
  text-decoration:underline}
.schedule {
  font-variant-numeric:tabular-nums;
  color:var(--muted);
  font-size:14px;
  overflow-wrap:anywhere}
.detail-link {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  font-weight:600;
  margin-top:8px}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:16px}
.section-heading p {
  color:var(--muted);
  margin:0}
.event-list {
  display:grid;
  gap:12px}
.pagination {
  justify-content:center;
  margin:24px 0;
  flex-wrap:wrap}
.pagination a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:8px 12px;
  background:white;
  border:1px solid var(--border);
  border-radius:8px}
.empty-state {
  padding:32px;
  background:white;
  border:1px solid var(--border);
  border-radius:12px}
.site-footer {
  max-width:1120px;
  margin:auto;
  padding:24px 32px;
  border-top:1px solid var(--border);
  font-size:14px}
.skip-link {
  position:absolute;
  left:16px;
  top:-100px;
  padding:12px;
  background:white;
  z-index:2}
.skip-link:focus {
  top:12px}
.back-link {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  margin-bottom:20px}
.detail-heading {
  margin-bottom:32px}
.detail-heading h1 {
  margin-top:16px;
  max-width:28ch}
.detail-heading .schedule {
  font-size:16px}
.detail-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 280px;
  gap:48px}
.description {
  max-width:72ch;
  overflow-wrap:anywhere}
.resources {
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:16px 0}
.resource-link {
  display:block;
  border:1px solid var(--border);
  border-radius:8px;
  padding:14px 18px;
  font-weight:600;
  min-height:44px;
  text-decoration:none;
  overflow-wrap:anywhere}
.access p {
  color:var(--muted);
  font-size:14px}
.sharing {
  border-top:1px solid var(--border);
  padding-top:24px}
.sharing h2 {
  font-size:18px}
.sharing p {
  font-size:14px;
  color:var(--muted)}
.sharing img {
  display:block;
  max-width:100%;
  height:auto;
  margin:16px 0}
.permanent-url {
  display:block;
  min-height:44px;
  overflow-wrap:anywhere;
  font-size:14px;
  margin:16px 0}
.download-link {
  display:inline-flex;
  align-items:center;
  min-height:44px}
.sharing button {
  width:100%}
#directory-feedback {
  color:var(--muted)}
#directory-feedback:empty {
  display:none}
[aria-busy=true] {
  opacity:.65}
@media(max-width:850px) {
  .nearest-grid {
  grid-template-columns:1fr}
.filters {
  flex-wrap:wrap}
.search-field {
  flex-basis:100%}
.detail-layout {
  grid-template-columns:1fr}
.sharing {
  max-width:400px}
.header-inner {
  flex-wrap:wrap}
}
@media(max-width:480px) {
  main {
  padding:24px 16px}
.header-inner {
  padding:16px;
  gap:12px}
.site-header nav {
  gap:4px;
  width:100%;
  justify-content:space-between}
.site-header nav a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:10px}
h1 {
  font-size:24px}
h2 {
  font-size:20px}
.filters {
  padding:16px}
.filters>div {
  width:100%}
.filters button {
  flex:1}
.event-card {
  padding:20px}
.section-heading {
  align-items:start}
.site-footer {
  padding:24px 16px}
.detail-layout {
  gap:32px}
}

/* Denser repeated results retain full titles and independent 44px links. */
.results .event-card {padding:16px 20px}
.results .event-meta {margin-bottom:4px}
.results .event-card p {margin:4px 0;overflow-wrap:anywhere}
.results .detail-link {margin-top:0}
@media(min-width:851px) {
  .results .event-card {display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px}
  .results .event-card>:not(.detail-link) {grid-column:1}
  .results .detail-link {grid-column:2;grid-row:1/5;align-self:center}
}
