.ev-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }
.ev-card {
  display: flex; flex-direction: column; overflow: hidden;
  border-radius: 1rem; border: 1px solid var(--sp-line); background: var(--sp-card);
  color: inherit; text-decoration: none; transition: border-color .15s ease, transform .15s ease;
}
.ev-card:hover, .ev-card:focus-visible { border-color: var(--sp-line-strong); transform: translateY(-2px); }
.ev-card:focus-visible { outline: 2px solid var(--sp-accent); outline-offset: 2px; }
.ev-card-image { aspect-ratio: 16 / 7; background: var(--sp-sunk); overflow: hidden; }
.ev-card-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ev-card-image--empty { display: grid; place-items: center; font-size: 2.25rem; background: radial-gradient(120% 140% at 0% 0%, rgb(var(--color-indigo-500) / 0.25), transparent 60%), var(--sp-sunk); }
.ev-card-body { display: grid; gap: 0.6rem; padding: 1rem 1.1rem 1.1rem; }
.ev-card-title { margin: 0; font-size: 1.02rem; font-weight: 700; color: #fff; line-height: 1.3; overflow-wrap: anywhere; }
.ev-card-prize { font-size: 0.85rem; color: var(--sp-muted); overflow-wrap: anywhere; }
.ev-card-prize strong { color: var(--sp-text); font-weight: 600; }
.ev-card-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.4rem 0.8rem; font-size: 0.8rem; color: var(--sp-muted); }

.ev-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.ev-tag {
  display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.2rem 0.6rem;
  border-radius: 999px; font-size: 0.72rem; font-weight: 600;
  color: var(--ev-color, var(--sp-text));
  background: color-mix(in srgb, var(--ev-color, #ffffff) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--ev-color, #ffffff) 35%, transparent);
}
.ev-tag--live::before { content: ''; width: 0.45rem; height: 0.45rem; border-radius: 999px; background: currentColor; }
@media (prefers-reduced-motion: no-preference) {
  .ev-tag--live::before { animation: ev-pulse 1.6s ease-in-out infinite; }
}
@keyframes ev-pulse { 50% { opacity: 0.35; } }

.ev-countdown { font-variant-numeric: tabular-nums; font-weight: 700; color: #fff; }
.ev-detail { display: grid; gap: 1.5rem; margin-top: 1rem; }
@media (min-width: 1024px) { .ev-detail { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); align-items: start; } }
.ev-banner { border-radius: 1rem; overflow: hidden; border: 1px solid var(--sp-line); margin-bottom: 1.25rem; background: var(--sp-sunk); }
.ev-banner img { width: 100%; max-height: 24rem; object-fit: cover; display: block; }
.ev-title { margin: 0.4rem 0 0; font-size: 1.85rem; line-height: 1.2; font-weight: 700; color: #fff; overflow-wrap: anywhere; }
.ev-description { margin-top: 1rem; font-size: 0.95rem; line-height: 1.65; color: var(--sp-text); overflow-wrap: anywhere; }
.ev-timer { display: grid; gap: 0.25rem; padding: 1rem 1.1rem; border-radius: 0.9rem; background: var(--sp-sunk); border: 1px solid var(--sp-line); }
.ev-timer small { color: var(--sp-muted); font-size: 0.78rem; text-transform: uppercase; letter-spacing: .06em; }
.ev-timer .ev-countdown { font-size: 1.6rem; }
.ev-facts { display: grid; gap: 0.6rem; margin: 1rem 0 0; }
.ev-fact { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.88rem; }
.ev-fact dt { color: var(--sp-muted); }
.ev-fact dd { margin: 0; text-align: right; color: var(--sp-text); font-weight: 600; overflow-wrap: anywhere; }
.ev-reqs { list-style: none; margin: 0.75rem 0 0; padding: 0; display: grid; gap: 0.45rem; font-size: 0.88rem; }
.ev-reqs li { display: flex; gap: 0.55rem; align-items: flex-start; }
.ev-reqs i { margin-top: 0.2rem; width: 1rem; text-align: center; }
.ev-req--ok i { color: rgb(var(--sp-green)); }
.ev-req--no i { color: rgb(var(--sp-red)); }
.ev-req--unknown i { color: var(--sp-muted); }
.ev-join { display: grid; gap: 0.6rem; margin-top: 1.1rem; }
.ev-join .sp-btn { justify-content: center; width: 100%; }
.ev-winners { display: grid; gap: 0.5rem; }
.ev-winner { display: flex; align-items: center; gap: 0.7rem; padding: 0.6rem 0.75rem; border-radius: 0.8rem; background: var(--sp-sunk); border: 1px solid var(--sp-line); }
.ev-winner img { width: 2.1rem; height: 2.1rem; border-radius: 0.55rem; image-rendering: pixelated; flex-shrink: 0; }
.ev-winner-name { font-weight: 700; color: #fff; overflow-wrap: anywhere; }
.ev-winner-meta { font-size: 0.76rem; color: var(--sp-muted); }
.ev-winner-actions { margin-left: auto; display: flex; flex-wrap: wrap; gap: 0.4rem; justify-content: flex-end; }
.ev-winner-actions form { margin: 0; }
.ev-winner-actions .sp-btn { padding: 0.4rem 0.75rem; font-size: 0.78rem; }
.ev-entries { display: grid; gap: 0.4rem; max-height: 32rem; overflow: auto; }
.ev-entry { display: flex; align-items: center; gap: 0.6rem; font-size: 0.85rem; padding: 0.35rem 0.5rem; border-radius: 0.6rem; }
.ev-entry:nth-child(odd) { background: rgb(255 255 255 / 0.025); }
.ev-entry img { width: 1.6rem; height: 1.6rem; border-radius: 0.4rem; image-rendering: pixelated; }
.ev-entry-meta { margin-left: auto; color: var(--sp-muted); font-size: 0.75rem; display: flex; gap: 0.5rem; align-items: center; }
.ev-form-grid { display: grid; gap: 1rem; }
@media (min-width: 768px) { .ev-form-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ev-form-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ev-check { display: flex; gap: 0.6rem; align-items: center; font-size: 0.9rem; cursor: pointer; }
.ev-check input { width: 1.05rem; height: 1.05rem; accent-color: rgb(var(--color-indigo-500)); }
.ev-code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.85rem; }
.ev-commands { margin: 0.4rem 0 0; padding: 0; list-style: none; display: grid; gap: 0.3rem; }
.ev-commands code { display: block; padding: 0.35rem 0.6rem; border-radius: 0.5rem; background: var(--sp-sunk); border: 1px solid var(--sp-line); overflow-wrap: anywhere; }
.sp-btn:focus-visible, .sp-tab:focus-visible { outline: 2px solid var(--sp-accent); outline-offset: 2px; }
