/* ONLORE chapter events and weekly showcase (events.js). Every selector carries an .events- prefix.
   Floors (CONTRACT §0): labels, pills and badges >= 11px, body, notes, hedges and legal copy >= 12px, no text colour darker than #8b97a3,
   buttons and links >= 44px tall. Loaded after styles.css, community.css, campaign.css, account.css and rules.css. */

.events-page,.events-teaser,.events-viewer,.events-overlay{--events-border:var(--border,#28303a);--events-surface:var(--surface,#12171e);--events-surface-2:var(--surface-2,#191f27);--events-text:var(--text,#f2f4ee);--events-muted:var(--muted,#9ca7b5);--events-accent:var(--accent,#cbf68b);--events-cyan:var(--cyan,#86dce4);--events-amber:var(--amber,#e2c795);--events-lilac:#c9b7fa;--events-display:var(--display,'Space Grotesk','Segoe UI',sans-serif)}
.events-page{min-width:0;padding-bottom:24px}

/* Heading */
.events-head{padding:34px 0 18px}
.events-head-copy{min-width:0;max-width:780px}
.events-eyebrow{display:block;color:var(--events-accent);font-size:12px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase}
.events-head h1{margin:12px 0 0;font-size:clamp(30px,5.2vw,44px);font-weight:500;letter-spacing:-1.6px;line-height:1.1;overflow-wrap:anywhere}
.events-lead{margin:14px 0 0;max-width:64ch;color:var(--events-muted);font-size:15px;line-height:1.65}
.events-preview{margin:0 0 16px;padding:12px 15px;border:1px solid #91a6bb30;border-radius:8px;background:#91a6bb0c;color:#b9c4ce;font-size:13px;line-height:1.6}
.events-jump{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.events-jump-btn{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border:1px solid var(--events-border);border-radius:999px;background:var(--events-surface);color:#c3ccd3;font-size:13px;font-weight:600}
.events-jump-btn:hover{border-color:#526253;color:var(--events-text)}

/* Sections and blocks */
.events-section{min-width:0;margin:0 0 18px;padding:26px 28px;border:1px solid var(--events-border);border-radius:12px;background:var(--events-surface)}
.events-section:focus,.events-block:focus{outline:none}
.events-section:focus-visible,.events-block:focus-visible{outline:2px solid var(--events-accent);outline-offset:3px}
.events-section-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;margin:0 0 16px}
.events-section h2{margin:0;font-size:clamp(20px,3.6vw,26px);font-weight:500;letter-spacing:-.6px;overflow-wrap:anywhere}
.events-section h3{margin:0 0 10px;color:var(--events-text);font-size:15px;font-weight:600;letter-spacing:-.2px}
.events-block{min-width:0;margin:24px 0 0}
.events-section-lead{max-width:70ch;margin:-4px 0 12px;color:#c9d1d6;font-size:14px;line-height:1.7}
.events-sample-note{margin:0 0 6px;padding:10px 14px;border-left:3px solid #86dce4;border-radius:0 8px 8px 0;background:#86dce40d;color:#d3dde2;font-size:13px;line-height:1.6}
.events-callout{margin:0 0 12px;padding:10px 14px;border-left:3px solid #d6ad54;border-radius:0 8px 8px 0;background:#d6ad540d;color:#e2d6bb;font-size:13px;line-height:1.65}
.events-fine{margin:10px 0 0;color:#aeb9c3;font-size:12px;line-height:1.6}
.events-empty{margin:0;padding:14px 16px;border:1px dashed var(--events-border);border-radius:10px;color:#b4bec8;font-size:13px;line-height:1.65}
.events-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 28px;align-items:start}

/* Chips, tags, badges, status */
.events-chapter-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0}
.events-chapter-dates{color:#c3ccd3;font-size:13px}
.events-chip{display:inline-flex;align-items:center;min-height:26px;padding:3px 12px;border:1px solid #cbf68b40;border-radius:999px;background:#cbf68b10;color:var(--events-accent);font-size:12px;font-weight:700;letter-spacing:.3px;white-space:nowrap}
.events-chip.is-now{border-color:#cbf68b88;background:#cbf68b22}
.events-status{display:inline-flex;align-items:center;min-height:26px;padding:3px 12px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:700;line-height:1.3}
.events-status.is-open{color:var(--events-accent);background:#cbf68b12;border-color:#cbf68b45}
.events-status.is-review{color:var(--events-amber);background:#d6ad5412;border-color:#d6ad5455}
.events-status.is-soon{color:#86dce4;background:#86dce412;border-color:#86dce445}
.events-status.is-done{color:#c3ccd3;background:#ffffff08;border-color:#ffffff24}
.events-tag{display:inline-flex;align-items:center;max-width:100%;min-height:24px;padding:2px 10px;border:1px solid #ffffff22;border-radius:6px;background:#ffffff08;color:#c9d1d6;font-size:12px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
.events-badge{flex:none;display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:2px 11px;border:1px solid transparent;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}
.events-badge.is-confirmed{color:var(--events-accent);background:#cbf68b12;border-color:#cbf68b50}
.events-badge.is-planned{color:var(--events-amber);background:#d6ad5412;border-color:#d6ad5455}
.events-badge.is-soon{color:#86dce4;background:#86dce412;border-color:#86dce445}
.events-sample{display:inline-flex;align-items:center;min-height:22px;padding:1px 9px;border:1px solid #ffffff2a;border-radius:999px;color:#c3ccd3;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}

/* The flagship challenge card */
.events-challenge{position:relative;display:grid;gap:12px;justify-items:start;min-width:0;padding:24px 26px;border:1px solid #cbf68b44;border-radius:14px;background:linear-gradient(135deg,#cbf68b14,#86dce40a 55%,transparent),var(--events-surface-2)}
.events-challenge h3{margin:0;font-family:var(--events-display);font-size:clamp(22px,4vw,32px);font-weight:500;letter-spacing:-.8px;line-height:1.15;overflow-wrap:anywhere}
.events-blurb{max-width:66ch;margin:0;color:#d3dade;font-size:14px;line-height:1.7}
.events-formats{display:grid;gap:8px;width:100%;margin:2px 0 0;padding:0;list-style:none}
.events-formats li{display:grid;gap:2px;min-width:0;padding:10px 14px;border:1px solid var(--events-border);border-radius:10px;background:#0b0e1266}
.events-formats strong{color:var(--events-text);font-size:14px}
.events-formats span{color:#b9c3cc;font-size:13px;line-height:1.55;overflow-wrap:anywhere}
.events-live{width:100%;min-width:0}
.events-cta-row{display:flex;flex-wrap:wrap;gap:10px}
.events-cta-btn{min-width:0;max-width:100%;text-align:center}
.events-cta-note{margin:10px 0 0;max-width:66ch;color:#c3ccd3;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.events-hedge{margin:0;max-width:66ch;color:#aeb9c3;font-size:12px;line-height:1.6}

/* Timeline */
.events-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}
.events-step{display:grid;gap:3px;align-content:start;min-width:0;padding:14px 16px;border:1px solid var(--events-border);border-top:3px solid var(--events-border);border-radius:10px;background:var(--events-surface-2)}
.events-step strong{color:var(--events-text);font-size:14px;line-height:1.35}
.events-step-state{color:#aeb9c3;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}
.events-step-date{color:#d8dde2;font-family:var(--events-display);font-size:15px;line-height:1.35;overflow-wrap:anywhere}
.events-step-sub{color:#aeb9c3;font-size:12px;line-height:1.5}
.events-step.is-done{border-top-color:#cbf68b55}
.events-step.is-done .events-step-state{color:#aab995}
.events-step.is-now{border-color:#cbf68b66;border-top-color:var(--events-accent);background:#cbf68b0d}
.events-step.is-now .events-step-state{color:var(--events-accent)}

/* Rewards */
.events-rewards{display:grid;gap:8px;margin:0 0 12px;padding:0;list-style:none}
.events-rewards li{display:grid;grid-template-columns:104px minmax(0,1fr);gap:12px;align-items:start;padding:12px 14px;border:1px solid var(--events-border);border-radius:10px;background:var(--events-surface-2)}
.events-rewards p{margin:0;color:#d3dade;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.events-legend{margin:0;color:#aeb9c3;font-size:12px;line-height:2}

/* How to join */
.events-how{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.events-how li{display:grid;gap:3px;min-width:0;padding:12px 14px;border:1px solid var(--events-border);border-left:3px solid var(--events-border);border-radius:10px;background:var(--events-surface-2)}
.events-how li.is-done{border-left-color:#cbf68b66}
.events-how li.is-now{border-color:#cbf68b55;border-left-color:var(--events-accent);background:#cbf68b0d}
.events-how-label{color:var(--events-accent);font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase}
.events-how strong{color:var(--events-text);font-size:14px;line-height:1.4}
.events-how p{margin:0;color:#c3ccd3;font-size:13px;line-height:1.6;overflow-wrap:anywhere}

/* Coming up */
.events-upnext{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.events-upnext li{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:4px 14px;align-items:center;padding:12px 14px;border:1px dashed var(--events-border);border-radius:10px}
.events-next-chapter{color:var(--events-accent);font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}
.events-next-title{min-width:0;color:var(--events-text);font-size:14px;overflow-wrap:anywhere}
.events-next-meta{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;color:#c3ccd3;font-size:13px}

/* Showcase */
.events-categories,.events-criteria{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.events-categories li,.events-criteria li{display:grid;gap:2px;min-width:0;padding:10px 14px;border:1px solid var(--events-border);border-left:3px solid var(--events-border);border-radius:10px;background:var(--events-surface-2)}
.events-categories li.is-clip{border-left-color:#86dce4}
.events-categories li.is-lore{border-left-color:#c9b7fa}
.events-categories li.is-dev{border-left-color:#cbf68b}
.events-categories strong,.events-criteria strong{color:var(--events-text);font-size:14px}
.events-categories span,.events-criteria span{color:#b9c3cc;font-size:13px;line-height:1.55;overflow-wrap:anywhere}
.events-picked{display:flex;align-items:flex-start;gap:12px;margin:24px 0 0;padding:14px 16px;border:1px solid #cbf68b40;border-radius:10px;background:#cbf68b0a}
.events-picked p{margin:0;color:#d3dade;font-size:13px;line-height:1.65}
.events-picked p strong{color:var(--events-text)}
.events-week-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 10px}
.events-week-head h3{margin:0}
.events-next-line{margin:12px 0 0;color:#c3ccd3;font-size:13px;line-height:1.6}
.events-picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:12px;margin:0;padding:0;list-style:none}
.events-pick{display:grid;gap:8px;align-content:start;min-width:0;padding:16px 18px;border:1px solid var(--events-border);border-top:3px solid var(--events-border);border-radius:12px;background:var(--events-surface-2)}
.events-pick.is-clip{border-top-color:#86dce4}
.events-pick.is-lore{border-top-color:#c9b7fa}
.events-pick.is-dev{border-top-color:#cbf68b}
.events-pick-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px}
.events-pick-cat{font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}
.events-pick.is-clip .events-pick-cat{color:#86dce4}
.events-pick.is-lore .events-pick-cat{color:#c9b7fa}
.events-pick.is-dev .events-pick-cat{color:var(--events-accent)}
.events-pick-title{margin:0;color:var(--events-text);font-family:var(--events-display);font-size:17px;font-weight:500;letter-spacing:-.3px;line-height:1.3;overflow-wrap:anywhere}
.events-creator{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 8px;min-height:44px;max-width:100%;color:#d8dde2;font-size:13px}
a.events-creator:hover .events-creator-name{color:var(--events-accent);text-decoration:underline}
.events-creator-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--events-accent)}
.events-creator-name{font-weight:700;color:var(--events-text)}
.events-creator-handle{color:#b4bec8;overflow-wrap:anywhere}
.events-pick-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;color:#b4bec8;font-size:12px}
.events-pick-why{margin:0;color:#c9d1d6;font-size:13px;line-height:1.65}
.events-pick-why strong{display:block;margin-bottom:2px;color:var(--events-text);font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}
.events-archive-week{margin:0 0 10px;border:1px solid var(--events-border);border-radius:12px;background:var(--events-surface)}
.events-archive-week summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 14px;min-height:48px;padding:10px 16px;border-radius:12px;cursor:pointer;list-style:none}
.events-archive-week summary::-webkit-details-marker{display:none}
.events-archive-week summary::after{content:'+';margin-left:auto;color:var(--events-muted);font-size:18px;line-height:1}
.events-archive-week[open] summary::after{content:'\2013'}
.events-archive-title{color:var(--events-text);font-size:14px;font-weight:600}
.events-archive-meta{color:#b4bec8;font-size:12px}
.events-archive-week .events-picks{padding:2px 14px 14px}
.events-open{justify-self:start;min-width:96px;margin-top:2px}

/* Showcase viewer (CONTRACT §12.5). It lives in the shell's shared dialog (#dialog-content) or, when there is none, in .events-overlay. */
.events-viewer{min-width:0;color:var(--events-text)}
.events-viewer h2{margin:8px 0 12px;font-size:34px;font-weight:500;letter-spacing:-1.2px;line-height:1.15;overflow-wrap:anywhere}
.events-viewer h2:focus{outline:none}
.events-viewer h3{margin:0 0 8px;color:var(--events-text);font-size:15px;font-weight:600;letter-spacing:-.2px}
.events-v-by{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0 0 14px;color:#c3ccd3;font-size:13px}
.events-v-by time{color:#b4bec8;font-size:12px}
.events-v-sample{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;padding:10px 14px;border-left:3px solid #86dce4;border-radius:0 8px 8px 0;background:#86dce40d;color:#d3dde2;font-size:13px;line-height:1.6}
.events-v-sample .events-sample{flex:none;margin-top:1px}
.events-v-sample strong{color:var(--events-text)}
.events-v-why{margin:0 0 20px;padding:14px 16px;border:1px solid #cbf68b40;border-radius:10px;background:#cbf68b0a}
.events-v-why p{margin:0;color:#d3dade;font-size:14px;line-height:1.65}
.events-v-body{margin:0 0 20px}
.events-v-text{max-width:66ch;padding:18px 20px;border:1px solid var(--events-border);border-radius:12px;background:var(--events-surface-2)}
.events-v-text p{margin:0 0 14px;color:#e1e6e9;font-size:15px;line-height:1.8;overflow-wrap:anywhere}
.events-v-text p:last-child{margin-bottom:0}
.events-v-setin{margin:10px 0 0;color:#b9c3cc;font-size:12px;line-height:1.6}
.events-v-poster{margin:0 0 12px;border:1px solid var(--events-border);border-radius:12px;overflow:hidden;background:#0b0e12}
.events-v-art{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.events-v-art.is-mark{display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,var(--events-tint,#86dce438),transparent 62%),linear-gradient(135deg,#191f27,#0b0e12)}
.events-v-art.is-mark{align-content:center;gap:12px}
.events-v-art.is-mark img{width:72px;height:72px;border-radius:16px}
.events-v-art-name{color:#d3dade;font-family:var(--events-display);font-size:15px;font-weight:500;text-align:center}
.events-v-poster figcaption{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:10px 12px;border-top:1px solid var(--events-border);background:var(--events-surface-2)}
.events-v-noclip{margin:0 0 20px;padding:10px 14px;border-left:3px solid #d6ad54;border-radius:0 8px 8px 0;background:#d6ad540d;color:#e2d6bb;font-size:13px;line-height:1.65}
.events-v-desc{max-width:66ch;margin:0;color:#d3dade;font-size:14px;line-height:1.7}
.events-v-chapters{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.events-v-chapters li{display:grid;grid-template-columns:60px minmax(0,1fr);gap:12px;align-items:baseline;padding:10px 14px;border:1px solid var(--events-border);border-radius:10px;background:var(--events-surface-2);color:#d3dade;font-size:14px;line-height:1.55;overflow-wrap:anywhere}
.events-v-ts{color:var(--events-accent);font-family:var(--events-display);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.events-v-actions{display:flex;justify-content:flex-end;margin-top:4px}

/* Our own dialog: only used when the shell has no shared dialog */
.events-overlay{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:20px;background:#03070cbb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.events-modal{position:relative;width:min(860px,100%);max-height:90vh;max-height:90dvh;overflow:auto;border:1px solid #35414c;border-radius:16px;background:#11171e;color:var(--events-text);box-shadow:0 30px 120px #0008}
.events-modal:focus{outline:none}
.events-modal-close{position:sticky;top:10px;z-index:2;display:grid;place-items:center;width:44px;height:44px;margin:10px 10px -54px auto;border:1px solid #ffffff30;border-radius:50%;background:#0c131bf0;color:#e4eceb;font-size:26px;line-height:1}
.events-modal-body{padding:35px}
.events-modal-body .events-viewer h2{padding-right:56px}
body.events-modal-open{overflow:hidden}

/* Discover teaser */
.events-teaser{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;margin:0 0 20px;padding:18px 22px;border:1px solid #cbf68b40;border-radius:12px;background:linear-gradient(135deg,#cbf68b12,transparent 60%),var(--events-surface)}
.events-teaser-copy{flex:1 1 320px;min-width:0}
.events-teaser-eyebrow{display:block;color:var(--events-accent);font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase}
.events-teaser h2{margin:6px 0 0;font-size:clamp(18px,3.2vw,22px);font-weight:500;letter-spacing:-.4px;line-height:1.25;overflow-wrap:anywhere}
.events-teaser-status{margin:6px 0 0;color:#d3dade;font-size:13px;line-height:1.55}
.events-teaser-meta{margin:4px 0 0;color:#aeb9c3;font-size:12px;line-height:1.55}
.events-teaser-actions{flex:none}

@media(max-width:900px){
  .events-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}
  .events-split{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:700px){
  .events-viewer h2{font-size:28px}
  .events-overlay{padding:12px}
  .events-modal{border-radius:12px;max-height:92vh;max-height:92dvh}
  .events-modal-body{padding:27px 22px}
  .events-v-text{padding:16px}
  .events-head{padding:22px 0 14px}
  .events-section{padding:18px}
  .events-challenge{padding:18px}
  .events-upnext li{grid-template-columns:minmax(0,1fr);gap:2px}
  .events-teaser{padding:16px}
}
@media(max-width:560px){
  .events-timeline{grid-template-columns:minmax(0,1fr)}
  .events-rewards li{grid-template-columns:minmax(0,1fr);gap:8px}
  .events-rewards .events-badge{justify-self:start}
  .events-picked{flex-direction:column;gap:8px}
  .events-cta-row .btn{flex:1 1 100%}
  .events-open{justify-self:stretch}
  .events-v-chapters li{grid-template-columns:minmax(0,1fr);gap:2px}
  .events-v-actions .btn{flex:1 1 100%}
  .events-teaser-actions,.events-teaser-actions .btn{width:100%}
  .events-teaser-meta{display:none}
}
