/* ============ Rekomunálky — base ============ */
:root {
  --bg: oklch(0.985 0.005 80);
  --bg-soft: oklch(0.96 0.01 80);
  --ink: oklch(0.16 0.02 60);
  --ink-soft: oklch(0.40 0.02 60);
  --ink-muted: oklch(0.60 0.015 60);
  --rule: oklch(0.88 0.01 80);
  --accent: oklch(0.68 0.22 350);
  --accent-ink: oklch(0.22 0.05 350);
  --accent-soft: oklch(0.95 0.05 350);
  --ok: oklch(0.62 0.16 150);
  --no: oklch(0.62 0.20 30);
  --info: oklch(0.58 0.17 250);
  --electric: oklch(0.62 0.24 335);
  --shadow: 0 1px 0 rgba(20, 16, 18, 0.04), 0 12px 32px -16px rgba(20, 16, 18, 0.12);
  --font-display: "Inter", system-ui, sans-serif;
  --font-body: "Inter", system-ui, -apple-system, sans-serif;
  --font-mono: "Inter", ui-monospace, "SF Mono", Menlo, monospace;
  --space-unit: 1;
  --gap-xs: calc(6px * var(--space-unit));
  --gap-sm: calc(12px * var(--space-unit));
  --gap-md: calc(20px * var(--space-unit));
  --gap-lg: calc(40px * var(--space-unit));
  --gap-xl: calc(80px * var(--space-unit));
  --gap-2xl: calc(120px * var(--space-unit));
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-pill: 999px;
  --max-w: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
button { font: inherit; cursor: pointer; }
a { color: inherit; }
::selection { background: var(--accent); color: white; }

.wrap {
  max-width: var(--max-w);
  margin: 0 auto;
  padding-left: clamp(20px, 5vw, 56px);
  padding-right: clamp(20px, 5vw, 56px);
}

.section {
  padding-top: var(--gap-2xl);
  padding-bottom: var(--gap-2xl);
  border-top: 1px solid var(--rule);
}
.section:first-of-type { border-top: 0; }
.marquee + .section { border-top: 0; }

.section-label {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-muted);
  margin-bottom: var(--gap-md);
  white-space: nowrap;
}
.section-label > span:last-child { white-space: nowrap; }
.section-label::before {
  content: ""; width: 28px; height: 1px; background: var(--ink-muted);
}
.section-num { color: var(--accent); font-weight: 700; }

.eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.02;
  margin: 0;
  text-wrap: balance;
}
h1 { font-size: clamp(48px, 8.5vw, 120px); }
h2 { font-size: clamp(36px, 5.5vw, 68px); }
h3 { font-size: clamp(22px, 2.4vw, 32px); }
h4 { font-size: 18px; letter-spacing: -0.01em; }

p { margin: 0 0 1em 0; }
p:last-child { margin-bottom: 0; }

.lede {
  font-size: clamp(18px, 1.6vw, 22px);
  color: var(--ink-soft);
  line-height: 1.5;
  text-wrap: pretty;
  max-width: 56ch;
}

/* Top nav */
.topnav {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in oklch, var(--bg) 88%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid color-mix(in oklch, var(--rule) 60%, transparent);
}
.topnav-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 28px;
  height: 64px;
}
.brand {
  display: flex; align-items: center; gap: 10px;
  text-decoration: none;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: -0.01em;
  white-space: nowrap;
  flex: 0 0 auto;
}
.brand:hover { color: var(--accent); }
.brand-dot {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--accent);
  position: relative;
  flex: 0 0 auto;
}
.brand-dot::after {
  content: ""; position: absolute; inset: 6px;
  border-radius: 50%; background: var(--bg);
}
.brand small {
  font-family: var(--font-mono);
  font-weight: 400;
  font-size: 11px;
  color: var(--ink-muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-left: 4px;
  white-space: nowrap;
}
.topnav-links {
  display: flex; gap: 24px; min-width: 0;
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.topnav-links a { text-decoration: none; }
.topnav-links a:hover { color: var(--accent); }
@media (max-width: 940px) { .topnav-links { gap: 16px; } }
@media (max-width: 860px) { .topnav-links { display: none; } }

.topnav-by {
  display: flex; align-items: center; gap: 8px;
  padding-left: 24px; margin-left: 8px;
  border-left: 1px solid var(--rule);
  text-decoration: none;
  font-family: var(--font-mono); font-size: 11px;
  color: var(--ink-soft);
  white-space: nowrap;
}
.topnav-by:hover { color: var(--ink); }
@media (max-width: 960px) {
  .topnav-by span { display: none; }
  .topnav-by { border-left: none; padding-left: 12px; margin-left: 12px; }
}
@media (max-width: 720px) {
  .topnav-inner { gap: 12px; height: 56px; }
  .brand { flex: 1 1 auto; min-width: 0; font-size: 14.5px; gap: 8px; overflow: hidden; text-overflow: ellipsis; }
  .brand-dot { width: 18px; height: 18px; }
  .brand-dot::after { inset: 5px; }
  .topnav-by { flex: 0 0 auto; margin-left: 0; padding-left: 0; }
  .topnav-by .rekola-logo { height: 13px; }
}

.hero-by {
  display: inline-flex; align-items: center; gap: 9px;
  text-decoration: none;
  font-family: var(--font-mono); font-size: 12px;
  line-height: 1;
  color: var(--ink-soft);
  padding: 6px 14px;
  border: 1px solid var(--rule);
  border-radius: var(--radius-pill);
  background: var(--bg-soft);
  white-space: nowrap;
}
.hero-by:hover { color: var(--ink); border-color: var(--ink-soft); }
.hero-badges { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.hero-badges .pill { margin: 0; }

.marquee {
  overflow: hidden;
  background: var(--bg-soft);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  padding: 14px 0;
}
.marquee-track { display: flex; width: max-content; animation: marqueeScroll 32s linear infinite; }
.marquee-set { display: flex; align-items: center; flex: 0 0 auto; }
.marquee-item {
  display: inline-flex; align-items: center; gap: 24px;
  font-family: var(--font-mono);
  font-size: 15px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-soft);
  padding: 0 24px;
  white-space: nowrap;
}
.marquee-dot { color: var(--accent); font-size: 8px; opacity: 0.85; }
@keyframes marqueeScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee-track { animation: none; } }

.pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px;
  border-radius: var(--radius-pill);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: var(--bg-soft);
  color: var(--ink-soft);
  border: 1px solid var(--rule);
  white-space: nowrap;
}
.pill.accent { background: var(--accent); color: white; border-color: transparent; }

/* ============ Hero ============ */
.hero { padding-top: clamp(40px, 8vh, 90px); padding-bottom: var(--gap-xl); }
.hero-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: clamp(24px, 4vw, 56px);
  align-items: start;
}
@media (max-width: 900px) { .hero-grid { grid-template-columns: 1fr; } }

.hero h1 { font-weight: 800; font-size: clamp(34px, 5.2vw, 88px); max-width: 15ch; text-wrap: wrap; }
.hero h1 .accent-mark { color: var(--accent); font-style: italic; font-weight: 700; }
.hero h1 .underline-mark {
  position: relative;
  display: inline;
}
.hero h1 .q-glue { white-space: nowrap; }
.hero h1 .underline-mark::after {
  content: "";
  position: absolute;
  left: -2%; right: -2%; bottom: 4%;
  height: 0.18em;
  background: var(--accent);
  z-index: -1;
  opacity: 0.85;
  transform: skewX(-6deg);
}
.hero-sub {
  margin-top: clamp(20px, 3vw, 36px);
  max-width: 52ch;
  font-size: clamp(17px, 1.4vw, 20px);
  color: var(--ink-soft);
  line-height: 1.55;
}
.hero-meta { display: flex; gap: 12px; margin-top: 28px; flex-wrap: wrap; }

.hero-collage {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-auto-rows: 56px;
  gap: 10px;
  position: relative;
}
.hero-collage img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow);
  background: var(--bg-soft);
}
.tile-a { grid-column: 1 / span 4; grid-row: 1 / span 4; }
.tile-b { grid-column: 5 / span 2; grid-row: 1 / span 2; }
.tile-c { grid-column: 5 / span 2; grid-row: 3 / span 3; }
.tile-d { grid-column: 1 / span 2; grid-row: 5 / span 3; }
.tile-e { grid-column: 3 / span 3; grid-row: 5 / span 3; }
.collage-sticker {
  position: absolute;
  z-index: 3;
  background: var(--accent);
  color: white;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  padding: 8px 14px;
  border-radius: var(--radius-pill);
  transform: rotate(-6deg);
  box-shadow: var(--shadow);
  letter-spacing: -0.01em;
  white-space: nowrap;
  top: 32%; left: -16px;
}
.collage-sticker.sticker-2 { top: auto; left: auto; bottom: 6%; right: -14px; transform: rotate(7deg); background: var(--ink); color: var(--bg); }
.collage-sticker.sticker-3 {
  top: auto; left: auto; bottom: -14px; right: 10%;
  transform: rotate(-4deg);
  background: var(--bg);
  color: var(--ink);
  padding: 9px 16px;
  display: flex; align-items: center;
}

/* ============ Strategy ============ */
.strategy-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: var(--gap-lg);
  align-items: start;
}
@media (max-width: 800px) { .strategy-grid { grid-template-columns: 1fr; } }

.strategy-card {
  background: var(--ink);
  color: var(--bg);
  border-radius: var(--radius-lg);
  padding: clamp(20px, 2.4vw, 32px);
  position: relative;
  overflow: hidden;
}
.strategy-card .eyebrow { color: color-mix(in oklch, var(--bg) 70%, transparent); }
.strategy-card h2 { color: var(--bg); margin-top: 12px; }
.strategy-card .lede { color: color-mix(in oklch, var(--bg) 78%, transparent); margin-top: 18px; }

.strategy-pts {
  list-style: none; padding: 0; margin: 18px 0 0 0;
  display: grid; gap: 12px;
}
.strategy-pts li {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 14px;
  align-items: baseline;
  padding-top: 14px;
  border-top: 1px solid color-mix(in oklch, var(--bg) 16%, transparent);
}
.strategy-pts li:first-child { border-top: 0; padding-top: 0; }
.strategy-pts .n { font-family: var(--font-mono); font-size: 13px; color: var(--accent); }

.info-btn {
  appearance: none; border: 0;
  background: var(--accent);
  color: white;
  padding: 14px 22px;
  border-radius: var(--radius-pill);
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 10px;
  margin-top: 28px;
  transition: transform 0.15s ease;
  box-shadow: 0 8px 24px -10px color-mix(in oklch, var(--accent) 70%, transparent);
  white-space: nowrap;
}
.info-btn:hover { transform: translateY(-2px); }
.info-btn .dot {
  width: 8px; height: 8px; background: white; border-radius: 50%;
  animation: pulse 1.8s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.4); }
}

/* ============ Surprise quote reveal — single rotating card ============ */
.surprise {
  background: color-mix(in oklch, var(--accent) 16%, var(--bg));
  border: 1px solid color-mix(in oklch, var(--accent) 30%, transparent);
  border-radius: var(--radius-lg);
  padding: clamp(22px, 3vw, 32px);
  margin-top: var(--gap-md);
  position: relative;
  overflow: hidden;
}
.surprise-counter {
  display: inline-flex;
  gap: 6px;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--ink-muted);
  margin-bottom: 14px;
}
.surprise-counter .i { color: var(--accent-ink); font-weight: 700; }

.surprise-card-single {
  appearance: none;
  border: 0;
  background: none;
  padding: 0;
  margin: 0;
  width: 100%;
  text-align: left;
  cursor: pointer;
  display: block;
  position: relative;
  animation: surpriseIn 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@keyframes surpriseIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.surprise-face {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.surprise-face.front::before {
  content: "❝";
  position: absolute;
  top: -50px; left: -6px;
  font-family: var(--font-display);
  font-size: 200px;
  color: var(--accent);
  opacity: 0.2;
  line-height: 1;
  z-index: 0;
}
.surprise-quote {
  font-family: var(--font-display);
  font-size: clamp(22px, 2.6vw, 34px);
  line-height: 1.2;
  letter-spacing: -0.02em;
  font-weight: 600;
  max-width: 64ch;
  text-wrap: balance;
  position: relative;
  z-index: 1;
  margin: 0;
}
.surprise-quote.small {
  font-size: 17px;
  font-weight: 500;
  color: color-mix(in oklch, var(--bg) 65%, transparent);
  max-width: 40ch;
}
.surprise-quote.is-long { max-width: 78ch; }
.surprise-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  background: var(--ink);
  color: var(--bg);
  padding: 9px 16px;
  border-radius: var(--radius-pill);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: background 0.2s ease, transform 0.2s ease;
}
.surprise-card-single:hover .surprise-cta { background: var(--accent); transform: translateY(-2px); }
.surprise-cta .arrow { transition: transform 0.2s ease; }
.surprise-card-single:hover .surprise-cta .arrow { transform: translateX(4px); }

.surprise-face.back { flex-direction: row; align-items: center; flex-wrap: wrap; }
.surprise-face.back .avatar {
  width: 64px; height: 64px; border-radius: 50%;
  background: var(--ink);
  color: var(--bg);
  display: grid; place-items: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 20px;
  flex: 0 0 auto;
}
.surprise-face.back .meta { line-height: 1.3; margin-right: 24px; }
.surprise-face.back .name { font-weight: 700; font-family: var(--font-display); font-size: 20px; }
.surprise-face.back .party { font-family: var(--font-mono); font-size: 12px; color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.06em; margin-top: 2px; }
.surprise-face.back .surprise-quote.small { flex: 1 1 240px; }

.surprise-footer {
  position: relative;
  min-height: 40px;
  margin-top: 18px;
  display: flex;
  align-items: center;
}
.surprise-footer .surprise-cta,
.surprise-footer .surprise-author {
  position: absolute;
  left: 0; top: 0;
  width: auto;
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.surprise-footer .surprise-author {
  display: flex;
  align-items: center;
  gap: 16px;
  opacity: 0;
  transform: translateY(6px);
  pointer-events: none;
}
.surprise-card-single.is-revealed .surprise-footer .surprise-cta {
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
}
.surprise-card-single.is-revealed .surprise-footer .surprise-author {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}
.surprise-author .avatar {
  width: 56px; height: 56px; min-width: 56px; min-height: 56px;
  border-radius: 50%; flex: 0 0 auto;
  background: var(--ink); color: var(--bg);
  display: block;
  overflow: hidden;
}
.surprise-author .avatar img,
.surprise-author .avatar .img-placeholder {
  width: 56px;
  height: 56px;
  object-fit: cover;
  object-position: center 18%;
  display: block;
  border-radius: 50%;
}
.surprise-author .name { font-weight: 700; font-family: var(--font-display); font-size: 19px; }
.surprise-author .party { font-family: var(--font-mono); font-size: 12px; color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.04em; margin-top: 2px; }

.surprise-card-single .surprise-face.back { display: none; }
.surprise-card-single.is-revealed .surprise-face.back { display: flex; }
.surprise-card-single.is-revealed .surprise-face.front { display: none; }

.surprise-nav {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: clamp(28px, 4vw, 40px);
  position: relative;
  z-index: 1;
}
@media (max-width: 640px) { .surprise-nav { margin-top: 32px; } }
.nav-btn {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 1px solid var(--rule);
  background: var(--bg);
  display: grid; place-items: center;
  font-size: 16px;
  color: var(--ink);
  transition: all 0.15s ease;
  flex: 0 0 auto;
}
.nav-btn:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.nav-dots { display: flex; gap: 8px; }
.nav-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  border: 0;
  background: color-mix(in oklch, var(--ink) 22%, transparent);
  padding: 0;
  transition: all 0.2s ease;
}
.nav-dot.active { background: var(--accent); width: 22px; border-radius: 4px; }

/* ============ Candidate cards & modal ============ */
.cand-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
@media (max-width: 1000px) {
  .cand-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
  .cand-grid { grid-template-columns: repeat(2, 1fr); }
}
.cand-card {
  background: white;
  border: 1px solid var(--rule);
  border-radius: var(--radius-md);
  padding: 0;
  text-align: left;
  transition: transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.25s ease, border-color 0.2s ease;
  cursor: pointer;
  appearance: none;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  font-family: var(--font-body);
}
.cand-card:hover {
  transform: translateY(-6px) rotate(-0.4deg);
  box-shadow: 0 24px 48px -20px rgba(20, 16, 18, 0.28);
  border-color: var(--accent);
}
.cand-photo {
  position: relative;
  aspect-ratio: 1 / 1;
  background: var(--bg-soft);
  overflow: hidden;
}
.cand-photo img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 0;
  background: var(--accent-soft);
  color: var(--accent-ink);
  font-family: var(--font-display);
  font-weight: 700;
}
.cand-card:hover .cand-photo img { transform: scale(1.04); }
.cand-photo img { transition: transform 0.4s ease; }
.cand-index {
  position: absolute;
  top: 9px; left: 9px;
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.05em;
  color: white;
  background: rgba(20, 16, 18, 0.55);
  backdrop-filter: blur(4px);
  padding: 3px 7px;
  border-radius: var(--radius-pill);
  z-index: 2;
}
.transport-badges {
  display: flex;
  gap: 6px;
  margin-top: 10px;
}
.transport-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: white;
  flex: 0 0 auto;
  box-shadow: 0 0 0 2px var(--ink) inset;
}
.transport-badge svg {
  width: 58%;
  height: 58%;
}
.modal .transport-badges { margin-top: 4px; margin-bottom: 4px; }

.cand-declined {
  display: inline-block;
  margin-top: 6px;
  font-family: var(--font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--no);
  background: color-mix(in oklch, var(--no) 10%, white);
  border: 1px solid color-mix(in oklch, var(--no) 30%, transparent);
  border-radius: var(--radius-pill);
  padding: 3px 9px;
}
.modal .cand-declined { margin-top: 8px; margin-bottom: 4px; }

.cand-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px 14px;
}
.cand-card .name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 15.5px;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: var(--ink);
}
.cand-card .party {
  font-family: var(--font-mono);
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-muted);
  margin-top: 3px;
}
.cand-card .more {
  font-family: var(--font-display);
  font-size: 14px;
  color: var(--ink-muted);
  display: grid; place-items: center;
  width: 26px; height: 26px;
  border-radius: 50%;
  border: 1px solid var(--rule);
  flex: 0 0 auto;
  transition: all 0.2s ease;
}
.cand-card:hover .more {
  background: var(--accent);
  border-color: var(--accent);
  color: white;
  transform: rotate(-45deg);
}

/* Modal */
.modal-backdrop {
  position: fixed; inset: 0; z-index: 100;
  background: color-mix(in oklch, var(--ink) 50%, transparent);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: grid; place-items: center;
  padding: 24px;
  animation: backdropIn 0.2s ease;
}
@keyframes backdropIn { from { opacity: 0; } to { opacity: 1; } }
.modal {
  background: var(--bg);
  border-radius: var(--radius-lg);
  max-width: 520px;
  width: 100%;
  max-height: 86vh;
  overflow-y: auto;
  padding: 36px;
  position: relative;
  box-shadow: 0 30px 80px -20px rgba(0,0,0,0.3);
  animation: modalIn 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@keyframes modalIn {
  from { opacity: 0; transform: translateY(12px) scale(0.98); }
  to { opacity: 1; transform: none; }
}
.modal-close {
  position: absolute;
  top: 18px; right: 18px;
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid var(--rule);
  background: var(--bg);
  display: grid; place-items: center;
  color: var(--ink-soft);
}
.modal-close:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.modal .avatar {
  width: 100px; height: 100px;
  margin-bottom: 18px;
  border-radius: 50%;
  overflow: hidden;
  border: 0;
  background: none;
}
.modal .avatar img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent-ink);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 15px;
}
.modal h3 { font-size: 30px; }
.modal-party { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-muted); margin-top: 6px; }
.modal-bio { margin-top: 18px; color: var(--ink-soft); }
.modal-subhead {
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--accent-ink);
  margin-top: 26px;
  margin-bottom: 4px;
  font-weight: 700;
}
.modal-socials { display: flex; gap: 8px; margin-top: 22px; flex-wrap: wrap; }
.modal-socials a {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 14px;
  border-radius: var(--radius-pill);
  background: var(--bg-soft);
  border: 1px solid var(--rule);
  font-family: var(--font-mono);
  font-size: 12px;
  text-decoration: none;
  color: var(--ink);
  letter-spacing: 0.04em;
}
.modal-socials a:hover { border-color: var(--accent); color: var(--accent); }

/* ============ Approval row ============ */
.approval {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 14px;
  margin-top: var(--gap-md);
}
@media (max-width: 900px) { .approval { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 520px) { .approval { grid-template-columns: repeat(2, 1fr); } }
.app-cell {
  background: white;
  border: 1px solid var(--rule);
  border-radius: var(--radius-md);
  padding: 18px 14px;
  text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 12px;
}
.app-cell.yes { border-color: var(--ok); background: color-mix(in oklch, var(--ok) 8%, white); }
.app-cell.no  { border-color: var(--no); background: color-mix(in oklch, var(--no) 8%, white); }
.app-cell.pending { border-color: var(--rule); background: var(--bg-soft); }
.app-cell .avatar { width: 56px; height: 56px; font-size: 18px; }
.app-cell .party-mark {
  border-radius: 10px;
  display: grid; place-items: center;
  color: white;
  font-family: var(--font-mono);
  font-weight: 700;
  letter-spacing: 0.02em;
}
.app-cell .name { font-family: var(--font-display); font-weight: 600; font-size: 14px; line-height: 1.15; }
.app-cell .party-small { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.02em; color: var(--ink-muted); }
.app-cell .mark {
  width: 32px; height: 32px;
  border-radius: 50%;
  display: grid; place-items: center;
  color: white;
  font-weight: 700;
}
.app-cell.yes .mark { background: var(--ok); }
.app-cell.no  .mark { background: var(--no); }
.app-cell.pending .mark { background: var(--ink-muted); }
.legend {
  display: flex; gap: 18px; margin-top: 18px;
  font-family: var(--font-mono); font-size: 12px;
  color: var(--ink-soft);
  flex-wrap: wrap;
}
.approval-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  flex-wrap: wrap;
}
.approval-head .legend { margin-top: 0; }
.legend-dot { display: inline-flex; align-items: center; gap: 8px; }
.legend-dot::before {
  content: ""; width: 12px; height: 12px; border-radius: 50%; background: var(--ok);
}
.legend-dot.no::before { background: var(--no); }
.legend-dot.pending::before { background: var(--ink-muted); }

/* ============ Comments — candidate-first, topic tabs ============ */
.cq-cands {
  display: flex; flex-wrap: wrap; gap: 10px;
  margin-bottom: var(--gap-lg);
}
@media (max-width: 700px) {
  .cq-cands {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 6px;
    margin-left: calc(-1 * var(--gap-md));
    margin-right: calc(-1 * var(--gap-md));
    padding-left: var(--gap-md);
    padding-right: var(--gap-md);
  }
  .cq-cand { flex: 0 0 auto; }
}
.cq-cand {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 10px 18px;
  background: white;
  border: 1.5px solid var(--rule);
  border-radius: var(--radius-pill);
  cursor: pointer; transition: all 0.15s ease;
}
.cq-cand:hover { border-color: var(--pc, var(--accent)); }
.cq-cand.active {
  border-color: var(--pc, var(--accent));
  background: color-mix(in oklch, var(--pc, var(--accent)) 10%, white);
}
.cq-cand-photo {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  overflow: hidden;
  flex: 0 0 auto;
  box-shadow: 0 0 0 1.5px var(--pc, var(--accent));
  background: var(--bg-soft);
}
.cq-cand-photo img,
.cq-cand-photo .img-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
  display: block;
  border-radius: 50%;
}
.cq-cand .name { font-family: var(--font-body); font-weight: 700; font-size: 14px; color: var(--ink); }
.cq-cand .party { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-muted); }
.cq-cand.active .party { color: var(--ink); }

.cq-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: var(--gap-lg);
  align-items: start;
}
@media (max-width: 800px) { .cq-layout { grid-template-columns: 1fr; } }

.cq-topics {
  display: flex; flex-direction: column;
  position: sticky; top: 90px;
}
@media (max-width: 800px) {
  .cq-topics { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--rule); padding-bottom: 4px; position: static; }
}
.cq-topic {
  display: flex; align-items: baseline; gap: 12px;
  text-align: left;
  padding: 13px 18px 13px 2px;
  background: none; border: none;
  border-left: 2px solid transparent;
  font-family: var(--font-body); font-size: 15px; color: var(--ink-soft);
  cursor: pointer; transition: all 0.15s ease;
  white-space: nowrap;
}
.cq-topic .i { font-family: var(--font-mono); font-size: 11px; color: var(--ink-muted); flex: 0 0 auto; }
.cq-topic:hover { color: var(--ink); }
.cq-topic.active { border-left-color: var(--accent); color: var(--ink); font-weight: 700; padding-left: 16px; }
.cq-topic.active .i { color: var(--accent); }
@media (max-width: 800px) {
  .cq-topic { border-left: none; border-bottom: 2px solid transparent; padding: 8px 14px; }
  .cq-topic.active { border-left: none; border-bottom-color: var(--accent); padding-left: 14px; }
}

.cq-quote {
  position: relative;
  background: color-mix(in oklch, var(--accent) 16%, var(--bg));
  border: 1px solid color-mix(in oklch, var(--accent) 30%, transparent);
  color: var(--ink);
  border-radius: var(--radius-lg);
  padding: var(--gap-lg);
  min-height: 260px;
  display: flex; flex-direction: column; justify-content: flex-start;
  animation: cqIn 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.cq-quote-counter {
  display: inline-flex; gap: 6px;
  font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.1em;
  color: var(--ink-muted);
  margin-bottom: 14px;
}
.cq-quote-counter .i { color: var(--accent-ink); font-weight: 700; }
.cq-quote-topic-mobile {
  display: none;
  font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.05em; text-transform: uppercase;
  color: var(--accent-ink); font-weight: 700;
  margin-bottom: 10px;
}
@media (max-width: 800px) { .cq-quote-topic-mobile { display: block; } }
.cq-quote .q {
  font-family: var(--font-display);
  font-size: clamp(18px, 1.9vw, 25px);
  font-weight: 500; line-height: 1.45; letter-spacing: -0.01em;
  text-wrap: pretty; color: var(--ink);
  white-space: pre-line;
  margin: 0 0 var(--gap-md);
}
.cq-quote .q.q-lg { font-size: clamp(16px, 1.6vw, 21px); }
.cq-quote .q.q-xl { font-size: clamp(14px, 1.35vw, 18px); line-height: 1.5; }
@media (max-width: 800px) {
  .cq-quote .q { font-size: 18px; }
  .cq-quote .q.q-lg { font-size: 15px; line-height: 1.5; }
  .cq-quote .q.q-xl { font-size: 13px; line-height: 1.45; }
}
.cq-author {
  display: flex; align-items: center; gap: 10px;
  padding-top: var(--gap-sm);
  border-top: 1px solid color-mix(in oklch, var(--ink) 14%, transparent);
}
.cq-author-photo {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  overflow: hidden;
  flex: 0 0 auto;
  background: var(--bg-soft);
}
.cq-author-photo img,
.cq-author-photo .img-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
  display: block;
  border-radius: 50%;
}
.cq-author .name { display: block; font-weight: 700; font-size: 15px; color: var(--ink); }
.cq-author .party { display: block; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.03em; text-transform: uppercase; color: var(--ink-muted); }
@keyframes cqIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ============ Ambassadors ============ */
.amb-wrap {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
}
@media (max-width: 800px) { .amb-wrap { grid-template-columns: 1fr; } }

.amb-avatars {
  display: flex;
  align-items: center;
}
.amb-avatar-wrap {
  width: 84px; height: 84px;
  margin-left: -18px;
  border-radius: 50%;
  background: var(--bg);
  padding: 4px;
  box-shadow: var(--shadow);
  cursor: pointer;
  transition: transform 0.15s ease, padding 0.15s ease, background 0.15s ease;
  flex: 0 0 auto;
  position: relative;
}
.amb-avatar-wrap:first-child { margin-left: 0; }
.amb-avatar-wrap:hover { transform: translateY(-4px); z-index: 5; }
.amb-avatar-wrap.active {
  background: var(--accent);
  transform: translateY(-4px);
  z-index: 5;
}
.amb-avatar-wrap img {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--accent-soft);
  border-radius: 50%;
  font-weight: 700;
  color: var(--accent-ink);
}
.amb-quote-box {
  position: relative;
  padding-left: 20px;
}
.amb-quote-box::before {
  content: ""; position: absolute; left: 0; top: 6px; bottom: 6px;
  width: 3px; background: var(--accent); border-radius: 2px;
}
.amb-quote-box .q {
  font-family: var(--font-display);
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.01em;
  margin-bottom: 16px;
  text-wrap: pretty;
}
.amb-meta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.amb-meta .name { font-family: var(--font-display); font-weight: 700; font-size: 17px; }
.amb-meta .role { font-family: var(--font-mono); font-size: 12px; color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.06em; }
.amb-meta .reel {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 14px 7px 10px;
  border-radius: var(--radius-pill);
  background: var(--accent);
  color: white;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
}
.amb-meta .reel:hover { transform: translateY(-1px); }

/* ============ Ambassadors (featured / hero-style) ============ */
.section-amb {
  background: var(--ink);
  color: var(--bg);
  border-top: 0;
  position: relative;
  overflow: hidden;
}
.section-amb::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 80% at 110% 20%, color-mix(in oklch, var(--accent) 30%, transparent), transparent 60%),
    radial-gradient(50% 60% at -10% 90%, color-mix(in oklch, var(--accent) 22%, transparent), transparent 65%);
  pointer-events: none;
}
.section-amb > .wrap { position: relative; z-index: 1; }

.amb-label { color: color-mix(in oklch, var(--bg) 60%, transparent); }
.amb-label::before { background: color-mix(in oklch, var(--bg) 35%, transparent); }
.amb-label .section-num { color: var(--accent); }

.amb-h {
  color: var(--bg);
  max-width: 22ch;
  margin-bottom: clamp(40px, 5vw, 64px);
}

.amb-inner {
  max-width: 980px;
  margin: 0 auto;
}

.amb-stage {
  display: grid;
  grid-template-columns: minmax(220px, 300px) 1fr;
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
  justify-items: center;
  padding-bottom: clamp(32px, 5vw, 56px);
  border-bottom: 1px solid color-mix(in oklch, var(--bg) 14%, transparent);
}
@media (max-width: 880px) {
  .amb-stage { grid-template-columns: 1fr; gap: 32px; justify-items: center; text-align: center; }
}

.amb-portrait {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  max-width: 280px;
  margin: 0 auto;
  animation: ambFade 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.amb-portrait img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: color-mix(in oklch, var(--accent) 30%, var(--ink));
  color: var(--bg);
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 16px;
  box-shadow:
    0 30px 80px -20px color-mix(in oklch, var(--accent) 60%, transparent),
    inset 0 0 0 6px color-mix(in oklch, var(--bg) 8%, transparent);
}
.amb-portrait::after {
  content: "";
  position: absolute;
  inset: -14px;
  border: 2px dashed color-mix(in oklch, var(--accent) 60%, transparent);
  border-radius: 50%;
  opacity: 0.6;
  pointer-events: none;
  animation: ambSpin 40s linear infinite;
}
@keyframes ambSpin { to { transform: rotate(360deg); } }
@keyframes ambFade { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: none; } }


.amb-reel-badge {
  position: absolute;
  bottom: 4%;
  right: 4%;
  transform: translateX(30%);
  background: var(--accent);
  color: white;
  padding: 12px 20px 12px 14px;
  border-radius: var(--radius-pill);
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: 0 16px 40px -12px color-mix(in oklch, var(--accent) 70%, transparent);
  transition: transform 0.15s ease;
  white-space: nowrap;
}
.amb-reel-badge:hover { transform: translateX(30%) translateY(-2px) rotate(-2deg); }
.amb-reel-badge .play {
  width: 26px; height: 26px;
  border-radius: 50%;
  background: white;
  color: var(--accent);
  display: grid; place-items: center;
  font-size: 10px;
  padding-left: 2px;
}

.amb-body { animation: ambFade 0.5s cubic-bezier(0.2, 0.8, 0.2, 1); }

.amb-counter {
  display: inline-flex; gap: 6px;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: color-mix(in oklch, var(--bg) 50%, transparent);
  margin-bottom: 20px;
}
.amb-counter .i { color: var(--accent); font-weight: 600; }

.amb-quote {
  font-family: var(--font-display);
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.2;
  letter-spacing: -0.02em;
  font-weight: 500;
  color: var(--bg);
  max-width: 28ch;
  text-wrap: balance;
  margin: 0 0 28px 0;
  text-indent: -0.4em;
}
.amb-author { display: flex; flex-direction: column; gap: 4px; margin-bottom: 28px; }
.amb-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 22px;
  color: var(--bg);
  letter-spacing: -0.01em;
}
.amb-role {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: color-mix(in oklch, var(--bg) 55%, transparent);
}

.amb-progress {
  height: 3px;
  background: color-mix(in oklch, var(--bg) 12%, transparent);
  border-radius: 2px;
  max-width: 320px;
  margin: 0 auto;
  overflow: hidden;
}
.amb-progress-bar {
  display: block;
  height: 100%;
  background: var(--accent);
  width: 0;
  animation: ambBar 6500ms linear forwards;
}
.amb-progress-bar[data-paused="true"] { animation-play-state: paused; }
@keyframes ambBar { from { width: 0; } to { width: 100%; } }

.amb-thumbs {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-top: clamp(28px, 4vw, 44px);
  flex-wrap: wrap;
}
.amb-thumb {
  background: none;
  border: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  color: color-mix(in oklch, var(--bg) 60%, transparent);
  transition: color 0.15s ease;
}
.amb-thumb img {
  display: block;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: color-mix(in oklch, var(--accent) 18%, var(--ink));
  color: var(--bg);
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 11px;
  box-shadow: inset 0 0 0 2px color-mix(in oklch, var(--bg) 14%, transparent);
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.amb-thumb:hover { color: var(--bg); }
.amb-thumb:hover img { transform: translateY(-2px); }
.amb-thumb.active { color: var(--bg); }
.amb-thumb.active img {
  box-shadow:
    inset 0 0 0 3px var(--accent),
    0 8px 24px -10px color-mix(in oklch, var(--accent) 70%, transparent);
}
.thumb-name {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* (legacy classes left in place but unused) */
.amb-wrap, .amb-avatars, .amb-avatar-wrap, .amb-quote-box, .amb-meta { /* keep no-op */ }

/* ============ Why we do this ============ */
.why-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(20px, 3vw, 40px);
}
@media (max-width: 800px) { .why-grid { grid-template-columns: 1fr; } }

.why-card {
  background: white;
  border: 1px solid var(--rule);
  border-radius: var(--radius-lg);
  padding: clamp(24px, 3vw, 36px);
  display: flex; flex-direction: column; gap: 18px;
}
.why-card .head { display: flex; align-items: center; gap: 14px; }
.why-card .head img {
  width: 64px; height: 64px;
  flex: 0 0 auto;
  border: none;
  background: transparent;
}
.why-card .head .name { font-family: var(--font-display); font-weight: 700; font-size: 19px; }
.why-card .head .role { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; color: var(--ink-muted); letter-spacing: 0.06em; }
.why-card .q { font-size: 17px; line-height: 1.55; color: var(--ink-soft); text-wrap: pretty; }

/* ============ Footer / CTA ============ */
.footer-cta {
  background: var(--ink);
  color: var(--bg);
  border-radius: var(--radius-lg);
  padding: clamp(36px, 5vw, 64px);
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: var(--gap-lg);
  align-items: center;
}
@media (max-width: 800px) { .footer-cta { grid-template-columns: 1fr; } }
.footer-cta h2 { color: var(--bg); }
.footer-cta .lede { color: color-mix(in oklch, var(--bg) 75%, transparent); margin-top: 14px; }
.share-row { display: flex; flex-direction: column; gap: 10px; }
.share-btn {
  display: inline-flex; align-items: center; justify-content: space-between;
  gap: 16px;
  padding: 16px 22px;
  border-radius: var(--radius-pill);
  background: color-mix(in oklch, var(--bg) 8%, transparent);
  border: 1px solid color-mix(in oklch, var(--bg) 20%, transparent);
  color: var(--bg);
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.share-btn:hover { background: var(--accent); border-color: var(--accent); transform: translateX(4px); }
.share-btn .ic { font-family: var(--font-display); font-size: 18px; }

.footer-org {
  display: inline-flex; align-items: center; gap: 8px;
}

.footer-meta {
  display: flex; justify-content: space-between; gap: 20px;
  font-family: var(--font-mono); font-size: 11px;
  color: var(--ink-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-top: 40px;
  padding-top: 20px;
  border-top: 1px solid var(--rule);
  flex-wrap: wrap;
}

/* Density tweak */
body[data-density="compact"] { --space-unit: 0.7; font-size: 16px; }
body[data-density="cozy"]    { --space-unit: 1; }
body[data-density="spacious"]{ --space-unit: 1.3; font-size: 18px; }

/* ============ Shodneme se (agreement carousel) ============ */
.agr-rail{display:flex;gap:2px;margin-top:var(--gap-lg);border-bottom:1px solid var(--rule);overflow-x:auto;scrollbar-width:none}
.agr-rail::-webkit-scrollbar{display:none}
.agr-rail-btn{position:relative;display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:12px 16px 14px;min-width:150px;max-width:210px;flex:1 1 0;background:transparent;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;text-align:left;font-family:var(--font-body);color:var(--ink-muted);transition:color .18s,border-color .18s}
.agr-rail-btn .i{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em}
.agr-rail-btn .t{font-size:13px;line-height:1.3;text-wrap:pretty}
.agr-rail-btn:hover{color:var(--ink-soft)}
.agr-rail-btn.active{color:var(--ink);border-bottom-color:var(--accent)}
.agr-rail-btn.active .i{color:var(--accent)}

.agr-stage{display:grid;grid-template-columns:1.4fr .9fr;gap:clamp(24px,3.4vw,52px);margin-top:clamp(26px,3.4vw,44px);animation:agrIn .3s ease}
@keyframes agrIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.agr-head{display:flex;align-items:flex-start;gap:18px;padding-bottom:var(--gap-md);scroll-margin-top:72px}
.agr-num{font-family:var(--font-display);font-size:clamp(40px,5vw,64px);font-weight:800;line-height:.82;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1.5px var(--rule);flex:0 0 auto}
.agr-title{font-family:var(--font-display);font-size:clamp(22px,2.5vw,31px);font-weight:700;line-height:1.1;letter-spacing:-.025em;margin:0;max-width:24ch;text-wrap:pretty}
.agr-consensus{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);display:flex;align-items:center;gap:8px;margin:0 0 4px}
.agr-consensus::after{content:"";flex:1;height:1px;background:var(--rule)}
.agr-q{display:grid;grid-template-columns:32px 1fr;gap:14px;padding:8px 0 16px}
.agr-q + .agr-q{padding-top:16px;border-top:1px solid var(--rule)}
.agr-av{width:32px;height:32px;border-radius:50%;overflow:hidden;background:var(--bg-soft);box-shadow:0 0 0 1.5px color-mix(in oklch,var(--pc) 55%,transparent)}
.agr-av img{width:100%;height:100%;display:block;font-size:9px}
.agr-q-text{margin:0 0 6px;font-size:16px;line-height:1.5;color:var(--ink);text-wrap:pretty}
.agr-q-who{display:flex;align-items:baseline;gap:8px}
.agr-q-who .name{font-family:var(--font-display);font-size:13.5px;font-weight:600;letter-spacing:-.01em}
.agr-q-who .party{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;color:var(--ink-muted)}

.agr-side{position:sticky;top:96px;align-self:start;display:flex;flex-direction:column;gap:var(--gap-sm)}
.agr-rekola{background:var(--bg-soft);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:clamp(20px,2.4vw,28px)}
.agr-rekola-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--rule)}
.agr-rekola-head .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}
.agr-rekola-head .mark{display:flex;align-items:center;color:var(--ink)}
.agr-rekola p{margin:0;font-size:14.5px;line-height:1.62;color:var(--ink-soft);text-wrap:pretty}
.agr-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-sm)}
.agr-count{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--ink-muted)}
.agr-count b{color:var(--ink);font-weight:600}
.agr-arrows{display:flex;gap:8px}
@media (max-width:900px){
  .agr-stage{grid-template-columns:1fr;gap:20px;margin-top:20px}
  .agr-side{position:static}
  .agr-rail-btn{min-width:auto;flex:0 0 auto;padding:10px 12px}
  .agr-rail-btn .t{display:none}
  .agr-rail-btn .i{font-size:12px}
}

/* ===== v3 test: compact candidates band ===== */
.cand-band{display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);gap:var(--gap-lg,40px);align-items:stretch}
.cand-band-head h2{max-width:16ch;margin:0}
.cand-band-right{display:flex;flex-direction:column;justify-content:space-between;gap:18px}
.cand-strip{display:flex;gap:8px;flex-wrap:nowrap}
.cand-chip{position:relative;flex:1 1 0;min-width:0;max-width:150px;aspect-ratio:1/1;padding:0;border:1px solid var(--rule);border-radius:10px;background:var(--bg-soft,#F2E7DD);cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.cand-chip img{display:block;width:100%;height:100%;object-fit:cover;border-radius:9px;overflow:hidden}
.cand-chip:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 24px -14px rgba(20,16,18,.35)}
.cand-band-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:16px 20px;border:2px solid var(--accent);border-radius:12px;background:transparent;color:var(--ink);font-family:var(--font-mono);font-size:13px;letter-spacing:.04em;text-transform:none;cursor:pointer;transition:background .18s ease,color .18s ease}
.cand-band-cta .arrow{font-family:var(--font-display);font-size:15px}
.cand-band-cta:hover{background:var(--accent);color:#fff}
.cand-chip-tip{position:absolute;left:50%;top:calc(100% + 8px);transform:translate(-50%,4px);display:flex;flex-direction:column;gap:2px;padding:7px 11px;border-radius:8px;background:var(--ink);color:#fff;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease;z-index:6}
.cand-chip-tip .n{font-family:var(--font-display);font-weight:700;font-size:12.5px;letter-spacing:-.01em}
.cand-chip-tip .p{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;opacity:.7}
.cand-chip:hover .cand-chip-tip,.cand-chip:focus-visible .cand-chip-tip{opacity:1;transform:translate(-50%,0)}
.cand-chip-tip .d{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:#F2C6A0}
.cand-chip.is-declined img{filter:grayscale(1);opacity:.78}
.cand-chip.is-declined{border-style:dashed;border-color:color-mix(in oklch,var(--ink) 35%,transparent)}
.cand-chip.is-declined:hover img{filter:none;opacity:1}
.cand-chip-mark{position:absolute;right:5px;bottom:5px;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font-family:var(--font-mono);font-size:10px;line-height:1;z-index:2}
.cand-grid-v3{margin-top:var(--gap-lg,40px)}
@media (max-width:860px){
  .cand-band{grid-template-columns:1fr;align-items:start;gap:24px}
  .cand-band-right{justify-content:flex-start}
  .cand-chip{max-width:none}
}

/* ===== v3: smaller "nevyjádřila se" badge ===== */
.cand-declined{font-size:8.5px;letter-spacing:.03em;padding:2px 7px;margin-top:5px}
.modal .cand-declined{font-size:9.5px;padding:3px 9px}

/* ===== v3: mobile horizontal-scroll affordance ===== */
@media (max-width:800px){
  .cq-cands,.cq-topics,.agr-rail{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 40px),rgba(0,0,0,.15));mask-image:linear-gradient(to right,#000 calc(100% - 40px),rgba(0,0,0,.15));scrollbar-width:thin;scrollbar-color:var(--accent) color-mix(in oklch,var(--rule) 60%,transparent)}
  .cq-cands::-webkit-scrollbar,.cq-topics::-webkit-scrollbar,.agr-rail::-webkit-scrollbar{display:block;height:3px}
  .cq-cands::-webkit-scrollbar-thumb,.cq-topics::-webkit-scrollbar-thumb,.agr-rail::-webkit-scrollbar-thumb{background:var(--accent);border-radius:2px}
  .cq-cands::-webkit-scrollbar-track,.cq-topics::-webkit-scrollbar-track,.agr-rail::-webkit-scrollbar-track{background:color-mix(in oklch,var(--rule) 55%,transparent)}
  .cq-cands::after,.cq-topics::after{content:"→";flex:0 0 auto;align-self:center;padding:0 10px 0 4px;font-family:var(--font-mono);font-size:13px;color:var(--accent);animation:v3nudge 1.6s ease-in-out infinite}
  .cq-topics::after{align-self:center;padding-bottom:4px}
}
@keyframes v3nudge{0%,100%{transform:translateX(0);opacity:.55}50%{transform:translateX(4px);opacity:1}}

/* ===== ambassadors curtain (pre-launch) ===== */
.amb-thumb img{overflow:hidden}
.amb-thumb img.is-empty{opacity:0}
.amb-thumb:hover img.is-empty{opacity:1}
.amb-portrait img.is-empty{opacity:0}
.amb-portrait:hover img.is-empty{opacity:1}
.amb-portrait:hover .amb-monogram{opacity:0}
.amb-monogram{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-display);font-size:44px;letter-spacing:-.02em;color:color-mix(in oklch,var(--bg) 55%,transparent);pointer-events:none;z-index:2;transition:opacity .18s}
.amb-portrait img[data-filled] ~ .amb-monogram{display:none}
.amb-reel-cta{display:inline-flex;align-items:center;gap:12px;margin-top:16px;padding:11px 18px;border:2px solid var(--bg);border-radius:999px;background:transparent;color:var(--bg);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transition:background .18s,color .18s}
.amb-reel-cta .play{font-size:9px;line-height:1}
.amb-reel-cta .where{padding-left:12px;border-left:1px solid color-mix(in oklch,var(--bg) 35%,transparent);opacity:.65}
.amb-reel-cta:hover{background:var(--bg);color:var(--ink)}
.amb-reel-cta:hover .where{border-color:color-mix(in oklch,var(--ink) 25%,transparent)}
.amb-reel-cta.is-soon{border-style:dashed;opacity:.5}
.amb-reel-cta.is-soon:hover{background:transparent;color:var(--bg)}
.amb-locked .amb-h{margin-bottom:34px}
.amb-curtain{color:var(--ink);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:0;border:1px solid var(--rule);border-radius:14px;overflow:hidden;background:var(--bg-soft,#F2E7DD)}
.amb-curtain-media{position:relative;display:flex;align-items:center;justify-content:center;gap:18px;min-height:230px;background:repeating-linear-gradient(135deg,color-mix(in oklch,var(--ink) 8%,transparent) 0 12px,transparent 12px 24px)}
.amb-curtain-media .play{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:2px solid var(--accent);color:var(--accent);font-size:16px;padding-left:3px}
.amb-curtain-media .dots{display:flex;gap:7px}
.amb-curtain-media .dots i{width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.35;animation:ambdot 1.4s ease-in-out infinite}
.amb-curtain-media .dots i:nth-child(2){animation-delay:.2s}.amb-curtain-media .dots i:nth-child(3){animation-delay:.4s}
@keyframes ambdot{0%,100%{opacity:.25}50%{opacity:1}}
.amb-curtain-copy{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:34px 38px;border-left:1px solid var(--rule)}
.amb-curtain-tag{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.amb-curtain-copy p{margin:0;max-width:34ch;font-family:var(--font-display);font-size:clamp(19px,2vw,25px);line-height:1.3;letter-spacing:-.015em}
@media (max-width:800px){
  .amb-curtain{grid-template-columns:1fr}
  .amb-curtain-media{min-height:150px}
  .amb-curtain-copy{padding:24px 22px;border-left:0;border-top:1px solid var(--rule)}
}

/* ===== ambassadors: two reel cards ===== */
.section-amb{padding-top:64px;padding-bottom:64px}
.amb-h{max-width:26ch}
.amb-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:22px;margin-top:34px}
.amb-card{display:flex;flex-direction:column;border:1px solid color-mix(in oklch,var(--bg) 22%,transparent);border-radius:14px;overflow:hidden;background:color-mix(in oklch,var(--bg) 6%,transparent)}
.amb-card-media{position:relative;aspect-ratio:4/5;background:color-mix(in oklch,var(--bg) 10%,transparent)}
.amb-card.is-playing .amb-card-media{aspect-ratio:auto;height:min(660px,78vh);min-height:560px}
.amb-card-media iframe{display:block;width:100%;height:100%;border:0;background:#000}
.amb-card-cover{position:absolute;inset:0;padding:0;border:0;background:none;cursor:pointer;display:block}
.amb-card-cover img{position:absolute;inset:0;display:block;width:100%;height:100%;object-position:center 18%}
.amb-card-cover img.is-empty{opacity:0}
.amb-card-shade{position:absolute;inset:0;background:linear-gradient(to top,color-mix(in oklch,var(--ink) 72%,transparent) 0%,transparent 55%)}
.amb-card-play{position:absolute;left:16px;bottom:16px;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:2px solid var(--bg);color:var(--bg);font-size:13px;padding-left:3px;transition:background .18s,color .18s,transform .18s}
.amb-card-cover:hover .amb-card-play{background:var(--bg);color:var(--ink);transform:scale(1.06)}
.amb-card-foot{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 14px;padding:16px 18px 18px;border-top:1px solid color-mix(in oklch,var(--bg) 16%,transparent)}
.amb-card .amb-name{font-family:var(--font-display);font-size:clamp(17px,1.4vw,20px);letter-spacing:-.015em;line-height:1.15}
.amb-card .amb-role{margin-top:4px;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.6}
.amb-card-src{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--bg);opacity:.6;white-space:nowrap}
.amb-card-src:hover{opacity:1}
@media (max-width:760px){.amb-cards{grid-template-columns:1fr!important;max-width:360px!important}}

/* production img slots */
.hero-collage img,
.cand-photo img,
.cand-chip img,
.modal .avatar img,
.agr-av img,
.why-card .head img,
.amb-card-cover img,
.cq-cand-photo img,
.cq-author-photo img,
.surprise-author .avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.why-card .head .why-avatar,
.why-card .head .why-avatar .img-placeholder {
  width: 64px;
  height: 64px;
  flex: 0 0 auto;
  border-radius: 50%;
  overflow: hidden;
}
.why-card .head .why-avatar img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  object-position: center 18%;
}
.topnav {
  position: sticky;
  overflow: visible;
}
.topnav-inner {
  position: relative;
}
.share-row .share-btn {
  text-decoration: none;
  cursor: pointer;
}
.agr-av .img-placeholder,
.modal .avatar .img-placeholder {
  width: 100%;
  height: 100%;
  border-radius: 50%;
}
.img-placeholder {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background: var(--bg-soft);
  color: var(--ink-muted);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.topnav-menu-btn { display: none; }
@media (max-width: 860px) {
  .topnav-inner { position: static; }
  .topnav-menu-btn {
    display: inline-flex;
    appearance: none;
    border: 1px solid var(--rule);
    background: var(--bg-soft);
    border-radius: var(--radius-pill);
    padding: 8px 12px;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .topnav.is-open .topnav-menu-btn {
    border-color: var(--accent);
    color: var(--accent);
  }
  .topnav.is-open .topnav-links {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--bg);
    border-bottom: 1px solid var(--rule);
    padding: 16px 20px 20px;
    gap: 14px;
    z-index: 60;
  }
}
@media (max-width: 800px) {
  .section {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .cq-cands { margin-bottom: var(--gap-md); }
  .cq-quote { min-height: 0; padding: 22px 20px; }
  .amb-h { margin-bottom: 28px; }
  .section-amb { padding-top: 48px; padding-bottom: 48px; }
}

.cq-quote .q,
.agr-q-text {
  color: var(--ink);
  -webkit-text-fill-color: var(--ink);
}
.cq-quote a,
.agr-q-text a,
a[x-apple-data-detectors] {
  color: inherit !important;
  -webkit-text-fill-color: inherit;
  text-decoration: none;
}
.skip-link {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 10000;
  padding: 8px 16px;
  background: #fff;
  border: 2px solid #006ce9;
  transform: translateY(-120%);
}
.skip-link:focus,
.skip-link:focus-visible {
  transform: translateY(0);
}
