/* ============================================================
   srday-event — site-specific styles on top of the design system.
   Identity color for this surface: amber (warmth — the commons, doors).
   BQ2-11: stripped to essentials — no venue/address (ticket-only), no blurb,
   no calendar button (that lives on the ticket page). Oxide appears at most
   once per surface: gated = the "it's me" pill; day 1/2 = none.
   ============================================================ */

/* ---------- Day tabs (nav) ---------- */
/* the ds sets .srd-nav__links to display:flex, which beats [hidden] — restore it */
#day-tabs[hidden] { display: none; }
.ev-tab {
  appearance: none;
  background: none;
  border: 0;
  padding: 10px 2px; /* 44px touch target with the nav padding */
  cursor: pointer;
  font-family: var(--srd-font-mono);
  font-size: var(--srd-text-micro);
  letter-spacing: var(--srd-track-label);
  text-transform: uppercase;
  color: var(--srd-ink-mute);
  border-bottom: 1px solid transparent;
  transition: color var(--srd-dur-fast) var(--srd-ease);
}
.ev-tab:hover { color: var(--srd-ink); }
.ev-tab--active {
  color: var(--srd-amber);
  border-bottom-color: var(--srd-amber);
}

/* ---------- Gate (no identity) ---------- */
.ev-gate {
  max-width: 26rem;
  margin: var(--srd-s7) auto;
  text-align: center;
}
.ev-gate h1 { font-size: var(--srd-text-h2); }
.ev-gate .srd-sub { margin-top: var(--srd-s3); }
.ev-gate .srd-login {
  margin-top: var(--srd-s5);
  display: grid;
  gap: var(--srd-s3);
  text-align: left;
}
.ev-gate .srd-login .srd-btn { justify-self: center; }
.ev-gate .srd-login [data-login-error] { text-align: center; }

/* ---------- Personal chip (day-1 header greeting) ---------- */
/* your figure, small and quiet, above the day-1 headline. sorted = the baked
   camp specimen PNG (ds/specimen) + the camp name in that camp's color
   (lunarpunk=violet · glasshaus=cyan · swarmpunk=amber · terrapunk=bone —
   the camp palette, not this surface's accent). dashed border + ghosted
   figure = unsorted (dashed only ever means unclaimed/locked/absent — the
   hat hasn't met you yet); the ghost is the shared wireframe from
   ds/shape.js, unchanged. */
.ev-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 14px 5px 8px;
  margin-bottom: var(--srd-s4);
  border: 1px solid var(--srd-line-soft);
  border-radius: 999px;
}
.ev-chip__shape {
  display: block;
  width: 30px;
  height: 30px;
}
.ev-chip__name {
  font-family: var(--srd-font-mono);
  font-size: var(--srd-text-micro);
  letter-spacing: var(--srd-track-label);
  text-transform: uppercase;
  color: var(--srd-ink-mute);
  max-width: 22ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* baked specimen = a small round porthole (the PNG carries the camp's own
   background); the ghost canvas stays transparent + square as before */
img.ev-chip__shape { border-radius: 50%; }
.ev-chip__camp {
  font-family: var(--srd-font-mono);
  font-size: var(--srd-text-micro);
  letter-spacing: var(--srd-track-label);
  text-transform: uppercase;
  padding-left: 8px;
  border-left: 1px solid var(--srd-line-soft);
  white-space: nowrap;
}
.ev-chip__camp:empty { display: none; } /* no bare divider while the engine loads */
.ev-chip[data-camp='lunarpunk'] .ev-chip__camp { color: var(--srd-violet); }
.ev-chip[data-camp='glasshaus'] .ev-chip__camp { color: var(--srd-cyan); }
.ev-chip[data-camp='swarmpunk'] .ev-chip__camp { color: var(--srd-amber); }
.ev-chip[data-camp='terrapunk'] .ev-chip__camp { color: var(--srd-bone); }
.ev-chip--unsorted { border-style: dashed; }
.ev-chip--unsorted .ev-chip__shape { opacity: 0.45; }

/* ---------- Pre view: hero with the one luminous object ---------- */
.ev-hero {
  position: relative;
  padding: var(--srd-s7) 0 var(--srd-s6);
  text-align: center;
}

.ev-lumen {
  position: relative;
  width: min(72vw, 300px);
  height: min(72vw, 300px);
  margin: 0 auto var(--srd-s5);
}
.ev-lumen canvas { display: block; width: 100%; height: 100%; }
/* light pool under the object — light, not paint */
.ev-lumen::after {
  content: "";
  position: absolute;
  inset: -18%;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 52%,
    rgba(217,154,60,0.13), rgba(217,154,60,0.04) 45%, transparent 70%); /* --srd-amber #d99a3c */
  pointer-events: none;
}

.ev-hero h1 { font-size: var(--srd-text-h1); }
/* one clean dates + hours line under the headline (BQ2-11 — the only fact we
   show; the venue address is ticket-only and never renders here) */
.ev-when {
  margin: var(--srd-s4) auto 0;
  color: var(--srd-ink-soft);
  font-family: var(--srd-font-mono);
  font-size: var(--srd-text-label);
  letter-spacing: var(--srd-track-label);
}

/* ---------- Day 2 (Friday): a bare title, nothing else ---------- */
.ev-day2 {
  margin: var(--srd-s8) auto;
  max-width: 40ch;
  text-align: center;
}
.ev-day2 h1 { font-size: var(--srd-text-h2); }

/* ---------- Agenda (days[0].agenda — time / title / room rows) ---------- */
.ev-agenda { margin: var(--srd-s6) 0; }
.ev-agenda table { width: 100%; border-collapse: collapse; margin-top: var(--srd-s3); }
.ev-agenda td {
  padding: 10px 12px 10px 0;
  border-top: 1px solid var(--srd-line-soft);
  vertical-align: baseline;
}
.ev-agenda td.t {
  font-family: var(--srd-font-mono);
  font-size: var(--srd-text-label);
  letter-spacing: var(--srd-track-label);
  color: var(--srd-ink-mute);
  white-space: nowrap;
}
.ev-agenda td.w { color: var(--srd-ink); width: 100%; }
.ev-agenda td.r {
  font-family: var(--srd-font-mono);
  font-size: var(--srd-text-label);
  letter-spacing: var(--srd-track-label);
  text-transform: uppercase;
  color: var(--srd-amber);
  white-space: nowrap;
  padding-right: 0;
}

/* ---------- Live view: rooms + now/next board ---------- */
.ev-asof {
  font-family: var(--srd-font-mono);
  font-size: var(--srd-text-label);
  letter-spacing: var(--srd-track-label);
  text-transform: uppercase;
  color: var(--srd-ink-mute);
  margin: var(--srd-s3) 0 0;
}

.ev-rooms {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--srd-s3);
  margin: var(--srd-s5) 0;
}
@media (min-width: 720px) { .ev-rooms { grid-template-columns: 1fr 1fr; } }

.ev-room__slot { display: flex; gap: var(--srd-s3); margin-top: var(--srd-s2); align-items: baseline; }
.ev-room__k {
  flex: 0 0 3.2em;
  font-family: var(--srd-font-mono);
  font-size: var(--srd-text-micro);
  letter-spacing: var(--srd-track-label);
  text-transform: uppercase;
  color: var(--srd-ink-mute);
}
.ev-room__slot--now .ev-room__k { color: var(--srd-amber); }
.ev-room__v { color: var(--srd-ink); }
.ev-room__slot--next .ev-room__v { color: var(--srd-ink-soft); }

.ev-board { margin: var(--srd-s6) 0 var(--srd-s7); }
.ev-board table { width: 100%; border-collapse: collapse; }
.ev-board td {
  padding: 10px 12px 10px 0;
  border-top: 1px solid var(--srd-line-soft);
  vertical-align: baseline;
}
.ev-board td.t {
  font-family: var(--srd-font-mono);
  font-size: var(--srd-text-label);
  letter-spacing: var(--srd-track-label);
  color: var(--srd-ink-mute);
  white-space: nowrap;
}
.ev-board td.r {
  font-family: var(--srd-font-mono);
  font-size: var(--srd-text-label);
  letter-spacing: var(--srd-track-label);
  text-transform: uppercase;
  color: var(--srd-amber);
  white-space: nowrap;
}
.ev-board td.w { color: var(--srd-ink); width: 100%; }

.ev-day2-soon{margin-top:var(--srd-s3);font-family:var(--srd-font-mono);font-size:var(--srd-text-micro);letter-spacing:.22em;text-transform:uppercase;color:var(--srd-ink-mute)}
