﻿/* Campaign animation — inline on presentation slide 1 */
.campaign-slide {
  position: relative;
  width: 100%;
  flex: 1;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Outfit', sans-serif;
  overflow: hidden;
}

.campaign-slide .stage-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.campaign-slide .stage {
  width: 1280px;
  height: 720px;
  flex-shrink: 0;
  transform-origin: center center;
  position: relative;
  overflow: hidden;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}

.campaign-slide .stage::after,
.campaign-slide .particles {
  display: none;
}

/* Scenes — instant hide prevents overlapping content during transitions */
.campaign-slide .scene {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 0;
  transition: opacity 0.55s ease, visibility 0.55s;
}

.campaign-slide .scene:not(.active) {
  transition: opacity 0s, visibility 0s;
}

.campaign-slide .scene.active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 1;
}

.campaign-slide .campaign-panel {
  width: 100%;
  max-width: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.campaign-slide .progress-panel {
  width: min(760px, 92%);
  text-align: center;
  transform-style: preserve-3d;
}

/* Scene 1 â€” Launch */
  .campaign-slide .launch-panel {
  text-align: center;
  transform: scale(0.9);
  opacity: 0;
}

  .campaign-slide .scene.active .launch-panel {
  animation: panelIn 1s cubic-bezier(0.16,1,0.3,1) forwards;
}

@keyframes panelIn {
  to { transform: scale(1); opacity: 1; }
}

  .campaign-slide .brand {
  font-family: 'Cormorant Garamond', serif;
  font-size: 28px;
  color: #d4af37;
  letter-spacing: 0.15em;
  margin-bottom: 24px;
  opacity: 0.9;
}

  .campaign-slide .launch-title {
  font-size: 52px;
  font-weight: 800;
  color: #faf8f5;
  margin-bottom: 12px;
  letter-spacing: -0.02em;
}

  .campaign-slide .launch-sub {
  font-size: 20px;
  color: rgba(250,248,245,0.55);
  margin-bottom: 48px;
}

  .campaign-slide .launch-btn-wrap {
  display: inline-block;
  perspective: 800px;
  transform-style: preserve-3d;
}

  .campaign-slide .launch-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  padding: 0;
  cursor: default;
  transform-style: preserve-3d;
}

  .campaign-slide .launch-btn-face {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 18px 52px;
  border-radius: 100px;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.01em;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.45) 0%, rgba(255,255,255,0.08) 18%, transparent 42%),
    linear-gradient(165deg, #5dffa8 0%, #3ee87a 12%, #25D366 45%, #1db954 78%, #128C7E 100%);
  border: 1px solid rgba(255,255,255,0.42);
  box-shadow:
    0 14px 0 #0a6b4a,
    0 22px 48px rgba(37,211,102,0.55),
    0 0 80px rgba(61,255,138,0.25),
    inset 0 2px 0 rgba(255,255,255,0.55),
    inset 0 -3px 8px rgba(0,0,0,0.18);
  transform: translateZ(16px);
  transition: transform 0.22s cubic-bezier(0.16,1,0.3,1), box-shadow 0.22s ease;
  overflow: hidden;
  z-index: 2;
}

  .campaign-slide .launch-btn-gloss {
  position: absolute;
  top: 3px;
  left: 10%;
  right: 10%;
  height: 42%;
  border-radius: 100px 100px 60% 60%;
  background: linear-gradient(180deg, rgba(255,255,255,0.65) 0%, rgba(255,255,255,0.12) 100%);
  pointer-events: none;
}

  .campaign-slide .launch-btn-shine {
  position: absolute;
  top: -40%;
  left: -60%;
  width: 38%;
  height: 180%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.35), transparent);
  transform: rotate(18deg);
  animation: btnShineSweep 3.5s ease-in-out infinite;
  pointer-events: none;
}

@keyframes btnShineSweep {
  0%, 100% { left: -60%; opacity: 0; }
  45% { opacity: 1; }
  55% { left: 120%; opacity: 0; }
}

  .campaign-slide .launch-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255,255,255,0.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.35);
  font-size: 11px;
  position: relative;
  z-index: 1;
}

  .campaign-slide .launch-btn-label {
  position: relative;
  z-index: 1;
  text-shadow: 0 1px 2px rgba(0,0,0,0.2);
}

  .campaign-slide .launch-btn-shadow {
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: -6px;
  height: 18px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.45) 0%, transparent 72%);
  filter: blur(6px);
  transform: translateZ(-8px);
  pointer-events: none;
}

  .campaign-slide .launch-btn.pressed .launch-btn-face {
  transform: translateZ(4px) translateY(8px) scale(0.97);
  box-shadow:
    0 4px 0 #0a6b4a,
    0 10px 32px rgba(37,211,102,0.6),
    0 0 60px rgba(61,255,138,0.35),
    inset 0 1px 0 rgba(255,255,255,0.35),
    inset 0 3px 10px rgba(0,0,0,0.22);
}

  .campaign-slide .launch-btn.pressed {
  animation: btnGlowGloss 1.4s ease 0.1s infinite;
}

@keyframes btnGlowGloss {
  0%, 100% { filter: drop-shadow(0 0 18px rgba(61,255,138,0.45)); }
  50% { filter: drop-shadow(0 0 32px rgba(93,255,168,0.75)); }
}

  .campaign-slide .ripple {
  position: absolute;
  inset: 8% 12%;
  border-radius: 100px;
  background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 70%);
  transform: scale(0);
  opacity: 0;
  pointer-events: none;
  z-index: 3;
}

  .campaign-slide .ripple.show {
  animation: rippleGloss 0.7s cubic-bezier(0.16,1,0.3,1) forwards;
}

@keyframes rippleGloss {
  0% { transform: scale(0.3); opacity: 0.85; }
  100% { transform: scale(2.4); opacity: 0; }
}

  .campaign-slide .contact-count {
  margin-top: 32px;
  font-size: 16px;
  color: #d4af37;
  opacity: 0;
}

  .campaign-slide .scene.active .contact-count.show {
  animation: fadeUp 0.6s ease 0.5s forwards;
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Scene 2 — Progress (3D Glass Luxury) */
  .campaign-slide #scene2 {
  perspective: 1200px;
}

  .campaign-slide .prog-glass {
  position: relative;
  padding: 40px 48px 36px;
  border-radius: 28px;
  background: linear-gradient(160deg, #28283a 0%, #1a1a28 50%, #13131c 100%);
  border: 1px solid rgba(212, 175, 55, 0.35);
  box-shadow:
    0 32px 64px rgba(0, 0, 0, 0.55),
    0 0 60px rgba(37, 211, 102, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  overflow: hidden;
  animation: progPanelIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

  .campaign-slide #scene2.active .prog-glass {
  animation: progPanelIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes progPanelIn {
  from { opacity: 0; transform: translateY(40px) rotateX(12deg); }
  to { opacity: 1; transform: translateY(0) rotateX(0); }
}

  .campaign-slide .prog-glass::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.06) 0%, transparent 50%);
  pointer-events: none;
}

  .campaign-slide .prog-shine {
  position: absolute;
  top: -50%;
  left: -60%;
  width: 45%;
  height: 200%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.07), transparent);
  transform: rotate(20deg);
  animation: cardShine 6s ease-in-out infinite;
  pointer-events: none;
}

  .campaign-slide .progress-label {
  font-family: 'Cormorant Garamond', serif;
  font-size: 13px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(212, 175, 55, 0.75);
  margin-bottom: 24px;
}

.campaign-slide .prog-hero {
  display: flex;
  justify-content: center;
  margin: 0 auto 8px;
}

.campaign-slide .prog-ring-shell {
  position: relative;
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  padding: 4px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.campaign-slide .prog-ring-inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background: #050b18;
  padding: 6px;
  --score-ring-center: #050b18;
}

.campaign-slide .prog-ring-svg {
  display: block;
  transform: rotate(-90deg);
}

.campaign-slide .prog-ring-bg {
  fill: none;
  stroke: rgba(148, 163, 189, 0.12);
  stroke-width: 6;
}

.campaign-slide .prog-ring-center {
  fill: var(--score-ring-center, #050b18);
  stroke: none;
}

.campaign-slide .prog-ring-fg {
  fill: none;
  stroke: url(#progGrad);
  stroke-width: 6;
  stroke-linecap: round;
  stroke-dasharray: 534;
  stroke-dashoffset: 534;
  transition: stroke-dashoffset 0.05s linear;
}

.campaign-slide .progress-counter {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 52px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  color: #faf8f5;
  pointer-events: none;
  z-index: 1;
}

  .campaign-slide .prog-sub {
  font-size: 12px;
  color: rgba(250, 248, 245, 0.35);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 28px;
}

  .campaign-slide .progress-track-wrap {
  margin-bottom: 20px;
}

  .campaign-slide .prog-milestones {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  font-weight: 600;
  color: rgba(250, 248, 245, 0.25);
  margin-bottom: 10px;
  padding: 0 2px;
}

  .campaign-slide .prog-milestones span.on {
  color: #25D366;
  text-shadow: 0 0 12px rgba(37, 211, 102, 0.5);
}

  .campaign-slide .progress-track {
  position: relative;
  height: 18px;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(255,255,255,0.04) 100%);
  border-radius: 100px;
  overflow: visible;
  border: 1px solid rgba(212, 175, 55, 0.25);
  box-shadow:
    inset 0 3px 8px rgba(0, 0, 0, 0.5),
    0 2px 0 rgba(255, 255, 255, 0.05);
}

  .campaign-slide .progress-track::after {
  content: '';
  position: absolute;
  inset: 2px;
  border-radius: 100px;
  border: 1px solid rgba(255, 255, 255, 0.04);
  pointer-events: none;
}

  .campaign-slide .progress-fill {
  position: relative;
  height: 100%;
  width: 0%;
  border-radius: 100px;
  background: linear-gradient(90deg, #075E54 0%, #25D366 45%, #d4af37 90%, #f0d78c 100%);
  box-shadow:
    0 0 24px rgba(37, 211, 102, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
  transition: width 0.05s linear;
  overflow: hidden;
}

  .campaign-slide .progress-fill::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.25) 0%, transparent 50%);
  border-radius: 100px;
}

  .campaign-slide .progress-fill::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 60px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
  animation: barShimmer 1.5s ease-in-out infinite;
}

@keyframes barShimmer {
  0% { left: -60px; }
  100% { left: 100%; }
}

  .campaign-slide .progress-head {
  position: absolute;
  right: -2px;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #fff, #25D366 60%, #128C7E);
  box-shadow:
    0 0 16px #25D366,
    0 0 32px rgba(37, 211, 102, 0.5);
  opacity: 0;
  transition: opacity 0.3s;
}

  .campaign-slide .progress-fill.active .progress-head {
  opacity: 1;
}

  .campaign-slide .prog-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

  .campaign-slide .progress-pct {
  font-size: 28px;
  font-weight: 800;
  background: linear-gradient(135deg, #d4af37, #f0d78c);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

  .campaign-slide .prog-status {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(37, 211, 102, 0.7);
  padding: 6px 14px;
  border: 1px solid rgba(37, 211, 102, 0.25);
  border-radius: 100px;
  background: rgba(37, 211, 102, 0.08);
}

  .campaign-slide .prog-status.done {
  color: #25D366;
  border-color: rgba(37, 211, 102, 0.45);
  background: rgba(37, 211, 102, 0.15);
}

/* Scene 3 â€” Stats (3D Luxury Cards) */
  .campaign-slide #scene3 {
  flex-direction: column;
  perspective: 1400px;
}

  .campaign-slide .stats-scene-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 14px;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: rgba(212,175,55,0.7);
  margin-bottom: 28px;
  opacity: 0;
}

  .campaign-slide #scene3.active .stats-scene-title.show {
  animation: fadeUp 0.7s ease forwards;
}

.campaign-slide .stats-grid {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 22px;
  margin-bottom: 48px;
  transform-style: preserve-3d;
}

  .campaign-slide .stat-card {
  position: relative;
  width: 188px;
  transform-style: preserve-3d;
  opacity: 0;
  transform: translateY(70px) rotateX(28deg) scale(0.82);
}

  .campaign-slide .stat-card.is-visible {
  opacity: 1;
}

  .campaign-slide .stat-card.pop {
  animation: card3dIn 0.85s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes card3dIn {
  0% { opacity: 0; transform: translateY(70px) rotateX(28deg) scale(0.82); }
  60% { opacity: 1; transform: translateY(-8px) rotateX(-4deg) scale(1.03); }
  100% { opacity: 1; transform: translateY(0) rotateX(0deg) scale(1); }
}

  .campaign-slide .stat-card.is-visible .stat-card-inner {
  animation: cardFloat 4s ease-in-out infinite;
}

@keyframes cardFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

  .campaign-slide .stat-card:nth-child(1).pop { animation-delay: 0s; }
  .campaign-slide .stat-card:nth-child(2).pop { animation-delay: 0.12s; }
  .campaign-slide .stat-card:nth-child(3).pop { animation-delay: 0.24s; }
  .campaign-slide .stat-card:nth-child(4).pop { animation-delay: 0.36s; }

  .campaign-slide .stat-card-inner {
  position: relative;
  border-radius: 22px;
  padding: 28px 22px 24px;
  text-align: center;
  overflow: hidden;
  background: linear-gradient(160deg, #252535 0%, #18182a 50%, #12121c 100%);
  border: 1px solid rgba(212, 175, 55, 0.35);
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.06) inset,
    0 2px 0 rgba(255, 255, 255, 0.1) inset;
}

  .campaign-slide .stat-card.sent .stat-card-inner {
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: 0 24px 48px rgba(0,0,0,0.55), 0 0 30px rgba(255,255,255,0.04);
}

  .campaign-slide .stat-card.delivered .stat-card-inner {
  border-color: rgba(37, 211, 102, 0.5);
  box-shadow: 0 24px 48px rgba(0,0,0,0.55), 0 0 40px rgba(37,211,102,0.12);
}

  .campaign-slide .stat-card.read .stat-card-inner {
  border-color: rgba(83, 189, 235, 0.45);
  box-shadow: 0 24px 48px rgba(0,0,0,0.55), 0 0 40px rgba(83,189,235,0.1);
}

  .campaign-slide .stat-card.replied .stat-card-inner {
  border-color: rgba(212, 175, 55, 0.55);
  box-shadow: 0 24px 48px rgba(0,0,0,0.55), 0 0 40px rgba(212,175,55,0.12);
}

  .campaign-slide .stat-card-inner::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(255,255,255,0.08) 0%, transparent 50%);
  pointer-events: none;
}

  .campaign-slide .stat-shine {
  position: absolute;
  top: -50%;
  left: -80%;
  width: 60%;
  height: 200%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.12), transparent);
  transform: rotate(25deg);
  animation: cardShine 4s ease-in-out infinite;
  pointer-events: none;
}

@keyframes cardShine {
  0%, 100% { left: -80%; opacity: 0; }
  45% { opacity: 1; }
  55%, 100% { left: 140%; opacity: 0; }
}

  .campaign-slide .stat-icon-wrap {
  width: 52px;
  height: 52px;
  margin: 0 auto 18px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateZ(32px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}

  .campaign-slide .stat-icon-wrap svg {
  width: 24px;
  height: 24px;
}

  .campaign-slide .stat-card.sent .stat-icon-wrap {
  background: linear-gradient(145deg, rgba(255,255,255,0.15), rgba(255,255,255,0.04));
  border: 1px solid rgba(255,255,255,0.12);
  color: #faf8f5;
}

  .campaign-slide .stat-card.delivered .stat-icon-wrap {
  background: linear-gradient(145deg, rgba(37,211,102,0.35), rgba(18,140,126,0.15));
  border: 1px solid rgba(37,211,102,0.4);
  color: #25D366;
  box-shadow: 0 8px 32px rgba(37,211,102,0.25);
}

  .campaign-slide .stat-card.read .stat-icon-wrap {
  background: linear-gradient(145deg, rgba(59,130,246,0.35), rgba(37,99,235,0.15));
  border: 1px solid rgba(59,130,246,0.4);
  color: #53bdeb;
  box-shadow: 0 8px 32px rgba(59,130,246,0.2);
}

  .campaign-slide .stat-card.replied .stat-icon-wrap {
  background: linear-gradient(145deg, rgba(212,175,55,0.35), rgba(184,148,46,0.15));
  border: 1px solid rgba(212,175,55,0.45);
  color: #f0d78c;
  box-shadow: 0 8px 32px rgba(212,175,55,0.2);
}

  .campaign-slide .stat-value {
  font-size: 46px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  margin-bottom: 6px;
  line-height: 1;
  letter-spacing: -0.02em;
  transform: translateZ(20px);
}

  .campaign-slide .stat-card.sent .stat-value {
  color: #faf8f5;
  text-shadow: 0 0 30px rgba(255,255,255,0.15);
}

  .campaign-slide .stat-card.delivered .stat-value {
  color: #25D366;
  text-shadow: 0 0 40px rgba(37,211,102,0.45);
}

  .campaign-slide .stat-card.read .stat-value {
  color: #53bdeb;
  text-shadow: 0 0 40px rgba(83,189,235,0.4);
}

  .campaign-slide .stat-card.replied .stat-value {
  color: #d4af37;
  text-shadow: 0 0 40px rgba(212,175,55,0.4);
}

  .campaign-slide .stat-card.pop.pulse .stat-value {
  animation: numPulse 0.5s ease;
}

@keyframes numPulse {
  0%, 100% { transform: translateZ(20px) scale(1); }
  50% { transform: translateZ(28px) scale(1.08); }
}

  .campaign-slide .stat-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: rgba(250,248,245,0.4);
  font-weight: 600;
}

  .campaign-slide .stat-card-glow {
  position: absolute;
  inset: 10px;
  border-radius: 22px;
  filter: blur(28px);
  opacity: 0;
  z-index: -1;
  transition: opacity 0.5s;
}

  .campaign-slide .stat-card.pop .stat-card-glow { opacity: 0.55; }

  .campaign-slide .stat-card.sent .stat-card-glow { background: rgba(255,255,255,0.08); }
  .campaign-slide .stat-card.delivered .stat-card-glow { background: rgba(37,211,102,0.35); }
  .campaign-slide .stat-card.read .stat-card-glow { background: rgba(59,130,246,0.3); }
  .campaign-slide .stat-card.replied .stat-card-glow { background: rgba(212,175,55,0.35); }

  .campaign-slide .stat-card-shadow {
  position: absolute;
  bottom: -14px;
  left: 12%;
  width: 76%;
  height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.55) 0%, transparent 70%);
  transform: rotateX(80deg) translateZ(-10px);
  filter: blur(6px);
  opacity: 0;
}

  .campaign-slide .stat-card.pop .stat-card-shadow {
  animation: shadowIn 0.85s ease forwards;
}

@keyframes shadowIn {
  to { opacity: 1; }
}

  .campaign-slide .complete-badge {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 18px 42px;
  background: linear-gradient(135deg, rgba(37,211,102,0.18), rgba(37,211,102,0.06));
  border: 1px solid rgba(37,211,102,0.45);
  border-radius: 100px;
  color: #25D366;
  font-size: 18px;
  font-weight: 700;
  opacity: 0;
  transform: scale(0.75) translateY(20px);
  box-shadow: 0 16px 48px rgba(37,211,102,0.2), inset 0 1px 0 rgba(255,255,255,0.1);
  backdrop-filter: blur(12px);
}

  .campaign-slide .complete-badge.show {
  animation: badge3dIn 0.75s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes badge3dIn {
  to { opacity: 1; transform: scale(1) translateY(0); }
}

  .campaign-slide .check-circle {
  width: 34px;
  height: 34px;
  background: linear-gradient(135deg, #25D366, #128C7E);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 24px rgba(37,211,102,0.55);
}

  .campaign-slide .check-circle svg { width: 16px; height: 16px; }

/* Scene 4 â€” Liquid Glass Notifications (iOS-style) */
  .campaign-slide #scene4 {
  perspective: 1400px;
  overflow: hidden;
}

.campaign-slide .glass-stage {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 36px 48px 28px;
  box-sizing: border-box;
}

.campaign-slide .glass-cinematic-bg {
  display: none;
}

.campaign-slide .glass-scene-label {
  position: relative;
  z-index: 3;
  flex-shrink: 0;
  font-family: 'Cormorant Garamond', serif;
  font-size: 13px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: rgba(212, 175, 55, 0.7);
  margin: 0 0 24px;
  opacity: 0;
  transform: translateY(12px);
}

  .campaign-slide .glass-scene-label.show {
  animation: fadeUp 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.campaign-slide .glass-stack-wrap {
  position: relative;
  z-index: 2;
  width: min(520px, 92%);
  min-height: 0;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
}

  .campaign-slide .glass-stack {
  position: relative;
  width: 100%;
  max-height: min(420px, 52vh);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  overflow: hidden;
}

  .campaign-slide .glass-notif {
  position: relative;
  width: 100%;
  opacity: 0;
  transform: translateY(-48px) scale(0.94);
  filter: blur(6px);
  will-change: transform, opacity, filter;
}

  .campaign-slide .glass-notif.show {
  animation: glassNotifIn 0.72s cubic-bezier(0.22, 1.28, 0.36, 1) forwards;
}

@keyframes glassNotifIn {
  0% {
    opacity: 0;
    transform: translateY(-48px) scale(0.94);
    filter: blur(6px);
  }
  55% {
    opacity: 1;
    filter: blur(0);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

  .campaign-slide .glass-notif-inner {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 18px 14px 14px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.11);
  border: 1px solid rgba(255, 255, 255, 0.28);
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(255, 255, 255, 0.06) inset,
    0 1px 0 rgba(255, 255, 255, 0.22) inset;
  backdrop-filter: blur(28px) saturate(180%);
  -webkit-backdrop-filter: blur(28px) saturate(180%);
  overflow: hidden;
}

  .campaign-slide .glass-notif-inner::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(255,255,255,0.16) 0%, transparent 42%, rgba(255,255,255,0.04) 100%);
  pointer-events: none;
}

  .campaign-slide .glass-notif-shine {
  position: absolute;
  top: -60%;
  left: -40%;
  width: 45%;
  height: 200%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.12), transparent);
  transform: rotate(18deg);
  animation: cardShine 5s ease-in-out infinite;
  pointer-events: none;
}

  .campaign-slide .glass-notif-avatar-wrap {
  position: relative;
  flex-shrink: 0;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
}

  .campaign-slide .glass-notif-avatar {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  object-fit: contain;
  object-position: center;
  padding: 5px;
  border: 2px solid rgba(255, 255, 255, 0.85);
  box-sizing: border-box;
  background: #ffffff;
  display: block;
}

  .campaign-slide .glass-notif-wa-badge {
  position: absolute;
  right: -3px;
  bottom: -3px;
  width: 20px;
  height: 20px;
  border-radius: 6px;
  background: #25D366;
  border: 2px solid rgba(255, 255, 255, 0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(37, 211, 102, 0.5);
}

  .campaign-slide .glass-notif-wa-badge svg {
  width: 12px;
  height: 12px;
  fill: #fff;
}

  .campaign-slide .glass-notif-content {
  flex: 1;
  min-width: 0;
  padding-top: 1px;
}

  .campaign-slide .glass-notif-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
}

  .campaign-slide .glass-notif-title {
  font-size: 15px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.96);
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

  .campaign-slide .glass-notif-time {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.42);
}

  .campaign-slide .glass-notif-msg {
  font-size: 13px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.72);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

  .campaign-slide .glass-notif.show .glass-notif-inner {
  animation: glassPulse 0.5s ease 0.35s;
}

@keyframes glassPulse {
  0%, 100% { box-shadow: 0 24px 48px rgba(0,0,0,0.45), 0 0 0 1px rgba(255,255,255,0.06) inset, 0 1px 0 rgba(255,255,255,0.22) inset; }
  50% { box-shadow: 0 24px 48px rgba(0,0,0,0.45), 0 0 20px rgba(255,255,255,0.06), 0 0 0 1px rgba(255,255,255,0.08) inset; }
}

  .campaign-slide .glass-delivered-badge {
  position: relative;
  z-index: 2;
  margin-top: 26px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 18px;
  border-radius: 100px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(37, 211, 102, 0.9);
  background: rgba(37, 211, 102, 0.1);
  border: 1px solid rgba(37, 211, 102, 0.28);
  opacity: 0;
  transform: translateY(10px);
}

  .campaign-slide .glass-delivered-badge.show {
  animation: fadeUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

  .campaign-slide .glass-delivered-badge svg {
  width: 14px;
  height: 14px;
  stroke: #25D366;
  fill: none;
  stroke-width: 2.5;
}

  .campaign-slide .glass-notif:nth-child(1) { z-index: 5; }
  .campaign-slide .glass-notif:nth-child(2) { z-index: 4; }
  .campaign-slide .glass-notif:nth-child(3) { z-index: 3; }
  .campaign-slide .glass-notif:nth-child(4) { z-index: 2; }
  .campaign-slide .glass-notif:nth-child(5) { z-index: 1; }

  .campaign-slide .glass-notif.dimmed .glass-notif-inner {
  opacity: 0.78;
  transform: scale(0.988);
  filter: saturate(0.85);
  transition: opacity 0.45s ease, transform 0.45s ease, filter 0.45s ease;
}

  .campaign-slide .glass-notif.glass-notif--dismissed {
  opacity: 0;
  max-height: 0;
  margin: 0;
  overflow: hidden;
  pointer-events: none;
  transform: translateY(-12px) scale(0.96);
  transition:
    opacity 0.35s ease,
    max-height 0.35s ease,
    margin 0.35s ease,
    transform 0.35s ease;
}

  .campaign-slide .glass-notif:nth-child(1) .glass-notif-shine { animation-delay: 0s; }
  .campaign-slide .glass-notif:nth-child(2) .glass-notif-shine { animation-delay: 0.8s; }
  .campaign-slide .glass-notif:nth-child(3) .glass-notif-shine { animation-delay: 1.6s; }
  .campaign-slide .glass-notif:nth-child(4) .glass-notif-shine { animation-delay: 2.4s; }
  .campaign-slide .glass-notif:nth-child(5) .glass-notif-shine { animation-delay: 3.2s; }

/* Scene 5 â€” End card */
  .campaign-slide #scene5 {
  perspective: 1200px;
}

  .campaign-slide .end-card {
  text-align: center;
}

  .campaign-slide .end-headline {
  font-family: 'Cormorant Garamond', serif;
  font-size: 64px;
  font-weight: 700;
  color: #faf8f5;
  margin-bottom: 16px;
  opacity: 0;
}

  .campaign-slide .end-headline.show { animation: fadeUp 0.8s ease forwards; }

  .campaign-slide .end-headline span {
  background: linear-gradient(135deg, #25D366, #d4af37);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

  .campaign-slide .end-sub {
  font-size: 22px;
  color: rgba(250,248,245,0.5);
  margin-bottom: 40px;
  opacity: 0;
}

  .campaign-slide .end-sub.show { animation: fadeUp 0.8s ease 0.3s forwards; }

.campaign-slide .end-stats-mini {
  display: flex;
  flex-wrap: nowrap;
  gap: 18px;
  justify-content: center;
  opacity: 0;
  perspective: 1200px;
  transform-style: preserve-3d;
}

  .campaign-slide .end-stats-mini.show { animation: fadeUp 0.6s ease 0.5s forwards; }

  .campaign-slide .mini-stat {
  position: relative;
  width: 148px;
  transform-style: preserve-3d;
}

  .campaign-slide .end-stats-mini.show .mini-stat {
  animation: miniCard3dIn 0.75s cubic-bezier(0.16, 1, 0.3, 1) backwards;
}

  .campaign-slide .end-stats-mini.show .mini-stat:nth-child(1) { animation-delay: 0.65s; }
  .campaign-slide .end-stats-mini.show .mini-stat:nth-child(2) { animation-delay: 0.78s; }
  .campaign-slide .end-stats-mini.show .mini-stat:nth-child(3) { animation-delay: 0.91s; }
  .campaign-slide .end-stats-mini.show .mini-stat:nth-child(4) { animation-delay: 1.04s; }

@keyframes miniCard3dIn {
  0% { opacity: 0; transform: translateY(40px) rotateX(25deg) scale(0.85); }
  70% { opacity: 1; transform: translateY(-4px) rotateX(-3deg) scale(1.02); }
  100% { opacity: 1; transform: translateY(0) rotateX(0) scale(1); }
}

  .campaign-slide .end-stats-mini.show .mini-inner {
  animation: cardFloat 4.5s ease-in-out infinite;
}

  .campaign-slide .mini-glow {
  position: absolute;
  inset: 6px;
  border-radius: 18px;
  filter: blur(22px);
  opacity: 0.5;
  z-index: 0;
}

  .campaign-slide .mini-stat.sent .mini-glow { background: rgba(255,255,255,0.06); }
  .campaign-slide .mini-stat.delivered .mini-glow { background: rgba(37,211,102,0.3); }
  .campaign-slide .mini-stat.read .mini-glow { background: rgba(83,189,235,0.28); }
  .campaign-slide .mini-stat.replied .mini-glow { background: rgba(212,175,55,0.32); }

  .campaign-slide .mini-inner {
  position: relative;
  z-index: 1;
  padding: 22px 14px 18px;
  text-align: center;
  border-radius: 18px;
  overflow: hidden;
  background: linear-gradient(160deg, #28283a 0%, #1a1a28 55%, #13131c 100%);
  border: 1px solid rgba(212, 175, 55, 0.35);
  box-shadow:
    0 20px 44px rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

  .campaign-slide .mini-stat.sent .mini-inner { border-color: rgba(255,255,255,0.22); }
  .campaign-slide .mini-stat.delivered .mini-inner { border-color: rgba(37,211,102,0.5); box-shadow: 0 20px 44px rgba(0,0,0,0.5), 0 0 32px rgba(37,211,102,0.1); }
  .campaign-slide .mini-stat.read .mini-inner { border-color: rgba(83,189,235,0.45); box-shadow: 0 20px 44px rgba(0,0,0,0.5), 0 0 32px rgba(83,189,235,0.08); }
  .campaign-slide .mini-stat.replied .mini-inner { border-color: rgba(212,175,55,0.55); box-shadow: 0 20px 44px rgba(0,0,0,0.5), 0 0 32px rgba(212,175,55,0.1); }

  .campaign-slide .mini-inner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.07) 0%, transparent 55%);
  pointer-events: none;
}

  .campaign-slide .mini-shine {
  position: absolute;
  top: -40%;
  left: -70%;
  width: 50%;
  height: 180%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
  transform: rotate(22deg);
  animation: cardShine 5s ease-in-out infinite;
  pointer-events: none;
}

  .campaign-slide .mini-ico {
  width: 38px;
  height: 38px;
  margin: 0 auto 12px;
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(0,0,0,0.3);
}

  .campaign-slide .mini-ico svg { width: 18px; height: 18px; }

  .campaign-slide .mini-stat.sent .mini-ico {
  background: linear-gradient(145deg, rgba(255,255,255,0.14), rgba(255,255,255,0.04));
  border: 1px solid rgba(255,255,255,0.12);
  color: #faf8f5;
}

  .campaign-slide .mini-stat.delivered .mini-ico {
  background: linear-gradient(145deg, rgba(37,211,102,0.35), rgba(18,140,126,0.12));
  border: 1px solid rgba(37,211,102,0.4);
  color: #25D366;
}

  .campaign-slide .mini-stat.read .mini-ico {
  background: linear-gradient(145deg, rgba(83,189,235,0.3), rgba(37,99,235,0.12));
  border: 1px solid rgba(83,189,235,0.38);
  color: #53bdeb;
}

  .campaign-slide .mini-stat.replied .mini-ico {
  background: linear-gradient(145deg, rgba(212,175,55,0.32), rgba(184,148,46,0.12));
  border: 1px solid rgba(212,175,55,0.42);
  color: #f0d78c;
}

  .campaign-slide .mini-stat val {
  display: block;
  font-size: 32px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  margin-bottom: 6px;
}

  .campaign-slide .mini-stat.sent val { color: #faf8f5; text-shadow: 0 0 24px rgba(255,255,255,0.12); }
  .campaign-slide .mini-stat.delivered val { color: #25D366; text-shadow: 0 0 28px rgba(37,211,102,0.4); }
  .campaign-slide .mini-stat.read val { color: #53bdeb; text-shadow: 0 0 28px rgba(83,189,235,0.35); }
  .campaign-slide .mini-stat.replied val { color: #d4af37; text-shadow: 0 0 28px rgba(212,175,55,0.35); }

  .campaign-slide .mini-stat lbl {
  font-size: 9px;
  color: rgba(250,248,245,0.42);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 600;
}

.campaign-slide .mini-shadow {
  position: absolute;
  bottom: -10px;
  left: 15%;
  width: 70%;
  height: 14px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(5px);
  z-index: 0;
}

@media (max-width: 767px) {
  .campaign-slide.is-mobile-layout {
    align-items: stretch;
  }

  .campaign-slide.is-mobile-layout .stage-wrap {
    align-items: stretch;
    justify-content: center;
  }

  .campaign-slide.is-mobile-layout .stage {
    width: 100% !important;
    height: 100% !important;
    flex-shrink: 1;
    transform: none !important;
  }

  .campaign-slide.is-mobile-layout .scene {
    padding: 10px 14px;
    box-sizing: border-box;
    justify-content: center;
  }

  .campaign-slide.is-mobile-layout .campaign-panel {
    width: 100%;
    max-width: 100%;
    transform: none !important;
    box-sizing: border-box;
  }

  .campaign-slide.is-mobile-layout .launch-panel,
  .campaign-slide.is-mobile-layout .progress-panel,
  .campaign-slide.is-mobile-layout .end-card,
  .campaign-slide.is-mobile-layout .glass-stack-wrap,
  .campaign-slide.is-mobile-layout .stats-panel {
    width: 100%;
    max-width: 100%;
  }

  .campaign-slide.is-mobile-layout .brand {
    font-size: clamp(0.8rem, 3.8vw, 1.05rem);
    margin-bottom: 14px;
    letter-spacing: 0.12em;
  }

  .campaign-slide.is-mobile-layout .launch-title {
    font-size: clamp(2rem, 9.5vw, 2.75rem);
    margin-bottom: 10px;
    line-height: 1.08;
  }

  .campaign-slide.is-mobile-layout .launch-sub {
    font-size: clamp(1rem, 4.5vw, 1.2rem);
    margin-bottom: 28px;
    line-height: 1.45;
  }

  .campaign-slide.is-mobile-layout .launch-btn-face {
    padding: 16px 36px;
    font-size: 1.05rem;
  }

  .campaign-slide.is-mobile-layout .contact-count {
    font-size: 1rem;
    margin-top: 22px;
  }

  .campaign-slide.is-mobile-layout .prog-glass {
    width: 100%;
    padding: 26px 18px 22px;
    border-radius: 20px;
    box-sizing: border-box;
  }

  .campaign-slide.is-mobile-layout .progress-label {
    font-size: clamp(0.72rem, 3.2vw, 0.88rem);
    letter-spacing: 0.18em;
    margin-bottom: 14px;
  }

  .campaign-slide.is-mobile-layout .prog-ring-svg {
    width: clamp(160px, 46vw, 210px);
    height: clamp(160px, 46vw, 210px);
  }

  .campaign-slide.is-mobile-layout .progress-counter {
    font-size: clamp(2.75rem, 13vw, 3.75rem);
  }

  .campaign-slide.is-mobile-layout .prog-sub {
    font-size: clamp(0.72rem, 3.2vw, 0.85rem);
    margin-bottom: 18px;
  }

  .campaign-slide.is-mobile-layout .prog-milestones {
    font-size: clamp(0.68rem, 3vw, 0.8rem);
  }

  .campaign-slide.is-mobile-layout .progress-track {
    height: 16px;
  }

  .campaign-slide.is-mobile-layout .progress-pct {
    font-size: clamp(1.35rem, 6vw, 1.75rem);
  }

  .campaign-slide.is-mobile-layout .prog-status {
    font-size: clamp(0.68rem, 3vw, 0.8rem);
    padding: 7px 14px;
  }

  .campaign-slide.is-mobile-layout .stats-scene-title {
    font-size: clamp(0.72rem, 3.2vw, 0.88rem);
    letter-spacing: 0.18em;
    margin-bottom: 16px;
  }

  .campaign-slide.is-mobile-layout .stats-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    gap: 12px;
    width: 100%;
    margin-bottom: 18px;
    transform-style: flat;
    perspective: none;
  }

  .campaign-slide.is-mobile-layout .stat-card {
    width: 100% !important;
    min-width: 0;
    max-width: none;
    flex: none;
    opacity: 1;
    transform: none !important;
    transform-style: flat;
    position: relative;
    display: block;
  }

  .campaign-slide.is-mobile-layout .stat-card.pop {
    animation: mobileStatIn 0.45s ease forwards;
  }

  @keyframes mobileStatIn {
    from { opacity: 0; transform: translateY(10px) !important; }
    to { opacity: 1; transform: none !important; }
  }

  .campaign-slide.is-mobile-layout .stat-card.is-visible .stat-card-inner {
    animation: none;
  }

  .campaign-slide.is-mobile-layout .stat-card-inner {
    padding: 16px 12px 14px;
    border-radius: 18px;
    width: 100%;
    box-sizing: border-box;
  }

  .campaign-slide.is-mobile-layout .stat-card-glow,
  .campaign-slide.is-mobile-layout .stat-card-shadow {
    display: none;
  }

  .campaign-slide.is-mobile-layout .stat-card.pop.pulse .stat-value {
    animation: none;
  }

  .campaign-slide.is-mobile-layout .stat-value {
    transform: none;
  }

  .campaign-slide.is-mobile-layout .stat-icon-wrap {
    width: 44px;
    height: 44px;
    margin-bottom: 12px;
    border-radius: 14px;
  }

  .campaign-slide.is-mobile-layout .stat-icon-wrap svg {
    width: 22px;
    height: 22px;
  }

  .campaign-slide.is-mobile-layout .stat-value {
    font-size: clamp(1.85rem, 9vw, 2.5rem);
    margin-bottom: 4px;
  }

  .campaign-slide.is-mobile-layout .stat-label {
    font-size: clamp(0.62rem, 2.8vw, 0.75rem);
    letter-spacing: 0.12em;
  }

  .campaign-slide.is-mobile-layout .complete-badge {
    font-size: clamp(0.88rem, 4vw, 1.05rem);
    padding: 14px 22px;
    gap: 10px;
  }

  .campaign-slide.is-mobile-layout .check-circle {
    width: 30px;
    height: 30px;
  }

  .campaign-slide.is-mobile-layout .glass-panel {
    width: 100%;
    height: 100%;
  }

  .campaign-slide.is-mobile-layout .glass-panel .glass-stage {
    width: 100%;
    height: 100%;
    padding: 10px 14px 12px;
    box-sizing: border-box;
    justify-content: flex-start;
  }

  .campaign-slide.is-mobile-layout .glass-scene-label {
    font-size: clamp(0.72rem, 3.2vw, 0.88rem);
    letter-spacing: 0.18em;
    margin-bottom: 12px;
    flex-shrink: 0;
  }

  .campaign-slide.is-mobile-layout .stats-panel {
    width: 100%;
    max-width: 100%;
    justify-content: center;
  }

  .campaign-slide.is-mobile-layout #scene3 {
    perspective: none;
  }

  .campaign-slide.is-mobile-layout .glass-stack-wrap {
    width: 100%;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 16px;
    overflow: hidden;
  }

  .campaign-slide.is-mobile-layout .glass-stack {
    flex: 0 1 auto;
    width: 100%;
    max-height: 50%;
    overflow: hidden;
    gap: 8px;
  }

  .campaign-slide.is-mobile-layout .glass-stack.glass-stack--cleared {
    max-height: 0;
    opacity: 0;
  }

  .campaign-slide.is-mobile-layout .glass-notif {
    flex-shrink: 0;
  }

  .campaign-slide.is-mobile-layout .glass-notif-inner {
    padding: 10px 12px;
    gap: 10px;
    border-radius: 18px;
  }

  .campaign-slide.is-mobile-layout .glass-notif-avatar-wrap,
  .campaign-slide.is-mobile-layout .glass-notif-avatar {
    width: 40px;
    height: 40px;
  }

  .campaign-slide.is-mobile-layout .glass-notif-title {
    font-size: clamp(0.82rem, 3.8vw, 0.95rem);
  }

  .campaign-slide.is-mobile-layout .glass-notif-msg {
    font-size: clamp(0.72rem, 3.2vw, 0.85rem);
    line-height: 1.35;
    -webkit-line-clamp: 1;
  }

  .campaign-slide.is-mobile-layout .glass-delivered-badge {
    flex-shrink: 0;
    margin-top: 0;
    margin-bottom: 0;
    font-size: clamp(0.72rem, 3.2vw, 0.88rem);
    padding: 12px 18px;
    letter-spacing: 0.08em;
    align-self: center;
    max-width: 100%;
    text-align: center;
  }

  .campaign-slide.is-mobile-layout .glass-delivered-badge svg {
    width: 16px;
    height: 16px;
  }

  .campaign-slide.is-mobile-layout .end-headline {
    font-size: clamp(1.85rem, 8.5vw, 2.5rem);
    margin-bottom: 10px;
    line-height: 1.1;
  }

  .campaign-slide.is-mobile-layout .end-sub {
    font-size: clamp(0.95rem, 4.2vw, 1.15rem);
    margin-bottom: 22px;
    line-height: 1.4;
  }

  .campaign-slide.is-mobile-layout .end-stats-mini {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    width: 100%;
    flex-wrap: wrap;
  }

  .campaign-slide.is-mobile-layout .mini-stat {
    width: 100% !important;
    min-width: 0;
    flex: none;
  }

  .campaign-slide.is-mobile-layout .mini-inner {
    padding: 16px 12px 14px;
  }

  .campaign-slide.is-mobile-layout .mini-ico {
    width: 36px;
    height: 36px;
    margin-bottom: 10px;
  }

  .campaign-slide.is-mobile-layout .mini-stat val {
    font-size: clamp(1.65rem, 8vw, 2.2rem);
  }

  .campaign-slide.is-mobile-layout .mini-stat lbl {
    font-size: clamp(0.58rem, 2.6vw, 0.72rem);
    letter-spacing: 0.1em;
  }
}
