﻿/* DATESHOW — sjednocený streetwear-romantic styl */

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body, #root { height: auto; min-height: 100%; }
/* Globální horizontální clip — chrání před náhodným overflow (mobile nav v transformu, marquee, atd.) */
html, body { overflow-x: hidden; max-width: 100%; }
body {
  font-family: 'Schibsted Grotesk', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  background: #0a0014;
  color: #fff;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-feature-settings: "ss01", "ss02", "kern";
  font-variant-emoji: text;
}
* { font-variant-emoji: text; }

.ds-app {
  --pink: #ff4d8f;
  --pink-glow: #ff6ec7;
  --purple: #a78bfa;
  --purple-deep: #7c3aed;
  --bg: #0f0020;
  --bg-2: #1a0033;
  --bg-3: #260047;
  --line: rgba(255, 174, 220, 0.18);
  --text: #fff5fa;
  --muted: #c9b3d9;
  --card-bg: #fff5fa;
  --card-text: #1a0014;
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
}
.ds-app.palette-pink {
  --pink: #ff2d92; --pink-glow: #ff8fc4; --purple: #ff85b8; --purple-deep: #c026d3;
  --bg: #1a0010; --bg-2: #290020; --bg-3: #3d002f;
}
.ds-app.palette-violet {
  --pink: #c084fc; --pink-glow: #d8b4fe; --purple: #a78bfa; --purple-deep: #6d28d9;
  --bg: #0e0028; --bg-2: #170040; --bg-3: #260060;
}
.ds-app.theme-light {
  --bg: #fff5f9; --bg-2: #ffeaf3; --bg-3: #ffd9e9;
  --text: #1a0014; --muted: #6b3a5a; --line: rgba(255, 77, 143, 0.25);
  --card-bg: #ffffff; --card-text: #1a0014;
}
/* Dark theme override card colors — místo světlých použít purple-tinted dark
   pro konzistenci s celkovým dark vibe (jako Dark Reader filter, ale natívně) */
.ds-app.theme-dark {
  --card-bg: rgba(40, 22, 62, 0.92);
  --card-text: #f5eef8;
}

/* ===== TOP BAR ===== */
.ds-top {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 40px; border-bottom: 1px solid rgba(255, 174, 220, 0.06);
  font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase;
  /* Fixed místo sticky → video pod ním pokračuje až k y=0 (banner overlay).
     Banner opacity scaluje se scrollem: 0.12 (top, transparent přes hero video)
     až 0.85 (po prvním viewportu, plně tmavý). --scroll-progress je 0→1 přes 60vh. */
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  background: rgba(15, 0, 32, calc(0.12 + var(--scroll-progress, 0) * 0.73));
  transition: background 0.18s linear;
}
.ds-top-left { display: flex; align-items: baseline; gap: 16px; }
.ds-mast { font-family: 'Anton', sans-serif; font-size: 24px; letter-spacing: 0.02em; }
.ds-issue { color: var(--muted); }
.ds-nav { display: flex; gap: 28px; }
.ds-nav a { color: var(--text); text-decoration: none; transition: 0.2s; }
.ds-nav a:hover { color: var(--pink); }
.ds-top-right {
  display: flex; align-items: center; gap: 8px;
  color: var(--pink); font-weight: 600;
}
.ds-live-dot {
  width: 8px; height: 8px; border-radius: 50%; background: var(--pink);
  box-shadow: 0 0 0 0 currentColor;
  animation: live-pulse 1.6s infinite;
}
@keyframes live-pulse { 0%,100% { box-shadow: 0 0 0 0 var(--pink); } 50% { box-shadow: 0 0 0 6px transparent; } }

/* ===== HERO ===== */
.ds-hero {
  padding: 64px 40px 0;
  position: relative;
  background:
    radial-gradient(ellipse 60% 80% at 30% 0%, rgba(255, 110, 199, 0.18), transparent 60%),
    radial-gradient(ellipse 60% 80% at 80% 20%, rgba(167, 139, 250, 0.18), transparent 60%);
}
.ds-hero-grid {
  display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: end;
}
.ds-hero-eyebrow {
  font-family: 'Instrument Serif', serif; font-style: italic; color: var(--muted); margin-bottom: 24px;
}
.ds-display {
  font-family: 'Anton', sans-serif; font-size: clamp(100px, 16vw, 240px);
  line-height: 0.82; letter-spacing: -0.025em;
}
.ds-display-pre {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-weight: 600;
  font-size: clamp(28px, 3.5vw, 48px);
  color: var(--pink);
  letter-spacing: -0.01em;
  margin-bottom: 8px;
  text-shadow: 0 0 24px rgba(255, 110, 199, 0.4);
}
.ds-amp {
  display: inline-block; color: var(--pink); margin: 0 -0.05em;
  font-size: 0.7em; vertical-align: 0.05em;
  text-shadow: 0 0 30px var(--pink-glow);
}
.ds-lede { margin-top: 24px; max-width: 540px; font-size: 19px; line-height: 1.55; color: var(--muted); }
.ds-lede em { color: var(--pink); font-style: italic; font-family: serif; }
.ds-lede strong { color: var(--text); font-weight: 700; }
.ds-hero-cta { margin-top: 28px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.ds-btn-primary {
  background: var(--pink); color: #fff; border: 0; padding: 14px 24px; border-radius: 999px;
  font-family: inherit; font-weight: 600; letter-spacing: 0.06em; cursor: pointer;
  text-decoration: none; box-shadow: 0 8px 30px rgba(255, 77, 143, 0.4);
}
.ds-btn-link { color: var(--text); text-decoration: underline; cursor: pointer; }

.ds-cd-card {
  background: rgba(255, 110, 199, 0.06);
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: 24px;
  backdrop-filter: blur(10px);
}
.ds-cd-label {
  font-family: 'JetBrains Mono', monospace; font-size: 11px;
  letter-spacing: 0.18em; opacity: 0.7; margin-bottom: 16px;
}
.ds-cd-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 18px; }
.ds-cd-cell {
  background: rgba(255, 110, 199, 0.1);
  border: 1px solid var(--line); border-radius: 14px;
  padding: 14px 6px; text-align: center;
}
.ds-cd-num {
  font-family: 'Anton', sans-serif; font-size: 44px; line-height: 1;
  color: var(--pink-glow); text-shadow: 0 0 18px rgba(255, 110, 199, 0.5);
}
.ds-cd-unit { font-size: 10px; letter-spacing: 0.14em; opacity: 0.7; margin-top: 6px; }
.ds-cd-foot {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 14px; border-top: 1px solid var(--line); gap: 10px; flex-wrap: wrap;
}
.ds-live-pill {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; letter-spacing: 0.14em; color: var(--pink);
}
.ds-discord-btn {
  background: var(--pink); color: #fff; padding: 8px 14px; border-radius: 999px;
  font-size: 12px; letter-spacing: 0.06em; cursor: pointer;
  box-shadow: 0 0 20px rgba(255, 77, 143, 0.4);
}

.ds-strip {
  margin-top: 56px;
  padding: 18px 0;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  font-family: 'Anton', sans-serif; font-size: 18px; letter-spacing: 0.1em;
  color: var(--pink-glow);
  white-space: nowrap; overflow: hidden;
  position: relative;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}
.ds-strip-track {
  display: inline-flex; gap: 28px; align-items: center;
  animation: ds-strip-scroll 80s linear infinite;
  will-change: transform;
}
/* Marquee NEpauzuje na hover — pořád běží (zachována plynulost). */
/* (původní `.ds-strip-track:hover { animation-play-state: paused; }` odstraněno) */
.ds-strip span { flex-shrink: 0; }
.ds-strip-icon {
  display: inline-flex; align-items: center;
  color: var(--pink);
  opacity: 0.85;
}
@keyframes ds-strip-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ===== TEAM (Pořadatel + Moderátor 2-card row) ===== */
.ds-team { padding: 60px 40px 90px; border-bottom: 1px solid var(--line); }
.ds-team-head { display: flex; flex-direction: column; gap: 18px; align-items: center; text-align: center; max-width: 720px; margin: 0 auto 50px; }
.ds-team-head .ds-h2 { font-size: clamp(48px, 6vw, 80px); }
.ds-team-sub { color: var(--muted); font-size: 16px; line-height: 1.5; max-width: 580px; }
.ds-team-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; max-width: 1200px; margin: 0 auto; }
.ds-team-col { display: flex; flex-direction: column; gap: 16px; }
.ds-team-label {
  display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
  padding: 0 4px 14px;
  border-bottom: 1px solid var(--line);
}
.ds-team-label-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.18em;
  padding: 6px 10px; border-radius: 999px;
  background: rgba(255,255,255,0.06);
  color: var(--muted);
  border: 1px solid var(--line);
  white-space: nowrap;
}
.ds-team-col:has(.mod-label) .ds-team-label-tag,
.mod-label .ds-team-label-tag {
  background: var(--pink); color: #fff; border-color: var(--pink);
  animation: rotate-pulse 2.4s ease-in-out infinite;
}
.ds-team-label-title {
  font-family: 'Anton', sans-serif;
  font-size: clamp(34px, 4vw, 54px);
  line-height: 0.95;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 0;
  overflow-wrap: normal;
}
.mod-label .ds-team-label-title {
  /* Stejná barva jako host (POŘADATEL) — bez gradientu */
  color: var(--text);
}
.ds-team-card {
  /* Dark theme — purple-tinted s subtle border místo světlého fillu */
  background:
    linear-gradient(155deg, rgba(40, 22, 62, 0.85) 0%, rgba(28, 14, 48, 0.92) 100%);
  color: #f5eef8;
  border: 1px solid rgba(255, 174, 220, 0.12);
  border-radius: 28px; padding: 16px 16px 22px;
  display: grid; grid-template-columns: 220px 1fr; gap: 22px;
  position: relative;
  box-shadow:
    0 18px 48px rgba(0, 0, 0, 0.4),
    inset 0 1px 0 rgba(255, 245, 250, 0.04);
  transition: transform 0.4s cubic-bezier(.6,.2,.2,1), border-color 0.3s;
}
.ds-team-card:hover {
  border-color: rgba(255, 119, 173, 0.25);
}
.ds-team-card:hover { transform: translateY(-4px); }
.ds-team-tag {
  display: none;
}
.ds-team-card.mod-card .ds-team-tag { background: var(--pink); color: #fff; }
.ds-team-photo {
  position: relative; aspect-ratio: 0.78;
  border-radius: 18px; overflow: hidden;
  background: rgba(255, 245, 250, 0.04);
  border: 1px solid rgba(255, 245, 250, 0.06);
}
.ds-team-photo-img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 25%;
  display: block;
}
.ds-team-badge {
  position: absolute; top: 4px; left: 4px;
  width: 32px; height: 32px; background: #fff; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 16px rgba(255, 77, 143, 0.4);
}
.ds-team-rotate {
  position: absolute; top: 6px; left: 6px;
  background: var(--pink); color: #fff;
  padding: 6px 10px; border-radius: 999px;
  font-family: 'JetBrains Mono', monospace; font-size: 10px;
  letter-spacing: 0.14em; font-weight: 600;
  animation: rotate-pulse 2.4s ease-in-out infinite;
}
@keyframes rotate-pulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(255, 77, 143, 0.5); }
  50% { transform: scale(1.05); box-shadow: 0 0 0 8px rgba(255, 77, 143, 0); }
}
.ds-team-body { display: flex; flex-direction: column; gap: 10px; padding: 6px 4px 0; }
.ds-team-name {
  font-family: 'Anton', sans-serif; font-size: clamp(28px, 2.6vw, 36px); line-height: 1;
  letter-spacing: -0.01em; color: #f5eef8;
  overflow-wrap: normal;
}
.ds-team-name .blur-text { flex-wrap: wrap; }
.ds-team-role {
  font-family: 'JetBrains Mono', monospace; font-size: 11px;
  letter-spacing: 0.14em; color: var(--pink); text-transform: uppercase;
  margin-top: -4px;
}
.ds-team-bio { font-size: 14px; line-height: 1.55; color: rgba(245, 238, 248, 0.78); max-width: 38ch; }
.ds-team-stats {
  display: flex; flex-wrap: wrap; gap: 16px 24px;
  padding-top: 12px; border-top: 1px solid rgba(255, 174, 220, 0.12);
  margin-top: auto;
}
.ds-team-stats > div { display: flex; flex-direction: column; gap: 2px; }
.ds-team-stats em {
  font-family: 'Anton', sans-serif; font-size: 22px; font-style: normal;
  color: #f5eef8; line-height: 1;
}
.ds-team-stats span {
  font-size: 10px; letter-spacing: 0.12em; color: rgba(245, 238, 248, 0.55);
  text-transform: uppercase;
}
.ds-team-note {
  font-size: 12px; color: #6b3a5a; font-style: italic;
  padding: 10px 12px; background: rgba(255, 77, 143, 0.08);
  border-radius: 12px; border-left: 2px solid var(--pink);
  margin-top: 8px;
}
@media (max-width: 1100px) {
  .ds-team-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .ds-team-card { grid-template-columns: 1fr; }
}

/* ===== HOST (legacy — kept for compatibility, hidden) ===== */
.ds-host {
  display: none;
}
.ds-host .ds-host-photo {
  aspect-ratio: 0.78;
  background: #f7eef5;
  border-radius: 24px;
  padding: 10px 10px 0;
  border: 0;
  box-shadow: 0 20px 60px rgba(255, 77, 143, 0.18), 0 2px 6px rgba(0,0,0,0.08);
  overflow: visible;
  display: flex; flex-direction: column;
}
.ds-host .ds-host-photo > svg {
  width: 100%; aspect-ratio: 1; border-radius: 16px; overflow: hidden;
}
.ds-host-photo::after {
  content: attr(data-cap);
}
.ds-host-num {
  font-family: 'Anton', sans-serif; font-size: 80px; line-height: 1;
  color: var(--pink); opacity: 0.7;
}
.ds-host-photo {
  aspect-ratio: 0.75; border-radius: 16px; overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: 0 20px 60px rgba(255, 77, 143, 0.2);
}
.ds-section-eyebrow {
  font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.18em;
  color: var(--pink); text-transform: uppercase; margin-bottom: 16px;
}
.ds-host-name { font-family: 'Anton', sans-serif; font-size: clamp(56px, 8vw, 96px); line-height: 0.9; margin-bottom: 16px; }
.ds-host-bio { font-size: 18px; line-height: 1.6; color: var(--muted); max-width: 600px; margin-bottom: 32px; }
.ds-host-stats { display: flex; gap: 32px; flex-wrap: wrap; padding-top: 20px; border-top: 1px solid var(--line); }
.ds-host-stats > div { display: flex; flex-direction: column; gap: 2px; }
.ds-host-stats em { font-family: 'Anton', sans-serif; font-size: 28px; font-style: normal; color: var(--text); line-height: 1; }
.ds-host-stats span { font-size: 11px; letter-spacing: 0.14em; color: var(--muted); margin-top: 4px; }

/* ===== CAST ===== */
.ds-cast { padding: 80px 40px; border-bottom: 1px solid var(--line); }
.ds-cast-head {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  gap: 18px; margin-bottom: 56px;
}
.ds-h2 { font-family: 'Anton', sans-serif; font-size: clamp(56px, 8vw, 96px); line-height: 1; letter-spacing: -0.01em; }
.ds-h2-center { text-align: center; }
.ds-mute { color: var(--muted); font-size: 0.5em; vertical-align: top; }
.ds-cast-sub { color: var(--muted); font-size: 14px; line-height: 1.6; max-width: 480px; text-align: center; }
.ds-i-pill, .ds-plus-pill {
  display: inline-flex; width: 20px; height: 20px; align-items: center; justify-content: center;
  background: var(--pink); color: #fff; border-radius: 50%; font-size: 11px; font-weight: 700;
  font-family: serif; font-style: italic;
}
.ds-plus-pill { font-family: inherit; font-style: normal; }

.ds-cast-block { margin-bottom: 56px; }
.ds-cast-block:last-child { margin-bottom: 0; }
.ds-cast-block-head {
  display: flex; align-items: center; gap: 16px; margin-bottom: 24px;
}
.ds-cast-block-head-center {
  justify-content: center;
}
.ds-block-tag {
  font-family: 'Anton', sans-serif; font-size: 22px; letter-spacing: 0.06em;
  background: var(--card-bg); color: var(--card-text);
  padding: 8px 16px; border-radius: 8px;
}
.ds-block-tag.girl { background: var(--pink); color: #fff; }
.ds-block-tag.boy { background: #4338ca; color: #fff; }
.ds-block-line { flex: 1; height: 1px; background: var(--line); }
.ds-block-count { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--muted); }

/* Profile-card grid — 5 vedle sebe */
.ds-cards-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
}

/* === PROFILE CARD (Sophie-style) === */
.pc-wrap { perspective: 1400px; }
.pc-card {
  position: relative; width: 100%; aspect-ratio: 0.62;
  transition: transform 0.7s cubic-bezier(.6,.2,.2,1);
}
.pc-face {
  position: absolute; inset: 0;
  border-radius: 24px;
  background: var(--card-bg, #fff);
  box-shadow: 0 14px 40px rgba(0,0,0,0.18), 0 2px 6px rgba(0,0,0,0.08);
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: opacity 0.4s ease, transform 0.7s cubic-bezier(.6,.2,.2,1);
}
/* Cast a BE karta front — používá --card-bg (teď dark v theme-dark).
   Photo overlay vyplní celou plochu, bg se ukáže jen pod průhlednými oblastmi. */
.ds-app.theme-dark .pc-face {
  background: var(--card-bg);
  color: var(--card-text);
}
.pc-front { padding: 10px 10px 14px; opacity: 1; }
.pc-back { opacity: 0; pointer-events: none; }
.pc-card.flipped .pc-front { opacity: 0; pointer-events: none; }
.pc-card.flipped .pc-back { opacity: 1; pointer-events: auto; }
.pc-face {
  position: absolute; inset: 0;
  border-radius: 24px;
  background: var(--card-bg, #fff);
  box-shadow: 0 14px 40px rgba(0,0,0,0.18), 0 2px 6px rgba(0,0,0,0.08);
  overflow: hidden;
  display: flex; flex-direction: column;
}
/* Cast a BE karta front — používá --card-bg (teď dark v theme-dark).
   Photo overlay vyplní celou plochu, bg se ukáže jen pod průhlednými oblastmi. */
.ds-app.theme-dark .pc-face {
  background: var(--card-bg);
  color: var(--card-text);
}
.pc-front { padding: 10px 10px 14px; transform: translateZ(1px); }
.pc-photo {
  position: relative; aspect-ratio: 1;
  border-radius: 16px; overflow: hidden;
  background: #e8e8ee;
}
.pc-info {
  position: absolute; top: 8px; right: 8px; z-index: 2;
  width: 28px; height: 28px; border-radius: 50%;
  display: none;
  transition: 0.2s;
}
.pc-hover-hint {
  position: absolute; top: 10px; right: 10px; z-index: 2;
  font-family: 'JetBrains Mono', monospace; font-size: 9px;
  letter-spacing: 0.16em; padding: 4px 8px; border-radius: 999px;
  background: rgba(0,0,0,0.55); color: #fff;
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  opacity: 0.85;
  transition: opacity 0.3s;
}
.pc-card:hover .pc-hover-hint { opacity: 0; }
.pc-card { cursor: pointer; }
.pc-body-min { padding: 14px 12px 12px; gap: 6px; }
.pc-meta-row {
  display: flex; gap: 8px; align-items: center;
  font-family: 'JetBrains Mono', monospace; font-size: 11px;
  color: #6b3a5a; letter-spacing: 0.06em;
}
.pc-back-bio {
  font-size: 12px; line-height: 1.5; color: rgba(255,255,255,0.78);
  margin: 4px 0 2px;
}
.pc-back-foot {
  margin-top: auto; display: flex; flex-direction: column; gap: 10px;
  padding-top: 12px; border-top: 1px dashed rgba(255,255,255,0.16);
}
.pc-back-stats { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.pc-back-ig-mini {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--pink-glow);
  text-align: center;
  letter-spacing: 0.04em;
}
.pc-stat-btn.small { padding: 4px 8px; font-size: 11px; }

/* PROMINENT VOTE BUTTON — velké srdce + count + label */
.pc-vote-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 12px 16px;
  background: rgba(255, 77, 143, 0.12);
  border: 1.5px solid rgba(255, 77, 143, 0.45);
  border-radius: 999px;
  color: #fff;
  font-family: 'Schibsted Grotesk', sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background 0.25s, border-color 0.25s, transform 0.2s, box-shadow 0.2s;
}
.pc-vote-btn:hover {
  background: rgba(255, 77, 143, 0.2);
  border-color: var(--pink);
  transform: translateY(-1px);
  box-shadow: 0 6px 24px rgba(255, 77, 143, 0.3);
}
.pc-vote-btn.active {
  background: var(--pink);
  border-color: var(--pink);
  color: #fff;
  box-shadow: 0 0 24px rgba(255, 77, 143, 0.5), 0 4px 16px rgba(255, 77, 143, 0.4);
}
.pc-vote-btn.active:hover {
  background: var(--pink-glow);
  border-color: var(--pink-glow);
}
.pc-vote-btn svg {
  flex-shrink: 0;
  transition: transform 0.3s;
}
.pc-vote-btn.active svg {
  animation: pc-vote-pulse 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 1;
}
@keyframes pc-vote-pulse {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.4); }
  100% { transform: scale(1); }
}
.pc-vote-count {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  font-size: 14px;
}
.pc-vote-label {
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 600;
  opacity: 0.9;
}

.pc-body { padding: 14px 12px 4px; flex: 1; display: flex; flex-direction: column; gap: 10px; }
.pc-name-row { display: flex; align-items: center; gap: 6px; }
.pc-name {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 18px; font-weight: 700; color: #1a0014;
  letter-spacing: -0.015em; line-height: 1.1;
}
.pc-verified { display: inline-flex; flex-shrink: 0; }
.pc-bio {
  font-size: 13px; line-height: 1.45; color: #5b3d52;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden;
}
.pc-foot {
  margin-top: auto;
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding-top: 6px;
}
.pc-stats { display: flex; align-items: center; gap: 12px; }
.pc-stat, .pc-stat-btn {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 13px; color: #6b3a5a;
  background: transparent; border: 0; cursor: default; padding: 0; font-family: inherit;
}
.pc-stat-btn { cursor: pointer; transition: 0.2s; }
.pc-stat-btn:hover { color: var(--pink); }
.pc-stat-btn.active { color: var(--pink); font-weight: 600; }
.pc-follow {
  display: inline-flex; align-items: center; gap: 6px;
  background: #1a0014; color: #fff;
  border: 0; cursor: pointer;
  padding: 8px 14px; border-radius: 999px;
  font-family: inherit; font-size: 13px; font-weight: 500;
  transition: 0.2s;
}
.pc-follow:hover { background: var(--pink); }
.pc-follow.matched { background: var(--pink); }
.pc-follow-icon { font-size: 15px; line-height: 1; }

.pc-back {
  padding: 18px 16px;
  background: linear-gradient(160deg, var(--bg-3), var(--bg-2)) !important;
  color: var(--text) !important;
  gap: 12px;
}
.pc-back .pc-info { background: rgba(255,255,255,0.18); color: #fff; }
.pc-back-name { font-family: 'Anton', sans-serif; font-size: 28px; line-height: 1; color: var(--pink-glow); }
.pc-back-name span { color: var(--muted); font-family: 'Schibsted Grotesk', sans-serif; font-size: 14px; font-weight: 400; }
.pc-back-job { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--muted); margin-top: -6px; }
.pc-back-block { padding-top: 8px; border-top: 1px dashed rgba(255,255,255,0.18); }
.pc-back-label { font-size: 9px; letter-spacing: 0.16em; opacity: 0.6; margin-bottom: 4px; }
.pc-back-block p { font-size: 12px; line-height: 1.5; }
.pc-back-ig { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--pink-glow); margin-top: auto; }
.sw-card-wrap { perspective: 1400px; }
.sw-card {
  position: relative; width: 100%; aspect-ratio: 9/16;
  transition: transform 0.7s cubic-bezier(.6,.2,.2,1);
  transform-style: preserve-3d;
}
.sw-card.flipped { transform: rotateY(180deg); }
.sw-face {
  position: absolute; inset: 0; backface-visibility: hidden;
  border-radius: 14px; overflow: hidden;
  background: var(--card-bg);
  box-shadow: 0 8px 30px rgba(0,0,0,0.3);
}
.sw-front { display: flex; flex-direction: column; }
.sw-photo { position: relative; flex: 1; overflow: hidden; }
.sw-photo-fade {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
}
.sw-tag {
  position: absolute; top: 10px; left: 10px;
  display: inline-flex; align-items: center; gap: 4px;
  background: var(--card-bg); color: var(--card-text);
  padding: 6px 10px; border-radius: 6px;
  font-family: 'Anton', sans-serif; font-size: 13px; letter-spacing: 0.06em;
  z-index: 2;
}
.sw-card.boy .sw-tag { background: var(--purple-deep); color: #fff; }
.sw-card.girl .sw-tag { background: var(--pink); color: #fff; }
.sw-tag-arrow { font-size: 11px; }

.sw-info-btn {
  position: absolute; top: 10px; right: 10px; z-index: 3;
  width: 30px; height: 30px; border-radius: 50%;
  background: rgba(255,255,255,0.9); color: #1a0014;
  border: 0; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-style: italic; font-weight: 700; font-family: serif; font-size: 15px;
  transition: 0.2s;
}
.sw-info-btn:hover { background: var(--pink); color: #fff; }
.sw-back-close { font-style: normal; font-family: inherit; font-size: 20px; }

.sw-photo-actions {
  position: absolute; bottom: 10px; right: 10px; z-index: 2;
  display: flex; gap: 6px;
}
.sw-mini {
  width: 32px; height: 32px; border-radius: 50%;
  background: rgba(255,255,255,0.92); color: #1a0014;
  border: 0; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; transition: 0.2s;
}
.sw-mini:hover { background: var(--pink); color: #fff; }
.sw-mini.active { background: var(--pink); color: #fff; box-shadow: 0 0 16px rgba(255, 77, 143, 0.6); }
.sw-mini.sw-match { font-size: 18px; line-height: 1; }
.sw-mini.sw-match.active { background: var(--purple-deep); }

.sw-back {
  transform: rotateY(180deg);
  padding: 18px 16px;
  display: flex; flex-direction: column; gap: 12px;
  background: linear-gradient(160deg, var(--bg-3), var(--bg-2));
  color: var(--text);
}
.sw-back .sw-info-btn { background: rgba(255,255,255,0.15); color: #fff; }
.sw-back-name { font-family: 'Anton', sans-serif; font-size: 28px; line-height: 1; color: var(--pink-glow); }
.sw-back-meta { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--muted); margin-top: -8px; }
.sw-back-block { padding-top: 8px; border-top: 1px dashed rgba(255,255,255,0.18); }
.sw-back-label { font-size: 9px; letter-spacing: 0.16em; opacity: 0.6; margin-bottom: 4px; }
.sw-back-block p { font-size: 12px; line-height: 1.5; }
.sw-back-ig { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--pink-glow); margin-top: auto; }

.sw-cap {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 8px;
  padding: 12px 4px 0;
  font-size: 10px; letter-spacing: 0.04em; line-height: 1.4;
}
.sw-cap-name { font-weight: 700; text-transform: uppercase; }
.sw-cap-meta { color: var(--muted); text-align: right; }

/* ===== MATCH ===== */
.ds-match {
  padding: 100px 40px;
  background: linear-gradient(180deg, transparent, rgba(255, 110, 199, 0.06));
  border-bottom: 1px solid var(--line);
  text-align: center;
}
.ds-match-sub { color: var(--muted); margin: 12px 0 48px; }
.ds-match-stage {
  display: grid; grid-template-columns: 1fr auto 1fr; gap: 32px;
  max-width: 900px; margin: 0 auto; align-items: center;
}
.ds-match-slot { position: relative; }
.ds-slot-num {
  position: absolute; top: -14px; left: 50%; transform: translateX(-50%);
  background: var(--text); color: var(--bg);
  padding: 4px 14px; border-radius: 999px;
  font-family: 'Anton', sans-serif; font-size: 14px; letter-spacing: 0.1em; z-index: 2;
}
.ds-slot-photo {
  aspect-ratio: 0.78; border-radius: 14px; overflow: hidden;
  border: 2px dashed var(--line);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 16px;
}
.ds-slot-empty { font-family: 'JetBrains Mono', monospace; color: var(--muted); font-size: 13px; }
.ds-slot-name { font-family: 'Anton', sans-serif; font-size: 32px; }
.ds-match-bridge { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.ds-match-line { width: 1px; height: 30px; background: var(--line); }
.ds-heart-pulse {
  filter: drop-shadow(0 0 24px var(--pink));
  animation: pulse 1.6s ease-in-out infinite;
  color: var(--pink);
}
@keyframes pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.15); } }
.ds-match-status {
  font-family: 'Anton', sans-serif; font-size: 16px; letter-spacing: 0.14em;
  color: var(--pink); text-transform: uppercase;
}
.ds-match-quote { margin-top: 32px; font-style: italic; font-size: 18px; color: var(--muted); }
.ds-match-quote strong { color: var(--pink); font-style: normal; font-weight: 700; }
.ds-share {
  display: inline-block; margin-left: 12px;
  background: var(--pink); color: #fff; border: 0;
  padding: 8px 16px; border-radius: 999px; cursor: pointer; font-family: inherit; font-weight: 600;
}

/* ===== ARCHIVE ===== */
.ds-archive { padding: 80px 40px; border-bottom: 1px solid var(--line); }
.ds-archive-list { display: flex; flex-direction: column; margin-top: 24px; }
.ds-archive-row {
  display: grid; grid-template-columns: 80px 1fr auto auto; gap: 24px;
  padding: 22px 0; border-top: 1px solid var(--line);
  cursor: pointer; align-items: center;
  color: var(--text); text-decoration: none;
  transition: 0.2s;
}
.ds-archive-row:hover { padding-left: 12px; color: var(--pink); }
.ds-arch-ep { font-family: 'Anton', sans-serif; font-size: 24px; color: var(--pink); }
.ds-arch-title { font-size: 18px; }
.ds-arch-date { color: var(--muted); font-size: 13px; font-family: 'JetBrains Mono', monospace; }
.ds-arch-arrow { display: inline-flex; align-items: center; opacity: 0.6; transition: opacity 0.2s, transform 0.2s; }
.ds-archive-row:hover .ds-arch-arrow { opacity: 1; transform: translate(2px, -2px); }

/* ===== APPLY ===== */
.ds-apply { padding: 80px 40px; border-bottom: 1px solid var(--line); }
.ds-apply-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
.ds-apply-text p { color: var(--muted); margin-top: 16px; line-height: 1.6; max-width: 480px; }
.ds-apply-meta {
  display: flex; gap: 32px; margin-top: 32px; padding-top: 20px;
  border-top: 1px solid var(--line); flex-wrap: wrap;
}
.ds-apply-meta > div { display: flex; flex-direction: column; gap: 2px; }
.ds-apply-meta em {
  font-family: 'JetBrains Mono', monospace; font-style: normal;
  font-size: 11px; letter-spacing: 0.16em; color: var(--pink);
}
.ds-apply-meta span { font-size: 14px; color: var(--text); }
.ds-apply-form { display: grid; gap: 16px; }
.ds-apply-form label {
  display: flex; flex-direction: column; gap: 6px;
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted);
}
.ds-apply-form input, .ds-apply-form textarea {
  background: transparent; border: 0; border-bottom: 1px solid var(--text);
  padding: 8px 0; font-family: inherit; font-size: 16px; color: var(--text); outline: 0;
}
.ds-apply-form textarea { min-height: 80px; resize: vertical; }
.ds-apply-form input:focus, .ds-apply-form textarea:focus { border-color: var(--pink); }
.ds-apply-btn {
  background: var(--pink); color: #fff; border: 0; padding: 16px;
  font-family: 'Anton', sans-serif; font-size: 18px; letter-spacing: 0.12em;
  cursor: pointer; margin-top: 8px;
  box-shadow: 0 8px 30px rgba(255, 77, 143, 0.4);
}

.ds-footer {
  padding: 28px 40px;
  display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px;
  font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted);
}

/* ===== ANIMATIONS — cinematic reveal (blur+slide+fade) ===== */
.blur-text { display: inline-flex; flex-wrap: wrap; gap: 0 0.28em; row-gap: 0.05em; }
.blur-word {
  display: inline-block;
  filter: blur(10px);
  opacity: 0;
  transform: translateY(28px);
  transition: filter 0.9s cubic-bezier(.2,.7,.2,1),
              opacity 0.9s cubic-bezier(.2,.7,.2,1),
              transform 0.9s cubic-bezier(.2,.7,.2,1);
}
.blur-word.is-in { filter: blur(0); opacity: 1; transform: translateY(0); }

.reveal {
  opacity: 0;
  filter: blur(8px);
  transform: translateY(var(--reveal-y, 20px));
  transition: opacity 0.9s cubic-bezier(.2,.7,.2,1),
              filter 0.9s cubic-bezier(.2,.7,.2,1),
              transform 0.9s cubic-bezier(.2,.7,.2,1);
  will-change: transform, opacity, filter;
}
.reveal.is-in { opacity: 1; filter: blur(0); transform: translateY(0); }

/* Stagger items — cards fall in with alternating tilt + scale + blur */
.stagger-item {
  opacity: 0;
  filter: blur(14px);
  transform: translateY(80px) scale(0.85) rotate(var(--card-tilt, -4deg));
  transition: opacity 1s cubic-bezier(.16, .84, .26, 1),
              filter 1s cubic-bezier(.16, .84, .26, 1),
              transform 1.1s cubic-bezier(.16, .84, .26, 1);
  will-change: transform, opacity, filter;
}
/* Alternující tilt — odd doleva, even doprava */
.stagger-item:nth-child(odd)  { --card-tilt: -5deg; }
.stagger-item:nth-child(even) { --card-tilt:  5deg; }
.stagger-item:nth-child(3n)   { --card-tilt: -3deg; }
.stagger.is-in .stagger-item {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0) scale(1) rotate(0);
}

/* RevealSlide — cinematic slide-in for whole blocks (multi-axis + rotation + blur) */
.reveal-slide {
  opacity: 0;
  transform:
    translate3d(var(--slide-x, -120px), var(--slide-y, 0px), 0)
    rotate(var(--slide-rot, -2deg))
    scale(0.94);
  filter: blur(10px);
  transition:
    opacity 1.2s cubic-bezier(.16, .84, .26, 1),
    transform 1.3s cubic-bezier(.16, .84, .26, 1),
    filter 1.2s cubic-bezier(.16, .84, .26, 1);
  will-change: transform, opacity, filter;
}
.reveal-slide.is-in {
  opacity: 1;
  transform: translate3d(0, 0, 0) rotate(0) scale(1);
  filter: blur(0);
}

/* Soft floating glow blobs in hero */
.ds-hero::before, .ds-hero::after {
  content: ""; position: absolute; pointer-events: none; z-index: 0;
  width: 600px; height: 600px; border-radius: 50%;
  filter: blur(80px); opacity: 0.5;
  animation: float-blob 14s ease-in-out infinite;
}
.ds-hero::before {
  background: var(--pink); top: -200px; left: -150px;
}
.ds-hero::after {
  background: var(--purple-deep); top: 100px; right: -200px;
  animation-delay: -7s;
}
@keyframes float-blob {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(40px, 30px) scale(1.08); }
}
.ds-hero > * { position: relative; z-index: 1; }

/* Card hover lift */
.pc-card { transition: transform 0.7s cubic-bezier(.6,.2,.2,1); }
.pc-wrap:hover .pc-card:not(.flipped) { transform: translateY(-6px); }

/* Live dot stronger */
.ds-live-dot { animation: live-pulse 1.4s infinite; }

/* Heart pulse already exists, ensure it reads var */

@media (max-width: 1100px) {
  .ds-cards-row { grid-template-columns: repeat(5, 1fr); gap: 10px; }
}
@media (max-width: 700px) {
  .ds-cards-row { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
  .ds-hero-grid { grid-template-columns: 1fr; }
  .ds-apply-grid { grid-template-columns: 1fr; }
  .ds-cards-row { grid-template-columns: repeat(2, 1fr); }
}

/* ========================================================================
   FULL-PHOTO CARD — fotka přes celou kartu, jen jméno + věk overlay
   ======================================================================== */
.pc-front-full { padding: 0 !important; }
.pc-photo-full {
  position: absolute; inset: 0;
  aspect-ratio: auto;
  width: 100%; height: 100%;
  border-radius: 24px;
}
.pc-photo-full svg {
  width: 100% !important;
  height: 100% !important;
}
.pc-photo-img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 25%;
  display: block;
  border-radius: 24px;
}
.arc-game-slot-img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 25%;
  display: block;
  image-rendering: auto;
}
.pc-photo-overlay {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 60px 16px 16px;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.55) 50%, rgba(0, 0, 0, 0.85) 100%);
  display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
  pointer-events: none;
}
.pc-name-overlay {
  font-family: 'Anton', sans-serif;
  font-size: 30px; line-height: 1;
  letter-spacing: -0.01em;
  color: #fff;
  text-shadow: 0 2px 14px rgba(0,0,0,0.6);
}
.pc-age-overlay {
  font-family: 'JetBrains Mono', monospace;
  font-size: 15px;
  color: rgba(255, 255, 255, 0.95);
  /* Fialová — odlišení od růžových likes badges */
  background: rgba(167, 139, 250, 0.92);
  padding: 4px 10px;
  border-radius: 999px;
  letter-spacing: 0.04em;
  font-weight: 600;
  flex-shrink: 0;
}
.pc-card .pc-hover-hint {
  background: rgba(255, 77, 143, 0.9);
  color: #fff;
  font-weight: 700;
}

/* === ALWAYS-VISIBLE OVERLAY — like button + appearances/NEW badge === */
/* Like button (hearts) — top-right, viditelný PŘED card flipem */
.pc-card .pc-overlay-like {
  position: absolute;
  top: 12px; right: 12px;
  z-index: 10;
  display: inline-flex; align-items: center; gap: 5px;
  padding: 7px 12px 7px 9px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 245, 250, 0.18);
  color: #fff;
  cursor: pointer;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  transition: all 0.2s cubic-bezier(.4,0,.2,1);
}
.pc-card .pc-overlay-like svg { display: block; flex-shrink: 0; }
.pc-card .pc-overlay-like:hover {
  background: rgba(255, 77, 143, 0.92);
  border-color: var(--pink-glow);
  transform: scale(1.06);
  box-shadow: 0 4px 14px rgba(255, 77, 143, 0.4);
}
.pc-card .pc-overlay-like.is-liked {
  background: var(--pink);
  border-color: var(--pink-glow);
  color: #fff;
  box-shadow: 0 0 16px rgba(255, 77, 143, 0.55), 0 4px 12px rgba(0, 0, 0, 0.3);
}
.pc-card .pc-overlay-like.is-liked .pc-overlay-like-count {
  font-weight: 700;
}
.pc-overlay-like-count { line-height: 1; }

/* Appearances badge — top-left, výrazný pink pill se sticker shadow */
.pc-card .pc-overlay-badge {
  position: absolute;
  top: 12px; left: 12px;
  z-index: 10;
  display: inline-flex; align-items: baseline;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 6px 11px 7px;
  border-radius: 6px;
  border: 1.5px solid;
  white-space: nowrap;
}
/* === Appearances tiers — barevně podle počtu účastí (ranking system) === */
.pc-card .pc-overlay-tier {
  background: var(--pink);
  color: #fff;
  border-color: var(--pink-glow);
  box-shadow: 3px 3px 0 var(--purple-deep);
}

/* === Nepotvrzeno badge — varianta `.pc-overlay-badge` (sdílí pozici s NEW/tier) === */
.pc-card .pc-overlay-unconfirmed {
  background: #ffd24a;
  color: #1a0014;
  border-color: #1a0014;
  font-family: 'Anton', sans-serif;
  font-size: 12px;
  letter-spacing: 0.14em;
  padding: 6px 11px 7px;
  box-shadow: 3px 3px 0 var(--purple-deep, #6d28d9);
}

/* === TBD karta — nevybraný účastník (otazník přes siluetu) === */
.pc-card-tbd {
  position: relative;
  width: 100%;
  aspect-ratio: 9 / 16;
  border-radius: 14px;
  overflow: hidden;
  border: 2px dashed rgba(255, 255, 255, 0.18);
  background: linear-gradient(180deg, rgba(40, 10, 35, 0.6), rgba(20, 5, 20, 0.85));
  filter: grayscale(0.6) brightness(0.75);
  transition: filter 0.25s ease, border-color 0.25s ease;
}
.pc-card-tbd:hover {
  filter: grayscale(0.3) brightness(0.9);
  border-color: rgba(255, 119, 173, 0.35);
}
.pc-tbd-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.45) 65%, rgba(0, 0, 0, 0.85) 100%);
  pointer-events: none;
  z-index: 3;
}
.pc-tbd-mark {
  font-family: 'Anton', sans-serif;
  font-size: clamp(72px, 12vw, 140px);
  line-height: 0.85;
  color: #fff;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.65), 0 0 30px rgba(255, 119, 173, 0.5);
  opacity: 0.92;
}
.pc-tbd-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 245, 250, 0.7);
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}
.pc-card .pc-overlay-tier em {
  font-family: 'Anton', sans-serif;
  font-style: normal;
  font-size: 17px;
  letter-spacing: -0.02em;
  margin-right: 3px;
}

/* TIER 1 (NEW) — žlutá, animovaná */
.pc-card .pc-tier-new {
  background: #ffeb3b;
  color: #1a0014;
  border-color: #f5b700;
  font-family: 'Anton', sans-serif;
  font-size: 14px;
  letter-spacing: 0.12em;
  padding: 5px 11px 6px;
  box-shadow: 3px 3px 0 var(--purple-deep), 0 0 14px rgba(255, 235, 59, 0.35);
  animation: pc-new-pulse 1.8s ease-in-out infinite;
  transform-origin: center;
}
@keyframes pc-new-pulse {
  0%, 100% { transform: scale(1) rotate(-3deg); }
  50%      { transform: scale(1.08) rotate(3deg); box-shadow: 4px 4px 0 var(--purple-deep), 0 0 22px rgba(255, 235, 59, 0.6); }
}

/* TIER 2 (ROOKIE) — zelená */
.pc-card .pc-tier-t2 {
  background: #4ade80;
  color: #052e1c;
  border-color: #16a34a;
  box-shadow: 3px 3px 0 #15803d, 0 0 12px rgba(74, 222, 128, 0.3);
}
.pc-card .pc-tier-t2 em {
  color: #fff;
  text-shadow: 1px 1px 0 #15803d;
}

/* TIER 3 (REGULAR) — pink */
.pc-card .pc-tier-t3 {
  background: var(--pink);
  color: #fff;
  border-color: var(--pink-glow);
  box-shadow: 3px 3px 0 var(--purple-deep), 0 0 14px rgba(255, 77, 143, 0.4);
}
.pc-card .pc-tier-t3 em {
  color: #fff;
  text-shadow: 1px 1px 0 #6d28d9;
}

/* TIER 4 (VETERAN) — gold */
.pc-card .pc-tier-t4 {
  background: linear-gradient(135deg, #ffd700 0%, #ffa500 100%);
  color: #1a0014;
  border-color: #ffa500;
  box-shadow: 3px 3px 0 #6d28d9, 0 0 18px rgba(255, 215, 0, 0.5);
}
.pc-card .pc-tier-t4 em {
  color: #6d28d9;
  text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5);
}

/* TIER 5+ (LEGEND) — animovaný gradient pink/gold/violet */
.pc-card .pc-tier-legend {
  background: linear-gradient(135deg, #c026d3 0%, #ff4d8f 35%, #ffd700 70%, #c026d3 100%);
  background-size: 200% 200%;
  color: #fff;
  border-color: #ffd700;
  box-shadow: 3px 3px 0 #1a0014, 0 0 24px rgba(255, 215, 0, 0.6);
  animation: pc-legend-shimmer 3s ease-in-out infinite;
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.4);
}
.pc-card .pc-tier-legend em {
  color: #fff;
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5), 0 0 8px rgba(255, 215, 0, 0.8);
}
@keyframes pc-legend-shimmer {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}

/* === Hide overlay (like + badge) when card is flipped === */
.pc-card.flipped .pc-overlay-like,
.pc-card.flipped .pc-overlay-badge {
  opacity: 0;
  pointer-events: none;
  transform: scale(0.88) translateY(-4px);
  transition: opacity 0.35s ease, transform 0.4s cubic-bezier(.4,0,.2,1);
}
.pc-card .pc-overlay-like,
.pc-card .pc-overlay-badge {
  transition: opacity 0.4s ease, transform 0.3s, background 0.2s, border-color 0.2s, box-shadow 0.2s;
}

/* Best Energy: appearances mini-pill (under votes pill, top-right) */
.be-appearances-pill {
  position: absolute;
  top: 44px; right: 10px;
  z-index: 4;
  display: inline-flex; align-items: baseline; gap: 1px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.7);
  color: #fff;
  border: 1px solid rgba(255, 245, 250, 0.18);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.be-appearances-pill em {
  font-family: 'Anton', sans-serif;
  font-style: normal;
  font-size: 13px;
  color: #ffeb3b;
  letter-spacing: -0.02em;
  text-shadow: 1px 1px 0 #6d28d9;
}

/* ========================================================================
   MATCH SLOTS — výrazně viditelná okna pro spárování
   ======================================================================== */
.ds-match-stage { gap: 40px; }
.ds-match-slot { position: relative; padding: 14px 14px 18px; }
.ds-match-slot::before {
  content: ""; position: absolute; inset: 0;
  border-radius: 24px;
  background: radial-gradient(circle at center 40%, rgba(255, 77, 143, 0.18), transparent 70%);
  z-index: -1;
  opacity: 0; transition: opacity 0.4s;
  pointer-events: none;
}
.ds-match-slot:hover::before { opacity: 1; }

.ds-slot-photo {
  aspect-ratio: 0.78;
  border-radius: 18px;
  overflow: hidden;
  border: 3px dashed var(--pink);
  background:
    linear-gradient(180deg, rgba(255, 77, 143, 0.08), rgba(192, 132, 252, 0.08));
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 18px;
  transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s, background 0.3s;
  position: relative;
  animation: slot-pulse 2.4s ease-in-out infinite;
}
.ds-slot-photo:has(svg) {
  border-style: solid;
  border-color: var(--pink-glow);
  background: transparent;
  animation: none;
  box-shadow: 0 16px 48px rgba(255, 77, 143, 0.35), 0 0 0 4px rgba(255, 77, 143, 0.12);
}
.ds-match-slot:hover .ds-slot-photo {
  transform: translateY(-6px);
  border-color: var(--pink-glow);
  box-shadow: 0 18px 50px rgba(255, 77, 143, 0.4);
}

@keyframes slot-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 77, 143, 0.0); }
  50%      { box-shadow: 0 0 0 10px rgba(255, 77, 143, 0.08); }
}

.ds-slot-empty {
  font-family: 'JetBrains Mono', monospace;
  color: var(--pink);
  font-size: 13px; font-weight: 600; letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center; padding: 12px 8px;
  opacity: 0.85;
}

.ds-slot-num {
  background: var(--pink); color: #fff;
  padding: 6px 16px;
  font-size: 16px;
  box-shadow: 0 6px 18px rgba(255, 77, 143, 0.4);
  top: -2px;
}

.ds-slot-name {
  font-size: 28px;
  text-align: center;
  color: var(--text);
  transition: color 0.3s;
}
.ds-match-slot:has(.ds-slot-photo svg) .ds-slot-name {
  color: var(--pink-glow);
}

/* ========================================================================
   LOKÁLNÍ ÚPRAVY (mimo Claude Design bundle)
   - Video pozadí v hero (webloop.mp4)
   - OPATOVA ransom-note nadpis nad DATE/SHOW
   - Hamburger menu pro mobil
   - Mobile responsive overhaul
   ======================================================================== */

/* Hero video pozadí */
.ds-hero {
  /* padding-top 80px = clearance pod fixed top bannerem (banner ~56px tall).
     Video element fills full hero box, banner je transparentní overlay nad ním. */
  padding: 80px 40px 0;
  position: relative;
  overflow: hidden;
  /* 16:9 aspect podle šířky viewportu, capped na 980px na obřích monitorech */
  min-height: clamp(680px, 56.25vw, 980px);
  display: flex;
  flex-direction: column;
}
.ds-hero-video {
  position: absolute;
  /* posunutý 40px nahoru, výška 100%+40 → bez mezery dole */
  top: -40px; left: 0; right: 0;
  width: 100%; height: calc(100% + 40px);
  object-fit: cover;
  object-position: 70% 50%;
  z-index: 0;
  pointer-events: none;
  filter: saturate(1.1);
  will-change: transform;
}
.ds-hero-tint {
  position: absolute; inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(8, 0, 20, 0.92) 0%, rgba(8, 0, 20, 0.7) 30%, rgba(8, 0, 20, 0.25) 55%, rgba(8, 0, 20, 0.55) 100%),
    linear-gradient(180deg, rgba(8, 0, 20, 0.4) 0%, transparent 30%, rgba(8, 0, 20, 0.85) 100%);
}
.ds-hero-grid {
  position: relative; z-index: 2;
  align-items: start; flex: 1;
  padding-bottom: 24px;
  padding-top: 12px;
}
.ds-hero-left { max-width: 640px; align-self: start; padding-top: 40px; }
.ds-strip { position: relative; z-index: 2; margin-top: auto; }
.ds-display {
  font-size: clamp(72px, 12vw, 180px);
  letter-spacing: -0.03em;
  text-shadow: 0 4px 40px rgba(0, 0, 0, 0.6), 0 0 80px rgba(192, 132, 252, 0.2);
}
.ds-lede {
  color: rgba(255, 245, 250, 0.92);
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.6);
}
.ds-lede em { color: var(--pink-glow); font-weight: 600; }
.ds-lede strong { color: #fff; }

/* OPATOVA ransom-note */
.ds-hero-opatova {
  display: inline-flex; align-items: center; gap: 5px;
  margin-bottom: 14px;
  padding: 8px 4px;
  perspective: 800px;
}
.opa-l {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 7px 12px 9px;
  font-weight: 900;
  line-height: 1;
  font-size: clamp(30px, 4.6vw, 58px);
  letter-spacing: -0.02em;
  box-shadow:
    0 14px 28px rgba(0, 0, 0, 0.5),
    0 4px 8px rgba(0, 0, 0, 0.35),
    inset 0 -1px 0 rgba(0, 0, 0, 0.1);
  transition: transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
  position: relative;
  user-select: none;
}
.opa-l:hover { transform: translateY(-4px) rotate(0deg) scale(1.08) !important; z-index: 5; }

/* Scattered ransom-note — random rotace + drop-from-above animace, postupně po 1 */
@keyframes opa-fall {
  0% {
    opacity: 0;
    transform: translateY(-260px) rotate(0deg) scale(0.85);
  }
  55% {
    opacity: 1;
    transform: translateY(14px) rotate(2deg) scale(1.06);
  }
  78% {
    transform: translateY(-4px) rotate(-1deg) scale(1);
  }
  100% {
    opacity: 1;
    transform: rotate(var(--opa-rot, 0deg)) translateY(var(--opa-ty, 0px)) scale(1);
  }
}

.opa-l-1 {
  /* O — light violet, serif */
  background: #c084fc; color: #1a0014;
  font-family: 'Times New Roman', Georgia, serif;
  --opa-rot: -6deg; --opa-ty: 0px;
  transform: rotate(var(--opa-rot)) translateY(var(--opa-ty));
  animation: opa-fall 0.95s cubic-bezier(0.4, 0, 0.25, 1) 0.2s backwards;
  clip-path: polygon(2% 8%, 18% 2%, 42% 6%, 68% 1%, 88% 5%, 99% 12%, 96% 38%, 100% 62%, 97% 88%, 86% 96%, 62% 99%, 38% 95%, 12% 99%, 1% 90%, 4% 64%, 0% 38%);
}
.opa-l-2 {
  /* P — bright pink, Anton */
  background: #ff4d8f; color: #fff;
  font-family: 'Anton', sans-serif;
  font-size: clamp(34px, 5.2vw, 66px);
  --opa-rot: 4deg; --opa-ty: -5px;
  transform: rotate(var(--opa-rot)) translateY(var(--opa-ty));
  animation: opa-fall 0.95s cubic-bezier(0.4, 0, 0.25, 1) 0.32s backwards;
  clip-path: polygon(4% 4%, 22% 8%, 48% 2%, 76% 6%, 96% 1%, 99% 24%, 95% 48%, 100% 72%, 96% 96%, 78% 99%, 52% 94%, 26% 99%, 6% 96%, 2% 78%, 6% 52%, 1% 26%);
}
.opa-l-3 {
  /* A — deep violet, serif italic */
  background: #7c3aed; color: #fff5fa;
  font-family: 'Georgia', serif; font-style: italic;
  font-size: clamp(28px, 4.4vw, 56px);
  --opa-rot: -3deg; --opa-ty: 3px;
  transform: rotate(var(--opa-rot)) translateY(var(--opa-ty));
  animation: opa-fall 0.95s cubic-bezier(0.4, 0, 0.25, 1) 0.44s backwards;
  clip-path: polygon(1% 12%, 14% 4%, 38% 1%, 64% 7%, 92% 2%, 99% 18%, 96% 42%, 100% 68%, 95% 92%, 78% 96%, 52% 99%, 26% 94%, 4% 98%, 2% 76%, 6% 48%, 0% 28%);
}
.opa-l-4 {
  /* T — pink/magenta, Anton */
  background: #ff2d92; color: #fff;
  font-family: 'Anton', sans-serif;
  font-size: clamp(32px, 5vw, 62px);
  --opa-rot: 5deg; --opa-ty: -4px;
  transform: rotate(var(--opa-rot)) translateY(var(--opa-ty));
  animation: opa-fall 0.95s cubic-bezier(0.4, 0, 0.25, 1) 0.56s backwards;
  clip-path: polygon(6% 2%, 28% 6%, 54% 1%, 82% 5%, 98% 8%, 96% 32%, 100% 56%, 94% 82%, 98% 96%, 72% 94%, 48% 99%, 22% 96%, 2% 99%, 4% 74%, 0% 48%, 4% 22%);
}
.opa-l-5 {
  /* O — dark navy/purple */
  background: #2e1065; color: #fff5fa;
  font-family: 'Times New Roman', Georgia, serif;
  font-size: clamp(28px, 4.4vw, 56px);
  --opa-rot: -4deg; --opa-ty: 2px;
  transform: rotate(var(--opa-rot)) translateY(var(--opa-ty));
  animation: opa-fall 0.95s cubic-bezier(0.4, 0, 0.25, 1) 0.68s backwards;
  clip-path: polygon(2% 6%, 24% 1%, 46% 8%, 72% 2%, 94% 6%, 99% 28%, 96% 52%, 100% 78%, 94% 96%, 68% 99%, 42% 94%, 18% 99%, 1% 92%, 4% 68%, 1% 42%, 6% 18%);
}
.opa-l-6 {
  /* V — magenta, Anton */
  background: #c026d3; color: #fff;
  font-family: 'Anton', sans-serif;
  font-size: clamp(34px, 5.2vw, 64px);
  --opa-rot: 6deg; --opa-ty: -3px;
  transform: rotate(var(--opa-rot)) translateY(var(--opa-ty));
  animation: opa-fall 0.95s cubic-bezier(0.4, 0, 0.25, 1) 0.80s backwards;
  clip-path: polygon(4% 8%, 18% 2%, 42% 6%, 68% 1%, 92% 4%, 99% 22%, 95% 48%, 100% 72%, 96% 94%, 78% 98%, 52% 96%, 28% 99%, 6% 96%, 2% 72%, 6% 46%, 1% 22%);
}
.opa-l-7 {
  /* A — bright pink */
  background: #ff8fc4; color: #1a0014;
  font-family: 'Georgia', serif;
  font-size: clamp(30px, 4.8vw, 60px);
  --opa-rot: -5deg; --opa-ty: 2px;
  transform: rotate(var(--opa-rot)) translateY(var(--opa-ty));
  animation: opa-fall 0.95s cubic-bezier(0.4, 0, 0.25, 1) 0.92s backwards;
  clip-path: polygon(2% 4%, 22% 8%, 48% 2%, 74% 6%, 96% 1%, 99% 22%, 95% 46%, 100% 70%, 96% 92%, 78% 99%, 52% 94%, 26% 99%, 4% 96%, 2% 74%, 6% 48%, 0% 24%);
}

/* Burger menu pro mobil */
.ds-burger {
  display: none;
  background: transparent; border: 0; cursor: pointer; padding: 6px;
  flex-direction: column; gap: 4px; align-items: center; justify-content: center;
  width: 36px; height: 36px;
}
.ds-burger span {
  display: block; width: 22px; height: 2px;
  background: var(--text); border-radius: 2px;
  transition: transform .3s, opacity .2s;
}
.ds-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.ds-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.ds-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* Mobile responsive overhaul */
@media (max-width: 900px) {
  .ds-top { padding: 14px 20px; }
  .ds-top-right { display: none; }
  .ds-nav {
    position: fixed;
    top: 64px; right: 0; bottom: 0; left: 0;
    width: 100%; height: calc(100vh - 64px); height: calc(100dvh - 64px);
    flex-direction: column; gap: 0;
    background: var(--bg);
    padding: 24px;
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
    z-index: 49;
    overflow-y: auto;
  }
  .ds-nav.open { transform: none; }
  .ds-nav a {
    padding: 18px 0; border-bottom: 1px solid var(--line);
    font-family: 'Anton', sans-serif; font-size: 28px; letter-spacing: 0.04em;
  }
  .ds-burger { display: flex; }

  .ds-hero { padding: 48px 20px 0; min-height: auto; }
  .ds-hero-grid { grid-template-columns: 1fr; gap: 32px; padding-bottom: 28px; }
  .ds-hero-video { object-position: center 75%; }
  .ds-hero-tint {
    background: linear-gradient(180deg, rgba(8, 0, 20, 0.55) 0%, rgba(8, 0, 20, 0.7) 60%, rgba(8, 0, 20, 0.95) 100%);
  }
  .ds-display { font-size: clamp(64px, 18vw, 120px); }
  .ds-lede { font-size: 16px; }

  .ds-team { padding: 48px 20px 64px; }
  .ds-team-card { grid-template-columns: 180px 1fr; padding: 12px 12px 18px; gap: 14px; }

  .ds-cast { padding: 56px 20px; }
  .ds-cast-head { gap: 16px; margin-bottom: 32px; }
  .ds-cards-row { grid-template-columns: repeat(3, 1fr); gap: 12px; }

  .ds-match { padding: 64px 20px; }
  .ds-match-stage { gap: 16px; }

  .ds-archive { padding: 56px 20px; }
  .ds-archive-row { grid-template-columns: 56px 1fr auto; gap: 14px; padding: 18px 0; }
  .ds-arch-arrow { display: none; }

  .ds-apply { padding: 56px 20px; }
  .ds-apply-grid { grid-template-columns: 1fr; gap: 36px; }

  .ds-footer { padding: 24px 20px; flex-direction: column; align-items: flex-start; }
}

@media (max-width: 600px) {
  .ds-cards-row { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .ds-team-card { grid-template-columns: 1fr; }
  .ds-cd-card { padding: 18px; }
  .ds-cd-num { font-size: 36px; }
  .ds-cd-foot { flex-direction: column; align-items: stretch; gap: 12px; }
  .ds-discord-btn { text-align: center; }
  .ds-team-stats { gap: 12px 18px; }
  .ds-team-stats em { font-size: 18px; }
  .ds-match-stage { grid-template-columns: 1fr; }
  .ds-match-bridge { flex-direction: row; gap: 16px; }
  .ds-match-line { width: 30px; height: 1px; }
  .ds-strip { font-size: 14px; }
  .ds-strip-track { gap: 24px; }
  .pc-name { font-size: 16px; }
  .pc-follow { padding: 7px 10px; font-size: 12px; }
  .opa-l { font-size: clamp(22px, 8vw, 38px) !important; padding: 4px 8px 6px; }
  .opa-l-2, .opa-l-6 { font-size: clamp(26px, 9vw, 44px) !important; }
}

@media (max-width: 400px) {
  .ds-cards-row { grid-template-columns: 1fr; }
}

/* ========================================================================
   CAST DIVIDER — chrome ruce mezi ženské a mužské karty
   ======================================================================== */
.ds-divider {
  position: relative;
  width: calc(100% + 80px);
  margin: 36px -40px;
  height: clamp(280px, 38vw, 460px);
  border-radius: 0;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  isolation: isolate;
}
.ds-divider-video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
  pointer-events: none;
  filter: saturate(1.15);
}
.ds-divider-tint {
  position: absolute; inset: 0;
  z-index: 1;
  background:
    radial-gradient(ellipse 70% 60% at center, transparent 0%, rgba(15, 0, 32, 0.35) 70%, rgba(15, 0, 32, 0.85) 100%),
    linear-gradient(90deg, rgba(255, 77, 143, 0.12), transparent 30%, transparent 70%, rgba(192, 132, 252, 0.12));
  pointer-events: none;
}
/* Mobil — zarovnat divider s ostatním paddingem */
@media (max-width: 900px) {
  .ds-divider {
    width: calc(100% + 40px);
    margin: 28px -20px;
    height: clamp(220px, 50vw, 360px);
  }
}

/* Vyrovnání karet pořadatel + moderátor — stejná výška */
.ds-team-grid { align-items: stretch; }
.ds-team-col { height: 100%; }
.ds-team-card { height: 100%; }
.ds-team-body { flex: 1; }
.ds-team { padding-top: 40px; }

/* ========================================================================
   ARCADE LOVE GAME — game1.png intro → game2.png match (crossfade)
   ======================================================================== */

.arc-section {
  padding: 80px 24px !important;
  background:
    radial-gradient(ellipse at top, rgba(255, 110, 199, 0.18), transparent 60%),
    linear-gradient(180deg, #1a0033 0%, #0a0014 100%) !important;
  display: flex; flex-direction: column; align-items: center;
}

/* Wrapper — drží oba obrázky překryvně */
.arc-game-wrap {
  position: relative;
  width: 100%; max-width: 820px;
  aspect-ratio: 597 / 336;
  margin: 0 auto;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5), 0 0 60px rgba(192, 132, 252, 0.25);
}

.arc-game-frame {
  position: absolute; inset: 0;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity 0.7s cubic-bezier(.4,0,.2,1), transform 1.2s cubic-bezier(.4,0,.2,1);
  pointer-events: none;
}
.arc-game-frame.is-active {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}
.arc-game-frame.is-gone {
  opacity: 0;
  transform: scale(0.96);
}

.arc-game-img {
  width: 100%; height: 100%;
  display: block;
  object-fit: cover;
  user-select: none;
  -webkit-user-drag: none;
}

/* START tlačítko na intro screenu */
.arc-game-press {
  position: absolute; left: 50%; bottom: 18%;
  transform: translateX(-50%);
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
  font-size: clamp(11px, 1.6vw, 16px);
  color: #fff;
  background: var(--pink, #ff4d8f);
  padding: 12px 22px;
  border-radius: 999px;
  box-shadow: 0 0 0 3px #6d28d9, 0 0 28px rgba(255, 77, 143, 0.7);
  animation: arc-press-blink 1s steps(2) infinite;
  letter-spacing: 0.08em;
  cursor: pointer;
  white-space: nowrap;
}
@keyframes arc-press-blink {
  0%, 49% { opacity: 1; transform: translateX(-50%) scale(1); }
  50%, 100% { opacity: 0.5; transform: translateX(-50%) scale(0.97); }
}

/* Overlay s P1/P2 sloty — pozičovaný nad cyan obrazovku v game2.png */
.arc-game-overlay {
  position: absolute;
  top: 17%; bottom: 24%; left: 28%; right: 28%;
  display: flex; align-items: stretch; justify-content: space-between;
  gap: 4%;
  pointer-events: none;
}

.arc-game-slot {
  flex: 1;
  position: relative;
  background: rgba(0, 0, 0, 0.18);
  border: 3px dashed #ff4d8f;
  border-radius: 8px;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(.4,0,.2,1);
  animation: arc-slot-pulse 1.6s ease-in-out infinite;
}
.arc-game-slot.filled {
  border-style: solid;
  border-color: #fff;
  background: rgba(255, 77, 143, 0.18);
  box-shadow: inset 0 0 24px rgba(255, 77, 143, 0.5), 0 0 18px rgba(255, 77, 143, 0.6);
  animation: none;
}
@keyframes arc-slot-pulse {
  0%, 100% { box-shadow: inset 0 0 0 rgba(255, 77, 143, 0); }
  50% { box-shadow: inset 0 0 18px rgba(255, 77, 143, 0.4); }
}

.arc-game-slot-tag {
  position: absolute; top: 4px; left: 6px;
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
  font-size: clamp(7px, 1vw, 10px);
  color: #fff;
  text-shadow: 1px 1px 0 #6d28d9;
  z-index: 2;
}
.arc-game-slot-name {
  position: absolute; bottom: 4px; left: 4px; right: 4px;
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
  font-size: clamp(7px, 1vw, 10px);
  color: #fff;
  text-shadow: 1px 1px 0 #6d28d9;
  text-align: center;
  z-index: 2;
  background: rgba(0, 0, 0, 0.55);
  padding: 3px 4px;
  border-radius: 4px;
  letter-spacing: 0.04em;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.arc-game-slot.filled .arc-game-slot-name { color: #ffeb3b; }

.arc-game-slot svg {
  width: 100% !important;
  height: 100% !important;
  image-rendering: pixelated;
}
.arc-game-empty {
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
  font-size: clamp(9px, 1.4vw, 13px);
  color: rgba(255, 77, 143, 0.6);
  text-align: center;
  line-height: 1.6;
  letter-spacing: 0.08em;
  animation: arc-press-blink 1.1s steps(2) infinite;
}

/* VS / heart uprostřed mezi sloty */
.arc-game-vs {
  flex: 0 0 auto;
  width: 16%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 6px;
}
.arc-game-vs svg {
  width: 80%; height: auto;
  max-width: 90px;
}
.arc-game-status {
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
  font-size: clamp(9px, 1.3vw, 13px);
  color: #1a0014;
  text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5);
  letter-spacing: 0.08em;
}
.arc-game-status.won {
  color: #ff4d8f;
  text-shadow: 1px 1px 0 #fff, 0 0 8px rgba(255, 77, 143, 0.8);
  animation: arc-status-bounce 0.6s ease-in-out infinite alternate;
}
@keyframes arc-status-bounce {
  from { transform: scale(1); }
  to { transform: scale(1.15); }
}

/* Instrukce pod arcade hrou */
.arc-instruction {
  margin-top: 28px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  color: rgba(255, 245, 250, 0.75);
  text-align: center;
  max-width: 480px;
  line-height: 1.6;
}

/* Mobile — slota a overlay zúžit */
@media (max-width: 700px) {
  .arc-game-overlay { top: 18%; bottom: 26%; left: 26%; right: 26%; gap: 3%; }
  .arc-game-slot { border-width: 2px; border-radius: 6px; }
  .arc-game-slot-tag, .arc-game-slot-name { font-size: 6px; }
  .arc-game-empty { font-size: 8px; }
}
@media (max-width: 480px) {
  .arc-game-overlay { top: 19%; bottom: 27%; left: 25%; right: 25%; gap: 2%; }
}

.arc-cabinet {
  position: relative;
  max-width: 760px; width: 100%;
  background: linear-gradient(180deg, #5b21b6 0%, #4c1d95 50%, #3b0764 100%);
  border-radius: 28px;
  padding: 14px 14px 22px;
  box-shadow:
    0 30px 80px rgba(0, 0, 0, 0.55),
    0 0 0 6px #6d28d9,
    0 0 60px rgba(192, 132, 252, 0.35),
    inset 0 2px 0 rgba(255, 255, 255, 0.18);
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
}

/* Cabinet "ears" — wings on sides */
.arc-cabinet::before, .arc-cabinet::after {
  content: ""; position: absolute; top: 80px; bottom: 60px;
  width: 28px;
  background: linear-gradient(180deg, #5b21b6, #3b0764);
  border-radius: 14px;
  pointer-events: none;
}
.arc-cabinet::before { left: -22px; }
.arc-cabinet::after { right: -22px; }

/* === MARQUEE === */
.arc-marquee { padding: 0; margin-bottom: 14px; }
.arc-marquee-bar {
  background: linear-gradient(180deg, #ff4d8f 0%, #e0286f 100%);
  border-radius: 14px;
  padding: 22px 18px;
  text-align: center;
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.3),
    inset 0 -2px 0 rgba(0, 0, 0, 0.2),
    0 0 30px rgba(255, 77, 143, 0.4);
}
.arc-marquee-title {
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
  font-size: clamp(20px, 4.5vw, 36px);
  color: #fff5fa;
  letter-spacing: 0.05em;
  text-shadow:
    2px 2px 0 #6d28d9,
    4px 4px 0 rgba(0, 0, 0, 0.3);
  line-height: 1;
}

/* === CRT SCREEN === */
.arc-screen {
  position: relative;
  background: radial-gradient(ellipse at center, #2dd4ff 0%, #0891b2 60%, #082f49 100%);
  border-radius: 20px;
  padding: 30px 22px;
  overflow: hidden;
  box-shadow:
    inset 0 0 60px rgba(0, 0, 0, 0.4),
    inset 0 0 0 4px #1a0033,
    inset 0 0 0 8px rgba(255, 255, 255, 0.06);
  margin-bottom: 16px;
}
.arc-scanlines {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(
    0deg,
    rgba(0, 0, 0, 0.18) 0px,
    rgba(0, 0, 0, 0.18) 2px,
    transparent 2px,
    transparent 4px
  );
  pointer-events: none;
  z-index: 2;
  border-radius: 20px;
}
.arc-screen-glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 80% 50% at center 30%, rgba(255, 255, 255, 0.18), transparent 70%);
  pointer-events: none;
  z-index: 1;
}
.arc-screen-content {
  position: relative; z-index: 3;
  display: flex; flex-direction: column; align-items: center;
  gap: 18px;
}

/* Pixel heart animations */
.arc-heart-wrap {
  animation: arc-heart-bob 1.6s ease-in-out infinite;
}
@keyframes arc-heart-bob {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-6px) scale(1.06); }
}

/* Chrome heart image (z Pinterestu — heart.jpg, vyříznuto z plakátu) */
.arc-heart-img { animation: arc-heart-bob 2.4s ease-in-out infinite; }
.arc-heart-crop {
  width: 160px; height: 160px;
  background-image: url('heart.jpg');
  background-repeat: no-repeat;
  /* Plakát je 736×736px; srdce je centrované v ~50% × 47% výřezu */
  background-position: center 47%;
  background-size: 200% auto;
  filter:
    drop-shadow(0 0 18px rgba(255, 77, 143, 0.7))
    drop-shadow(0 0 32px rgba(255, 77, 143, 0.4));
  transition: filter 0.5s;
  /* Vymaskuje černé pozadí plakátu — necháme jen jasné chrome srdce */
  -webkit-mask-image: radial-gradient(ellipse 65% 60% at center 48%, #000 55%, transparent 80%);
          mask-image: radial-gradient(ellipse 65% 60% at center 48%, #000 55%, transparent 80%);
}
.arc-heart-img.is-match .arc-heart-crop {
  filter:
    drop-shadow(0 0 24px rgba(255, 77, 143, 1))
    drop-shadow(0 0 48px rgba(255, 235, 59, 0.6))
    saturate(1.3) brightness(1.1);
  animation: arc-heart-spin-glow 4s ease-in-out infinite;
}
@keyframes arc-heart-spin-glow {
  0%, 100% { transform: scale(1) rotate(-2deg); }
  50%      { transform: scale(1.08) rotate(2deg); }
}

/* Status text */
.arc-status {
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
  font-size: clamp(14px, 2.4vw, 20px);
  color: #fff;
  letter-spacing: 0.06em;
  text-shadow: 2px 2px 0 #6d28d9, 0 0 16px rgba(255, 255, 255, 0.5);
  animation: arc-blink 1.1s steps(2) infinite;
}
.arc-status.won {
  color: #ffeb3b;
  text-shadow: 2px 2px 0 #d4af00, 0 0 18px rgba(255, 235, 59, 0.7);
  animation: arc-rainbow 1.6s linear infinite;
}
@keyframes arc-blink {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0.45; }
}
@keyframes arc-rainbow {
  0%, 100% { transform: scale(1); filter: hue-rotate(0deg); }
  50% { transform: scale(1.08); filter: hue-rotate(30deg); }
}

/* Player slots inside CRT */
.arc-stage {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 18px;
  align-items: center;
  width: 100%;
  margin-top: 8px;
}
.arc-slot {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.arc-slot-label {
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
  font-size: 9px;
  color: #fff5fa;
  letter-spacing: 0.1em;
  text-shadow: 1px 1px 0 #6d28d9;
}
.arc-slot-screen {
  width: 100%; max-width: 130px;
  aspect-ratio: 0.78;
  background: linear-gradient(180deg, #082f49, #1a0033);
  border: 3px solid #1a0033;
  border-radius: 8px;
  overflow: hidden;
  box-shadow:
    inset 0 0 20px rgba(0, 0, 0, 0.6),
    0 0 0 2px rgba(255, 255, 255, 0.1);
  display: flex; align-items: center; justify-content: center;
  transition: all 0.3s;
}
.arc-slot-screen.filled {
  border-color: #ff4d8f;
  box-shadow:
    0 0 0 2px #ff4d8f,
    0 0 24px rgba(255, 77, 143, 0.6),
    inset 0 0 20px rgba(255, 77, 143, 0.2);
}
.arc-slot-screen svg {
  width: 100% !important;
  height: 100% !important;
  image-rendering: pixelated;
}
.arc-slot-empty {
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  text-align: center;
  line-height: 1.6;
  letter-spacing: 0.08em;
  animation: arc-blink 1.1s steps(2) infinite;
}
.arc-slot-name {
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
  font-size: 11px;
  color: #fff5fa;
  text-shadow: 1px 1px 0 #6d28d9;
  letter-spacing: 0.05em;
  text-align: center;
  word-break: break-word;
  max-width: 130px;
}
.arc-slot-screen.filled + .arc-slot-name { color: #ffeb3b; }

/* VS divider */
.arc-vs {
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
  font-size: clamp(18px, 3vw, 26px);
  color: #ff4d8f;
  text-shadow: 2px 2px 0 #6d28d9, 0 0 14px rgba(255, 77, 143, 0.7);
  animation: arc-vs-pulse 1.8s ease-in-out infinite;
  padding: 0 4px;
}
@keyframes arc-vs-pulse {
  0%, 100% { transform: scale(1) rotate(-6deg); }
  50% { transform: scale(1.15) rotate(6deg); }
}

/* === CONTROLS PANEL === */
.arc-controls {
  background: linear-gradient(180deg, #4c1d95, #2e1065);
  border-radius: 16px;
  padding: 20px 24px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px;
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.12),
    inset 0 -2px 0 rgba(0, 0, 0, 0.3);
  margin-bottom: 12px;
}

/* Joystick */
.arc-joystick {
  position: relative;
  width: 80px; height: 80px;
  display: flex; align-items: center; justify-content: center;
}
.arc-joystick-base {
  position: absolute;
  width: 56px; height: 14px; bottom: 2px;
  background: radial-gradient(ellipse, #1a0033, #000);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
}
.arc-joystick-stick {
  position: absolute;
  width: 8px; height: 38px; bottom: 12px;
  background: linear-gradient(90deg, #c026d3, #6d28d9);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: arc-stick-wobble 3.2s ease-in-out infinite;
}
.arc-joystick-ball {
  position: absolute; top: 6px;
  width: 24px; height: 24px;
  background: radial-gradient(circle at 35% 30%, #ff8fc4 0%, #ff4d8f 50%, #c026d3 100%);
  border-radius: 50%;
  box-shadow:
    inset 0 -3px 6px rgba(0, 0, 0, 0.3),
    0 0 16px rgba(255, 77, 143, 0.5);
  animation: arc-ball-wobble 3.2s ease-in-out infinite;
}
@keyframes arc-stick-wobble {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-8deg); }
  75% { transform: rotate(8deg); }
}
@keyframes arc-ball-wobble {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-6px); }
  75% { transform: translateX(6px); }
}

/* Buttons row */
.arc-btn-row {
  display: flex; gap: 14px;
}
.arc-btn {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #ff8fc4 0%, #ff4d8f 50%, #c026d3 100%);
  box-shadow:
    inset 0 -4px 8px rgba(0, 0, 0, 0.35),
    inset 0 2px 4px rgba(255, 255, 255, 0.4),
    0 4px 0 #6d28d9,
    0 6px 14px rgba(0, 0, 0, 0.4);
  cursor: pointer;
  transition: transform 0.1s;
}
.arc-btn:hover { transform: translateY(2px); box-shadow: inset 0 -2px 6px rgba(0, 0, 0, 0.4), inset 0 2px 4px rgba(255, 255, 255, 0.4), 0 2px 0 #6d28d9, 0 3px 8px rgba(0, 0, 0, 0.4); }

/* Bottom plate */
.arc-plate {
  background: rgba(0, 0, 0, 0.25);
  border-radius: 10px;
  padding: 14px 18px;
  text-align: center;
}
.arc-plate p {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px; line-height: 1.5;
  color: rgba(255, 245, 250, 0.8);
  letter-spacing: 0.04em;
}

/* High-score quote (when match completed) */
.arc-quote {
  margin-top: 28px;
  background: linear-gradient(180deg, rgba(255, 235, 59, 0.12), rgba(255, 77, 143, 0.08));
  border: 2px solid #ffeb3b;
  border-radius: 14px;
  padding: 18px 22px;
  text-align: center;
  max-width: 600px;
  width: 100%;
  box-shadow: 0 0 28px rgba(255, 235, 59, 0.3);
  animation: arc-quote-glow 2s ease-in-out infinite;
}
@keyframes arc-quote-glow {
  0%, 100% { box-shadow: 0 0 22px rgba(255, 235, 59, 0.25); }
  50%      { box-shadow: 0 0 40px rgba(255, 235, 59, 0.5); }
}
.arc-quote-label {
  display: block;
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
  font-size: 12px; color: #ffeb3b;
  letter-spacing: 0.1em;
  text-shadow: 2px 2px 0 #6d28d9;
  margin-bottom: 12px;
}
.arc-quote-text {
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
  font-size: 14px; color: #fff5fa;
  letter-spacing: 0.04em; line-height: 1.6;
  text-shadow: 1px 1px 0 #6d28d9;
  margin-bottom: 14px;
}
.arc-quote-text strong { color: #ff8fc4; font-weight: normal; }

/* Mobile responsive — arcade */
@media (max-width: 700px) {
  .arc-cabinet { padding: 10px 10px 16px; border-radius: 22px; box-shadow: 0 20px 50px rgba(0,0,0,0.5), 0 0 0 4px #6d28d9, 0 0 40px rgba(192, 132, 252, 0.3); }
  .arc-cabinet::before, .arc-cabinet::after { display: none; }
  .arc-screen { padding: 22px 12px; }
  .arc-stage { gap: 10px; }
  .arc-slot-screen { max-width: 100%; }
  .arc-slot-label { font-size: 8px; }
  .arc-slot-name { font-size: 9px; }
  .arc-slot-empty { font-size: 9px; }
  .arc-controls { padding: 14px 16px; gap: 12px; }
  .arc-joystick { width: 60px; height: 60px; }
  .arc-joystick-stick { height: 28px; bottom: 10px; }
  .arc-joystick-ball { width: 20px; height: 20px; }
  .arc-btn { width: 28px; height: 28px; }
  .arc-btn-row { gap: 10px; }
  .arc-quote-text { font-size: 11px; }
  .arc-quote-label { font-size: 10px; }
}

/* ████████████████████████████████████████████████████████████████████████
   POLISH PASS — Y2K editorial × bedroom-poster
   Schibsted Grotesk + Instrument Serif | grain | sticker rotations |
   sharper edges in places | corner stamp | scroll progress | heart cursor
   ████████████████████████████████████████████████████████████████████████ */

/* === Subtle film grain across whole page (mix-blend-mode overlay) === */
body::after {
  content: ""; position: fixed; inset: 0;
  pointer-events: none; z-index: 9999;
  opacity: 0.07; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>");
  background-size: 220px 220px;
}

/* === Scroll progress bar (top, fills as you scroll) === */
.ds-progress {
  position: fixed; top: 0; left: 0; right: 0;
  height: 3px;
  z-index: 100;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.06);
}
.ds-progress::after {
  content: ""; display: block; height: 100%;
  width: var(--p, 0%);
  background: linear-gradient(90deg, var(--pink-glow), var(--pink), var(--purple-deep));
  box-shadow: 0 0 12px var(--pink-glow);
  transition: width 0.08s linear;
}

/* === Editorial corner stamp — DISABLED (removed from layout) === */
.ds-stamp { display: none !important; }
.ds-stamp-old {
  position: fixed;
  top: 80px; right: 14px;
  z-index: 60;
  display: flex; flex-direction: column; align-items: center;
  gap: 10px;
  pointer-events: none;
  mix-blend-mode: difference;
}
.ds-stamp-rule {
  width: 1px; height: 40px;
  background: rgba(255, 245, 250, 0.5);
}
.ds-stamp-text {
  display: flex; flex-direction: column; align-items: center;
  gap: 6px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  color: rgba(255, 245, 250, 0.7);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  text-transform: uppercase;
  white-space: nowrap;
}
.ds-stamp-dot { font-size: 6px; opacity: 0.6; }
@media (max-width: 1100px) { .ds-stamp { display: none; } }

/* === Typography overhaul === */

/* Body — Schibsted Grotesk */
.ds-app, .ds-app input, .ds-app textarea, .ds-app button {
  font-family: 'Schibsted Grotesk', system-ui, sans-serif;
  font-feature-settings: "ss01", "kern";
}

/* Italic accents — Instrument Serif (classical romantic italic) */
.ds-lede em,
.ds-hero-eyebrow,
.ds-match-quote,
.arc-quote-text strong,
.pc-back-bio em,
em {
  font-family: 'Instrument Serif', 'Times New Roman', serif !important;
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.005em;
}
.ds-lede em { font-size: 1.08em; }

/* Refined body sizing & rhythm */
.ds-lede {
  font-size: clamp(17px, 1.4vw, 19px);
  line-height: 1.55;
  letter-spacing: -0.005em;
  max-width: 480px;
}
.ds-team-bio {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 15px;
  line-height: 1.55;
  letter-spacing: -0.005em;
  max-width: 38ch;
}

/* Tighter Anton kerning na hero display */
.ds-display, .ds-host-name {
  letter-spacing: -0.035em;
  font-feature-settings: "kern";
}
/* Section headings + team labels — mírně širší tracking pro lepší čitelnost */
.ds-h2, .ds-team-label-title {
  letter-spacing: 0.02em;
  font-feature-settings: "kern";
}

/* Section eyebrows — clean, no decorative marks */
.ds-section-eyebrow:not(:empty)::before { content: "— "; opacity: 0.55; margin-right: 4px; letter-spacing: -0.02em; }

/* === Sticker tilts — subtle 1-2deg rotations on small UI for handmade feel === */
.ds-block-tag.girl { transform: rotate(-1.5deg); }
.ds-block-tag.boy { transform: rotate(1.5deg); }
.ds-team-label-tag { transform: rotate(-2deg) translateY(-1px); }
.pc-age-overlay { transform: rotate(-3deg); }

/* === Sharper edges in places (variation, not all 24px) === */
.ds-block-tag {
  border-radius: 4px;
  font-family: 'Anton', sans-serif;
  padding: 7px 14px 8px;
  font-size: 18px; letter-spacing: 0.08em;
  box-shadow: 4px 4px 0 var(--purple-deep, #6d28d9);
  transition: transform 0.2s, box-shadow 0.2s;
}
.ds-block-tag:hover {
  transform: translate(-1px, -1px) rotate(0deg);
  box-shadow: 5px 5px 0 var(--purple-deep, #6d28d9);
}

/* Cards — slightly less generic */
.pc-face { border-radius: 18px 18px 22px 22px; }
.ds-team-card { border-radius: 22px 22px 28px 28px; }
.ds-cd-card { border-radius: 18px 18px 24px 24px; }

/* === Heart cursor on hover-flip cards === */
.pc-card {
  cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24'><path d='M12 21s-7.5-4.6-9.5-9.4C1 7.5 4 4 7.5 4c2 0 3.4 1 4.5 2.6C13.1 5 14.5 4 16.5 4 20 4 23 7.5 21.5 11.6 19.5 16.4 12 21 12 21z' fill='%23ff4d8f' stroke='%23fff' stroke-width='1.5' stroke-linejoin='round'/></svg>") 14 14, pointer;
}

/* === Hero — Instrument Serif on the lede italic, refined feel === */
.ds-hero-opatova { margin-bottom: 18px; }

/* Top bar masthead — extra spacing */
.ds-mast {
  font-family: 'Anton', sans-serif;
  font-size: 26px; letter-spacing: 0.04em;
  position: relative;
  color: var(--text) !important;
  text-decoration: none !important;
  cursor: pointer;
  transition: opacity 0.2s, transform 0.2s;
  display: inline-block;
}
.ds-mast:hover {
  opacity: 0.85;
  transform: scale(1.02);
}
.ds-mast:visited,
.ds-mast:active,
.ds-mast:focus {
  color: var(--text) !important;
  text-decoration: none !important;
}
.ds-mast-live {
  height: 22px;
  width: auto;
  display: inline-block;
  vertical-align: middle;
  margin-left: 10px;
  filter: drop-shadow(0 0 8px rgba(220, 38, 38, 0.5));
  animation: ds-live-pulse 1.4s ease-in-out infinite;
}
@keyframes ds-live-pulse {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 6px rgba(220, 38, 38, 0.4)); }
  50%      { transform: scale(1.06); filter: drop-shadow(0 0 14px rgba(255, 60, 60, 0.85)); }
}
@media (max-width: 600px) {
  .ds-mast-live { height: 18px; margin-left: 6px; }
}

/* === HERO CLAIM — bold positioning bar nad OPATOVA === */
.ds-hero-claim {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 8px 14px 9px;
  margin-bottom: 22px;
  background: rgba(8, 0, 20, 0.55);
  border: 1px solid rgba(255, 245, 250, 0.18);
  border-radius: 4px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 245, 250, 0.9);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 3px 3px 0 rgba(255, 77, 143, 0.55);
  white-space: nowrap;
}
.ds-hero-claim em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  font-size: 1.3em;
  color: #ff3434;
  text-shadow: 0 0 12px rgba(255, 60, 60, 0.7);
  letter-spacing: 0;
  font-weight: 400;
}
.ds-hero-claim-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #ff3434;
  box-shadow: 0 0 0 0 #ff3434;
  animation: ds-claim-pulse 1.4s infinite;
  flex-shrink: 0;
}
@keyframes ds-claim-pulse {
  0%, 100% { box-shadow: 0 0 0 0 #ff3434; }
  50%      { box-shadow: 0 0 0 7px transparent; }
}
@media (max-width: 600px) {
  .ds-hero-claim {
    font-size: 9px; letter-spacing: 0.12em;
    padding: 7px 11px; gap: 8px;
    white-space: normal;
  }
}

/* === HERO STATS — proof under hero CTA === */
.ds-hero-stats {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 20px;
  margin-top: 28px;
  padding: 16px 20px;
  background: rgba(8, 0, 20, 0.45);
  border: 1px solid rgba(255, 245, 250, 0.14);
  border-radius: 4px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  max-width: 560px;
}
.ds-hero-stat { display: flex; flex-direction: column; gap: 2px; }
.ds-hero-stat strong {
  font-family: 'Anton', sans-serif;
  font-size: 28px;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--pink-glow);
  text-shadow: 0 0 16px rgba(255, 110, 199, 0.5);
}
.ds-hero-stat span {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  color: rgba(255, 245, 250, 0.7);
  text-transform: uppercase;
  margin-top: 2px;
}
.ds-hero-stat-sep {
  width: 1px; height: 28px;
  background: rgba(255, 245, 250, 0.18);
}
@media (max-width: 600px) {
  .ds-hero-stats { gap: 14px; padding: 12px 14px; }
  .ds-hero-stat strong { font-size: 22px; }
  .ds-hero-stat-sep { height: 22px; }
}

/* === Section block heads — better hierarchy === */
.ds-cast-block-head { margin-bottom: 32px; padding: 0 4px; }
.ds-block-line {
  background: linear-gradient(90deg, var(--line), transparent 70%);
  height: 1px;
}
.ds-block-count {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-size: 18px;
  color: var(--pink-glow);
  letter-spacing: 0;
}

/* === Decorative section divider line (asymmetric) === */
.ds-cast { position: relative; }

/* === Refined buttons — text + SVG icon === */
.ds-btn-primary {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-weight: 700;
  letter-spacing: 0.08em;
  border-radius: 4px;
  border: 1.5px solid var(--pink);
  padding: 15px 28px;
  text-transform: uppercase;
  font-size: 13px;
  box-shadow: 5px 5px 0 #6d28d9, 0 0 24px rgba(255, 77, 143, 0.45);
  transition: transform 0.2s, box-shadow 0.2s;
  display: inline-flex; align-items: center; gap: 10px;
}
.ds-btn-primary svg, .ds-btn-link svg, .ds-discord-btn svg, .ds-apply-btn svg, .ds-prize-btn svg {
  flex-shrink: 0;
}

/* === Stoupající srdíčka v hero (přechod do druhé sekce) ===
   Animace běží continuálně, ale srdíčka jsou v hero sekci → vidíš je hlavně
   když si na hero koukáš nebo scrolluješ. Žádný JS — čistá CSS animace. */
.ds-hearts-rising {
  position: absolute;
  left: 0; right: 0;
  bottom: 0;
  height: 320px;
  overflow: hidden;
  pointer-events: none;
  z-index: 4;
}
.ds-heart-rise {
  position: absolute;
  bottom: -20px;
  width: 18px;
  height: 18px;
  color: rgba(255, 119, 173, 0.75);
  filter: drop-shadow(0 0 6px rgba(255, 77, 143, 0.5));
  opacity: 0;
  animation: ds-heart-rise 7s linear infinite;
  --drift: 0px;
  --rise-distance: 280px;
}

@keyframes ds-heart-rise {
  0%   { transform: translateY(0)                   translateX(0)            rotate(-8deg) scale(0.6); opacity: 0; }
  10%  {                                                                                              opacity: 0.85; }
  35%  {                                                                                              opacity: 0.9;  }
  100% { transform: translateY(calc(var(--rise-distance) * -1)) translateX(var(--drift)) rotate(8deg) scale(1.05); opacity: 0; }
}

/* Per-heart variations — různé pozice, velikosti, rychlosti, drifty.
   Nth-child s different timing → looks natural, ne mechanicky. */
.ds-heart-rise-1  { left: 12%;  animation-duration: 6.8s; animation-delay: 0s;    width: 16px; height: 16px; --drift:  18px; --rise-distance: 260px; color: rgba(255, 119, 173, 0.75); }
.ds-heart-rise-2  { left: 22%;  animation-duration: 8.2s; animation-delay: 1.4s;  width: 14px; height: 14px; --drift: -22px; --rise-distance: 290px; color: rgba(255, 138, 199, 0.7); }
.ds-heart-rise-3  { left: 31%;  animation-duration: 7.4s; animation-delay: 2.8s;  width: 22px; height: 22px; --drift:  14px; --rise-distance: 270px; color: rgba(255, 100, 158, 0.85); }
.ds-heart-rise-4  { left: 39%;  animation-duration: 9.1s; animation-delay: 0.6s;  width: 12px; height: 12px; --drift: -28px; --rise-distance: 310px; color: rgba(192, 132, 252, 0.65); }
.ds-heart-rise-5  { left: 46%;  animation-duration: 6.5s; animation-delay: 3.2s;  width: 18px; height: 18px; --drift:  10px; --rise-distance: 250px; color: rgba(255, 119, 173, 0.8); }
.ds-heart-rise-6  { left: 53%;  animation-duration: 8.6s; animation-delay: 1.8s;  width: 20px; height: 20px; --drift: -15px; --rise-distance: 300px; color: rgba(255, 77, 143, 0.75); }
.ds-heart-rise-7  { left: 60%;  animation-duration: 7.0s; animation-delay: 4.5s;  width: 14px; height: 14px; --drift:  24px; --rise-distance: 280px; color: rgba(255, 138, 199, 0.7); }
.ds-heart-rise-8  { left: 67%;  animation-duration: 9.4s; animation-delay: 0.3s;  width: 16px; height: 16px; --drift: -18px; --rise-distance: 295px; color: rgba(192, 132, 252, 0.6); }
.ds-heart-rise-9  { left: 74%;  animation-duration: 7.8s; animation-delay: 2.4s;  width: 22px; height: 22px; --drift:  16px; --rise-distance: 270px; color: rgba(255, 100, 158, 0.8); }
.ds-heart-rise-10 { left: 82%;  animation-duration: 8.0s; animation-delay: 5.1s;  width: 12px; height: 12px; --drift: -12px; --rise-distance: 305px; color: rgba(255, 119, 173, 0.7); }
.ds-heart-rise-11 { left: 88%;  animation-duration: 6.9s; animation-delay: 3.7s;  width: 18px; height: 18px; --drift:  20px; --rise-distance: 260px; color: rgba(255, 77, 143, 0.7); }
.ds-heart-rise-12 { left: 18%;  animation-duration: 7.6s; animation-delay: 4.0s;  width: 14px; height: 14px; --drift: -25px; --rise-distance: 285px; color: rgba(255, 138, 199, 0.7); }
.ds-heart-rise-13 { left: 56%;  animation-duration: 9.2s; animation-delay: 5.6s;  width: 16px; height: 16px; --drift:  18px; --rise-distance: 290px; color: rgba(192, 132, 252, 0.55); }
.ds-heart-rise-14 { left: 78%;  animation-duration: 7.2s; animation-delay: 6.4s;  width: 20px; height: 20px; --drift: -16px; --rise-distance: 275px; color: rgba(255, 100, 158, 0.75); }

/* Mobile: méně srdíček + menší (perf + nepřebytí) */
@media (max-width: 700px) {
  .ds-hearts-rising { height: 220px; }
  .ds-heart-rise-3, .ds-heart-rise-6, .ds-heart-rise-9, .ds-heart-rise-12, .ds-heart-rise-13, .ds-heart-rise-14 { display: none; }
  .ds-heart-rise { width: 14px !important; height: 14px !important; --rise-distance: 200px; }
}

/* === Hero scroll indicator — NEON OUTLINE RING ===
   Žádný fill, jen rotující conic gradient border + bouncy chevron uvnitř.
   Trick: padding na element + ::before s --bg jako mask pro vnitřek =
   gradient border. */
.ds-hero-scroll-indicator {
  position: absolute;
  left: 50%;
  bottom: 5.5%;
  transform: translateX(-50%);
  width: 76px;
  height: 76px;
  display: inline-flex; align-items: center; justify-content: center;
  text-decoration: none;
  cursor: pointer;
  z-index: 5;

  border-radius: 50%;
  /* Padding tvoří border thickness (skutečný border by neuměl gradient) */
  padding: 2.5px;
  /* Conic gradient → rotuje skrze --angle CSS prop */
  background:
    conic-gradient(
      from var(--angle, 0deg),
      #ff4d8f 0deg,
      #ff77ad 90deg,
      #c084fc 180deg,
      #ff4d8f 270deg,
      #ff4d8f 360deg
    );
  color: #fff;
  /* Glow halo via filter (sleduje siluetu kruhu) */
  filter:
    drop-shadow(0 0 14px rgba(255, 77, 143, 0.55))
    drop-shadow(0 6px 14px rgba(0, 0, 0, 0.4));
  animation: ds-ring-spin 4s linear infinite;
  transition: filter 0.3s, transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Vnitřní tmavý kruh (přesun gradientu jen na border) */
.ds-hero-scroll-indicator::before {
  content: "";
  position: absolute;
  inset: 2.5px;
  border-radius: 50%;
  background: rgba(15, 0, 28, 0.72);
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  z-index: 0;
}

/* Outer subtle pulse ring (mimo gradient border) */
.ds-hero-scroll-indicator::after {
  content: "";
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  border: 1px solid rgba(255, 77, 143, 0.4);
  opacity: 0.5;
  animation: ds-circle-ring 2.8s ease-out infinite;
  pointer-events: none;
  z-index: 0;
}

.ds-hero-scroll-indicator:hover {
  transform: translateX(-50%) scale(1.10);
  filter:
    drop-shadow(0 0 26px rgba(255, 77, 143, 0.85))
    drop-shadow(0 10px 20px rgba(0, 0, 0, 0.55));
}
.ds-hero-scroll-indicator:hover::before {
  background: rgba(255, 77, 143, 0.18);
}

.ds-hero-scroll-indicator svg {
  display: block;
  position: relative;
  z-index: 1;
  animation: ds-chevron-bounce 1.6s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  filter: drop-shadow(0 1.5px 2px rgba(0, 0, 0, 0.6));
}

/* Conic gradient angle property pro rotaci borderu */
@property --angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
@keyframes ds-ring-spin {
  to { --angle: 360deg; }
}

/* Pomalu se rozšiřující outer ring */
@keyframes ds-circle-ring {
  0%   { transform: scale(1);   opacity: 0.5; }
  100% { transform: scale(1.55); opacity: 0;   }
}

/* Chevron jemný bounce */
@keyframes ds-chevron-bounce {
  0%, 100% { transform: translateY(0);  }
  50%      { transform: translateY(4px); }
}

@media (max-width: 700px) {
  .ds-hero-scroll-indicator {
    left: 50%;
    bottom: 5%;
    width: 62px; height: 62px;
  }
}
.ds-btn-link, .ds-discord-btn, .ds-apply-btn, .ds-prize-btn {
  display: inline-flex; align-items: center; gap: 8px;
}
.ds-btn-primary:hover {
  transform: translate(-2px, -2px);
  box-shadow: 7px 7px 0 #6d28d9, 0 0 32px rgba(255, 77, 143, 0.6);
}
.ds-btn-primary:active {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 #6d28d9, 0 0 16px rgba(255, 77, 143, 0.45);
}

.ds-btn-link {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-weight: 500;
  text-decoration: none;
  border-bottom: 1px dotted currentColor;
  padding-bottom: 2px;
  transition: color 0.2s, border-color 0.2s;
}
.ds-btn-link:hover { color: var(--pink-glow); border-bottom-style: solid; }

/* === Refined apply form (editorial-grade) === */
.ds-apply-form label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: 0.18em;
}
.ds-apply-form input, .ds-apply-form textarea {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 18px;
  border-bottom: 1.5px solid var(--text);
  padding: 10px 0;
}

/* ████████████████████████████████████████████████████████████████████████
   APPLY FORM V2 — magazine spread editorial layout
   ████████████████████████████████████████████████████████████████████████ */

.ds-apply {
  padding: clamp(80px, 10vw, 140px) clamp(24px, 4vw, 56px) !important;
  position: relative;
}
.ds-apply-grid {
  display: grid !important;
  grid-template-columns: 5fr 7fr !important;
  gap: clamp(40px, 5vw, 80px) !important;
  max-width: 1400px;
  margin: 0 auto;
  align-items: start;
}

/* LEVÝ SLOUPEC — editorial copy */
.ds-apply-num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  letter-spacing: 0.18em;
  color: var(--pink);
  margin-bottom: 24px;
  display: flex; align-items: baseline; gap: 6px;
}
.ds-apply-num strong {
  font-family: 'Anton', sans-serif;
  font-weight: normal;
  font-size: 36px;
  color: var(--text);
  letter-spacing: -0.02em;
}

.ds-apply-h {
  font-family: 'Anton', sans-serif;
  font-size: clamp(56px, 9vw, 130px);
  line-height: 0.88;
  letter-spacing: -0.035em;
  margin-bottom: clamp(24px, 3vw, 36px);
  display: flex; flex-direction: column;
}
.ds-apply-h-line {
  display: block;
}
.ds-apply-h-line:nth-child(2) {
  padding-left: 0.6em;
}
.ds-apply-h-line:nth-child(3) {
  padding-left: 0.2em;
}
.ds-apply-h-em em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  font-weight: 400;
  background: linear-gradient(95deg, var(--pink-glow) 0%, var(--pink) 50%, var(--purple) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: -0.02em;
}

.ds-apply-lede {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(17px, 1.5vw, 22px);
  line-height: 1.55;
  color: rgba(255, 245, 250, 0.85);
  max-width: 38ch;
  margin-bottom: clamp(28px, 3vw, 40px);
  letter-spacing: -0.005em;
}
.ds-apply-lede strong { color: var(--text); font-weight: 700; }
.ds-apply-lede em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  color: var(--pink-glow);
  font-weight: 400;
}

.ds-apply-text .ds-apply-meta {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px 24px;
  margin-top: 0;
  padding-top: 24px;
  border-top: 1.5px solid var(--line);
  max-width: 360px;
}
.ds-apply-text .ds-apply-meta > div {
  display: flex; flex-direction: column; gap: 2px;
}
.ds-apply-text .ds-apply-meta em {
  font-family: 'JetBrains Mono', monospace;
  font-style: normal;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--pink);
  text-transform: uppercase;
}
.ds-apply-text .ds-apply-meta span {
  font-family: 'Anton', sans-serif;
  font-size: 22px;
  color: var(--text);
  letter-spacing: -0.01em;
}

/* PRAVÝ SLOUPEC — formulář v2 (numbered fields) */
.ds-apply-form-v2 {
  display: flex !important;
  flex-direction: column;
  gap: 22px !important;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.02) 100%);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 4px;
  padding: clamp(28px, 4vw, 44px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    0 22px 50px rgba(0, 0, 0, 0.35),
    7px 7px 0 var(--purple-deep);
  position: relative;
}

.ds-apply-field {
  display: grid !important;
  grid-template-columns: 32px 1fr;
  grid-template-rows: auto auto;
  gap: 4px 12px;
  font-family: 'Schibsted Grotesk', sans-serif !important;
  font-size: inherit !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--text) !important;
}
.ds-apply-field-num {
  grid-row: 1 / 3;
  grid-column: 1;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.14em;
  color: var(--pink);
  align-self: end;
  padding-bottom: 8px;
}
.ds-apply-field-label {
  grid-row: 1;
  grid-column: 2;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: rgba(255, 245, 250, 0.6);
  text-transform: uppercase;
}
.ds-apply-field-label em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  text-transform: none;
  letter-spacing: 0;
  color: var(--pink-glow);
  font-size: 1.15em;
}
.ds-apply-form-v2 input,
.ds-apply-form-v2 textarea {
  grid-row: 2;
  grid-column: 2;
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 18px;
  background: transparent;
  border: 0 !important;
  border-bottom: 1.5px solid rgba(255, 245, 250, 0.25) !important;
  padding: 8px 0 10px !important;
  color: var(--text);
  outline: 0;
  transition: border-color 0.3s, padding-left 0.3s;
}
.ds-apply-form-v2 input:focus,
.ds-apply-form-v2 textarea:focus {
  border-bottom-color: var(--pink) !important;
  border-bottom-width: 2px !important;
  padding-left: 8px !important;
}
.ds-apply-form-v2 textarea {
  min-height: 100px;
  resize: vertical;
}
.ds-apply-field-large {
  margin-top: 8px;
}

.ds-apply-btn-v2 {
  margin-top: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-family: 'Anton', sans-serif !important;
  font-size: clamp(20px, 2vw, 28px) !important;
  letter-spacing: 0.1em !important;
  padding: 18px 32px !important;
  background: var(--pink) !important;
  color: #fff !important;
  border: 2px solid var(--pink-glow) !important;
  border-radius: 4px !important;
  box-shadow:
    6px 6px 0 var(--purple-deep),
    0 0 32px rgba(255, 77, 143, 0.4) !important;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
  text-transform: uppercase;
  align-self: stretch;
}
.ds-apply-btn-v2:hover {
  transform: translate(-2px, -2px);
  box-shadow: 8px 8px 0 var(--purple-deep), 0 0 44px rgba(255, 77, 143, 0.6) !important;
}
.ds-apply-btn-v2:active {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--purple-deep), 0 0 18px rgba(255, 77, 143, 0.4) !important;
}

.ds-apply-foot {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  color: rgba(255, 245, 250, 0.55);
  text-align: center;
  margin-top: 4px;
}
.ds-apply-foot em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  color: var(--pink-glow);
  letter-spacing: 0;
  font-size: 1.2em;
}

/* Mobile apply */
@media (max-width: 900px) {
  .ds-apply-grid { grid-template-columns: 1fr !important; gap: 40px !important; }
  .ds-apply-h-line:nth-child(2) { padding-left: 0; }
  .ds-apply-h-line:nth-child(3) { padding-left: 0; }
  .ds-apply-form-v2 { box-shadow: 4px 4px 0 var(--purple-deep), 0 14px 30px rgba(0, 0, 0, 0.3) !important; }
}
@media (max-width: 600px) {
  .ds-apply-form-v2 { padding: 22px 20px !important; }
  .ds-apply-field-num { font-size: 10px; padding-bottom: 6px; }
  .ds-apply-field-label { font-size: 10px; }
}

.ds-apply-btn {
  font-family: 'Anton', sans-serif;
  border-radius: 4px;
  border: 1.5px solid var(--pink);
  box-shadow: 5px 5px 0 #6d28d9;
  transition: transform 0.2s, box-shadow 0.2s;
  letter-spacing: 0.14em;
}
.ds-apply-btn:hover {
  transform: translate(-2px, -2px);
  box-shadow: 7px 7px 0 #6d28d9;
}

/* === Archive — editorial list refinement === */
.ds-archive-row { transition: padding 0.3s, color 0.3s, background 0.3s; }
.ds-archive-row:hover {
  background: linear-gradient(90deg, rgba(255, 77, 143, 0.05), transparent);
  padding-left: 16px;
}
.ds-arch-title {
  font-family: 'Instrument Serif', serif;
  font-size: 22px;
  font-style: italic;
  letter-spacing: -0.01em;
}

/* ████████████████████████████████████████████████████████████████████████
   ARCHIVE V2 — editorial list with massive numerals + italic titles
   ████████████████████████████████████████████████████████████████████████ */

.ds-archive-list-v2 {
  display: flex;
  flex-direction: column;
  margin-top: clamp(40px, 5vw, 64px);
  border-top: 1.5px solid rgba(255, 245, 250, 0.18);
}

.ds-arch-row-v2 {
  display: grid;
  grid-template-columns: clamp(110px, 14vw, 180px) 1fr clamp(40px, 4vw, 56px);
  gap: clamp(20px, 3vw, 40px);
  padding: clamp(24px, 3vw, 36px) clamp(8px, 2vw, 24px);
  border-bottom: 1.5px solid rgba(255, 245, 250, 0.15);
  align-items: center;
  text-decoration: none;
  color: var(--text);
  cursor: pointer;
  transition: padding 0.4s cubic-bezier(.16, .84, .26, 1), background 0.4s;
  position: relative;
  overflow: hidden;
}
.ds-arch-row-v2::before {
  content: ""; position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 77, 143, 0.08), transparent 60%);
  opacity: 0;
  transition: opacity 0.4s;
  pointer-events: none;
}
.ds-arch-row-v2:hover {
  padding-left: clamp(20px, 3vw, 36px);
}
.ds-arch-row-v2:hover::before { opacity: 1; }

.ds-arch-num {
  font-family: 'Anton', sans-serif;
  font-size: clamp(56px, 8vw, 110px);
  line-height: 0.85;
  letter-spacing: -0.045em;
  color: var(--pink);
  text-shadow: 0 0 32px rgba(255, 77, 143, 0.25);
  background: linear-gradient(180deg, var(--pink-glow) 0%, var(--pink) 70%, var(--purple-deep) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  transition: transform 0.4s cubic-bezier(.16, .84, .26, 1);
}
.ds-arch-row-v2:hover .ds-arch-num {
  transform: translateX(-6px) scale(1.05);
}

.ds-arch-body {
  display: flex; flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.ds-arch-title-v2 {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(22px, 2.6vw, 36px);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--text);
  margin: 0;
}
.ds-arch-meta-v2 {
  display: flex; align-items: baseline;
  gap: 10px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  color: rgba(255, 245, 250, 0.55);
  text-transform: uppercase;
}
.ds-arch-date-v2 { color: var(--pink-glow); }
.ds-arch-sep { opacity: 0.4; }
.ds-arch-views em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  text-transform: none;
  letter-spacing: 0;
  color: var(--text);
  font-size: 1.4em;
  font-weight: 400;
}

.ds-arch-go {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px; height: 48px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 245, 250, 0.18);
  color: var(--text);
  transition: all 0.3s cubic-bezier(.16, .84, .26, 1);
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.ds-arch-row-v2:hover .ds-arch-go {
  border-color: var(--pink);
  background: var(--pink);
  color: #fff;
  transform: rotate(-15deg) scale(1.1);
  box-shadow: 0 0 24px rgba(255, 77, 143, 0.5);
}

@media (max-width: 700px) {
  .ds-arch-row-v2 {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 22px 8px;
  }
  .ds-arch-num { font-size: 48px; line-height: 1; }
  .ds-arch-go {
    position: absolute;
    top: 22px; right: 12px;
    width: 36px; height: 36px;
  }
}

/* === Footer — small editorial detail === */
.ds-footer {
  font-family: 'JetBrains Mono', monospace;
  border-top: 1px dashed var(--line);
}
.ds-footer span:first-child { font-family: 'Anton', sans-serif; font-size: 18px; letter-spacing: 0.04em; color: var(--pink-glow); }

/* === Marquee strip — refine font === */
.ds-strip {
  font-family: 'Anton', sans-serif;
}

/* === Match quote — editorial === */
.ds-match-quote {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-size: 22px;
}
.ds-match-quote strong { font-family: 'Schibsted Grotesk', sans-serif; font-style: normal; font-weight: 700; }

/* === Top nav links — better hover (animated underline) === */
.ds-nav a {
  position: relative;
  font-family: 'Schibsted Grotesk', sans-serif;
  font-weight: 500;
  letter-spacing: 0.06em;
}
.ds-nav a::after {
  content: ""; position: absolute;
  left: 0; right: 100%; bottom: -6px;
  height: 1.5px;
  background: var(--pink);
  transition: right 0.3s cubic-bezier(.4,0,.2,1);
}
.ds-nav a:hover::after { right: 0; }

/* === Section spacing rhythm refinement === */
.ds-cast { padding-top: 100px; padding-bottom: 100px; }
.ds-team { padding-top: 80px; padding-bottom: 80px; }

@media (max-width: 900px) {
  .ds-stamp { display: none; }
  .ds-cast::before { display: none; }
  .ds-btn-primary { box-shadow: 4px 4px 0 #6d28d9; padding: 13px 22px; font-size: 12px; }
  .ds-apply-btn { box-shadow: 4px 4px 0 #6d28d9; }
}

/* ████████████████████████████████████████████████████████████████████████
   COUNTDOWN CARD V2 — editorial, sharp, lower position with LIVE badge
   ████████████████████████████████████████████████████████████████████████ */

/* Countdown card — align k spodku, margin-bottom raises it nad samé spodní hrany */
.ds-hero-right {
  align-self: end;
  margin-top: auto;
  position: relative;
  width: 100%;
  max-width: 480px;
  margin-left: auto;
  margin-bottom: 100px;
  padding-bottom: 0;
}

/* LIVE badge floating above the card */
.ds-cd-live-badge {
  position: absolute;
  top: -18px; right: 18px;
  height: 42px; width: auto;
  z-index: 3;
  filter: drop-shadow(0 6px 14px rgba(220, 38, 38, 0.55));
  animation: ds-cd-live-pulse 1.4s ease-in-out infinite;
  transform-origin: center;
}
@keyframes ds-cd-live-pulse {
  0%, 100% { transform: rotate(-3deg) scale(1); filter: drop-shadow(0 6px 12px rgba(220, 38, 38, 0.45)); }
  50%      { transform: rotate(-3deg) scale(1.06); filter: drop-shadow(0 8px 22px rgba(255, 60, 60, 0.85)); }
}

/* Card itself — sharper, bolder, editorial */
.ds-hero-right .ds-cd-card {
  background: rgba(8, 0, 20, 0.78) !important;
  border: 1.5px solid var(--pink) !important;
  border-radius: 4px 4px 4px 4px !important;
  padding: 28px 24px 22px !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow:
    7px 7px 0 var(--purple-deep),
    0 0 60px rgba(255, 110, 199, 0.25),
    inset 0 1px 0 rgba(255, 245, 250, 0.08);
  font-family: 'Schibsted Grotesk', sans-serif !important;
  position: relative;
}
.ds-hero-right .ds-cd-card::before {
  content: ""; position: absolute;
  top: 8px; left: 8px; right: 8px; bottom: 8px;
  border: 1px dashed rgba(255, 245, 250, 0.12);
  border-radius: 2px;
  pointer-events: none;
}

/* Label — "↳ Další epizoda za" v editorial sans, ne mono */
.ds-hero-right .ds-cd-label {
  font-family: 'Schibsted Grotesk', sans-serif !important;
  font-size: 13px !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  font-weight: 500;
  opacity: 1 !important;
  color: var(--pink-glow);
  margin-bottom: 18px !important;
  display: flex; align-items: center; gap: 6px;
}
.ds-cd-arrow {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-size: 18px;
  color: var(--pink);
  line-height: 1;
}

/* Countdown grid — keep numbers Anton (font is OK), better cells */
.ds-hero-right .ds-cd-grid {
  gap: 6px !important;
  margin-bottom: 18px !important;
}
.ds-hero-right .ds-cd-cell {
  background: rgba(255, 110, 199, 0.05) !important;
  border: 1px solid rgba(255, 110, 199, 0.2) !important;
  border-radius: 3px !important;
  padding: 12px 4px !important;
  position: relative;
}
.ds-hero-right .ds-cd-num {
  font-family: 'Anton', sans-serif !important;
  font-size: clamp(36px, 4vw, 48px) !important;
  color: var(--text) !important;
  text-shadow: 0 0 20px rgba(255, 110, 199, 0.4);
  line-height: 1;
  letter-spacing: -0.02em;
}
.ds-hero-right .ds-cd-unit {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 9px !important;
  letter-spacing: 0.18em !important;
  color: rgba(255, 245, 250, 0.55) !important;
  margin-top: 8px !important;
  text-transform: uppercase;
}

/* Footer — "SOBOTA · 20:00 · DISCORD" + Připojit se tlačítko */
.ds-hero-right .ds-cd-foot {
  padding-top: 14px !important;
  border-top: 1px dashed rgba(255, 110, 199, 0.25) !important;
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; flex-wrap: wrap;
}
.ds-cd-when {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  color: rgba(255, 245, 250, 0.7);
  text-transform: uppercase;
}
.ds-hero-right .ds-discord-btn {
  background: var(--pink) !important;
  color: #fff !important;
  border: 1.5px solid var(--pink-glow) !important;
  border-radius: 3px !important;
  padding: 8px 14px !important;
  font-family: 'Anton', sans-serif !important;
  letter-spacing: 0.1em !important;
  font-size: 13px !important;
  box-shadow: 3px 3px 0 var(--purple-deep);
  text-transform: uppercase;
  transition: transform 0.2s, box-shadow 0.2s;
  cursor: pointer;
}
.ds-hero-right .ds-discord-btn:hover {
  transform: translate(-1px, -1px);
  box-shadow: 4px 4px 0 var(--purple-deep), 0 0 20px rgba(255, 77, 143, 0.5);
}

/* Mobile — countdown card not absolutely positioned */
@media (max-width: 900px) {
  .ds-hero-right { align-self: stretch; max-width: 100%; padding-bottom: 0; }
}
@media (max-width: 600px) {
  .ds-hero-right .ds-cd-num { font-size: 32px !important; }
}

/* ████████████████████████████████████████████████████████████████████████
   HERO LIQUID GLASS — OPATOVA tilt, LIVE sticker, full-width stats banner
   ████████████████████████████████████████████████████████████████████████ */

/* OPATOVA — scattered ransom-note písmena, posunuto dolů přes DATE (z-index 4 = popředí) */
.ds-hero-opatova {
  transform: none;
  margin-bottom: -50px;
  position: relative;
  z-index: 4;
  padding: 4px 0 14px;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
}

/* Hero-left needs position:relative for LIVE sticker absolute child */
.ds-hero-left { position: relative; }

/* Hero tagline pod DATE/SHOW — Caveat handwriting */
.ds-hero-tagline {
  margin-top: 22px;
  font-family: 'Caveat', 'Instrument Serif', cursive;
  font-weight: 500;
  font-size: clamp(22px, 2.2vw, 32px);
  letter-spacing: 0;
  color: rgba(255, 245, 250, 0.95);
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.6);
  max-width: 580px;
  line-height: 1.25;
}
.ds-hero-tagline strong {
  color: var(--pink-glow);
  font-weight: 700;
}

/* LIVE — diagonal sticker, lehce sahá na "W" SHOW */
.ds-hero-live-sticker {
  position: absolute;
  left: 50%;
  top: 84%;
  height: clamp(48px, 7vw, 92px);
  width: auto;
  transform-origin: center;
  z-index: 5;
  pointer-events: none;
  opacity: 0;
  /* 1) Entry: stamp slam (jednou) → 2) wiggle (loop) */
  animation:
    ds-hero-live-enter 0.7s cubic-bezier(0.5, 1.7, 0.4, 1) 1.1s both,
    ds-hero-live-stamp 2s ease-in-out 1.85s infinite;
}
@keyframes ds-hero-live-enter {
  0% {
    opacity: 0;
    transform: rotate(0deg) scale(2.4);
    filter: blur(10px) drop-shadow(0 0 0 transparent);
  }
  35% {
    opacity: 1;
    filter: blur(0) drop-shadow(0 0 48px rgba(255, 60, 60, 0.95)) drop-shadow(0 0 24px rgba(255, 200, 200, 0.6));
  }
  60% {
    opacity: 1;
    transform: rotate(-22deg) scale(0.88);
    filter: blur(0) drop-shadow(0 0 36px rgba(255, 60, 60, 0.8)) drop-shadow(0 8px 18px rgba(220, 38, 38, 0.55));
  }
  85% {
    transform: rotate(-11deg) scale(1.05);
  }
  100% {
    opacity: 1;
    transform: rotate(-14deg) scale(1);
    filter:
      drop-shadow(0 8px 18px rgba(220, 38, 38, 0.55))
      drop-shadow(0 0 20px rgba(220, 38, 38, 0.35));
  }
}
@keyframes ds-hero-live-stamp {
  0%, 100% {
    transform: rotate(-14deg) scale(1);
    filter:
      drop-shadow(0 8px 18px rgba(220, 38, 38, 0.55))
      drop-shadow(0 0 20px rgba(220, 38, 38, 0.35));
  }
  50% {
    transform: rotate(-14deg) scale(1.07);
    filter:
      drop-shadow(0 10px 26px rgba(255, 60, 60, 0.85))
      drop-shadow(0 0 28px rgba(255, 60, 60, 0.5));
  }
}

/* Hide h1's natural inline-flow for the img — we want it absolutely positioned */
.ds-display {
  position: relative;
  transform: translate3d(0, var(--py-display, 0px), 0);
  will-change: transform;
}

/* === LIQUID GLASS — countdown card + stats banner === */
.ds-hero-right .ds-cd-card,
.ds-hero-stats-banner {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.04) 50%, rgba(255, 110, 199, 0.06) 100%) !important;
  backdrop-filter: blur(28px) saturate(1.7) brightness(1.05) !important;
  -webkit-backdrop-filter: blur(28px) saturate(1.7) brightness(1.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  border-radius: 24px !important;
  box-shadow:
    inset 0 1.5px 0 rgba(255, 255, 255, 0.4),
    inset 0 -1px 0 rgba(0, 0, 0, 0.18),
    inset 1px 0 0 rgba(255, 255, 255, 0.12),
    inset -1px 0 0 rgba(255, 255, 255, 0.08),
    0 22px 60px rgba(0, 0, 0, 0.4),
    0 0 60px rgba(255, 110, 199, 0.18) !important;
  position: relative !important;
  overflow: hidden;
}

/* Glass shimmer highlight at top (subtle reflection) */
.ds-hero-right .ds-cd-card::after,
.ds-hero-stats-banner::after {
  content: ""; position: absolute;
  top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent);
  pointer-events: none;
  border-radius: 24px 24px 0 0;
}

/* Override the dashed inner border from previous version */
.ds-hero-right .ds-cd-card::before {
  display: none !important;
}

/* === Stats banner — full-width horizontal under hero grid === */
.ds-hero-stats-banner {
  display: flex; align-items: center; justify-content: center;
  gap: clamp(20px, 4vw, 48px);
  padding: 22px 32px !important;
  margin: 32px 0 24px;
  flex-wrap: wrap;
  position: relative;
  z-index: 2;
}
.ds-hero-stats-banner .ds-hero-stat {
  display: flex; flex-direction: column; gap: 4px;
  align-items: center; text-align: center;
}
.ds-hero-stats-banner .ds-hero-stat strong {
  font-family: 'Anton', sans-serif;
  font-size: clamp(36px, 4.5vw, 56px);
  line-height: 1;
  letter-spacing: -0.02em;
  color: #fff;
  text-shadow: 0 0 28px rgba(255, 110, 199, 0.55);
  background: linear-gradient(180deg, #fff 0%, #ff8fc4 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ds-hero-stats-banner .ds-hero-stat span {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: rgba(255, 245, 250, 0.7);
  text-transform: uppercase;
  margin-top: 2px;
}
.ds-hero-stats-banner .ds-hero-stat-sep {
  width: 1px; height: 44px;
  background: linear-gradient(180deg, transparent, rgba(255, 245, 250, 0.3), transparent);
}

/* Mobile fixes */
@media (max-width: 900px) {
  .ds-hero-live-sticker { left: 42%; top: 82%; height: clamp(42px, 11vw, 70px); }
  .ds-hero-stats-banner { gap: 16px; padding: 16px 18px !important; margin: 22px 0; }
  .ds-hero-stats-banner .ds-hero-stat strong { font-size: 32px; }
  .ds-hero-stats-banner .ds-hero-stat-sep { height: 32px; }
  .ds-hero-opatova { transform: none; margin-bottom: -32px; gap: 5px; }
}
@media (max-width: 600px) {
  .ds-hero-stats-banner { gap: 10px; }
  .ds-hero-stats-banner .ds-hero-stat strong { font-size: 26px; }
  .ds-hero-stats-banner .ds-hero-stat span { font-size: 9px; letter-spacing: 0.1em; }
}

/* ████████████████████████████████████████████████████████████████████████
   PRIZE CARD — týdenní výhra rande v hodnotě 1000 Kč
   ████████████████████████████████████████████████████████████████████████ */

.ds-prize {
  position: relative;
  margin: 56px auto 0;
  max-width: 980px;
  padding: clamp(32px, 5vw, 60px) clamp(24px, 4vw, 56px);
  border-radius: 28px;
  text-align: center;
  overflow: hidden;
  background:
    radial-gradient(ellipse 60% 80% at 30% 0%, rgba(255, 110, 199, 0.32), transparent 60%),
    radial-gradient(ellipse 60% 80% at 80% 100%, rgba(192, 132, 252, 0.28), transparent 60%),
    linear-gradient(160deg, rgba(255, 77, 143, 0.12) 0%, rgba(109, 40, 217, 0.18) 50%, rgba(255, 77, 143, 0.12) 100%);
  border: 1.5px solid rgba(255, 245, 250, 0.2);
  box-shadow:
    0 30px 80px rgba(0, 0, 0, 0.4),
    inset 0 1.5px 0 rgba(255, 255, 255, 0.3),
    0 0 80px rgba(255, 110, 199, 0.25);
  backdrop-filter: blur(14px) saturate(1.4);
  -webkit-backdrop-filter: blur(14px) saturate(1.4);
}

/* Animovaný gradient pohyb v pozadí */
.ds-prize::before {
  content: ""; position: absolute; inset: -50%;
  background: conic-gradient(from 0deg, transparent 0deg, rgba(255, 110, 199, 0.12) 90deg, transparent 180deg, rgba(192, 132, 252, 0.12) 270deg, transparent 360deg);
  animation: ds-prize-rotate 14s linear infinite;
  pointer-events: none;
  z-index: 0;
}
@keyframes ds-prize-rotate {
  to { transform: rotate(360deg); }
}

.ds-prize-bg {
  position: absolute; inset: 0;
  pointer-events: none;
  z-index: 1;
}
.ds-prize-dot {
  position: absolute;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--pink-glow);
  box-shadow: 0 0 14px 2px var(--pink-glow);
  animation: ds-prize-twinkle 2.4s ease-in-out infinite;
  user-select: none;
}
.ds-prize-dot:nth-child(2) { animation-delay: 0.6s; }
.ds-prize-dot:nth-child(3) { animation-delay: 1.2s; background: #ffeb3b; box-shadow: 0 0 14px 2px #ffeb3b; }
.ds-prize-dot:nth-child(4) { animation-delay: 1.8s; }
.ds-prize-dot:nth-child(5) { animation-delay: 0.3s; background: #ff4d8f; box-shadow: 0 0 14px 2px #ff4d8f; }
@keyframes ds-prize-twinkle {
  0%, 100% { opacity: 0.3; transform: scale(0.8); }
  50%      { opacity: 1; transform: scale(1.4); }
}

.ds-prize > *:not(.ds-prize-bg):not(::before) {
  position: relative;
  z-index: 2;
}

.ds-prize-eyebrow {
  display: flex; justify-content: center;
  margin-bottom: 18px;
}
.ds-prize-tag {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: 'Pixelify Sans', 'Schibsted Grotesk', sans-serif;
  font-size: clamp(10px, 1.2vw, 13px);
  letter-spacing: 0.12em;
  color: #ffeb3b;
  background: rgba(0, 0, 0, 0.35);
  padding: 10px 18px;
  border-radius: 999px;
  border: 1.5px solid #ffeb3b;
  text-shadow: 1px 1px 0 #6d28d9;
  box-shadow: 0 0 24px rgba(255, 235, 59, 0.4);
  animation: ds-prize-pulse 1.8s ease-in-out infinite;
}
.ds-prize-tag svg {
  filter: drop-shadow(0 0 6px rgba(255, 235, 59, 0.8));
}
@keyframes ds-prize-pulse {
  0%, 100% { box-shadow: 0 0 18px rgba(255, 235, 59, 0.3); transform: scale(1); }
  50%      { box-shadow: 0 0 36px rgba(255, 235, 59, 0.7); transform: scale(1.04); }
}

.ds-prize-title {
  font-family: 'Anton', sans-serif;
  font-size: clamp(40px, 6.5vw, 88px);
  line-height: 0.95;
  letter-spacing: -0.025em;
  color: #fff;
  text-shadow:
    0 4px 30px rgba(0, 0, 0, 0.5),
    0 0 40px rgba(255, 110, 199, 0.4);
  margin-bottom: 14px;
}
.ds-prize-title-em {
  background: linear-gradient(95deg, #ff8fc4 0%, #ffeb3b 50%, #c084fc 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
}

.ds-prize-amount {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  margin: 8px 0 18px;
  padding: 14px 28px;
  background: linear-gradient(180deg, #1a0014 0%, #2e1065 100%);
  border-radius: 14px;
  border: 2px solid #ffeb3b;
  box-shadow:
    0 12px 40px rgba(0, 0, 0, 0.5),
    0 0 40px rgba(255, 235, 59, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.15);
}
.ds-prize-up {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-size: clamp(18px, 2.4vw, 30px);
  color: #fff5fa;
  margin-right: 4px;
}
.ds-prize-amount strong {
  font-family: 'Anton', sans-serif;
  font-size: clamp(56px, 9vw, 110px);
  line-height: 1;
  letter-spacing: -0.04em;
  color: #ffeb3b;
  text-shadow:
    0 0 16px rgba(255, 235, 59, 0.7),
    0 4px 0 #6d28d9;
  font-weight: normal;
}
.ds-prize-currency {
  font-family: 'Anton', sans-serif;
  font-size: clamp(28px, 4vw, 48px);
  color: #ffeb3b;
  text-shadow: 0 0 12px rgba(255, 235, 59, 0.6);
  margin-left: 4px;
}

.ds-prize-desc {
  font-size: clamp(15px, 1.5vw, 18px);
  line-height: 1.6;
  color: rgba(255, 245, 250, 0.92);
  max-width: 620px;
  margin: 0 auto 28px;
}
.ds-prize-desc strong {
  color: #ffeb3b;
  font-weight: 700;
}

.ds-prize-foot {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
}
.ds-prize-btn {
  display: inline-block;
  font-family: 'Anton', sans-serif;
  font-size: 18px;
  letter-spacing: 0.14em;
  color: #1a0014;
  background: linear-gradient(180deg, #ffeb3b 0%, #f5b700 100%);
  padding: 16px 32px;
  border-radius: 4px;
  text-decoration: none;
  border: 2px solid #ffeb3b;
  box-shadow:
    5px 5px 0 #6d28d9,
    0 0 28px rgba(255, 235, 59, 0.45);
  transition: transform 0.2s, box-shadow 0.2s;
  text-transform: uppercase;
}
.ds-prize-btn:hover {
  transform: translate(-2px, -2px);
  box-shadow:
    7px 7px 0 #6d28d9,
    0 0 36px rgba(255, 235, 59, 0.65);
}
.ds-prize-btn:active {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 #6d28d9, 0 0 14px rgba(255, 235, 59, 0.4);
}
.ds-prize-meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: rgba(255, 245, 250, 0.7);
  text-transform: uppercase;
}

/* Mobile */
@media (max-width: 700px) {
  .ds-prize { margin: 36px 0 0; padding: 28px 20px; border-radius: 22px; }
  .ds-prize-amount { padding: 10px 18px; gap: 4px; }
  .ds-prize-foot { flex-direction: column; gap: 14px; }
  .ds-prize-btn { padding: 14px 24px; font-size: 16px; }
}

/* Cast divider — simple spacing mezi holkami a kluky (lightning bude přidán později) */
.ds-cast-divider {
  height: clamp(40px, 5vw, 72px);
}

/* Emitery — menší + ztlumené glow body u karet */
.beam-emitter {
  animation: beam-emitter-pulse 1.8s ease-in-out infinite;
  transform-origin: center;
}
@keyframes beam-emitter-pulse {
  0%, 100% { opacity: 0.5; }
  50%      { opacity: 0.85; }
}
.beam-emitter circle:first-child {
  animation: beam-emitter-grow 1.8s ease-in-out infinite;
}
@keyframes beam-emitter-grow {
  0%, 100% { r: 14; }
  50%      { r: 22; }
}

/* Center — menší ztlumený halo + mid pulse + core flash */
.beam-center-halo {
  animation: beam-center-halo-pulse 2.4s ease-in-out infinite;
}
@keyframes beam-center-halo-pulse {
  0%, 100% { r: 56; opacity: 0.4; }
  50%      { r: 80; opacity: 0.7; }
}
.beam-center-mid {
  animation: beam-center-mid-pulse 1.6s ease-in-out infinite;
}
@keyframes beam-center-mid-pulse {
  0%, 100% { r: 12; opacity: 0.85; }
  50%      { r: 18; opacity: 1; }
}
.beam-center-core {
  animation: beam-center-core-flash 0.9s ease-in-out infinite;
}
@keyframes beam-center-core-flash {
  0%, 100% { r: 4; opacity: 0.85; }
  50%      { r: 7; opacity: 1; }
}

/* Mobile fallback — orb + label místo beams */
.ds-chain-mobile {
  display: none;
  position: relative;
  align-items: center;
  justify-content: center;
  height: 100%;
  flex-direction: column;
  gap: 12px;
}
.ds-chain-orb {
  width: 90px; height: 90px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0%, #ffeb3b 25%, #ff4d8f 55%, transparent 75%);
  box-shadow:
    0 0 60px rgba(255, 77, 143, 0.7),
    0 0 120px rgba(192, 132, 252, 0.5),
    inset 0 0 30px rgba(255, 255, 255, 0.4);
  animation: chain-orb-pulse 1.6s ease-in-out infinite;
}
@keyframes chain-orb-pulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 50px rgba(255, 77, 143, 0.6), 0 0 100px rgba(192, 132, 252, 0.4); }
  50%      { transform: scale(1.12); box-shadow: 0 0 80px rgba(255, 77, 143, 0.9), 0 0 160px rgba(192, 132, 252, 0.7); }
}
.ds-chain-mobile-label {
  font-family: 'Anton', sans-serif;
  font-size: 28px;
  letter-spacing: 0.04em;
  color: #fff5fa;
  text-shadow: 0 0 16px #ff4d8f, 0 0 32px rgba(192, 132, 252, 0.5);
}

/* Mobile breakpoint — schovat SVG, ukázat orb */
@media (max-width: 700px) {
  .ds-chain {
    height: 200px;
    margin: 8px 0;
  }
  .ds-chain-svg { display: none; }
  .ds-chain-mobile { display: flex; }
}

/* ████████████████████████████████████████████████████████████████████████
   PRIZE ROW — 2-column: hands video (3:4) + prize content
   ████████████████████████████████████████████████████████████████████████ */
.ds-prize-row {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 32px;
  margin: 56px auto 0;
  max-width: 1100px;
  align-items: stretch;
}
.ds-prize-row .ds-prize {
  margin: 0 !important;
  max-width: 100%;
  height: 100%;
}
.ds-prize-video {
  position: relative;
  aspect-ratio: 3 / 4;
  border-radius: 24px;
  overflow: hidden;
  box-shadow:
    0 30px 80px rgba(0, 0, 0, 0.45),
    0 0 60px rgba(192, 132, 252, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 245, 250, 0.12);
}
.ds-prize-video video {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.ds-prize-video-tint {
  position: absolute; inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 70% 60% at 50% 100%, transparent 0%, rgba(15, 0, 32, 0.5) 100%),
    linear-gradient(180deg, transparent 0%, transparent 60%, rgba(15, 0, 32, 0.4) 100%);
}
@media (max-width: 900px) {
  .ds-prize-row {
    grid-template-columns: 1fr;
    gap: 18px;
    margin: 36px 0 0;
  }
  .ds-prize-video { aspect-ratio: 16 / 9; max-height: 280px; }
}

/* ████████████████████████████████████████████████████████████████████████
   PRIZE — Editorial magazine layout (Floema-inspired)
   ████████████████████████████████████████████████████████████████████████ */
.ds-prize-edit {
  margin: 56px 0 0;
  padding: 0;
  background: var(--bg-2);
  position: relative;
  isolation: isolate;
}
.ds-prize-edit-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: clamp(32px, 4vw, 64px);
  max-width: 1300px;
  margin: 0 auto;
  padding: clamp(40px, 5vw, 72px) clamp(28px, 4vw, 56px);
  align-items: stretch;
  min-height: 520px;
}

/* === LEVÝ SLOUPEC — text === */
.ds-prize-edit-text {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 2.5vw, 36px);
  padding-right: 8px;
}

/* Top label */
.ds-prize-edit-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ds-prize-edit-label {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 17px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: -0.005em;
}
.ds-prize-edit-sublabel {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 14px;
  color: var(--muted);
  font-weight: 400;
}

/* Body intro text — pink-glow, magazine-feel */
.ds-prize-edit-body {
  max-width: 380px;
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 15px;
  line-height: 1.55;
  color: var(--pink-glow);
  letter-spacing: -0.005em;
}
.ds-prize-edit-body p { margin-bottom: 14px; }
.ds-prize-edit-body p:last-child { margin-bottom: 0; }
.ds-prize-edit-body strong {
  color: #fff;
  font-weight: 600;
}

/* BIG QUOTE — hlavní claim, magazine display */
.ds-prize-edit-quote {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-weight: 500;
  font-size: clamp(36px, 4.4vw, 60px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: var(--pink-glow);
  margin-top: auto;
  margin-bottom: 0;
  position: relative;
}
.ds-prize-edit-quote em {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-weight: 400;
  color: #ffeb3b;
  font-size: 1.04em;
  white-space: nowrap;
  letter-spacing: -0.01em;
}
.ds-prize-edit-quote-mark {
  display: inline-block;
  font-family: 'Instrument Serif', serif;
  color: var(--pink);
  opacity: 0.6;
  font-size: 1.05em;
  line-height: 1;
  margin: 0 0.05em;
}

/* CTA link — editorial arrow link */
.ds-prize-edit-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--text);
  text-decoration: none;
  align-self: flex-start;
  border-bottom: 1px solid currentColor;
  padding-bottom: 4px;
  transition: gap 0.3s, color 0.2s, border-color 0.2s;
  letter-spacing: -0.005em;
}
.ds-prize-edit-link:hover {
  gap: 14px;
  color: var(--pink-glow);
}

/* === PRAVÝ SLOUPEC — hero image s pink frame === */
.ds-prize-edit-image {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--bg-3);
  border-radius: 0;
  align-self: stretch;
}
.ds-prize-edit-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.ds-prize-edit-frame {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 14px;
  background: var(--pink);
  z-index: 2;
  pointer-events: none;
}
.ds-prize-edit-frame-l { left: 0; }
.ds-prize-edit-frame-r { right: 0; }
.ds-prize-edit-caption {
  position: absolute;
  left: 28px;
  bottom: 18px;
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: #fff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
  z-index: 3;
  letter-spacing: -0.005em;
}

/* Mobile */
@media (max-width: 900px) {
  .ds-prize-edit-grid {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 36px 20px;
    min-height: auto;
  }
  .ds-prize-edit-image {
    aspect-ratio: 4 / 3;
    order: -1;
  }
  .ds-prize-edit-frame { width: 8px; }
  .ds-prize-edit-quote {
    font-size: clamp(28px, 7vw, 44px);
  }
}

/* ████████████████████████████████████████████████████████████████████████
   INFO GRID — 2×2 layout (Prize + Sponsor) editorial style
   ████████████████████████████████████████████████████████████████████████ */
.ds-info-grid {
  margin: 56px 0 0;
  padding: 0;
  background: var(--bg);
}
.ds-info-2x2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 0;
  max-width: 1400px;
  margin: 0 auto;
}
.ds-info-cell {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Text cells — black bg s clean editorial typo */
.ds-info-cell-text {
  background: #050010;
  padding: clamp(28px, 4vw, 64px);
  border: 1px solid rgba(255, 245, 250, 0.06);
}
.ds-info-cell-inner {
  max-width: 440px;
  position: relative;
  z-index: 1;
}
.ds-info-cell-tag {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--pink-glow);
  margin-bottom: 22px;
}
.ds-info-cell-title {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(30px, 3.6vw, 52px);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: #fff;
  margin-bottom: 26px;
}
.ds-info-cell-title-em {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-weight: 400;
  color: var(--pink-glow);
  letter-spacing: -0.015em;
  display: inline-block;
}
.ds-info-cell-desc {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 14.5px;
  line-height: 1.55;
  color: rgba(255, 245, 250, 0.72);
  letter-spacing: -0.005em;
  margin-bottom: 14px;
}
.ds-info-cell-desc:last-child { margin-bottom: 0; }
.ds-info-cell-desc strong {
  color: #fff;
  font-weight: 600;
}
.ds-info-cell-desc em {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-weight: 400;
  color: var(--pink-glow);
  font-size: 1.05em;
  letter-spacing: -0.01em;
}

/* Image cells — ken-burns slow zoom + hover scale up */
.ds-info-cell-img {
  background: var(--bg-3);
  overflow: hidden;
  position: relative;
}
.ds-info-cell-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform-origin: center;
  animation: ds-info-kenburns 22s ease-in-out infinite alternate;
  transition: transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1), filter 0.6s;
  will-change: transform;
}
@keyframes ds-info-kenburns {
  from { transform: scale(1) translate(0, 0); }
  to   { transform: scale(1.05) translate(-1%, 0.5%); }
}
.ds-info-cell-img:hover img {
  transform: scale(1.08);
  filter: saturate(1.1) brightness(1.05);
  animation-play-state: paused;
}

/* Soft fade overlays — vlevo na prize image (kde sedí text panel),
   vpravo na sponsor image (zrcadlově) */
.ds-info-cell-img-fade {
  position: absolute; inset: 0;
  pointer-events: none;
  z-index: 2;
}
.ds-info-cell-img-prize .ds-info-cell-img-fade {
  background:
    linear-gradient(90deg, rgba(5, 0, 16, 0.55) 0%, transparent 22%),
    radial-gradient(ellipse at 70% 50%, transparent 50%, rgba(5, 0, 16, 0.25) 100%);
}
/* Prize image — fotka roztažená přes celou šířku, žádné letterboxy
   (cover oseče lehce vrch/spodek, ale boky vyplní) */
.ds-info-cell-img-prize { background: #0a0010; }
.ds-info-cell-img-prize img {
  object-fit: cover !important;
  object-position: center center;
}
.ds-info-cell-img-sponsor .ds-info-cell-img-fade {
  background:
    linear-gradient(-90deg, rgba(5, 0, 16, 0.55) 0%, transparent 22%),
    radial-gradient(ellipse at 30% 50%, transparent 50%, rgba(5, 0, 16, 0.25) 100%);
}

/* Hover lift na text cells */
.ds-info-cell-text {
  transition: background 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.ds-info-cell-text:hover {
  background: #0a0018;
}
.ds-info-cell-text:hover .ds-info-cell-tag {
  color: #fff;
}

/* Sponsor placeholder — gradient + dashed border + label */
.ds-info-cell-placeholder {
  background: linear-gradient(135deg, var(--bg-3) 0%, var(--bg-2) 100%);
  border: 1px dashed rgba(255, 245, 250, 0.16);
  display: flex;
  align-items: center;
  justify-content: center;
}
.ds-info-placeholder-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 245, 250, 0.45);
}

/* 3D Heart widget — small floating animace v rohu prize textu */
.ds-info-widget {
  position: absolute;
  top: clamp(20px, 2vw, 32px);
  right: clamp(20px, 2vw, 32px);
  width: clamp(70px, 8vw, 110px);
  height: clamp(70px, 8vw, 110px);
  object-fit: cover;
  border-radius: 50%;
  z-index: 2;
  box-shadow:
    0 0 0 1px rgba(255, 245, 250, 0.08),
    0 12px 40px rgba(255, 77, 143, 0.35),
    0 0 60px rgba(255, 77, 143, 0.18);
  pointer-events: none;
  background: #050010;
}

/* Mobile — stack 4 cells */
@media (max-width: 900px) {
  .ds-info-2x2 {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto auto;
  }
  .ds-info-cell { aspect-ratio: auto; min-height: 320px; }
  .ds-info-cell-text { padding: 36px 24px; min-height: 380px; }

  /* Order na mobilu: prize text → prize img → sponsor text → sponsor img */
  .ds-info-2x2 > :nth-child(1) { order: 1; }
  .ds-info-2x2 > :nth-child(2) { order: 2; }
  .ds-info-2x2 > :nth-child(4) { order: 3; }
  .ds-info-2x2 > :nth-child(3) { order: 4; }

  .ds-info-widget {
    width: 60px; height: 60px;
    top: 18px; right: 18px;
  }
}

/* ████████████████████████████████████████████████████████████████████████
   STORIES — Příběhy z minulých dílů (editorial 3-card layout)
   ████████████████████████████████████████████████████████████████████████ */
.ds-stories {
  padding: 72px 40px 56px;
  background: var(--bg);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.ds-stories-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  max-width: 1300px;
  margin: 0 auto 44px;
  gap: 24px;
  flex-wrap: wrap;
}
.ds-stories-eyebrow {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--pink-glow);
  margin-bottom: 12px;
}
.ds-stories-title {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(28px, 3.4vw, 48px);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: #fff;
}
.ds-stories-all {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--text);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 4px;
  transition: gap 0.3s, color 0.2s, border-color 0.2s;
}
.ds-stories-all:hover {
  gap: 14px;
  color: var(--pink-glow);
}

/* Grid 3 karty */
.ds-stories-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  max-width: 1300px;
  margin: 0 auto;
}

/* Single story card */
.ds-story {
  display: flex;
  flex-direction: column;
  cursor: pointer;
  group: story;
}
.ds-story-img {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 10px;
  margin-bottom: 18px;
  background: var(--bg-3);
  position: relative;
}
.ds-story-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  display: block;
  transition: transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1), filter 0.4s;
}

/* Portrait fotka v 16:9 boxu — zobraz CELOU, letterbox po stranách (pro příběh 1) */
.ds-story-img.ds-story-img-contain {
  background: #0a0010;
}
.ds-story-img.ds-story-img-contain img {
  object-fit: contain;
  object-position: center center;
}

/* Landscape fotka s textem dole — cover + anchor na spodek (pro příběh 2) */
.ds-story-img.ds-story-img-anchor-bottom img {
  object-fit: cover;
  object-position: center bottom;
}
.ds-story:hover .ds-story-img img {
  transform: scale(1.06);
  filter: saturate(1.1);
}
.ds-story-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--muted);
  margin-bottom: 10px;
  text-transform: uppercase;
}
.ds-story-sep {
  opacity: 0.5;
}
.ds-story-title {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.02em;
  color: #fff;
  margin-bottom: 10px;
  transition: color 0.2s;
}
.ds-story:hover .ds-story-title {
  color: var(--pink-glow);
}
.ds-story-desc {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255, 245, 250, 0.65);
  letter-spacing: -0.005em;
}

/* Mobile */
@media (max-width: 900px) {
  .ds-stories { padding: 56px 20px 40px; }
  .ds-stories-grid { grid-template-columns: 1fr; gap: 36px; }
  .ds-stories-head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 32px;
  }
  .ds-story-img { aspect-ratio: 16 / 9; }
}
@media (max-width: 700px) {
  .ds-stories-grid { gap: 28px; }
}

/* ████████████████████████████████████████████████████████████████████████
   PROČ DATESHOW? — editorial manifest mezi hero a team
   ████████████████████████████████████████████████████████████████████████ */

.ds-why {
  position: relative;
  padding: clamp(80px, 10vw, 130px) clamp(20px, 4vw, 56px) clamp(80px, 10vw, 120px);
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(255, 110, 199, 0.08), transparent 60%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
  overflow: hidden;
}

/* Subtle background glyph — velký faded "?" jako editorial accent (vpravo nahoře) */
.ds-why::before {
  content: "?";
  position: absolute;
  top: -10%; right: -2%;
  font-family: 'Anton', sans-serif;
  font-size: clamp(400px, 45vw, 720px);
  line-height: 1;
  color: rgba(255, 110, 199, 0.04);
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

/* Velké faded srdce vlevo dole — kotví solution part ("tohle řeší...") */
.ds-why::after {
  content: "";
  position: absolute;
  bottom: -8%; left: -4%;
  width: clamp(380px, 44vw, 700px);
  aspect-ratio: 1;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ff4d8f'><path d='M12 21s-7.5-4.6-9.5-9.4C1 7.5 4 4 7.5 4c2 0 3.4 1 4.5 2.6C13.1 5 14.5 4 16.5 4 20 4 23 7.5 21.5 11.6 19.5 16.4 12 21 12 21z'/></svg>");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: left bottom;
  opacity: 0.045;
  pointer-events: none;
  z-index: 0;
  transform: rotate(-8deg);
}
.ds-why > * { position: relative; z-index: 1; }

/* Header */
.ds-why-head {
  max-width: 1200px;
  margin: 0 auto clamp(48px, 6vw, 80px);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ds-why-title {
  font-size: clamp(56px, 9vw, 140px) !important;
  line-height: 0.92 !important;
  letter-spacing: -0.035em !important;
  color: var(--text);
  text-shadow: 0 0 60px rgba(255, 110, 199, 0.15);
}
.ds-why-title em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  font-weight: 400;
  background: linear-gradient(95deg, var(--pink-glow) 0%, var(--pink) 50%, var(--purple) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: -0.02em;
  display: inline-block;
  padding-right: 0.12em;
  margin-right: -0.04em;
}

/* 3-column grid */
.ds-why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(28px, 3vw, 48px);
  max-width: 1200px;
  margin: 0 auto clamp(56px, 8vw, 100px);
}
.ds-why-item {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding-top: 24px;
  border-top: 1.5px solid var(--line);
  position: relative;
}
.ds-why-item::before {
  content: ""; position: absolute;
  top: -1.5px; left: 0;
  width: 56px; height: 1.5px;
  background: var(--pink);
  box-shadow: 0 0 12px rgba(255, 110, 199, 0.6);
}
.ds-why-num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  letter-spacing: 0.18em;
  color: var(--pink);
  text-transform: uppercase;
  margin-bottom: 8px;
}
.ds-why-q {
  font-family: 'Anton', sans-serif;
  font-size: clamp(24px, 2.6vw, 36px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: var(--text);
  font-weight: normal;
}
.ds-why-q em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  font-weight: 400;
  color: var(--pink-glow);
  letter-spacing: -0.005em;
  text-shadow: 0 0 24px rgba(255, 110, 199, 0.35);
}
.ds-why-p {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 15px;
  line-height: 1.65;
  color: rgba(255, 245, 250, 0.78);
  max-width: 34ch;
  letter-spacing: -0.005em;
}

/* Solution callout */
.ds-why-solution {
  text-align: center;
  max-width: 820px;
  margin: 0 auto;
  padding: clamp(56px, 6vw, 88px) clamp(20px, 3vw, 40px) clamp(64px, 7vw, 96px);
  border-top: 1px dashed rgba(255, 110, 199, 0.28);
  border-bottom: 1px dashed rgba(255, 110, 199, 0.28);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

/* Floating heart particles — jen pár jemných */
.ds-why-hearts {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
}
.ds-why-heart {
  position: absolute;
  bottom: -40px;
  display: inline-flex;
  color: var(--pink-glow);
  opacity: 0;
  animation-name: ds-why-float-up;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  filter: drop-shadow(0 0 6px rgba(255, 110, 199, 0.45));
  will-change: transform, opacity;
}
@keyframes ds-why-float-up {
  0%   { transform: translateY(0) translateX(0) rotate(-8deg); opacity: 0; }
  15%  { opacity: 0.35; }
  85%  { opacity: 0.15; }
  100% { transform: translateY(-560px) translateX(-12px) rotate(-12deg); opacity: 0; }
}

/* Obsah nad efekty */
.ds-why-solution > .ds-why-arrow,
.ds-why-solution > .ds-why-callout,
.ds-why-solution > .ds-why-supporting {
  position: relative;
  z-index: 3;
}

/* ████████████████████████████████████████████████████████████████████████
   BRAND WORLD — time-aware countdown mood states
   Card mění label + barvy podle reálného času (sobota = LIVE atd.)
   ████████████████████████████████████████████████████████████████████████ */

/* Default — fialový pink-glow (zachováno) */

/* Pátek večer — "Zítra večer" */
.ds-cd-mood-tomorrow .ds-cd-label {
  color: var(--pink-glow);
}

/* Sobota před show — "Dnes večer" — výraznější */
.ds-cd-mood-today {
  border-color: var(--pink) !important;
  box-shadow:
    7px 7px 0 var(--pink) !important,
    0 0 60px rgba(255, 77, 143, 0.45) !important,
    inset 0 1.5px 0 rgba(255, 255, 255, 0.4) !important;
}
.ds-cd-mood-today .ds-cd-label {
  color: #ffeb3b;
  font-weight: 700;
}

/* 30 min před startem — naléhavé, blink */
.ds-cd-mood-soon {
  border-color: #ffeb3b !important;
  animation: ds-cd-soon-pulse 1.4s ease-in-out infinite;
}
.ds-cd-mood-soon .ds-cd-label {
  color: #ffeb3b;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
@keyframes ds-cd-soon-pulse {
  0%, 100% { box-shadow: 7px 7px 0 #ffeb3b, 0 0 40px rgba(255, 235, 59, 0.4); }
  50%      { box-shadow: 7px 7px 0 #ffeb3b, 0 0 80px rgba(255, 235, 59, 0.85); transform: scale(1.01); }
}

/* LIVE — sobota 20-23h — červená intenzita */
.ds-cd-mood-live, .ds-cd-card.is-live {
  border-color: #ff3434 !important;
  background: linear-gradient(155deg, rgba(255, 50, 50, 0.18) 0%, rgba(8, 0, 20, 0.85) 100%) !important;
  box-shadow:
    7px 7px 0 #ff3434 !important,
    0 0 100px rgba(255, 50, 50, 0.55) !important,
    inset 0 1.5px 0 rgba(255, 255, 255, 0.3) !important;
  animation: ds-cd-live-pulse 1.4s ease-in-out infinite;
}
.ds-cd-card.is-live .ds-cd-label {
  color: #ff5050;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 14px !important;
}
.ds-cd-card.is-live .ds-cd-label::before {
  content: "● ";
  animation: ds-cd-live-blink 0.9s ease-in-out infinite;
}
@keyframes ds-cd-live-pulse {
  0%, 100% { box-shadow: 7px 7px 0 #ff3434, 0 0 60px rgba(255, 50, 50, 0.4); }
  50%      { box-shadow: 7px 7px 0 #ff3434, 0 0 120px rgba(255, 50, 50, 0.85); }
}
@keyframes ds-cd-live-blink {
  0%, 50% { opacity: 1; }
  51%, 100% { opacity: 0.3; }
}
.ds-why-arrow {
  font-family: 'Anton', sans-serif;
  font-size: 32px;
  line-height: 1;
  color: var(--pink);
  margin-bottom: 22px;
  opacity: 0.7;
  text-shadow: 0 0 14px rgba(255, 110, 199, 0.6);
  animation: ds-why-arrow-pulse 2s ease-in-out infinite;
}
@keyframes ds-why-arrow-pulse {
  0%, 100% { transform: translateY(0); opacity: 0.6; }
  50%      { transform: translateY(4px); opacity: 1; }
}
.ds-why-callout {
  font-family: 'Anton', sans-serif;
  line-height: 0.95;
  letter-spacing: -0.025em;
  color: var(--text);
  margin-bottom: clamp(24px, 3vw, 36px);
}
.ds-why-callout-pre {
  display: block;
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(20px, 2.6vw, 32px);
  color: rgba(255, 245, 250, 0.7);
  letter-spacing: -0.01em;
  margin-bottom: 8px;
}
.ds-why-callout strong {
  font-family: 'Anton', sans-serif;
  font-weight: normal;
  font-size: clamp(40px, 6vw, 88px);
  display: inline-block;
  background: linear-gradient(95deg, #fff5fa 0%, var(--pink) 50%, var(--purple-deep) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  position: relative;
}
.ds-why-callout strong::after {
  content: ""; position: absolute;
  left: 4%; right: 4%; bottom: -6px;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--pink), transparent);
  border-radius: 2px;
}

.ds-why-supporting {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 1.7;
  color: rgba(255, 245, 250, 0.8);
  max-width: 540px;
  margin: 0 auto;
  letter-spacing: -0.005em;
}
.ds-why-supporting strong {
  color: var(--text);
  font-weight: 700;
  letter-spacing: 0;
}
.ds-why-supporting em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  color: var(--pink-glow);
  font-weight: 400;
  letter-spacing: -0.005em;
}

/* Mobile */
@media (max-width: 900px) {
  .ds-why::before { font-size: 60vw; top: -5%; right: -10%; }
  .ds-why-grid { grid-template-columns: 1fr; gap: 32px; }
  .ds-why-item { padding-top: 20px; }
  .ds-why-q { font-size: 22px; }
  .ds-why-p { font-size: 14px; max-width: 100%; }
}

/* ████████████████████████████████████████████████████████████████████████
   TAB ROUTING — Best Energy je samostatný tab (#best-energy v URL)
   ████████████████████████████████████████████████████████████████████████ */

/* Když je aktivní Best Energy tab — schovat všechno ostatní */
.ds-app[data-tab="best-energy"] .ds-hero,
.ds-app[data-tab="best-energy"] .ds-why,
.ds-app[data-tab="best-energy"] .ds-team,
.ds-app[data-tab="best-energy"] .ds-cast-head,
.ds-app[data-tab="best-energy"] .ds-cast-block,
.ds-app[data-tab="best-energy"] .ds-cast-divider,
.ds-app[data-tab="best-energy"] .ds-stories,
.ds-app[data-tab="best-energy"] .ds-info-grid,
.ds-app[data-tab="best-energy"] .ds-archive,
.ds-app[data-tab="best-energy"] .ds-apply {
  display: none !important;
}
/* Cast section je wrapper — když jsme na best-energy tabu, reset jeho stylu */
.ds-app[data-tab="best-energy"] #cast {
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  min-height: calc(100vh - 80px);
}

/* Když je aktivní hlavní tab — schovat tab sekce */
.ds-app[data-tab="main"] #best-energy,
.ds-app[data-tab="main"] #uspesna-rande {
  display: none !important;
}

/* Úspěšná rande tab — schovat všechno ostatní */
.ds-app[data-tab="uspesna-rande"] .ds-hero,
.ds-app[data-tab="uspesna-rande"] .ds-why,
.ds-app[data-tab="uspesna-rande"] .ds-team,
.ds-app[data-tab="uspesna-rande"] .ds-cast-head,
.ds-app[data-tab="uspesna-rande"] .ds-cast-block,
.ds-app[data-tab="uspesna-rande"] .ds-cast-divider,
.ds-app[data-tab="uspesna-rande"] .ds-stories,
.ds-app[data-tab="uspesna-rande"] .ds-info-grid,
.ds-app[data-tab="uspesna-rande"] .ds-archive,
.ds-app[data-tab="uspesna-rande"] .ds-apply,
.ds-app[data-tab="uspesna-rande"] #best-energy {
  display: none !important;
}
.ds-app[data-tab="uspesna-rande"] #cast {
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  min-height: calc(100vh - 80px);
}

/* Best Energy tab — schovat success rande sekci */
.ds-app[data-tab="best-energy"] #uspesna-rande {
  display: none !important;
}

/* Active nav link styling */
.ds-nav a.is-active {
  color: var(--pink-glow);
  font-weight: 700;
}
.ds-nav-best {
  position: relative;
}
.ds-nav-best::before {
  content: "";
  position: absolute;
  left: -10px; top: 50%;
  transform: translateY(-50%);
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--pink);
  box-shadow: 0 0 8px var(--pink);
  opacity: 0.85;
  animation: ds-nav-best-pulse 1.6s ease-in-out infinite;
}
@keyframes ds-nav-best-pulse {
  0%, 100% { opacity: 0.5; transform: translateY(-50%) scale(1); }
  50%      { opacity: 1; transform: translateY(-50%) scale(1.4); }
}

/* ████████████████████████████████████████████████████████████████████████
   BEST ENERGY — hlasování o nejsympatičtějšího účinkujícího
   2 leader karty nahoře + grid všech ostatních
   ████████████████████████████████████████████████████████████████████████ */

.ds-best {
  position: relative;
  padding: clamp(80px, 10vw, 130px) clamp(20px, 4vw, 56px);
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(255, 110, 199, 0.08), transparent 60%),
    radial-gradient(ellipse 60% 50% at 50% 100%, rgba(192, 132, 252, 0.06), transparent 60%);
  overflow: hidden;
}

/* Background watermark — animated heart pulse */
.ds-best::before {
  content: "♥";
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  font-family: 'Anton', sans-serif;
  font-size: clamp(380px, 45vw, 700px);
  line-height: 1;
  color: rgba(255, 110, 199, 0.035);
  pointer-events: none;
  z-index: 0;
  font-variant-emoji: text;
}
.ds-best > * { position: relative; z-index: 1; }

/* Header */
.ds-best-head {
  max-width: 880px;
  margin: 0 auto clamp(48px, 6vw, 80px);
  text-align: center;
}
.ds-best-title {
  font-size: clamp(56px, 9vw, 130px) !important;
  line-height: 0.92 !important;
  letter-spacing: -0.035em !important;
  margin-bottom: 20px;
}
.ds-best-title em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  font-weight: 400;
  background: linear-gradient(95deg, var(--pink-glow) 0%, var(--pink) 50%, var(--purple) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
  padding-right: 0.12em;
  margin-right: -0.04em;
}
.ds-best-sub {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 1.6;
  color: rgba(255, 245, 250, 0.78);
  max-width: 600px;
  margin: 0 auto;
}

/* IG follow CTA — diskrétní pill pod subtitlem */
.ds-best-ig-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 18px auto 0;
  padding: 6px 14px 6px 6px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}
.ds-best-ig-cta:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 119, 173, 0.5);
  transform: translateY(-1px);
}
.ds-best-ig-cta-logo {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: block;
  flex-shrink: 0;
}
.ds-best-ig-cta-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.ds-best-ig-cta-line1 {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 245, 250, 0.55);
}
.ds-best-ig-cta-line2 {
  font-family: 'Anton', sans-serif;
  font-size: 16px;
  letter-spacing: 0.02em;
  color: var(--pink-glow, #ff77ad);
  margin-top: 2px;
}
.ds-best-sub em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  color: var(--pink-glow);
  font-weight: 400;
}
.ds-best-sub strong { color: var(--text); }

/* Notice (Discord kontakt) — decentní, oddělený od hlavního subtitle */
.ds-best-notice {
  margin: 14px auto 0;
  max-width: 560px;
  padding: 10px 18px;
  font-size: 13px;
  line-height: 1.5;
  color: rgba(245, 238, 248, 0.6);
  text-align: center;
  background: rgba(255, 255, 255, 0.025);
  border: 1px dashed rgba(255, 77, 143, 0.25);
  border-radius: 999px;
}
.ds-best-notice strong {
  color: var(--pink);
  font-weight: 600;
}
.ds-best-notice-link {
  color: var(--pink);
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 77, 143, 0.4);
  transition: all 0.15s;
}
.ds-best-notice-link:hover {
  color: #ff77b0;
  border-bottom-color: var(--pink);
}
@media (max-width: 600px) {
  .ds-best-notice {
    font-size: 12px;
    padding: 8px 14px;
    border-radius: 12px;
    line-height: 1.45;
  }
}

/* === LEADERS — boy left + plus + girl right (smaller spotlight) === */
.ds-best-leaders {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: clamp(14px, 2.5vw, 32px);
  max-width: 880px;
  margin: 0 auto clamp(56px, 7vw, 90px);
  align-items: center;
}

/* Big "+" mezi leadery */
.ds-best-plus {
  font-family: 'Anton', sans-serif;
  font-size: clamp(70px, 10vw, 140px);
  line-height: 1;
  color: var(--pink);
  letter-spacing: -0.05em;
  text-shadow:
    0 4px 0 var(--purple-deep),
    0 0 36px rgba(255, 77, 143, 0.6),
    0 0 72px rgba(192, 132, 252, 0.4);
  user-select: none;
  animation: ds-best-plus-pulse 2.4s ease-in-out infinite;
  pointer-events: none;
}
@keyframes ds-best-plus-pulse {
  0%, 100% { transform: scale(1) rotate(-6deg); }
  50%      { transform: scale(1.15) rotate(8deg); text-shadow: 0 4px 0 var(--purple-deep), 0 0 56px rgba(255, 77, 143, 0.95), 0 0 100px rgba(192, 132, 252, 0.6); }
}
.ds-best-leader {
  position: relative;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.02) 100%);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1.5px solid rgba(255, 255, 255, 0.18);
  border-radius: 16px;
  padding: 0;
  overflow: hidden;
  display: flex; flex-direction: column;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 16px 40px rgba(0, 0, 0, 0.35),
    5px 5px 0 var(--purple-deep);
  transition: transform 0.4s cubic-bezier(.16, .84, .26, 1), box-shadow 0.4s;
}
.ds-best-leader:hover {
  transform: translate(-2px, -2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    0 22px 50px rgba(0, 0, 0, 0.42),
    7px 7px 0 var(--purple-deep);
}
.ds-best-leader-girl::before,
.ds-best-leader-boy::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}
.ds-best-leader-girl::before {
  background: linear-gradient(180deg, rgba(255, 77, 143, 0.0) 60%, rgba(255, 77, 143, 0.18) 100%);
}
.ds-best-leader-boy::before {
  background: linear-gradient(180deg, rgba(192, 132, 252, 0.0) 60%, rgba(192, 132, 252, 0.18) 100%);
}

.ds-best-leader-tag {
  position: absolute;
  top: 12px; left: 12px;
  z-index: 3;
  display: flex; align-items: center;
  gap: 8px;
}
.ds-best-rank-num {
  font-family: 'Anton', sans-serif;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1;
  letter-spacing: -0.04em;
  color: #ffeb3b;
  text-shadow: 2px 2px 0 #6d28d9, 0 0 18px rgba(255, 235, 59, 0.5);
}
.ds-best-rank-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  color: rgba(255, 245, 250, 0.9);
  background: rgba(0, 0, 0, 0.55);
  padding: 5px 9px;
  border-radius: 999px;
  border: 1px solid rgba(255, 235, 59, 0.4);
  backdrop-filter: blur(4px);
  text-transform: uppercase;
  white-space: nowrap;
}

.ds-best-leader-photo {
  position: relative;
  aspect-ratio: 1 / 1.15;
  overflow: hidden;
  background: linear-gradient(155deg, var(--bg-2), var(--bg-3));
}
.ds-best-leader-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 25%;
  display: block;
}
.ds-best-leader-photo svg {
  width: 100% !important;
  height: 100% !important;
}

.ds-best-leader-info {
  position: relative;
  z-index: 2;
  padding: 14px 16px 18px;
  display: flex; flex-direction: column;
  gap: 8px;
}
.ds-best-leader-name {
  font-family: 'Anton', sans-serif;
  font-size: clamp(22px, 2.6vw, 36px);
  line-height: 0.95;
  letter-spacing: -0.025em;
  color: var(--text);
}
.ds-best-leader-name span {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  color: var(--pink-glow);
  font-size: 0.7em;
  font-weight: 400;
  letter-spacing: 0;
}
.ds-best-leader-meta {
  display: flex; align-items: baseline;
  gap: 6px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.1em;
  color: rgba(255, 245, 250, 0.6);
  text-transform: uppercase;
}
.ds-best-leader-meta em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  text-transform: none;
  letter-spacing: 0;
  color: var(--pink-glow);
  font-size: 1.6em;
  font-weight: 400;
}

.ds-best-vote-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: 'Anton', sans-serif;
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 10px 18px;
  background: var(--pink);
  color: #fff;
  border: 1.5px solid var(--pink-glow);
  border-radius: 4px;
  cursor: pointer;
  box-shadow: 4px 4px 0 var(--purple-deep), 0 0 18px rgba(255, 77, 143, 0.35);
  transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
  margin-top: 6px;
  align-self: flex-start;
}
.ds-best-vote-btn:hover {
  transform: translate(-2px, -2px);
  box-shadow: 7px 7px 0 var(--purple-deep), 0 0 32px rgba(255, 77, 143, 0.55);
}
.ds-best-vote-btn:active {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 var(--purple-deep);
}
.ds-best-vote-btn.voted {
  background: var(--purple-deep);
  border-color: var(--pink);
}

.ds-best-sep { opacity: 0.4; }

/* === GRID HEAD === */
.ds-best-grid-head {
  max-width: 1280px;
  margin: 0 auto 18px;
  display: flex; align-items: center; gap: 16px;
  padding: 0 4px;
}
.ds-best-grid-label {
  font-family: 'Anton', sans-serif;
  font-size: 22px;
  letter-spacing: 0.06em;
  background: var(--pink);
  color: #fff;
  padding: 7px 14px 8px;
  border-radius: 4px;
  box-shadow: 4px 4px 0 var(--purple-deep);
  transform: rotate(-1deg);
}
.ds-best-grid-count {
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  color: var(--muted);
  letter-spacing: 0.1em;
}

/* === 4×5 GRID — stejné karty jako homepage cast === */
.ds-best-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  max-width: 1280px;
  margin: 0 auto;
}
@media (max-width: 1100px) {
  .ds-best-cards { grid-template-columns: repeat(3, 1fr); gap: 14px; }
}
@media (max-width: 700px) {
  .ds-best-cards { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}
@media (max-width: 400px) {
  .ds-best-cards { grid-template-columns: 1fr; }
}

/* === Best Energy Card — front extras (rank pill + votes pill) === */
.be-rank-pill {
  position: absolute;
  top: 10px; left: 10px;
  z-index: 4;
  font-family: 'Anton', sans-serif;
  font-size: 14px;
  letter-spacing: 0.04em;
  background: rgba(0, 0, 0, 0.7);
  color: #ffeb3b;
  padding: 4px 9px;
  border-radius: 6px;
  border: 1px solid rgba(255, 235, 59, 0.4);
  backdrop-filter: blur(6px);
  text-shadow: 1px 1px 0 #6d28d9;
}
.be-votes-pill {
  position: absolute;
  top: 10px; right: 10px;
  z-index: 4;
  display: inline-flex; align-items: center; gap: 4px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  font-weight: 600;
  background: rgba(255, 77, 143, 0.92);
  color: #fff;
  padding: 5px 10px 5px 8px;
  border-radius: 999px;
  backdrop-filter: blur(6px);
  box-shadow: 0 4px 10px rgba(255, 77, 143, 0.4);
  letter-spacing: 0.04em;
}

/* === Decentní IG ikona — každá best-energy karta (vlevo dole) === */
/* Default IG icon (BEZ handle) — malá, decentní outline, šedá */
.be-ig-icon {
  position: absolute;
  bottom: 10px; right: 10px;
  z-index: 5;
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.4);
  text-decoration: none;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, width 0.2s ease, height 0.2s ease;
  opacity: 0.45;
}
.be-ig-icon:hover {
  background: linear-gradient(135deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
  border-color: rgba(255, 245, 250, 0.5);
  color: #fff;
  opacity: 1;
  transform: scale(1.12);
}

/* Reálně přidaný IG (.has-handle) — VĚTŠÍ, plný Instagram gradient, pulsing glow */
.be-ig-icon.has-handle {
  width: 34px; height: 34px;
  background: linear-gradient(135deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
  border: 2px solid rgba(255, 255, 255, 0.85);
  color: #fff;
  opacity: 1;
  box-shadow:
    0 0 0 2px rgba(220, 39, 67, 0.35),
    0 0 18px rgba(220, 39, 67, 0.7),
    0 4px 12px rgba(0, 0, 0, 0.4);
  animation: be-ig-pulse 2.4s ease-in-out infinite;
}
.be-ig-icon.has-handle:hover {
  transform: scale(1.15);
  animation: none;
  box-shadow:
    0 0 0 3px rgba(220, 39, 67, 0.5),
    0 0 26px rgba(220, 39, 67, 0.9),
    0 6px 16px rgba(0, 0, 0, 0.5);
}

@keyframes be-ig-pulse {
  0%, 100% {
    box-shadow:
      0 0 0 2px rgba(220, 39, 67, 0.35),
      0 0 14px rgba(220, 39, 67, 0.55),
      0 4px 12px rgba(0, 0, 0, 0.4);
  }
  50% {
    box-shadow:
      0 0 0 3px rgba(220, 39, 67, 0.55),
      0 0 22px rgba(220, 39, 67, 0.85),
      0 4px 14px rgba(0, 0, 0, 0.45);
  }
}

/* Mobile: zvětšený touch target pro IG ikonu (44x44 minimum WCAG) +
   přidaný :active state pro feedback. */
@media (max-width: 700px) {
  .be-ig-icon {
    width: 30px !important;
    height: 30px !important;
    bottom: 8px !important;
    right: 8px !important;
  }
  .be-ig-icon.has-handle {
    width: 42px !important;
    height: 42px !important;
  }
  .be-ig-icon:active {
    background: linear-gradient(135deg, #f09433 0%, #dc2743 50%, #bc1888 100%);
    transform: scale(0.95);
  }
  /* Větší IG handle pill když má handle (motivace pro free promo) */
  .be-front-ig {
    background: rgba(255, 77, 143, 0.15);
    border: 1px solid rgba(255, 119, 173, 0.4);
    padding: 4px 10px !important;
    border-radius: 999px;
    font-size: 12px !important;
  }
}

/* === Best Energy Card — back face (vote-focused) === */
.be-back {
  display: flex !important;
  flex-direction: column;
  gap: 8px;
  padding: 18px 16px !important;
  text-align: center;
}
.be-back-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  color: var(--pink-glow);
  text-transform: uppercase;
  margin-bottom: 2px;
}
.be-back-name {
  font-family: 'Anton', sans-serif;
  font-size: 26px;
  line-height: 0.95;
  letter-spacing: -0.02em;
  color: var(--text);
}
.be-back-name span {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  color: var(--pink-glow);
  font-size: 0.7em;
  font-weight: 400;
  letter-spacing: 0;
}
.be-back-meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  color: rgba(255, 245, 250, 0.55);
  text-transform: uppercase;
  margin-bottom: 4px;
}
.be-back-vote-stat {
  display: flex; flex-direction: column; align-items: center;
  margin: 8px 0 4px;
  padding: 12px 14px;
  background: rgba(255, 77, 143, 0.12);
  border: 1px dashed rgba(255, 77, 143, 0.4);
  border-radius: 10px;
}
.be-back-vote-stat em {
  font-family: 'Anton', sans-serif;
  font-style: normal;
  font-size: 36px;
  line-height: 1;
  letter-spacing: -0.03em;
  background: linear-gradient(180deg, #fff5fa 0%, var(--pink) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.be-back-vote-stat span {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.22em;
  color: rgba(255, 245, 250, 0.6);
  margin-top: 4px;
}
.be-back-vote-btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px;
  font-family: 'Anton', sans-serif;
  font-size: 14px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 10px 16px;
  background: var(--pink);
  color: #fff;
  border: 1.5px solid var(--pink-glow);
  border-radius: 4px;
  cursor: pointer;
  box-shadow: 4px 4px 0 var(--purple-deep);
  transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
  margin-top: 4px;
}
.be-back-vote-btn:hover {
  transform: translate(-1px, -1px);
  box-shadow: 5px 5px 0 var(--purple-deep), 0 0 16px rgba(255, 77, 143, 0.5);
}
.be-back-vote-btn.voted {
  background: var(--purple-deep);
}
.be-back-note {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.12em;
  color: rgba(255, 245, 250, 0.4);
  text-transform: uppercase;
  margin-top: 2px;
}

/* === Best Energy FRONT overlay — bohatá info varianta (jméno, IG, bullets) === */
.be-front-overlay {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 70px 14px 16px;
  background: linear-gradient(180deg,
    transparent 0%,
    rgba(0, 0, 0, 0.35) 25%,
    rgba(0, 0, 0, 0.78) 55%,
    rgba(0, 0, 0, 0.96) 85%,
    rgba(0, 0, 0, 1) 100%);
  display: flex; flex-direction: column; gap: 7px;
  z-index: 3;
  pointer-events: none;
}
.be-front-overlay.has-info {
  padding: 95px 14px 16px;
  background: linear-gradient(180deg,
    transparent 0%,
    rgba(0, 0, 0, 0.4) 22%,
    rgba(0, 0, 0, 0.82) 50%,
    rgba(0, 0, 0, 0.97) 80%,
    rgba(0, 0, 0, 1) 100%);
}
.be-front-name-row {
  display: flex; align-items: center; justify-content: flex-start; gap: 10px; flex-wrap: wrap;
}
.be-front-name {
  font-family: 'Anton', sans-serif;
  font-size: 32px;
  line-height: 0.95;
  letter-spacing: -0.015em;
  color: #fff;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.65);
  margin: 0;
}
.be-front-age {
  font-family: 'JetBrains Mono', monospace;
  font-size: 15px;
  color: #fff;
  /* Fialová — odlišení od růžových likes badges (rank pill + votes pill jsou pink) */
  background: rgba(167, 139, 250, 0.95);
  box-shadow: 0 2px 8px rgba(167, 139, 250, 0.35);
  padding: 4px 10px;
  border-radius: 999px;
  letter-spacing: 0.06em;
  font-weight: 700;
  flex-shrink: 0;
  /* Posun nahoru ať věk je zarovnaný s top jména (ne baseline) */
  align-self: flex-start;
  margin-top: 2px;
}
.be-winner-mark {
  display: inline-block;
  margin-left: 8px;
  font-family: 'Anton', sans-serif;
  font-size: 0.75em;
  color: #ffd766;
  text-shadow: 0 0 12px rgba(255, 215, 102, 0.85), 0 2px 8px rgba(0, 0, 0, 0.5);
  vertical-align: middle;
}
.be-front-ig {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.95);
  text-decoration: none;
  pointer-events: auto;
  cursor: pointer;
  transition: color 0.15s ease;
  width: fit-content;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}
.be-front-ig:hover { color: var(--pink-glow, #ff77ad); }
.be-front-ig svg { opacity: 0.9; }
.be-front-bullets {
  list-style: none;
  padding: 0;
  margin: 4px 0 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.be-front-bullets li {
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  letter-spacing: 0.02em;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.92);
  padding-left: 12px;
  position: relative;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}
.be-front-bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 1px;
  background: var(--pink-glow, #ff77ad);
}

/* === Best Energy BACK — druhá fotka (z IG) varianta === */
.be-back-photo {
  padding: 0 !important;
  display: block !important;
  background: var(--purple-deep, #6d28d9);
  overflow: hidden;
  inset: 0;
}
.be-back-photo .pc-photo {
  width: 100%; height: 100%;
  position: relative;
}
.be-back-photo .pc-photo-img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.be-back-photo-overlay {
  position: absolute;
  left: 0; right: 0; top: 0; bottom: 0;
  padding: 14px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.4) 0%, transparent 28%, transparent 55%, rgba(0, 0, 0, 0.92) 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 12px;
  pointer-events: none;
  z-index: 3;
}
.be-back-photo-meta {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.be-back-photo-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9.5px;
  letter-spacing: 0.18em;
  color: var(--pink-glow, #ff77ad);
  text-transform: uppercase;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}
.be-back-photo-name {
  font-family: 'Anton', sans-serif;
  font-size: 30px;
  line-height: 0.95;
  letter-spacing: -0.015em;
  color: #fff;
  margin: 0;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.65);
}
.be-back-photo-name span {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  color: var(--pink-glow, #ff77ad);
  font-size: 0.65em;
  font-weight: 400;
  letter-spacing: 0;
}
.be-back-photo-ig {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.95);
  text-decoration: none;
  pointer-events: auto;
  cursor: pointer;
  width: fit-content;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.55);
  transition: color 0.15s ease;
}
.be-back-photo-ig:hover { color: var(--pink-glow, #ff77ad); }
.be-back-photo .be-back-vote-btn {
  pointer-events: auto;
  align-self: flex-start;
}

/* === Best Energy back — info bullets (zobrazí se u účastníků s vyplněným p.info) === */
.be-back-info {
  list-style: none;
  padding: 0;
  margin: 4px 0 2px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  text-align: left;
  width: 100%;
}
.be-back-info li {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.04em;
  line-height: 1.35;
  color: rgba(255, 245, 250, 0.82);
  padding-left: 12px;
  position: relative;
}
.be-back-info li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 1px;
  background: var(--pink-glow);
}
/* Když je info vyplněné, kompaktnější vote-stat a celá zadní strana, ať vše vleze */
.be-back-with-info {
  gap: 6px;
  padding: 14px 14px !important;
}
.be-back-with-info .be-back-name { font-size: 22px; }
.be-back-with-info .be-back-vote-stat {
  margin: 6px 0 2px;
  padding: 8px 12px;
}
.be-back-with-info .be-back-vote-stat em { font-size: 26px; }
@media (max-width: 700px) {
  .be-back-info li { font-size: 9px; }
}

/* Mobile leader collapse */
@media (max-width: 700px) {
  .ds-best-leaders { grid-template-columns: 1fr; gap: 18px; }
  .ds-best-plus { font-size: 60px; transform: rotate(0deg); }
}
.ds-best-card {
  position: relative;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.02) 100%);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform 0.3s cubic-bezier(.16, .84, .26, 1), border-color 0.3s, box-shadow 0.3s;
}
.ds-best-card:hover {
  transform: translateY(-4px);
  border-color: var(--pink);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.35), 0 0 24px rgba(255, 77, 143, 0.25);
}
.ds-best-card-rank {
  position: absolute;
  top: 8px; left: 8px;
  z-index: 3;
  font-family: 'Anton', sans-serif;
  font-size: 14px;
  color: #fff;
  background: rgba(0, 0, 0, 0.65);
  padding: 4px 8px;
  border-radius: 4px;
  letter-spacing: 0.04em;
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255, 245, 250, 0.15);
}
.ds-best-card-photo {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  background: linear-gradient(155deg, var(--bg-2), var(--bg-3));
}
.ds-best-card-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 25%;
  display: block;
}
.ds-best-card-photo svg {
  width: 100% !important;
  height: 100% !important;
}
.ds-best-card-info {
  padding: 12px;
  display: flex; flex-direction: column;
  gap: 4px;
  flex: 1;
}
.ds-best-card-name {
  font-family: 'Anton', sans-serif;
  font-size: 18px;
  line-height: 1;
  letter-spacing: -0.01em;
  color: var(--text);
}
.ds-best-card-meta {
  display: flex; align-items: baseline; gap: 6px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  color: rgba(255, 245, 250, 0.55);
  text-transform: uppercase;
}
.ds-best-card-foot {
  display: flex; align-items: center; justify-content: space-between;
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px dashed rgba(255, 245, 250, 0.12);
}
.ds-best-card-votes {
  display: inline-flex; align-items: center; gap: 4px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--pink-glow);
  letter-spacing: 0.06em;
}
.ds-best-card-votes em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  font-size: 1.5em;
  color: var(--text);
  letter-spacing: 0;
  font-weight: 400;
}

.ds-best-vote-mini {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: rgba(255, 245, 250, 0.08);
  border: 1px solid rgba(255, 245, 250, 0.18);
  color: var(--text);
  font-family: 'Anton', sans-serif;
  font-size: 16px;
  cursor: pointer;
  transition: all 0.2s;
  display: inline-flex; align-items: center; justify-content: center;
  line-height: 1;
}
.ds-best-vote-mini:hover {
  background: var(--pink);
  border-color: var(--pink-glow);
  transform: scale(1.08);
  box-shadow: 0 0 14px rgba(255, 77, 143, 0.5);
}
.ds-best-vote-mini.voted {
  background: var(--pink);
  color: #fff;
  border-color: var(--pink-glow);
  font-size: 14px;
}

/* Mobile */
@media (max-width: 700px) {
  .ds-best-leaders { grid-template-columns: 1fr; }
  .ds-best-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
  .ds-best-card-rank { font-size: 12px; padding: 3px 6px; }
}

/* ████████████████████████████████████████████████████████████████████████
   ÚSPĚŠNÁ RANDE — samostatný tab, success stories grid
   ████████████████████████████████████████████████████████████████████████ */

.ds-success {
  position: relative;
  padding: clamp(80px, 10vw, 130px) clamp(20px, 4vw, 56px);
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(255, 110, 199, 0.10), transparent 60%),
    radial-gradient(ellipse 60% 50% at 50% 100%, rgba(192, 132, 252, 0.08), transparent 60%);
  overflow: hidden;
}
.ds-success::before {
  content: "♥";
  position: absolute;
  top: 8%; right: -3%;
  font-family: 'Anton', sans-serif;
  font-size: clamp(420px, 50vw, 780px);
  line-height: 1;
  color: rgba(255, 110, 199, 0.04);
  pointer-events: none;
  user-select: none;
  z-index: 0;
  font-variant-emoji: text;
  transform: rotate(-12deg);
}
.ds-success > * { position: relative; z-index: 1; }

/* Header */
.ds-success-head {
  max-width: 880px;
  margin: 0 auto clamp(48px, 6vw, 80px);
  text-align: center;
}
.ds-success-title {
  font-size: clamp(56px, 9vw, 130px) !important;
  line-height: 0.92 !important;
  letter-spacing: -0.035em !important;
  margin-bottom: 20px;
}
.ds-success-title em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  font-weight: 400;
  background: linear-gradient(95deg, var(--pink-glow) 0%, var(--pink) 50%, var(--purple) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ds-success-sub {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 1.6;
  color: rgba(255, 245, 250, 0.78);
  max-width: 600px;
  margin: 0 auto 32px;
}
.ds-success-sub em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  color: var(--pink-glow);
  font-weight: 400;
}
.ds-success-sub strong { color: var(--text); }

/* Stats strip */
.ds-success-stats {
  display: inline-flex; align-items: center; gap: 24px;
  padding: 16px 28px;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.02) 100%);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 4px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.3), 5px 5px 0 var(--purple-deep);
  flex-wrap: wrap;
  justify-content: center;
}
.ds-success-stats > div { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.ds-success-stats em {
  font-family: 'Anton', sans-serif;
  font-style: normal;
  font-size: clamp(28px, 3.5vw, 44px);
  line-height: 1;
  letter-spacing: -0.025em;
  background: linear-gradient(180deg, #fff 0%, var(--pink) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ds-success-stats span {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  color: rgba(255, 245, 250, 0.65);
  text-transform: uppercase;
}
.ds-success-stat-sep {
  width: 1px; height: 28px;
  background: linear-gradient(180deg, transparent, rgba(255, 245, 250, 0.25), transparent);
}

/* Grid */
.ds-success-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  max-width: 1280px;
  margin: 0 auto;
}
@media (max-width: 1100px) {
  .ds-success-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }
}
@media (max-width: 700px) {
  .ds-success-grid { grid-template-columns: 1fr; gap: 14px; }
}

.ds-success-card {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.02) 100%);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform 0.4s cubic-bezier(.16, .84, .26, 1), border-color 0.3s, box-shadow 0.3s;
}
.ds-success-card:hover {
  transform: translateY(-6px);
  border-color: var(--pink);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35), 0 0 28px rgba(255, 77, 143, 0.25);
}
.ds-success-card.ds-success-featured {
  grid-column: span 2;
  border-color: rgba(255, 235, 59, 0.35);
}
@media (max-width: 1100px) {
  .ds-success-card.ds-success-featured { grid-column: span 2; }
}
@media (max-width: 700px) {
  .ds-success-card.ds-success-featured { grid-column: 1; }
}

.ds-success-img {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: linear-gradient(155deg, var(--bg-2), var(--bg-3));
}
.ds-success-card.ds-success-featured .ds-success-img {
  aspect-ratio: 16 / 7;
}
.ds-success-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
  transition: transform 0.6s cubic-bezier(.16, .84, .26, 1);
}
.ds-success-card:hover .ds-success-img img {
  transform: scale(1.04);
}

.ds-success-stat-pill {
  position: absolute;
  top: 12px; right: 12px;
  z-index: 2;
  display: inline-flex; align-items: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
  border: 1px solid rgba(255, 245, 250, 0.2);
  backdrop-filter: blur(6px);
  text-transform: uppercase;
  white-space: nowrap;
}
.ds-success-stat-pill-gold {
  background: #ffeb3b;
  color: #1a0014;
  border-color: #f5b700;
  font-family: 'Anton', sans-serif;
  font-size: 12px;
  box-shadow: 0 0 18px rgba(255, 235, 59, 0.5), 3px 3px 0 var(--purple-deep);
}

.ds-success-body {
  padding: clamp(18px, 2vw, 26px);
  display: flex; flex-direction: column;
  gap: 10px;
  flex: 1;
}
.ds-success-meta {
  display: flex; align-items: baseline; gap: 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  color: rgba(255, 245, 250, 0.6);
  text-transform: uppercase;
}
.ds-success-ep {
  color: var(--pink-glow);
  font-weight: 600;
}
.ds-success-sep { opacity: 0.4; }

.ds-success-name {
  font-family: 'Anton', sans-serif;
  font-size: clamp(26px, 3vw, 40px);
  line-height: 0.95;
  letter-spacing: -0.02em;
  color: var(--text);
}
.ds-success-name em {
  font-family: 'Instrument Serif', serif !important;
  font-style: italic;
  font-weight: 400;
  color: var(--pink-glow);
  font-size: 0.85em;
  letter-spacing: 0;
  margin: 0 4px;
}

.ds-success-desc {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255, 245, 250, 0.8);
  flex: 1;
}

.ds-success-tag {
  align-self: flex-start;
  font-family: 'Anton', sans-serif;
  font-size: 12px;
  letter-spacing: 0.16em;
  color: #ffeb3b;
  background: rgba(0, 0, 0, 0.45);
  padding: 5px 11px;
  border-radius: 4px;
  border: 1.5px solid #ffeb3b;
  text-shadow: 1px 1px 0 #6d28d9;
  text-transform: uppercase;
  margin-top: 4px;
  box-shadow: 3px 3px 0 var(--purple-deep);
}

.ds-success-foot {
  text-align: center;
  margin-top: clamp(48px, 6vw, 80px);
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: clamp(15px, 1.6vw, 19px);
  color: rgba(255, 245, 250, 0.7);
}
.ds-success-foot a {
  color: var(--pink-glow);
  text-decoration: underline;
  font-weight: 700;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 4px;
}
.ds-success-foot a:hover { color: var(--pink); }

/* Featured card body — better proportions on big card */
.ds-success-featured .ds-success-body {
  padding: clamp(22px, 2.5vw, 32px);
  gap: 14px;
}
.ds-success-featured .ds-success-name {
  font-size: clamp(32px, 4vw, 56px);
}

/* Nav success styling — green dot */
.ds-nav-success {
  position: relative;
}
.ds-nav-success::before {
  content: "";
  position: absolute;
  left: -10px; top: 50%;
  transform: translateY(-50%);
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #ffeb3b;
  box-shadow: 0 0 8px #ffeb3b;
  opacity: 0.85;
  animation: ds-nav-success-pulse 1.6s 0.6s ease-in-out infinite;
}
@keyframes ds-nav-success-pulse {
  0%, 100% { opacity: 0.5; transform: translateY(-50%) scale(1); }
  50%      { opacity: 1; transform: translateY(-50%) scale(1.4); }
}

/* ████████████████████████████████████████████████████████████████████████
   v95 POLISH — editorial weight on PROČ section + atmospheric grain
   Cíle: silnější vizuální váha, kinematografický feel, lepší hover micro-FX
   ████████████████████████████████████████████████████████████████████████ */

/* === Atmosférická zrnitost přes celou stránku ===
   Velmi jemný film-grain overlay (opacity 0.06) pro filmový/editorial pocit.
   data-URI SVG turbulence — žádný extra request. */
.ds-app::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
  opacity: 0.055;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size: 220px 220px;
}
.ds-app.theme-light::after { mix-blend-mode: multiply; opacity: 0.04; }
@media (prefers-reduced-motion: reduce) { .ds-app::after { display: none; } }

/* === PROČ DATESHOW — obří ghost-čísla v pozadí + hover lift === */
.ds-why-item {
  padding-top: clamp(56px, 6vw, 88px) !important; /* uvolni místo pro velké číslo */
  padding-left: clamp(0px, 1vw, 12px);
  padding-right: 4px;
  transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.ds-why-item:hover {
  transform: translateY(-6px);
}
.ds-why-item:hover::before {
  width: 100% !important;
  transition: width 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.ds-why-item::before {
  transition: width 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.ds-why-num {
  position: absolute;
  top: -4px; left: -4px;
  font-family: 'Anton', sans-serif !important;
  font-size: clamp(72px, 8.4vw, 132px) !important;
  line-height: 0.9 !important;
  letter-spacing: -0.04em !important;
  color: transparent !important;
  -webkit-text-stroke: 1.5px rgba(255, 110, 199, 0.55);
  text-stroke: 1.5px rgba(255, 110, 199, 0.55);
  text-transform: none !important;
  margin-bottom: 0 !important;
  pointer-events: none;
  text-shadow: 0 0 30px rgba(255, 110, 199, 0.25);
  transition: -webkit-text-stroke-color 0.4s ease, text-shadow 0.4s ease;
}
.ds-why-item:hover .ds-why-num {
  -webkit-text-stroke: 1.5px var(--pink);
  text-stroke: 1.5px var(--pink);
  text-shadow: 0 0 40px rgba(255, 110, 199, 0.6);
}
.ds-why-q {
  position: relative;
  z-index: 1;
}

/* === Top nav — vylepšený active state s glowem === */
.ds-nav a.is-active::after {
  right: 0 !important;
  height: 2px !important;
  background: var(--pink) !important;
  box-shadow: 0 0 10px rgba(255, 110, 199, 0.7);
}

/* === Mobile body-scroll lock když je burger menu otevřené === */
body.ds-nav-locked { overflow: hidden; }

/* === Mobile PROČ — zachovej ghost čísla, ale menší === */
@media (max-width: 900px) {
  .ds-why-num { font-size: 78px !important; top: -2px; }
  .ds-why-item { padding-top: 52px !important; }
}

/* === Cast cards — clean cascade reveal (jeden po druhém, žádná rotace) ===
   Defaultní .stagger-item rotuje randomly (-5°/+5°/-3°) + blur 14px.
   Pro cast cards chceme uniform vzhled — jen opacity + Y + jemný blur.
   StaggerGroup step bumpnutý na 160ms (z 90ms) v JSX → cascade je viditelný.
   Důležité: BEZ !important na transition — jinak by reset přebil inline
   transition-delay nastavený StaggerGroup-em (300ms/460ms/620ms/780ms/940ms).
   Specificity .ds-cards-row .stagger-item už beztak vyhrává nad .stagger-item. */
.ds-cards-row .stagger-item {
  --card-tilt: 0deg;
  opacity: 0;
  filter: blur(8px);
  transform: translateY(44px) scale(0.96);
  transition-property: opacity, filter, transform;
  transition-duration: 0.62s, 0.7s, 0.78s;
  transition-timing-function:
    cubic-bezier(0.22, 0.8, 0.36, 1),
    cubic-bezier(0.22, 0.8, 0.36, 1),
    cubic-bezier(0.22, 0.8, 0.36, 1);
  /* transition-delay zůstává volné pro inline styl */
}
.ds-cards-row .stagger.is-in .stagger-item {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0) scale(1);
}

/* === Mobile hero — claw machine výš + LIVE sticker pod W === */
@media (max-width: 900px) {
  /* Video je 16:9 ale mobile hero je portrét → cover škáluje podle výšky.
     Y object-position nemá efekt. Posunu video fyzicky transformem nahoru
     o cca 14% výšky hero, gradient-tint zakrývá vzniklou mezeru dole. */
  .ds-hero-video {
    transform: translate3d(0, calc(-14% + var(--py-video, 0px)), 0) !important;
  }
  /* LIVE sticker pod "SHOW" — víc pod W místo přes něj.
     Sticker zmenšený, posunutý do mezery pod h1; h1 dostane bottom margin
     56px (margin-collapse vs tagline margin-top:22 → vítězí 56) tak aby
     mezi spodním okrajem stickeru a začátkem tagline byl prostor. */
  .ds-display { margin-bottom: 56px; }
  .ds-hero-live-sticker {
    top: 100% !important;
    left: 50% !important;
    height: clamp(34px, 9vw, 50px) !important;
    transform: translateX(-50%) rotate(-10deg);
    margin-top: 4px;
  }
  /* Tint dole zesílit, aby přechod od videa do contentu byl plynulý */
  .ds-hero-tint {
    background: linear-gradient(180deg, rgba(8, 0, 20, 0.45) 0%, rgba(8, 0, 20, 0.7) 60%, rgba(8, 0, 20, 1) 100%) !important;
  }
}

/* === UNCONFIRMED KARTA — jiný vizuální styl ===
   Účast nepotvrzená → tmavší fade přes celou kartu (visual signal),
   badge "NEPOTVRZENO" přesunutý doprostřed s velkou váhou. */
.pc-card.is-unconfirmed .pc-photo-img {
  filter: grayscale(0.6) brightness(0.45) contrast(0.95);
  transition: filter 0.4s ease;
}
.pc-card.is-unconfirmed:hover .pc-photo-img {
  filter: grayscale(0.4) brightness(0.55);
}
.pc-card.is-unconfirmed::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at center, rgba(0, 0, 0, 0.0) 0%, rgba(8, 0, 20, 0.55) 70%, rgba(8, 0, 20, 0.85) 100%),
    linear-gradient(180deg, rgba(8, 0, 20, 0.35) 0%, rgba(8, 0, 20, 0.6) 100%);
  pointer-events: none;
  z-index: 2;
  border-radius: inherit;
  transition: opacity 0.4s ease;
}
.pc-card.is-unconfirmed:hover::after {
  opacity: 0.7;
}
/* Přesun badge ze rohu do středu karty */
.pc-card.is-unconfirmed .pc-overlay-unconfirmed {
  position: absolute;
  top: 50%; left: 50%;
  right: auto; bottom: auto;
  transform: translate(-50%, -50%) rotate(-4deg);
  z-index: 4;
  font-size: 16px;
  letter-spacing: 0.18em;
  padding: 10px 18px 12px;
  background: #ffd24a;
  color: #1a0014;
  border: 2px solid #1a0014;
  box-shadow:
    5px 5px 0 var(--purple-deep),
    0 0 28px rgba(255, 210, 74, 0.45);
  white-space: nowrap;
}
/* Schovat name overlay na unconfirmed kartě (badge dominuje) */
.pc-card.is-unconfirmed .pc-photo-overlay {
  opacity: 0.4;
}
/* Když se karta otočí (hover), unconfirmed front fade nechcem schovat info na zadní straně */
.pc-card.is-unconfirmed.flipped::after { opacity: 0; }
.pc-card.is-unconfirmed.flipped .pc-overlay-unconfirmed { opacity: 0; }

/* ████████████████████████████████████████████████████████████████████████
   v108 — Reverted Playfair/DM Sans overhaul (uživateli se nelíbil).
   Plný redesign do vintage-romance stylu (Allison Script + Cooper Black vibe)
   přijde v dalším sezení až dorazí nový video + sekce reference.
   Zachován JEN fix čísel 01/02/03 (Playfair italic solid → vypadají krásně,
   nahradil rozbitý outline-only stroke).
   ████████████████████████████████████████████████████████████████████████ */

/* === ČÍSLA 01/02/03 v PROČ sekci — keep z v107 (řeší user's "rozbitě" complaint) === */
.ds-why-num {
  position: absolute;
  top: -12px !important;
  left: -6px !important;
  font-family: 'Playfair Display', 'Instrument Serif', serif !important;
  font-style: italic !important;
  font-weight: 900 !important;
  font-size: clamp(86px, 9.5vw, 156px) !important;
  line-height: 0.85 !important;
  letter-spacing: -0.04em !important;
  color: rgba(255, 110, 199, 0.18) !important;
  -webkit-text-stroke: 0 !important;
  text-stroke: 0 !important;
  text-shadow: 0 0 40px rgba(255, 110, 199, 0.25) !important;
  text-transform: none !important;
  margin-bottom: 0 !important;
  pointer-events: none;
  transition: color 0.4s ease, text-shadow 0.4s ease, transform 0.5s ease !important;
}
.ds-why-item:hover .ds-why-num {
  color: rgba(255, 110, 199, 0.42) !important;
  text-shadow: 0 0 60px rgba(255, 110, 199, 0.55) !important;
  transform: translateY(-2px);
}

/* ████████████████████████████████████████████████████████████████████████
   v124 RECOVERY — kompletní recovery overrides po accidental git pull reset.
   Mobile gridy + wide-screen polish + impeccable cleanup + unconfirmed třída
   + clean mono numbers + scroll perf + prize image fix.
   ████████████████████████████████████████████████████████████████████████ */

/* === ČÍSLA 01/02/03 — clean mono `01 ─` label místo big ghost numerals === */
.ds-why-num {
  position: static !important;
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
  font-family: 'JetBrains Mono', monospace !important;
  font-style: normal !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  line-height: 1 !important;
  letter-spacing: 0.18em !important;
  color: var(--pink) !important;
  -webkit-text-stroke: 0 !important;
  text-shadow: none !important;
  text-transform: uppercase !important;
  margin-bottom: 4px !important;
  padding: 0 !important;
  pointer-events: none;
  transition: color 0.3s ease, letter-spacing 0.3s ease !important;
}
.ds-why-num::after {
  content: "";
  width: 28px;
  height: 1.5px;
  background: var(--pink);
  opacity: 0.4;
  display: inline-block;
  transition: width 0.3s ease, opacity 0.3s ease;
}
.ds-why-item:hover .ds-why-num { letter-spacing: 0.22em !important; }
.ds-why-item:hover .ds-why-num::after { width: 56px; opacity: 0.9; }
.ds-why-item { padding-top: 24px !important; }
@media (max-width: 900px) {
  .ds-why-num { font-size: 12px !important; }
  .ds-why-item { padding-top: 20px !important; }
}

/* === IMPECCABLE PASS — kill gradient text + glassmorphism overuse === */
.ds-apply-h-em em,
.ds-arch-num,
.ds-hero-stats-banner .ds-hero-stat strong,
.ds-prize-title-em,
.ds-why-title em,
.ds-why-callout strong,
.ds-best-title em,
.be-back-vote-stat em,
.ds-success-title em,
.ds-success-stats em {
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: currentColor !important;
}
.ds-why-title em, .ds-best-title em, .ds-success-title em, .ds-apply-h-em em { color: var(--pink-glow) !important; }
.ds-why-callout strong, .ds-prize-title-em { color: var(--pink) !important; }
.ds-arch-num, .ds-hero-stats-banner .ds-hero-stat strong, .be-back-vote-stat em, .ds-success-stats em { color: var(--text) !important; }

.ds-cd-card,
.pc-hover-hint,
.pc-card .pc-overlay-like,
.be-appearances-pill,
.ds-hero-claim,
.ds-hero-stats,
.ds-apply-form-v2,
.ds-hero-right .ds-cd-card,
.ds-hero-stats-banner,
.ds-prize,
.ds-best-leader,
.ds-best-rank-label,
.be-rank-pill,
.be-votes-pill,
.be-ig-icon {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.ds-best-leader {
  background: linear-gradient(155deg, rgba(255, 174, 220, 0.06) 0%, rgba(255, 110, 199, 0.02) 100%) !important;
}

/* === UNCONFIRMED KARTA — tmavý fade + center NEPOTVRZENO badge (purple) === */
.pc-card .pc-overlay-unconfirmed {
  background: #a78bfa !important;
  color: #1a0033 !important;
  border-color: #5b21b6 !important;
}
.pc-card.is-unconfirmed .pc-photo-img {
  filter: grayscale(0.6) brightness(0.45) contrast(0.95);
  transition: filter 0.4s ease;
}
.pc-card.is-unconfirmed:hover .pc-photo-img { filter: grayscale(0.4) brightness(0.55); }
.pc-card.is-unconfirmed::after {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at center, rgba(0, 0, 0, 0.0) 0%, rgba(8, 0, 20, 0.55) 70%, rgba(8, 0, 20, 0.85) 100%),
    linear-gradient(180deg, rgba(8, 0, 20, 0.35) 0%, rgba(8, 0, 20, 0.6) 100%);
  pointer-events: none;
  z-index: 2;
  border-radius: inherit;
  transition: opacity 0.4s ease;
}
.pc-card.is-unconfirmed:hover::after { opacity: 0.7; }
.pc-card.is-unconfirmed .pc-overlay-unconfirmed {
  position: absolute;
  top: 50%; left: 50%;
  right: auto; bottom: auto;
  transform: translate(-50%, -50%) rotate(-4deg);
  z-index: 4;
  font-size: 16px;
  letter-spacing: 0.18em;
  padding: 10px 18px 12px;
  background: #a78bfa;
  color: #1a0033;
  border: 2px solid #5b21b6;
  box-shadow:
    5px 5px 0 #1a0014,
    0 0 28px rgba(167, 139, 250, 0.55);
  white-space: nowrap;
}
.pc-card.is-unconfirmed .pc-photo-overlay { opacity: 0.4; }
.pc-card.is-unconfirmed.flipped::after { opacity: 0; }
.pc-card.is-unconfirmed.flipped .pc-overlay-unconfirmed { opacity: 0; }

/* === PRIZE IMAGE — cover, vyplní celou cell, žádné černé okraje. Object-position
   center: minimální oříz nahoru/dolů, hlavní content (1000 KČ) zůstává. */
.ds-info-cell-img-prize { background: var(--bg-3); }
.ds-info-cell-img-prize img {
  object-fit: cover !important;
  object-position: center center;
  animation: none !important;
}
.ds-info-cell-img-prize:hover img { transform: scale(1.02); }

/* === SCROLL PERF — kill film grain (mix-blend-mode na fixed = scroll lag) === */
body::after { display: none !important; }
.ds-app::after { display: none !important; }

/* === MOBILE GRID OVERHAUL ===
   - Pořadatel + Moderátor: 2 vedle sebe i na malých phones
   - Cast karty: 2 vedle sebe i pod 400px
   - Best Energy: 2 vedle sebe + info bullets visible */
@media (max-width: 600px) {
  .ds-team-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }
  .ds-team-card {
    grid-template-columns: 1fr !important;
    padding: 8px 8px 14px !important;
    gap: 10px !important;
    border-radius: 14px !important;
  }
  .ds-team-photo { aspect-ratio: 1 / 1 !important; border-radius: 10px !important; }
  .ds-team-name { font-size: 22px !important; }
  .ds-team-role { font-size: 11px !important; }
  .ds-team-bio { font-size: 12px !important; line-height: 1.45 !important; }
  .ds-team-stats { gap: 6px 12px !important; flex-wrap: wrap; }
  .ds-team-stats em { font-size: 14px !important; }
  .ds-team-stats span { font-size: 9px !important; }
  .ds-team-stats > div:nth-child(4) { display: none; }
}
@media (max-width: 400px) {
  .ds-cards-row {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
  }
  .pc-name-overlay { font-size: 14px !important; }
  .pc-overlay-like-count { font-size: 10px !important; }
}

/* Best Energy 2 cols mobile + info bullets visible */
@media (max-width: 700px) {
  .ds-best-cards {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }
  .ds-best-cards .be-front-bullets {
    display: flex !important;
    flex-direction: column;
    gap: 2px;
    list-style: none;
    padding: 0;
    margin: 6px 0 0;
  }
  .ds-best-cards .be-front-bullets li {
    font-family: 'Schibsted Grotesk', system-ui, sans-serif;
    font-size: 11px !important;
    line-height: 1.3 !important;
    color: rgba(255, 245, 250, 0.92) !important;
    position: relative;
    padding-left: 10px;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
  }
  .ds-best-cards .be-front-bullets li::before {
    content: "·";
    position: absolute; left: 0;
    color: var(--pink); font-weight: 700;
    font-size: 14px; line-height: 1;
  }
  .ds-best-cards .be-front-ig { font-size: 11px !important; margin-top: 2px; }
  .ds-best-cards .be-ig-icon { display: flex !important; }
  .ds-best-cards .be-rank-pill { font-size: 11px !important; padding: 3px 7px !important; }
  .ds-best-cards .be-votes-pill { font-size: 10px !important; padding: 3px 7px !important; }
  .ds-best-cards .be-appearances-pill { font-size: 10px !important; padding: 3px 7px !important; }
  .ds-best-cards .be-front-name { font-size: 17px !important; line-height: 1.05 !important; }
  .ds-best-cards .be-front-age { font-size: 13px !important; }
  .ds-best-cards .be-front-overlay {
    padding: 12px 10px 10px !important;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(8, 0, 20, 0.65) 35%, rgba(8, 0, 20, 0.92) 100%) !important;
  }
}
@media (max-width: 360px) {
  .ds-best-cards .be-front-bullets li { font-size: 10px !important; }
  .ds-best-cards .be-front-name { font-size: 15px !important; }
}

/* Best Energy LEADERS — top kluk + holka 2 vedle sebe i na mobilu + info bullets */
@media (max-width: 700px) {
  .ds-best-leaders {
    grid-template-columns: 1fr auto 1fr !important;
    gap: 6px !important;
    align-items: center !important;
  }
  .ds-best-plus {
    font-size: 44px !important;
    transform: rotate(0deg) !important;
    line-height: 1 !important;
  }
  .ds-best-leader { padding: 10px !important; gap: 8px !important; }
  .ds-best-leader-photo { aspect-ratio: 1 / 1 !important; }
  .ds-best-leader-name { font-size: 18px !important; }
  .ds-best-leader-meta { font-size: 11px !important; }
  .ds-best-leader-bullets {
    list-style: none; padding: 0; margin: 6px 0 0;
    display: flex; flex-direction: column; gap: 3px;
  }
  .ds-best-leader-bullets li {
    font-family: 'Schibsted Grotesk', system-ui, sans-serif;
    font-size: 11px; line-height: 1.3;
    color: rgba(255, 245, 250, 0.85);
    position: relative; padding-left: 12px;
  }
  .ds-best-leader-bullets li::before {
    content: "·"; position: absolute; left: 0;
    color: var(--pink); font-weight: 700;
    font-size: 16px; line-height: 1;
  }
  .ds-best-vote-btn { font-size: 11px !important; padding: 6px 10px !important; }
}
.ds-best-leader-bullets {
  list-style: none; padding: 0; margin: 8px 0 12px;
  display: flex; flex-direction: column; gap: 4px;
}
.ds-best-leader-bullets li {
  font-family: 'Schibsted Grotesk', system-ui, sans-serif;
  font-size: 13px; line-height: 1.45;
  color: rgba(255, 245, 250, 0.88);
  position: relative; padding-left: 14px;
}
.ds-best-leader-bullets li::before {
  content: "·"; position: absolute; left: 0;
  color: var(--pink); font-weight: 700;
  font-size: 18px; line-height: 1;
}

/* === Mobile hero — LIVE sticker pod SHOW + tagline space === */
@media (max-width: 900px) {
  .ds-hero-video {
    /* Image vizuálně doleva o 5% (50 → 55%) + dolů ~40px */
    object-position: 55% 50% !important;
    transform: translate3d(0, 40px, 0) !important;
  }
  .ds-display { margin-bottom: 56px; }
  .ds-hero-live-sticker {
    top: 82% !important;
    left: 42% !important;
    height: clamp(40px, 10.5vw, 62px) !important;
    transform: translateX(-50%) rotate(-10deg);
    margin-top: 0;
  }
  .ds-hero-tint {
    background: linear-gradient(180deg, rgba(8, 0, 20, 0.45) 0%, rgba(8, 0, 20, 0.7) 60%, rgba(8, 0, 20, 1) 100%) !important;
  }
  .ds-hero-right .ds-cd-card,
  .ds-cd-card,
  .pc-overlay-like,
  .pc-overlay-badge {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  .ds-hero-left { padding-top: 0 !important; }
}

/* === WIDE-SCREEN POLISH (27"+ monitory) ===
   Capy max-width na content sekce, hero zachová natural left/right layout. */
@media (min-width: 1600px) {
  .ds-cards-row,
  .ds-stories-grid,
  .ds-archive-list,
  .ds-apply-grid,
  .ds-info-grid,
  .ds-cast-block,
  .ds-cast-head {
    max-width: 1500px;
    margin-left: auto;
    margin-right: auto;
  }
  .ds-cast,
  .ds-team,
  .ds-archive,
  .ds-apply,
  .ds-stories,
  .ds-best,
  .ds-success {
    padding-left: max(40px, calc((100vw - 1600px) / 2));
    padding-right: max(40px, calc((100vw - 1600px) / 2));
  }
  .ds-hero {
    padding-left: max(40px, calc((100vw - 1900px) / 2 + 40px));
    padding-right: max(40px, calc((100vw - 1900px) / 2 + 40px));
  }
}

/* === WILL-CHANGE pro hero scroll perf === */
.ds-hero-video,
.ds-hero-opatova,
.ds-display,
.ds-hero-stats-banner {
  will-change: transform;
}

/* === LIVE sticker reveal (po DATE+SHOW BlurText animacích) ===
   Wrap span je inline (zero size), img je absolute → wrap nevadí layoutu.
   Wrap drží is-in class kterou Reveal nastaví po preloaderu + delay.
   Původní CSS animation na sticker (delay 1.1s) je vyřazena (animation: none).
   Náhradou: stejná entry+stamp animation, ale gated přes wrap.is-in. */
/* Wrap span: žádný transform/filter/will-change (vytváří containing block).
   Img positionoval relativně k h1.ds-display (nikoli ke spanu). */
.ds-hero-live-wrap,
.ds-hero-live-wrap.reveal,
.ds-hero-live-wrap.reveal.is-in {
  position: static;
  transform: none !important;
  filter: none !important;
  will-change: auto !important;
  opacity: 1 !important;
}
/* Initial state: img skrytý. Animation:none kills původní auto-stamp animaci. */
.ds-hero-live-sticker {
  opacity: 0;
  animation: none !important;
}

/* === OPATOVA letters — slide-in z nahoru, jeden po druhém.
   Původní opa-fall animace má delay 0.80s+ → běží pod preloaderem.
   Musíme je gate přes parent ds-hero-opatova.is-in (bude přidáno přes Reveal wrapper). */
.ds-hero-opatova .opa-l {
  opacity: 0;
  animation: none !important;
  transform: translateY(-80px) rotate(0deg);
  transition: opacity 0.5s ease-out, transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1);
}
/* Per-letter slide-in delay (one by one, jeden po druhém zhora) */
.ds-hero-opatova.is-in .opa-l-1 { transition-delay: 0ms,    0ms; }
.ds-hero-opatova.is-in .opa-l-2 { transition-delay: 90ms,   90ms; }
.ds-hero-opatova.is-in .opa-l-3 { transition-delay: 180ms,  180ms; }
.ds-hero-opatova.is-in .opa-l-4 { transition-delay: 270ms,  270ms; }
.ds-hero-opatova.is-in .opa-l-5 { transition-delay: 360ms,  360ms; }
.ds-hero-opatova.is-in .opa-l-6 { transition-delay: 450ms,  450ms; }
.ds-hero-opatova.is-in .opa-l-7 { transition-delay: 540ms,  540ms; }
/* Final state — opacity 1 + restore each letter own rotation (defined in original CSS via --opa-rot) */
.ds-hero-opatova.is-in .opa-l {
  opacity: 1;
  transform: rotate(var(--opa-rot, 0deg)) translateY(var(--opa-ty, 0px));
}

/* === LIVE sticker entry — smooth fade-in 1.2s s subtle scale 0.92→1 ===
   `forwards` fill-mode: po skončení drží 100% keyframe.
   Před spuštěním (během 0.9s delay) base CSS opacity:0 drží sticker hidden. */
/* === LIVE sticker — particle assembly + early glow ===
   0%: large + heavy blur (rozprášené particles)
   20%: glow už visible (rychlá glow appearance)
   60%: téměř settled, jen jemný blur reziduum
   100%: sharp final sticker s permanent drop-shadow */
@keyframes ds-hero-live-fade-in {
  0% {
    opacity: 0;
    transform: rotate(-14deg) scale(1.6);
    filter: blur(22px) drop-shadow(0 0 0 transparent);
  }
  20% {
    opacity: 0.5;
    filter: blur(14px) drop-shadow(0 0 32px rgba(255, 60, 60, 0.85));
  }
  50% {
    opacity: 0.95;
    transform: rotate(-14deg) scale(1.05);
    filter: blur(4px) drop-shadow(0 0 28px rgba(255, 60, 60, 0.75));
  }
  80% {
    opacity: 1;
    transform: rotate(-14deg) scale(0.98);
    filter: blur(0.5px) drop-shadow(0 0 22px rgba(220, 38, 38, 0.6));
  }
  100% {
    opacity: 1;
    transform: rotate(-14deg) scale(1);
    filter: blur(0) drop-shadow(0 8px 18px rgba(220, 38, 38, 0.55)) drop-shadow(0 0 18px rgba(220, 38, 38, 0.3));
  }
}
.ds-hero-live-wrap.is-in .ds-hero-live-sticker {
  /* 1.6s — particle assembly (rychlejší než lineární fade), glow appearance ~320ms */
  animation:
    ds-hero-live-fade-in 1.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.9s forwards,
    ds-hero-live-stamp 2s ease-in-out 2.6s infinite !important;
}

/* === PRIZE / SPONSOR cells — refined cinematic reveal ===
   Místo generic Reveal (translateY 24px) → smooth blur-defocus + lehký scale.
   Pomalejší easing 1.1s, viditelný blur-clear effect. */
.ds-info-cell.reveal {
  opacity: 0;
  transform: translateY(36px) scale(0.96);
  filter: blur(8px);
  transition:
    opacity 1.1s cubic-bezier(0.22, 0.61, 0.36, 1),
    transform 1.1s cubic-bezier(0.22, 0.61, 0.36, 1),
    filter 1.1s cubic-bezier(0.22, 0.61, 0.36, 1) !important;
}
.ds-info-cell.reveal.is-in {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}

/* === ARCHIVE rows — clean slide-from-left, žádná rotace/blur === */
.ds-archive .stagger-item {
  --card-tilt: 0deg !important;
  opacity: 0;
  transform: translateX(-50px) !important;
  filter: none !important;
  transition:
    opacity 0.55s cubic-bezier(0.22, 0.8, 0.36, 1),
    transform 0.7s cubic-bezier(0.16, 0.84, 0.3, 1) !important;
}
.ds-archive .stagger.is-in .stagger-item {
  opacity: 1;
  transform: translateX(0) !important;
}
/* Archive row hover lift */
.ds-archive .ds-archive-row {
  transition: transform 0.3s ease, background 0.3s ease;
}
.ds-archive .ds-archive-row:hover {
  transform: translateX(8px);
  background: rgba(255, 110, 199, 0.04);
}

/* === Cinematic reveals pro sekce pod hero ===
   Stories cards, Apply form, Success stories — výraznější translateY + blur defocus.
   Default Reveal (translateY 20px + blur 8px) je moc subtle pro tak velké sekce. */
.ds-story.reveal,
.ds-apply.reveal,
.ds-success.reveal,
.ds-success-card.reveal {
  opacity: 0;
  transform: translateY(60px) scale(0.96);
  filter: blur(10px);
  transition:
    opacity 1s cubic-bezier(0.22, 0.61, 0.36, 1),
    transform 1s cubic-bezier(0.22, 0.61, 0.36, 1),
    filter 1s cubic-bezier(0.22, 0.61, 0.36, 1) !important;
}
.ds-story.reveal.is-in,
.ds-apply.reveal.is-in,
.ds-success.reveal.is-in,
.ds-success-card.reveal.is-in {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}

/* === Mobile hero optimalizace ===
   DATE/SHOW větší (víc dominantní), OPATOVA proporcionálně větší,
   LIVE sticker umístěn pod SHOW vlevo dole. */
@media (max-width: 700px) {
  /* DATE/SHOW větší, dominantní heading */
  .ds-display {
    font-size: clamp(78px, 19vw, 120px) !important;
    line-height: 0.86 !important;
    margin-bottom: 16px !important;
  }
  /* OPATOVA scrap letters proporcionálně */
  .opa-l {
    font-size: clamp(22px, 7vw, 36px) !important;
    padding: 4px 7px 5px !important;
  }
  .opa-l-2, .opa-l-6 {
    font-size: clamp(26px, 8vw, 40px) !important;
  }
  /* OPATOVA překrývá s vrchem DATE — visual unification */
  .ds-hero-opatova {
    margin-bottom: -28px !important;
    gap: 3px !important;
    position: relative;
    z-index: 2;
  }
  /* Tagline blíž k heading */
  .ds-hero-tagline {
    margin-top: 0 !important;
    margin-bottom: 32px !important;
    font-size: clamp(19px, 4.8vw, 26px) !important;
    line-height: 1.3 !important;
  }
  /* Mobile: PŘIHLÁSIT SE skryté — countdown card + scroll indicator přebírají CTA roli. */
  .ds-hero-cta { display: none !important; }
  /* Countdown card víš + menší padding na mobilu */
  .ds-hero-right {
    margin-top: 4px !important;
    margin-bottom: 0 !important;
    padding-bottom: 20px !important;
  }
  .ds-hero-right .ds-cd-card {
    padding: 22px 18px 18px !important;
  }
  .ds-cd-num { font-size: 32px !important; }
  /* Hero overall padding */
  .ds-hero {
    padding: 80px 20px 0 !important;
  }
}

/* (Mobile video contain — REVERTED, vrátili jsme cover defaultní chování) */

/* === APPLY-QR — Discord invite QR sekce (nahrazuje form) === */
.ds-apply-qr { padding: 80px 40px 90px; }
.ds-apply-qr-grid {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: clamp(40px, 6vw, 80px);
  max-width: 1100px;
  margin: 0 auto;
  align-items: center;
}
.ds-apply-qr-text { display: flex; flex-direction: column; gap: 22px; }
.ds-apply-qr-lead {
  font-size: 18px;
  line-height: 1.55;
  color: rgba(245, 238, 248, 0.78);
  max-width: 460px;
}
.ds-apply-qr-lead strong { color: var(--pink); }

.ds-apply-qr-btn {
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--pink);
  color: #fff;
  padding: 14px 28px;
  border-radius: 999px;
  font-family: 'Schibsted Grotesk', sans-serif;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  align-self: flex-start;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 8px 24px rgba(255, 77, 143, 0.25);
}
.ds-apply-qr-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(255, 77, 143, 0.4);
  background: #ff5e9c;
}

.ds-apply-qr-card {
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  padding: 24px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 77, 143, 0.25);
  border-radius: 24px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3), 0 0 60px rgba(255, 77, 143, 0.08);
}
.ds-apply-qr-link {
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  text-decoration: none;
  color: inherit;
}
.ds-apply-qr-img {
  background: #110018;
  padding: 14px;
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255, 77, 143, 0.18);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.ds-apply-qr-link:hover .ds-apply-qr-img {
  transform: scale(1.03);
  box-shadow: 0 0 40px rgba(255, 77, 143, 0.25);
}
.ds-apply-qr-img img {
  width: 240px; height: 240px;
  display: block;
  image-rendering: pixelated;
  image-rendering: -moz-crisp-edges;
  image-rendering: crisp-edges;
}
.ds-apply-qr-caption {
  display: flex; align-items: center; gap: 8px;
  color: rgba(245, 238, 248, 0.85);
  font-size: 14px;
  font-weight: 500;
}
.ds-apply-qr-emoji {
  font-size: 20px;
  filter: grayscale(0.2);
}

@media (max-width: 800px) {
  .ds-apply-qr { padding: 60px 24px 70px; }
  .ds-apply-qr-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .ds-apply-qr-text {
    text-align: center;
    align-items: center;
    gap: 18px;
  }
  .ds-apply-qr-text .ds-apply-meta {
    justify-content: center;
  }
  .ds-apply-qr-img img { width: 200px; height: 200px; }
  .ds-apply-qr-lead { font-size: 16px; }
  .ds-apply-qr-btn { align-self: center; }
}

/* === /CONTRIBUTE — public submission page (foto/IG/popisek) === */
.contrib-page {
  min-height: 100vh;
  background: radial-gradient(ellipse at top, #1a0024 0%, #0a0010 60%, #050008 100%);
  color: #f5eef8;
  font-family: 'Schibsted Grotesk', 'Helvetica Neue', sans-serif;
  display: flex; flex-direction: column;
}
.contrib-head {
  position: sticky; top: 0; z-index: 10;
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 24px;
  background: rgba(10, 0, 16, 0.85);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.contrib-back {
  color: rgba(245, 238, 248, 0.7);
  text-decoration: none;
  font-size: 14px;
  transition: color 0.15s;
}
.contrib-back:hover { color: #ff4d8f; }
.contrib-brand {
  display: flex; align-items: center; gap: 8px;
  font-family: 'Anton', sans-serif;
  font-size: 15px; letter-spacing: 0.08em;
}
.contrib-loading, .contrib-fatal {
  min-height: 100vh; display: flex; align-items: center; justify-content: center;
  background: #0a0010; color: rgba(255, 245, 250, 0.5);
}
.contrib-fatal { color: #f87171; }

.contrib-main {
  flex: 1;
  max-width: 720px;
  width: 100%;
  margin: 0 auto;
  padding: 50px 24px 80px;
}
.contrib-title-wrap { text-align: center; margin-bottom: 40px; }
.contrib-eyebrow {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(255, 77, 143, 0.85);
  padding: 4px 12px;
  background: rgba(255, 77, 143, 0.08);
  border-radius: 999px;
  margin-bottom: 16px;
}
.contrib-title {
  font-family: 'Anton', sans-serif;
  font-size: clamp(34px, 6vw, 56px);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1;
  margin: 0 0 16px;
  color: #fff;
}
.contrib-sub {
  color: rgba(245, 238, 248, 0.65);
  font-size: 14px; line-height: 1.55;
  max-width: 480px; margin: 0 auto;
}
.contrib-sub strong { color: var(--pink); }

/* Form */
.contrib-form { display: flex; flex-direction: column; gap: 28px; }

.contrib-section {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 22px 22px 18px;
  margin: 0;
  background: rgba(255, 255, 255, 0.02);
}
.contrib-section legend {
  padding: 0 8px;
  font-size: 13px; font-weight: 600;
  color: var(--pink);
  letter-spacing: 0.02em;
}
.contrib-section legend small {
  font-weight: 400;
  font-size: 11px;
  color: rgba(245, 238, 248, 0.5);
  margin-left: 6px;
}

.contrib-field {
  display: flex; flex-direction: column; gap: 6px;
  margin-bottom: 14px;
}
.contrib-field:last-child { margin-bottom: 0; }
.contrib-field > span {
  font-size: 12px; font-weight: 500;
  color: rgba(245, 238, 248, 0.85);
  letter-spacing: 0.02em;
}
.contrib-field > span small {
  font-weight: 400;
  font-size: 11px;
  color: rgba(245, 238, 248, 0.4);
  margin-left: 4px;
}
.contrib-input {
  width: 100%;
  background: rgba(255, 255, 255, 0.04);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  padding: 11px 14px;
  font-size: 14px;
  font-family: inherit;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.contrib-input:focus {
  border-color: var(--pink);
  box-shadow: 0 0 0 3px rgba(255, 77, 143, 0.15);
}
.contrib-textarea {
  resize: vertical;
  min-height: 80px;
  line-height: 1.5;
}

.contrib-file-btn {
  width: 100%;
  background: rgba(255, 77, 143, 0.06);
  color: #fff;
  border: 1px dashed rgba(255, 77, 143, 0.4);
  border-radius: 10px;
  padding: 14px;
  font-size: 14px;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.15s;
}
.contrib-file-btn:hover {
  background: rgba(255, 77, 143, 0.12);
  border-color: var(--pink);
}
.contrib-preview {
  position: relative;
  margin-top: 10px;
  border-radius: 10px;
  overflow: hidden;
  max-height: 320px;
  display: flex; justify-content: center;
  background: rgba(0, 0, 0, 0.3);
}
.contrib-preview img {
  max-width: 100%; max-height: 320px;
  object-fit: contain;
}
.contrib-preview-remove {
  position: absolute; top: 8px; right: 8px;
  width: 32px; height: 32px;
  background: rgba(0, 0, 0, 0.7);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  font-size: 14px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}

.contrib-error {
  background: rgba(248, 113, 113, 0.1);
  color: #fca5a5;
  border: 1px solid rgba(248, 113, 113, 0.3);
  border-radius: 10px;
  padding: 12px 16px;
  font-size: 13px;
}
.contrib-submit {
  background: var(--pink);
  color: #fff;
  border: none;
  border-radius: 12px;
  padding: 16px 24px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.04em;
  font-family: 'Schibsted Grotesk', sans-serif;
  cursor: pointer;
  transition: all 0.15s;
}
.contrib-submit:hover:not(:disabled) {
  background: #ff5e9c;
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(255, 77, 143, 0.3);
}
.contrib-submit:disabled { opacity: 0.5; cursor: not-allowed; }
.contrib-disclaimer {
  text-align: center;
  font-size: 11px;
  color: rgba(245, 238, 248, 0.4);
  line-height: 1.5;
  margin: 0;
}

/* Success state */
.contrib-success {
  text-align: center;
  padding: 60px 24px;
  display: flex; flex-direction: column; align-items: center; gap: 16px;
}
.contrib-success-heart {
  filter: drop-shadow(0 0 30px rgba(255, 77, 143, 0.6));
  animation: ds-apply-heart-pulse 2s ease-in-out infinite;
}
.contrib-success h1 {
  font-family: 'Anton', sans-serif;
  font-size: 40px; letter-spacing: 0.04em;
  margin: 0;
}
.contrib-success p {
  color: rgba(245, 238, 248, 0.7);
  max-width: 360px; line-height: 1.55;
  margin: 0 0 12px;
}
.contrib-back-home {
  margin-top: 6px;
  color: rgba(245, 238, 248, 0.5);
  text-decoration: none;
  font-size: 13px;
}
.contrib-back-home:hover { color: var(--pink); }

@media (max-width: 600px) {
  .contrib-head { padding: 14px 18px; }
  .contrib-brand span { display: none; }
  .contrib-main { padding: 30px 18px 60px; }
  .contrib-section { padding: 18px 16px 14px; }
  .contrib-title { font-size: 28px; }
}

/* === APPLY FORM — file upload + external link + success state === */
.ds-apply-media {
  display: flex; flex-direction: column; gap: 8px;
  padding: 12px;
  background: rgba(255, 77, 143, 0.04);
  border: 1px dashed rgba(255, 77, 143, 0.3);
  border-radius: 12px;
}
.ds-apply-file {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.15s;
}
.ds-apply-file:hover {
  background: rgba(255, 77, 143, 0.08);
  border-color: var(--pink);
}
.ds-apply-file span {
  flex: 1;
  font-size: 13px; color: rgba(255, 245, 250, 0.6);
  font-family: 'Schibsted Grotesk', sans-serif;
}
.ds-apply-file span.is-loaded {
  color: var(--pink);
  font-weight: 500;
}
.ds-apply-file em {
  font-style: normal; font-size: 18px;
}
.ds-apply-or {
  text-align: center;
  font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase;
  color: rgba(255, 245, 250, 0.4);
  font-family: 'JetBrains Mono', monospace;
  padding: 4px 0;
}
.ds-apply-error {
  background: rgba(248, 113, 113, 0.1);
  color: #fca5a5;
  border: 1px solid rgba(248, 113, 113, 0.3);
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 13px;
  line-height: 1.4;
}
.ds-apply-disclaimer {
  margin-top: 10px;
  font-size: 11px;
  color: rgba(255, 245, 250, 0.4);
  text-align: center;
  line-height: 1.5;
}
.ds-apply-success {
  text-align: center;
  padding: 40px 24px;
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  background: rgba(255, 77, 143, 0.05);
  border: 1px solid rgba(255, 77, 143, 0.2);
  border-radius: 16px;
}
.ds-apply-success-heart {
  filter: drop-shadow(0 0 24px rgba(255, 77, 143, 0.6));
  animation: ds-apply-heart-pulse 2s ease-in-out infinite;
}
@keyframes ds-apply-heart-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}
.ds-apply-success h3 {
  margin: 0;
  font-family: 'Anton', sans-serif;
  font-size: 28px;
  letter-spacing: 0.04em;
}
.ds-apply-success p {
  margin: 0;
  color: rgba(255, 245, 250, 0.7);
  font-size: 14px;
  line-height: 1.5;
  max-width: 320px;
}

/* === Mobile: skrýt views count u archive rows (čísla buggy + zbytečné) === */
@media (max-width: 700px) {
  .ds-archive-row .ds-arch-date { display: none !important; }
  /* Title wrap dřív + menší font → nepřesahuje do "Zobrazit všechny" linku */
  .ds-archive-row {
    grid-template-columns: 50px 1fr !important;
    gap: 10px !important;
    padding: 14px 0 !important;
  }
  .ds-archive-row .ds-arch-title {
    font-size: 14px !important;
    line-height: 1.3;
    white-space: normal;
    word-break: break-word;
  }
  .ds-archive-more {
    margin-top: 18px;
    font-size: 13px !important;
    padding: 10px 16px !important;
  }
}

/* === Dual video crossfade + initial reveal ===
   Video A startuje skryté (opacity:0), fadne in 1.5s po preloader-done.
   Loop crossfade mezi A↔B s 0.4s transition (rychlý swap, žádný flicker). */
.ds-hero-video-a {
  opacity: 0;
  transition: opacity 1.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.ds-hero-video-a.is-revealed {
  opacity: 1;
  /* Po reveal switchnem na fast transition pro crossfade */
  transition: opacity 0.4s ease-out;
}
.ds-hero-video-b {
  opacity: 0;
  transition: opacity 0.4s ease-out;
}
/* Mobile: B video se vůbec nezobrazuje a JS ho ani nespustí (úspora 50% CPU) */
@media (max-width: 700px) {
  .ds-hero-video-b { display: none !important; }
}

/* Mobile: cast karty — vote button vždy klikatelný i když je hodně textu.
   Bio + fact se může scrollovat uvnitř, vote button je sticky dole. */
@media (max-width: 700px) {
  .pc-back {
    overflow-y: auto;
    padding: 12px 12px 12px !important;
    gap: 8px !important;
  }
  .pc-back-bio,
  .pc-back-block {
    flex-shrink: 1;
  }
  .pc-back-foot {
    position: sticky;
    bottom: -12px;
    margin-top: 8px !important;
    padding: 8px 0 4px !important;
    background: linear-gradient(180deg, transparent 0%, var(--bg-3) 30%);
    z-index: 2;
  }
}

/* === TEAM (Pořadatel + Moderátor) — synchronizovaný slide-in obou karet ===
   Místo dvou nezávislých observerů (které na mobile fire-jou v různý moment podle
   scroll pozice) má parent .ds-team-sync jeden observer. Když se přidá .is-in,
   obě karty animují současně, každá ze své strany. */
.ds-team-grid.ds-team-sync.reveal {
  /* parent NEMÁ vlastní fade — opacity zůstane 1, jen funguje jako trigger pro děti */
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}
.ds-team-sync .ds-team-col {
  opacity: 0;
  filter: blur(10px);
  transition:
    opacity 1.1s cubic-bezier(.16, .84, .26, 1),
    transform 1.2s cubic-bezier(.16, .84, .26, 1),
    filter 1.1s cubic-bezier(.16, .84, .26, 1);
  will-change: transform, opacity, filter;
}
.ds-team-sync .ds-team-col.team-col-host {
  transform: translateX(-120px) rotate(-2deg) scale(0.96);
}
.ds-team-sync .ds-team-col.team-col-mod {
  transform: translateX(120px) rotate(2deg) scale(0.96);
}
.ds-team-sync.is-in .ds-team-col {
  opacity: 1;
  filter: blur(0);
  transform: translateX(0) rotate(0) scale(1);
}
@media (max-width: 700px) {
  /* Na mobile se sliduje míň (úzká obrazovka), zachová se vizuální efekt bez ujetí mimo screen */
  .ds-team-sync .ds-team-col.team-col-host {
    transform: translateX(-40px) translateY(20px) rotate(-2deg) scale(0.96);
  }
  .ds-team-sync .ds-team-col.team-col-mod {
    transform: translateX(40px) translateY(20px) rotate(2deg) scale(0.96);
  }
  .ds-team-sync.is-in .ds-team-col {
    transform: translateX(0) translateY(0) rotate(0) scale(1);
  }
}

/* === ARCHIVE — "Zobrazit všechny epizody" link na hlavní === */
.ds-archive-more-wrap {
  margin-top: 28px;
  display: flex; justify-content: center;
}
.ds-archive-more {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 22px;
  background: rgba(255, 77, 143, 0.08);
  border: 1px solid rgba(255, 77, 143, 0.3);
  border-radius: 999px;
  color: var(--pink, #ff4d8f);
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 14px; font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.ds-archive-more:hover {
  background: rgba(255, 77, 143, 0.15);
  border-color: var(--pink, #ff4d8f);
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(255, 77, 143, 0.2);
}

/* ============================================================================
   /archive — samostatná stránka (všechny epizody)
   ============================================================================ */
.archive-page {
  min-height: 100vh;
  background: radial-gradient(ellipse at top, #1a0024 0%, #0a0010 60%, #050008 100%);
  color: #f5eef8;
  font-family: 'Schibsted Grotesk', 'Helvetica Neue', sans-serif;
  display: flex; flex-direction: column;
}

.archive-page-head {
  position: sticky; top: 0; z-index: 10;
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 32px;
  background: rgba(10, 0, 16, 0.85);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.archive-page-brand {
  display: flex; align-items: center; gap: 8px;
  font-family: 'Anton', sans-serif;
  font-size: 16px; letter-spacing: 0.08em;
}
.archive-back {
  color: rgba(245, 238, 248, 0.7);
  text-decoration: none;
  font-size: 14px; font-weight: 500;
  transition: color 0.15s;
}
.archive-back:hover { color: #ff4d8f; }

.archive-page-main {
  flex: 1;
  max-width: 900px;
  width: 100%;
  margin: 0 auto;
  padding: 60px 32px 80px;
}

.archive-page-title-wrap {
  text-align: center;
  margin-bottom: 50px;
}
.archive-page-eyebrow {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(255, 77, 143, 0.85);
  padding: 4px 12px;
  background: rgba(255, 77, 143, 0.08);
  border-radius: 999px;
  margin-bottom: 18px;
}
.archive-page-title {
  font-family: 'Anton', sans-serif;
  font-size: clamp(48px, 9vw, 92px);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 0.95;
  margin: 0 0 18px;
  background: linear-gradient(180deg, #ffffff 0%, #c9b8d4 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.archive-page-sub {
  color: rgba(245, 238, 248, 0.55);
  font-size: 14px; letter-spacing: 0.02em;
}

.archive-page-list {
  display: flex; flex-direction: column;
  gap: 6px;
}

.archive-page-row {
  display: grid;
  grid-template-columns: 70px 1fr auto auto;
  align-items: center;
  gap: 18px;
  padding: 18px 22px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  text-decoration: none; color: inherit;
  transition: all 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}
.archive-page-row:hover {
  background: rgba(255, 77, 143, 0.06);
  border-color: rgba(255, 77, 143, 0.4);
  transform: translateX(4px);
}

.archive-page-ep {
  font-family: 'JetBrains Mono', monospace;
  font-size: 14px; font-weight: 600; color: #ff4d8f;
  letter-spacing: 0.05em;
}
.archive-page-title-text {
  font-size: 16px; font-weight: 500;
  color: #f5eef8;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.archive-page-views {
  color: rgba(245, 238, 248, 0.5);
  font-size: 13px;
  font-family: 'JetBrains Mono', monospace;
}
.archive-page-arrow {
  color: rgba(255, 255, 255, 0.3);
  font-size: 16px;
  transition: color 0.15s, transform 0.15s;
}
.archive-page-row:hover .archive-page-arrow {
  color: #ff4d8f;
  transform: translate(2px, -2px);
}

.archive-page-empty {
  text-align: center;
  padding: 60px 20px;
  color: rgba(245, 238, 248, 0.4);
  font-size: 15px;
}
.archive-page-loading,
.archive-page-error {
  text-align: center;
  padding: 80px 20px;
  color: rgba(245, 238, 248, 0.5);
}
.archive-page-error { color: #f87171; }

.archive-page-foot {
  display: flex; justify-content: center;
  padding: 30px 32px 40px;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

@media (max-width: 600px) {
  .archive-page-head { padding: 14px 18px; }
  .archive-page-brand span { font-size: 13px; }
  .archive-page-main { padding: 40px 18px 60px; }
  .archive-page-row {
    grid-template-columns: 56px 1fr auto;
    gap: 12px; padding: 14px 16px;
  }
  .archive-page-views { display: none; }
  .archive-page-title-text { font-size: 14px; }
}
