/* Native event detail — event facts first, decisions second, RSVP last.
   Loaded only on the full /event/{slug_or_id} HTML document by the bounded
   brand-document transport. No dashboard, JSON, or mutation route uses this. */
body.wknd-event-detail {
  --ed-ink:#292443;
  --ed-muted:#625f78;
  --ed-paper:#fbf6eb;
  --ed-card:#fffdfb;
  --ed-line:#e7ddec;
  --ed-violet:#6149dc;
  --ed-coral:#e47b6b;
  min-height:100dvh;
  background:
    radial-gradient(ellipse at 100% 0,rgba(255,170,232,.22),transparent 34rem),
    var(--ed-paper);
  color:var(--ed-ink);
  font-family:var(--wknd-brand-font,"Satoshi",Manrope,system-ui,sans-serif);
  -webkit-font-smoothing:antialiased;
}

body.wknd-event-detail *,
body.wknd-event-detail *::before,
body.wknd-event-detail *::after { box-sizing:border-box; }
body.wknd-event-detail :where(a,button,input,textarea,select,[tabindex]):focus-visible {
  outline:3px solid rgba(85,113,253,.65);
  outline-offset:3px;
}
body.wknd-event-detail .top-bar {
  min-height:58px;
  padding:8px max(16px,calc((100vw - 860px)/2));
  background:rgba(255,249,244,.96);
  border-bottom:1px solid var(--ed-line);
  box-shadow:0 3px 14px rgba(53,38,95,.04);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
}
body.wknd-event-detail .top-bar :where(.tbb,.tbb-my-events) {
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:0 10px;
  border-radius:8px;
  color:var(--ed-muted);
  font-size:13px;
  font-weight:700;
  text-decoration:none;
}
body.wknd-event-detail .top-bar .tbl {
  color:var(--ed-violet);
  font-size:13px;
  font-style:italic;
  font-weight:950;
  letter-spacing:-.07em;
  text-decoration:none;
}
body.wknd-event-detail .top-bar :where(.tbb,.tbb-my-events):hover {
  background:#f0eaff;
  color:#4937bc;
}
body.wknd-event-detail .hero {
  width:min(100%,860px);
  max-height:360px;
  margin:20px auto 0;
  border:1px solid rgba(41,36,67,.08);
  border-radius:16px;
  background:#eee9f8;
  box-shadow:0 4px 0 rgba(112,80,244,.06);
}
body.wknd-event-detail .hero img { object-fit:cover; }
body.wknd-event-detail .hero-ph {
  color:transparent;
  font-size:0;
  background:
    radial-gradient(circle at 80% 22%,rgba(255,201,105,.9) 0 7%,transparent 7.5%),
    linear-gradient(140deg,#e9e1ff 0%,#fbdedc 54%,#fff0d0 100%);
}
body.wknd-event-detail .content {
  width:min(100%,860px);
  max-width:860px;
  padding:0 18px calc(120px + env(safe-area-inset-bottom));
}
body.wknd-event-detail .ev-hdr {
  padding:clamp(20px,4vw,34px);
  border:1px solid var(--ed-line);
  border-top:3px solid var(--ed-violet);
  border-radius:0 0 16px 16px;
  background:var(--ed-card);
  box-shadow:0 5px 0 rgba(112,80,244,.06);
}
body.wknd-event-detail .ev-tag {
  display:inline-flex;
  align-items:center;
  min-height:25px;
  margin:0 0 12px;
  padding:3px 9px;
  border-radius:99px;
  background:#f0eaff;
  color:#5140c2;
  font-size:10px;
  font-weight:800;
  letter-spacing:.1em;
}
body.wknd-event-detail .ev-nm {
  max-width:20ch;
  margin:0 0 18px;
  color:var(--ed-ink);
  font-size:clamp(30px,5vw,48px);
  font-weight:850;
  letter-spacing:-.06em;
  line-height:1.02;
  overflow-wrap:anywhere;
}
body.wknd-event-detail .ev-meta {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  margin:0 0 14px;
}
body.wknd-event-detail .ev-mi {
  min-width:0;
  min-height:48px;
  align-items:center;
  padding:10px 12px;
  border:1px solid var(--ed-line);
  border-radius:9px;
  background:#faf7ff;
  color:#433d57;
  font-size:13px;
  font-weight:650;
  overflow-wrap:anywhere;
}
body.wknd-event-detail .ev-icon { margin-top:0; }
body.wknd-event-detail .ev-mlink { color:#5140c2; text-decoration:underline; text-underline-offset:3px; }
body.wknd-event-detail .ev-chips { gap:7px; margin-top:14px; }
body.wknd-event-detail .ev-chip2 {
  min-height:28px;
  display:inline-flex;
  align-items:center;
  padding:5px 10px;
  border:1px solid rgba(97,73,220,.15);
  background:#f0eaff;
  color:#5140c2;
  font-size:11px;
  line-height:1.3;
}
body.wknd-event-detail .event-quick-actions {
  gap:8px;
  margin-top:18px;
  padding-top:16px;
  border-color:var(--ed-line);
}
body.wknd-event-detail .event-quick-action {
  min-height:46px;
  border:1px solid var(--ed-line);
  border-radius:8px;
  background:var(--ed-card);
  color:#514b60;
  font-size:12px;
  transition:transform .16s ease,background-color .16s ease;
}
body.wknd-event-detail .event-quick-action:hover {
  transform:translateY(-1px);
  background:#f2edff;
  border-color:#cfc3f8;
  color:#4937bc;
}
body.wknd-event-detail .ev-desc,
body.wknd-event-detail .lineup-sec {
  margin-top:12px;
  padding:clamp(18px,3vw,26px);
  border:1px solid var(--ed-line);
  border-radius:13px;
  background:var(--ed-card);
  box-shadow:0 3px 0 rgba(112,80,244,.04);
}
body.wknd-event-detail .ev-desc {
  color:#514b60;
  font-size:15px;
  line-height:1.7;
  overflow-wrap:anywhere;
}
body.wknd-event-detail .sec-hd {
  margin:0 0 5px;
  color:var(--ed-ink);
  font-size:20px;
  letter-spacing:-.04em;
}
body.wknd-event-detail .lineup-summary {
  display:block;
  margin:0 0 17px;
  color:var(--ed-muted);
  font-size:12px;
}
body.wknd-event-detail .lineup-cnt { color:var(--ed-muted); }
body.wknd-event-detail .lineup-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
body.wknd-event-detail .lup-chip {
  min-width:0;
  min-height:128px;
  justify-content:flex-start;
  padding:12px 8px;
  border:1px solid var(--ed-line);
  border-radius:11px;
  background:#faf7ff;
  color:var(--ed-ink);
}
body.wknd-event-detail .lup-chip:hover { background:#f0eaff; }
body.wknd-event-detail .lup-av {
  width:52px;
  height:52px;
  flex:0 0 52px;
  border:2px solid #fff;
  border-radius:50%;
  background:#e7defa;
}
body.wknd-event-detail .lup-ph { color:#5140c2; }
body.wknd-event-detail :where(.lup-nm,.lup-ct,.lup-li) {
  max-width:100%;
  white-space:normal;
  overflow:visible;
  overflow-wrap:anywhere;
  text-overflow:clip;
}
body.wknd-event-detail .lup-nm { color:var(--ed-ink); line-height:1.3; }
body.wknd-event-detail .lup-ct,
body.wknd-event-detail .lup-li { color:var(--ed-muted); line-height:1.35; }
body.wknd-event-detail .lup-bn { background:#6149dc; }
body.wknd-event-detail .lineup-see-all {
  min-height:42px;
  display:inline-flex;
  align-items:center;
  border-radius:8px;
  background:#f0eaff;
  color:#5140c2;
}
body.wknd-event-detail .lineup-empty {
  margin:12px 0 0;
  padding:14px;
  border-radius:9px;
  background:#f7f3fb;
  color:var(--ed-muted);
  line-height:1.55;
}
body.wknd-event-detail .ev-map-wrap { margin-top:15px; border-radius:12px; }
body.wknd-event-detail .ev-map-badge { color:var(--ed-ink); }
body.wknd-event-detail .act-bar {
  width:min(100%,860px);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  border:1px solid var(--ed-line);
  border-bottom:0;
  border-radius:13px 13px 0 0;
  background:rgba(255,253,251,.97);
  box-shadow:0 -5px 22px rgba(53,38,95,.08);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
}
body.wknd-event-detail .act-bar .btn-pill {
  min-width:0;
  min-height:48px;
  border-radius:9px;
  font-family:inherit;
  font-size:13px;
  font-weight:750;
}
body.wknd-event-detail .btn-pill-going {
  border:1px solid #d9d0eb;
  background:#f3edff;
  color:#5140c2;
}
body.wknd-event-detail .btn-pill-going.active,
body.wknd-event-detail .btn-pill-purple {
  border:1px solid #6149dc;
  background:#6149dc;
  color:#fff;
}
body.wknd-event-detail .ev-rsvp-backdrop {
  z-index:9800;
  padding:18px;
  align-items:center;
  background:rgba(41,36,67,.48);
  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);
}
body.wknd-event-detail .ev-rsvp-sheet {
  width:min(520px,100%);
  max-height:min(88dvh,780px);
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:22px clamp(18px,4vw,28px) calc(24px + env(safe-area-inset-bottom));
  border:1px solid var(--ed-line);
  border-radius:16px;
  background:var(--ed-card);
  box-shadow:0 18px 55px rgba(34,24,64,.2);
}
body.wknd-event-detail .ev-rsvp-handle { background:#dcd4e7; }
body.wknd-event-detail .ev-rsvp-check { color:#6149dc; }
body.wknd-event-detail .ev-rsvp-title {
  color:var(--ed-ink);
  font-size:25px;
  letter-spacing:-.045em;
}
body.wknd-event-detail .ev-rsvp-evname { color:#5140c2; overflow-wrap:anywhere; }
body.wknd-event-detail .ev-rsvp-row {
  min-height:44px;
  border-color:var(--ed-line);
  color:#514b60;
  line-height:1.45;
}
body.wknd-event-detail .ev-rsvp-capture {
  margin-top:16px;
  padding-top:16px;
  border-color:var(--ed-line);
}
body.wknd-event-detail .ev-rsvp-capture-label { color:#5140c2; }
body.wknd-event-detail .ev-rsvp-consent {
  display:flex;
  gap:10px;
  align-items:flex-start;
  min-height:44px;
  color:#514b60;
  font-size:12px;
  line-height:1.45;
}
body.wknd-event-detail .ev-rsvp-consent input {
  width:18px;
  height:18px;
  flex:0 0 18px;
  margin:1px 0 0;
  accent-color:#6149dc;
}
body.wknd-event-detail .ev-rsvp-input {
  min-height:48px;
  border-color:#d9d0e3;
  border-radius:8px;
  background:#fff;
  color:var(--ed-ink);
}
body.wknd-event-detail .ev-rsvp-input:focus {
  border-color:#6149dc;
  box-shadow:0 0 0 3px rgba(97,73,220,.14);
}
body.wknd-event-detail .ev-rsvp-primary-btn {
  min-height:48px;
  border-radius:8px;
  background:#6149dc;
  font-family:inherit;
}
body.wknd-event-detail .ev-rsvp-ticket,
body.wknd-event-detail .ev-rsvp-my-events {
  border-radius:8px;
  background:#6149dc;
}
body.wknd-event-detail .ev-rsvp-shortcuts { gap:8px; }
body.wknd-event-detail .ev-rsvp-shortcut {
  min-height:44px;
  border:1px solid #e1d9ef;
  border-radius:8px;
  background:#f3edff;
  color:#5140c2;
  line-height:1.25;
}
body.wknd-event-detail .ev-rsvp-skip-btn,
body.wknd-event-detail .ev-rsvp-close {
  min-height:44px;
  color:#625f78;
}
body.wknd-event-detail .ev-recap-link { color:var(--ed-muted); }
body.wknd-event-detail .ev-recap-link a { color:#5140c2; }
body.wknd-event-detail .recap-banner {
  margin-top:10px;
  border-radius:14px;
  background:linear-gradient(120deg,#6149dc,#e47b6b);
}
body.wknd-event-detail .s-toast { background:#292443; }
@media (max-width:600px) {
  body.wknd-event-detail .top-bar { padding-inline:10px; }
  body.wknd-event-detail .top-bar :where(.tbb,.tbb-my-events) { padding-inline:7px; font-size:12px; }
  body.wknd-event-detail .hero {
    width:calc(100% - 24px);
    max-height:230px;
    margin-top:12px;
    border-radius:12px;
  }
  body.wknd-event-detail .content { padding-inline:12px; }
  body.wknd-event-detail .ev-hdr { padding:20px 16px; }
  body.wknd-event-detail .ev-meta { grid-template-columns:minmax(0,1fr); gap:7px; }
  body.wknd-event-detail .lineup-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.wknd-event-detail .lup-chip { min-height:120px; }
  body.wknd-event-detail .act-bar { padding-inline:10px; border-radius:11px 11px 0 0; }
  body.wknd-event-detail .act-bar .btn-pill { font-size:12px; padding-inline:8px; }
  body.wknd-event-detail .ev-rsvp-backdrop {
    padding:0;
    align-items:flex-end;
  }
  body.wknd-event-detail .ev-rsvp-sheet {
    width:100%;
    max-height:calc(92dvh - env(safe-area-inset-bottom));
    border-radius:16px 16px 0 0;
  }
}
@media (max-width:360px) {
  body.wknd-event-detail .top-bar .tbl { font-size:11px; }
  body.wknd-event-detail .top-bar :where(.tbb,.tbb-my-events) { font-size:11px; }
  body.wknd-event-detail .lineup-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.wknd-event-detail .ev-rsvp-shortcuts { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  body.wknd-event-detail *,
  body.wknd-event-detail *::before,
  body.wknd-event-detail *::after {
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    transition-duration:.01ms !important;
  }
}

/*
 * Event facts are the decision surface; artwork is supporting context.
 * Keep original nodes and handlers, but use flow order to put identity and
 * verified logistics ahead of the optional flyer without cloning anything.
 */
body.wknd-event-detail {
  display:flex;
  flex-direction:column;
  align-items:center;
  background:
    radial-gradient(ellipse at 50% 0%, hsl(28 64% 93% / .72), transparent 34rem),
    hsl(245 28% 97%);
  padding-bottom:calc(28px + env(safe-area-inset-bottom,0px));
}
body.wknd-event-detail > script { display:none; }
body.wknd-event-detail .top-bar { order:1; width:100%; }
body.wknd-event-detail .content { display:contents; }
body.wknd-event-detail .ev-hdr {
  order:2;
  width:min(860px,calc(100% - 40px));
  margin:22px auto 0;
  padding:clamp(20px,4vw,34px);
  border:1px solid hsl(246 22% 87%);
  border-top:3px solid hsl(263 54% 61%);
  border-radius:18px;
  background:hsl(0 0% 100% / .9);
  box-shadow:0 12px 36px hsl(246 30% 30% / .08);
}
body.wknd-event-detail .ev-tag { color:hsl(262 46% 45%); }
body.wknd-event-detail .ev-nm {
  max-width:17ch;
  color:hsl(248 33% 20%);
  font-size:clamp(30px,6vw,48px);
  line-height:1.02;
  letter-spacing:-.055em;
}
body.wknd-event-detail .ev-hdr > p { color:hsl(244 13% 47%); }
body.wknd-event-detail .ev-meta { gap:8px; margin-top:18px; }
body.wknd-event-detail .ev-mi {
  min-height:42px;
  padding:8px 12px;
  border:1px solid hsl(244 22% 91%);
  border-radius:10px;
  background:hsl(246 32% 98%);
  color:hsl(247 24% 30%);
}
body.wknd-event-detail .ev-chips { margin-top:12px; }
body.wknd-event-detail .ev-chip2 {
  background:hsl(32 74% 94%);
  color:hsl(22 52% 34%);
}
body.wknd-event-detail .hero {
  order:4;
  width:min(860px,calc(100% - 40px));
  height:auto;
  max-height:none;
  aspect-ratio:auto;
  margin:18px auto 0;
  overflow:hidden;
  border:1px solid hsl(245 17% 78%);
  border-radius:16px;
  background:hsl(245 24% 19%);
  box-shadow:0 12px 32px hsl(245 32% 22% / .13);
}
body.wknd-event-detail .hero img {
  display:block;
  width:100%;
  height:auto;
  max-height:min(68vh,560px);
  object-fit:contain;
  background:hsl(245 24% 19%);
}
body.wknd-event-detail .recap-banner {
  order:5;
  width:min(860px,calc(100% - 40px));
}
body.wknd-event-detail .ev-desc,
body.wknd-event-detail .ev-map,
body.wknd-event-detail .lineup-sec {
  order:6;
  width:min(860px,calc(100% - 40px));
  margin:14px auto 0;
  border:1px solid hsl(246 22% 89%);
  border-radius:14px;
  background:hsl(0 0% 100% / .92);
}
body.wknd-event-detail .ev-map { order:7; }
body.wknd-event-detail .lineup-sec { order:8; }
body.wknd-event-detail .ev-recap-link {
  order:9;
  width:min(860px,calc(100% - 40px));
  margin:16px auto;
}
/* Existing optional tools are appended by later response decorators. Default
   flex order must not promote them ahead of the event facts and admission. */
body.wknd-event-detail #wknd-planit-launch {
  order:10;
  min-height:44px;
  margin:20px auto 0;
}
body.wknd-event-detail #wknd-event-updates {
  order:11;
  width:min(860px,calc(100% - 24px));
  margin:16px auto 0;
}
body.wknd-event-detail .act-bar {
  position:relative;
  order:3;
  inset:auto;
  margin:14px auto 0;
  z-index:2;
  gap:12px;
  padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));
  border-radius:13px;
  background:hsl(248 33% 18% / .97);
  border-top:1px solid hsl(244 19% 40%);
  box-shadow:0 -8px 24px hsl(245 35% 20% / .16);
}
body.wknd-event-detail #going-btn {
  min-height:60px;
  flex-direction:column;
  gap:2px;
  color:hsl(248 33% 20%);
  background:hsl(32 86% 91%);
  border-color:hsl(31 52% 78%);
}
body.wknd-event-detail #going-btn::after {
  content:"Interest reminder · not an RSVP";
  display:block;
  font-size:10px;
  font-weight:650;
  letter-spacing:.01em;
  opacity:.8;
}
body.wknd-event-detail #apply-vend-btn {
  min-height:60px;
  background:hsl(263 50% 70%);
  color:hsl(248 37% 17%);
}
@media (max-width:600px) {
  body.wknd-event-detail .ev-hdr,
  body.wknd-event-detail .hero,
  body.wknd-event-detail .recap-banner,
  body.wknd-event-detail .ev-desc,
  body.wknd-event-detail .ev-map,
  body.wknd-event-detail .lineup-sec,
  body.wknd-event-detail .ev-recap-link {
    width:calc(100% - 24px);
  }
  body.wknd-event-detail .ev-hdr { margin-top:12px; padding:20px 16px; }
  body.wknd-event-detail .hero { margin-top:12px; border-radius:12px; }
  body.wknd-event-detail .hero img { max-height:62vh; }
  body.wknd-event-detail .ev-nm { font-size:clamp(28px,9vw,38px); }
  body.wknd-event-detail .act-bar { max-width:none; }
}

/* Final override order: presentation only; server-authored event facts,
   registration policy and eligibility actions retain their native behavior. */
body.wknd-event-detail {
  --ed-ink: #252344;
  --ed-muted: #625f78;
  --ed-paper: #fff9f4;
  --ed-card: #fffdfb;
  --ed-line: #e9dfe8;
  --ed-violet: #7050f4;
  --ed-coral: #e47b6b;
  background: var(--ed-paper);
}
body.wknd-event-detail :where(a,button,input,textarea,select,[tabindex]):focus-visible {
  outline-color: rgba(112,80,244,.75);
}
body.wknd-event-detail .ev-hdr {
  border-top-color: var(--ed-coral);
  box-shadow: 0 4px 0 rgba(37,35,68,.045);
}
body.wknd-event-detail .hero { background: #f3edff; box-shadow: 0 4px 0 rgba(67,59,101,.05); }
body.wknd-event-detail .act-bar {
  background: rgba(37,35,68,.97);
  border-color: rgba(255,253,251,.22);
  box-shadow: 0 -8px 24px rgba(67,59,101,.14);
}
body.wknd-event-detail #going-btn { background: #fff0df; border-color: #e5c8b5; }
body.wknd-event-detail #apply-vend-btn { background: #ffc969; color: #252344; }
/* A missing flyer is an honest state, not an invitation to substitute stock
   art. Keep the same artwork slot and label it plainly while facts/actions stay
   above it in the existing document flow. */
body.wknd-event-detail .hero-ph {
  display: grid;
  place-items: center;
  min-height: 150px;
  padding: 24px;
  color: var(--ed-muted);
  font-size: 0;
  text-align: center;
  background:
    linear-gradient(135deg, transparent 49.7%, rgba(112,80,244,.07) 50%, transparent 50.3%),
    #f3edff;
}
body.wknd-event-detail .hero-ph::after {
  content: "Event artwork not provided";
  max-width: 24ch;
  color: var(--ed-muted);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
}
body.wknd-event-detail .hero-ph[aria-label="Event artwork unavailable"]::after {
  content: "Event artwork unavailable";
}
body.wknd-event-detail .ev-hdr .ev-meta { margin-bottom: 12px; }
body.wknd-event-detail .ev-hdr .ev-mi {
  background: #fffaf4;
  border-left: 3px solid #e7c5b4;
}
body.wknd-event-detail .ev-hdr .ev-mi :where(a,.ev-mlink) {
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
body.wknd-event-detail .ev-hdr :where(a,button):focus-visible,
body.wknd-event-detail .act-bar :where(a,button):focus-visible {
  outline: 3px solid #ffc969;
  outline-offset: 3px;
}
@media (max-width: 600px) {
  body.wknd-event-detail .hero-ph { min-height: 112px; }
}
