/* ============================================================
   RISE × Uzbekistan — partner pitch deck
   Long-page scroll-snap layout on top of the Rise design system.
   ============================================================ */

:root {
  /* Tweak-driven CSS vars (overridden by JS) */
  --accent: var(--rise-acid);
  --accent-ink: var(--rise-blue);
  --anim-speed: 1;
  --dur-section: calc(520ms * var(--anim-speed));
  --dur-base-x: calc(200ms * var(--anim-speed));
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--rise-white);
  color: var(--fg);
  scroll-behavior: smooth;
}

/* Scroll-snap container */
.deck {
  scroll-snap-type: y mandatory;
  height: 100vh;
  overflow-y: scroll;
  overflow-x: hidden;
  scrollbar-width: none;
}
.deck::-webkit-scrollbar { display: none; }

/* Each slide */
.slide {
  scroll-snap-align: start;
  scroll-snap-stop: always;
  min-height: 100vh;
  width: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 64px 80px;
  overflow: hidden;
}
.slide-inner {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 32px;
}

/* Themed slides */
.slide.dark {
  background: var(--rise-blue);
  color: var(--rise-white);
}
.slide.dark .eyebrow { color: var(--rise-acid); }
.slide.dark .muted { color: rgba(245,245,245,0.65); }

.slide.graphite {
  background: var(--neutral-900);
  color: var(--rise-white);
}
.slide.graphite .eyebrow { color: var(--rise-acid); }
.slide.graphite .muted { color: rgba(245,245,245,0.65); }

.slide.acid {
  background: var(--rise-acid);
  color: var(--rise-blue);
}
.slide.acid .eyebrow { color: var(--rise-blue); }

.slide.light .muted { color: var(--fg-muted); }

/* Header chrome */
.deck-chrome {
  position: fixed;
  top: 24px;
  left: 32px;
  right: 32px;
  z-index: 50;
  display: flex;
  justify-content: space-between;
  align-items: center;
  pointer-events: none;
}
.deck-chrome .brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: -0.01em;
  color: var(--fg);
  pointer-events: auto;
  background: rgba(245,245,245,0.78);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 12px 14px 12px 10px;
  border-radius: 16px;
  border: 1px solid var(--neutral-200);
}
.deck-chrome .brand .badge-img {
  width: auto;
  height: 44px;
  display: block;
  border-radius: 10px;
  color: var(--rise-blue);
}
.deck.dark-chrome .deck-chrome .brand .badge-img,
body.dark-chrome .deck-chrome .brand .badge-img {
  color: var(--rise-acid);
}
.deck-chrome .brand .badge {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--rise-blue);
  color: var(--rise-acid);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 14px;
  letter-spacing: -0.02em;
}
.deck.dark-chrome .deck-chrome .brand,
body.dark-chrome .deck-chrome .brand {
  background: rgba(34,34,34,0.5);
  border-color: rgba(255,255,255,0.12);
  color: var(--rise-white);
}
.deck-chrome .counter {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--fg-muted);
  background: rgba(245,245,245,0.78);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid var(--neutral-200);
}
.deck.dark-chrome .deck-chrome .counter,
body.dark-chrome .deck-chrome .counter {
  background: rgba(34,34,34,0.5);
  border-color: rgba(255,255,255,0.12);
  color: rgba(245,245,245,0.8);
}
.counter .num { color: var(--fg); font-weight: 700; }
.deck.dark-chrome .counter .num,
body.dark-chrome .counter .num { color: var(--rise-white); }

/* Progress dots */
.progress {
  position: fixed;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 40;
  display: flex;
  flex-direction: column;
  gap: 6px;
  pointer-events: auto;
}
.progress button {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: none;
  background: var(--neutral-300);
  cursor: pointer;
  padding: 0;
  transition: all var(--dur-base-x) var(--ease-standard);
}
.progress button:hover { transform: scale(1.4); }
.progress button.active {
  width: 8px;
  height: 22px;
  background: var(--rise-blue);
}
.deck.dark-chrome .progress button,
body.dark-chrome .progress button { background: rgba(255,255,255,0.3); }
.deck.dark-chrome .progress button.active,
body.dark-chrome .progress button.active { background: var(--rise-acid); }

/* Slide header pattern */
.slide-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.slide-eyebrow .num {
  font-family: var(--font-mono);
  font-weight: 500;
  letter-spacing: 0;
}
.slide-eyebrow .dot {
  --eyebrow-dot-color: var(--rise-blue);
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--eyebrow-dot-color);
  position: relative;
}
.slide-eyebrow .dot::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: var(--eyebrow-dot-color);
  opacity: 0.45;
  animation: eyebrow-dot-pulse 2.4s ease-out infinite;
  pointer-events: none;
}
.slide.dark .slide-eyebrow .dot,
.slide.graphite .slide-eyebrow .dot {
  --eyebrow-dot-color: var(--rise-acid);
}
@keyframes eyebrow-dot-pulse {
  0% { transform: scale(1); opacity: 0.45; }
  100% { transform: scale(4); opacity: 0; }
}

h1.slide-title {
  font-size: clamp(48px, 6vw, 88px);
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -0.035em;
  margin: 0;
  max-width: 18ch;
  text-wrap: balance;
}
h2.slide-title {
  font-size: clamp(40px, 5vw, 64px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin: 0;
  max-width: 22ch;
  text-wrap: balance;
}
.slide-lede {
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.5;
  max-width: 60ch;
  margin: 0;
  color: var(--fg-muted);
}
.slide.dark .slide-lede,
.slide.graphite .slide-lede { color: rgba(245,245,245,0.78); }

/* Cards */
.card {
  background: var(--rise-pure-white);
  border-radius: 28px;
  padding: 28px;
  border: 1px solid var(--neutral-100);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.card.outlined {
  background: transparent;
  border: 1px solid #cccccc;
}
.card.blue {
  background: var(--rise-blue);
  color: var(--rise-white);
  border: none;
}
.card.acid {
  background: var(--rise-acid);
  color: var(--rise-blue);
  border: none;
}
.card.dark-stroke {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  color: var(--rise-white);
}
.card h3 { font-size: 22px; line-height: 1.2; letter-spacing: -0.02em; font-weight: 700; margin: 0; }
.card p { font-size: 15px; line-height: 1.55; margin: 0; }
.card .num-big {
  font-size: 64px;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
  font-feature-settings: "tnum" 1;
}

/* Grid utilities */
.grid { display: grid; gap: 20px; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.flex { display: flex; gap: 20px; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.gap-8 { gap: 8px; }
.gap-12 { gap: 12px; }
.gap-16 { gap: 16px; }
.gap-24 { gap: 24px; }
.gap-32 { gap: 32px; }
.gap-48 { gap: 48px; }

/* Tag / chip */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: -0.005em;
  border: 1px solid var(--neutral-200);
  background: var(--rise-pure-white);
  color: var(--fg);
}
.chip.solid { background: var(--rise-blue); color: var(--rise-white); border-color: var(--rise-blue); }
.chip.acid { background: var(--rise-acid); color: var(--rise-blue); border-color: var(--rise-acid); }
.slide.dark .chip { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.15); color: var(--rise-white); }

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 22px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  border-radius: 14px;
  border: none;
  cursor: pointer;
  transition: all var(--dur-base-x) var(--ease-standard);
  text-decoration: none;
}
.btn.primary { background: var(--rise-blue); color: var(--rise-white); }
.btn.primary:hover { background: var(--blue-600); transform: translateY(-1px); }
.btn.ghost { background: transparent; color: inherit; border: 1px solid currentColor; }
.btn.acid { background: var(--rise-acid); color: var(--rise-blue); }

/* Reveal-on-scroll */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  filter: blur(6px);
  transition: opacity 0.75s var(--ease-out),
              transform 0.75s var(--ease-out),
              filter 0.6s var(--ease-out);
}
.reveal.in {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}
.reveal[data-delay="1"] { transition-delay: calc(80ms * var(--anim-speed)); }
.reveal[data-delay="2"] { transition-delay: calc(160ms * var(--anim-speed)); }
.reveal[data-delay="3"] { transition-delay: calc(240ms * var(--anim-speed)); }
.reveal[data-delay="4"] { transition-delay: calc(320ms * var(--anim-speed)); }
.reveal[data-delay="5"] { transition-delay: calc(400ms * var(--anim-speed)); }
.reveal[data-delay="6"] { transition-delay: calc(480ms * var(--anim-speed)); }

/* Hint shimmer for interactive things */
.interactive-hint {
  position: absolute;
  top: 80px;
  right: 24px;
  z-index: 5;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--fg-muted);
  background: rgba(255,255,255,0.6);
  backdrop-filter: blur(8px);
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid var(--neutral-200);
}
.interactive-hint::before {
  content: "";
  width: 8px; height: 8px;
  border-radius: 999px;
  background: var(--rise-acid);
  box-shadow: 0 0 0 0 var(--rise-acid);
  animation: pulse 1.6s ease-out infinite;
}
.slide.dark .interactive-hint,
.slide.graphite .interactive-hint {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.15);
  color: rgba(245,245,245,0.85);
}
@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(199,255,84,0.7); }
  100% { box-shadow: 0 0 0 12px rgba(199,255,84,0); }
}

/* ============== SLIDE 1: COVER ============== */
.cover {
  background: var(--rise-blue);
  color: var(--rise-white);
  position: relative;
}
.cover-grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 56px 56px;
  background-position: center center;
  mask-image: radial-gradient(ellipse at 50% 60%, black 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 60%, black 30%, transparent 80%);
}
.cover-acid-blob {
  position: absolute;
  width: 720px; height: 720px;
  right: -160px; top: -160px;
  background: var(--rise-acid);
  border-radius: 200px;
  filter: blur(80px);
  opacity: 0.18;
}

/* Falling pattern — radial-gradient bars in brand colors, animated by background-position
   Adapted from 21st.dev/efferd/falling-pattern */
.cover-falling {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 1;
  -webkit-mask-image: radial-gradient(ellipse at center, black 35%, transparent 90%);
          mask-image: radial-gradient(ellipse at center, black 35%, transparent 90%);
}
.cover-falling::before,
.cover-falling::after {
  content: "";
  position: absolute;
  inset: 0;
}
.cover-falling::before {
  --fc: #1E02C9;
  background-color: transparent;
  background-image:
    radial-gradient(4px 100px at 0px 235px, var(--fc), transparent),
    radial-gradient(4px 100px at 300px 235px, var(--fc), transparent),
    radial-gradient(1.5px 1.5px at 150px 117.5px, var(--fc) 100%, transparent 150%),
    radial-gradient(4px 100px at 0px 252px, var(--fc), transparent),
    radial-gradient(4px 100px at 300px 252px, var(--fc), transparent),
    radial-gradient(1.5px 1.5px at 150px 126px, var(--fc) 100%, transparent 150%),
    radial-gradient(4px 100px at 0px 150px, var(--fc), transparent),
    radial-gradient(4px 100px at 300px 150px, var(--fc), transparent),
    radial-gradient(1.5px 1.5px at 150px 75px, var(--fc) 100%, transparent 150%),
    radial-gradient(4px 100px at 0px 253px, var(--fc), transparent),
    radial-gradient(4px 100px at 300px 253px, var(--fc), transparent),
    radial-gradient(1.5px 1.5px at 150px 126.5px, var(--fc) 100%, transparent 150%),
    radial-gradient(4px 100px at 0px 204px, var(--fc), transparent),
    radial-gradient(4px 100px at 300px 204px, var(--fc), transparent),
    radial-gradient(1.5px 1.5px at 150px 102px, var(--fc) 100%, transparent 150%),
    radial-gradient(4px 100px at 0px 134px, var(--fc), transparent),
    radial-gradient(4px 100px at 300px 134px, var(--fc), transparent),
    radial-gradient(1.5px 1.5px at 150px 67px, var(--fc) 100%, transparent 150%),
    radial-gradient(4px 100px at 0px 179px, var(--fc), transparent),
    radial-gradient(4px 100px at 300px 179px, var(--fc), transparent),
    radial-gradient(1.5px 1.5px at 150px 89.5px, var(--fc) 100%, transparent 150%),
    radial-gradient(4px 100px at 0px 299px, var(--fc), transparent),
    radial-gradient(4px 100px at 300px 299px, var(--fc), transparent),
    radial-gradient(1.5px 1.5px at 150px 149.5px, var(--fc) 100%, transparent 150%),
    radial-gradient(4px 100px at 0px 215px, var(--fc), transparent),
    radial-gradient(4px 100px at 300px 215px, var(--fc), transparent),
    radial-gradient(1.5px 1.5px at 150px 107.5px, var(--fc) 100%, transparent 150%),
    radial-gradient(4px 100px at 0px 281px, var(--fc), transparent),
    radial-gradient(4px 100px at 300px 281px, var(--fc), transparent),
    radial-gradient(1.5px 1.5px at 150px 140.5px, var(--fc) 100%, transparent 150%),
    radial-gradient(4px 100px at 0px 158px, var(--fc), transparent),
    radial-gradient(4px 100px at 300px 158px, var(--fc), transparent),
    radial-gradient(1.5px 1.5px at 150px 79px, var(--fc) 100%, transparent 150%),
    radial-gradient(4px 100px at 0px 210px, var(--fc), transparent),
    radial-gradient(4px 100px at 300px 210px, var(--fc), transparent),
    radial-gradient(1.5px 1.5px at 150px 105px, var(--fc) 100%, transparent 150%);
  background-size:
    300px 235px, 300px 235px, 300px 235px,
    300px 252px, 300px 252px, 300px 252px,
    300px 150px, 300px 150px, 300px 150px,
    300px 253px, 300px 253px, 300px 253px,
    300px 204px, 300px 204px, 300px 204px,
    300px 134px, 300px 134px, 300px 134px,
    300px 179px, 300px 179px, 300px 179px,
    300px 299px, 300px 299px, 300px 299px,
    300px 215px, 300px 215px, 300px 215px,
    300px 281px, 300px 281px, 300px 281px,
    300px 158px, 300px 158px, 300px 158px,
    300px 210px, 300px 210px, 300px 210px;
  animation: cover-fall-bg 150s linear infinite;
}
.cover-falling::after {
  /* Dot grid overlay creates the soft, blurred, dotted-look on top */
  backdrop-filter: blur(1em);
  -webkit-backdrop-filter: blur(1em);
  background-image: radial-gradient(circle at 50% 50%, transparent 0, transparent 2px, #2F0DFF 2px);
  background-size: 8px 8px;
}
@keyframes cover-fall-bg {
  0% {
    background-position:
      0px 220px, 3px 220px, 151.5px 337.5px,
      25px 24px, 28px 24px, 176.5px 150px,
      50px 16px, 53px 16px, 201.5px 91px,
      75px 224px, 78px 224px, 226.5px 230.5px,
      100px 19px, 103px 19px, 251.5px 121px,
      125px 120px, 128px 120px, 276.5px 187px,
      150px 31px, 153px 31px, 301.5px 120.5px,
      175px 235px, 178px 235px, 326.5px 384.5px,
      200px 121px, 203px 121px, 351.5px 228.5px,
      225px 224px, 228px 224px, 376.5px 364.5px,
      250px 26px, 253px 26px, 401.5px 105px,
      275px 75px, 278px 75px, 426.5px 180px;
  }
  100% {
    background-position:
      0px 6800px, 3px 6800px, 151.5px 6917.5px,
      25px 13632px, 28px 13632px, 176.5px 13758px,
      50px 5416px, 53px 5416px, 201.5px 5491px,
      75px 17175px, 78px 17175px, 226.5px 17301.5px,
      100px 5119px, 103px 5119px, 251.5px 5221px,
      125px 8428px, 128px 8428px, 276.5px 8495px,
      150px 9876px, 153px 9876px, 301.5px 9965.5px,
      175px 13391px, 178px 13391px, 326.5px 13540.5px,
      200px 14741px, 203px 14741px, 351.5px 14848.5px,
      225px 18770px, 228px 18770px, 376.5px 18910.5px,
      250px 5082px, 253px 5082px, 401.5px 5161px,
      275px 6375px, 278px 6375px, 426.5px 6480px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .cover-falling::before { animation: none; }
}
.cover .slide-inner { position: relative; z-index: 2; gap: 48px; }
.cover-watermark {
  position: absolute;
  right: -120px;
  bottom: -120px;
  width: 720px;
  height: 720px;
  opacity: 0.10;
  z-index: 1;
  pointer-events: none;
}
.cover-mark .badge-mark {
  width: 36px;
  height: 36px;
  display: block;
}
.cover-mark {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.cover-mark .x { color: var(--rise-acid); font-weight: 800; }
.cover-mark .badge {
  width: 36px; height: 36px;
  border-radius: 10px;
  background: var(--rise-acid);
  color: var(--rise-blue);
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 18px;
}
.cover h1 {
  font-size: clamp(72px, 9vw, 144px);
  font-weight: 800;
  line-height: 0.94;
  letter-spacing: -0.04em;
  margin: 32px 0 0;
  max-width: 14ch;
}
.cover h1 em {
  font-style: normal;
  color: var(--rise-acid);
}
.cover-sub {
  font-size: clamp(18px, 1.6vw, 24px);
  line-height: 1.4;
  color: rgba(245,245,245,0.78);
  max-width: 60ch;
  margin: 0;
}
.cover-meta {
  display: flex;
  gap: 32px;
  align-items: flex-end;
  flex-wrap: wrap;
  border-top: 1px solid rgba(255,255,255,0.18);
  padding-top: 32px;
  margin-top: auto;
}
.cover-meta .item {
  display: flex; flex-direction: column; gap: 4px;
}
.cover-meta .label {
  font-size: 11px; letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  color: rgba(199,255,84,0.85);
}
.cover-meta .value {
  font-size: 16px; font-weight: 600;
  color: var(--rise-white);
}

/* ============== SLIDE 2: WHY WE'RE MEETING ============== */
.slide:has(.why-grid) { isolation: isolate; }
.why-grid {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 20px;
}
.why-grid--single {
  grid-template-columns: minmax(0, 720px);
  justify-content: flex-end;
}
.why-slide { position: relative; }
.why-map--corner {
  position: absolute;
  left: 0;
  bottom: -24px;
  width: 62vw;
  max-width: 1080px;
  aspect-ratio: 4/3;
  z-index: 1;
  pointer-events: none;
  background: transparent;
  border: none;
  border-radius: 0;
  overflow: visible;
}
.why-map--corner svg { width: 100%; height: auto; }
.why-slide .slide-inner { position: relative; z-index: 2; }
.why-map {
  position: absolute;
  left: -40px;
  bottom: -40px;
  width: 78vw;
  max-width: 1400px;
  aspect-ratio: 4/3;
  background: transparent;
  border: none;
  border-radius: 0;
  overflow: visible;
  pointer-events: none;
  z-index: -1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.why-map svg { width: 100%; height: 100%; }
.slide:has(.why-grid) .slide-eyebrow,
.slide:has(.why-grid) .slide-title { padding-left: 220px; }
.why-bottom {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.why-bottom-meta {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 12px;
  padding-left: 16px;
}
.why-map-footer {
  position: absolute;
  top: calc(50% - 144px);
  right: 80px;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  width: 320px;
  max-width: 100%;
  box-sizing: border-box;
}
.why-map-footer-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.why-map-flag {
  width: 36px;
  height: 36px;
  display: block;
}
.why-map-footer-text {
  font-family: 'Manrope', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #5C5C5C;
  white-space: nowrap;
}
.why-map-facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--fg-base);
}
.why-map-facts li {
  position: relative;
  padding-left: 14px;
}
.why-map-facts li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--rise-blue);
}
.why-map-sources {
  font-size: 10px;
  line-height: 1.4;
  color: var(--fg-muted);
  opacity: 0.55;
  margin-top: 4px;
  letter-spacing: 0.01em;
}

/* ============== Title flip-in animation ============== */
/* Skip the parent .reveal opacity transition for titles —
   letters handle their own appearance, so the title element itself stays visible. */
.reveal.slide-title,
.reveal.cover h1,
.cover h1.reveal,
.closing h1.reveal {
  opacity: 1;
  transform: none;
  transition: none;
}
.title-flip-word {
  display: inline-block;
  white-space: nowrap;
}
.title-flip-letter {
  display: inline-block;
  opacity: 0;
  filter: blur(10px);
  transform: translateY(12px);
  color: inherit;
  will-change: transform, opacity, filter;
}
.title-flip-play .title-flip-letter {
  animation: title-flip-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes title-flip-in {
  to { opacity: 1; filter: blur(0); transform: translateY(0); }
}
.why-pulse {
  position: absolute;
  width: 16px; height: 16px;
  border-radius: 999px;
  background: var(--rise-blue);
  box-shadow: 0 0 0 0 var(--rise-blue);
  animation: pulse-blue 2s ease-out infinite;
}
@keyframes pulse-blue {
  0% { box-shadow: 0 0 0 0 rgba(47,13,255,0.5); }
  100% { box-shadow: 0 0 0 32px rgba(47,13,255,0); }
}
.why-card-overlay {
  position: static;
  background: var(--rise-blue); color: var(--rise-white);
  padding: 14px 18px;
  border-radius: 16px;
  font-size: 13px; font-weight: 600;
  display: flex; align-items: center; gap: 8px;
  width: 320px;
  box-sizing: border-box;
}
.why-card-overlay::before {
  content: "";
  width: 10px; height: 10px;
  border-radius: 4px;
  background: var(--rise-acid);
}
.why-pillars {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.why-pillar {
  display: flex; gap: 20px; align-items: flex-start;
  padding: 24px;
  border-radius: 20px;
  background: var(--rise-pure-white);
  border: 1px solid var(--neutral-100);
  min-width: 0;
}
.why-pillar .num {
  width: 40px; height: 40px;
  border-radius: 12px;
  background: var(--rise-blue);
  color: var(--rise-acid);
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 18px;
  flex-shrink: 0;
}
.why-pillar h4 { font-size: 18px; font-weight: 700; margin: 0 0 6px; }
.why-pillar p { font-size: 14px; color: var(--fg-muted); margin: 0; line-height: 1.5; }

/* ============== SLIDE 3: TIMELINE ============== */
.timeline {
  position: relative;
  padding-top: 64px;
}
.timeline-line,
.timeline-progress {
  position: absolute;
  top: 111px;
  height: 2px;
  pointer-events: none;
}
.timeline-line {
  left: 0; right: 0;
  background: var(--neutral-200);
}
.timeline-progress {
  left: 0;
  width: 0;
  background: var(--rise-blue);
  z-index: 1;
}
.timeline-nodes {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  position: relative;
  gap: 8px;
  z-index: 2;
}
.timeline-node {
  cursor: pointer;
  text-align: left;
  background: transparent;
  border: none;
  padding: 0;
  font: inherit;
  color: inherit;
  position: relative;
  display: grid;
  grid-template-rows: 24px 24px auto;
  row-gap: 12px;
}
.timeline-node .year {
  align-self: end;
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 600;
  color: var(--fg-muted);
  letter-spacing: -0.01em;
  line-height: 1;
}
.timeline-node .dot {
  width: 18px; height: 18px;
  border-radius: 999px;
  background: var(--rise-pure-white);
  border: 2px solid var(--neutral-300);
  position: relative;
  transition: all var(--dur-base-x) var(--ease-standard);
  align-self: center;
  justify-self: start;
  margin: 0;
}
.timeline-node.visited .dot {
  border-color: var(--rise-blue);
}
.timeline-node:hover .dot,
.timeline-node.active .dot {
  background: var(--rise-blue);
  border-color: var(--rise-blue);
  transform: scale(1.15);
}
.timeline-node.active .dot::after {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: 999px;
  background: var(--rise-blue);
  opacity: 0.4;
  pointer-events: none;
  animation: timeline-dot-pulse 2.4s ease-out infinite;
}
@keyframes timeline-dot-pulse {
  0% { transform: scale(1); opacity: 0.4; }
  100% { transform: scale(4.5); opacity: 0; }
}
.timeline-node .label {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
  max-width: 18ch;
}
.timeline-detail {
  margin-top: 56px;
  padding: 36px 40px;
  background: var(--rise-pure-white);
  border-radius: 28px;
  border: 1px solid var(--neutral-100);
  min-height: 200px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 40px;
  align-items: center;
}
.timeline-detail .big-year {
  font-size: 96px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--rise-blue);
  font-feature-settings: "tnum" 1;
}
.timeline-detail h3 {
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 8px;
}
.timeline-detail p {
  font-size: 16px;
  line-height: 1.55;
  color: var(--fg-muted);
  margin: 0;
  max-width: 60ch;
}

/* ============== SLIDE 4: MARKET ============== */
.market-headline-row {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 40px;
}
.market-headline-side {
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex-shrink: 0;
  width: 140px;
}
.market-icon {
  width: 120px;
  height: 120px;
}
.market-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
.market-headline-side .attrib {
  font-size: 12px;
  color: var(--fg-muted);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.5;
  padding-left: 16px;
}
.market-headline {
  font-size: clamp(40px, 4.5vw, 68px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin: 0;
  max-width: 20ch;
  text-wrap: balance;
  flex: 1;
  min-width: 0;
}
.market-observations {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}
.market-obs {
  background: var(--rise-pure-white);
  border-radius: 20px;
  padding: 20px 22px;
  border: 1px solid var(--neutral-100);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
  min-height: 180px;
}
.market-obs > div {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
  width: 100%;
  gap: 12px;
}
.market-obs .arrow {
  font-family: var(--font-mono);
  font-size: 18px;
  color: var(--rise-blue);
  font-weight: 700;
}
.market-obs h4 { font-size: 18px; font-weight: 700; margin: 0; line-height: 1.25; }
.market-obs p { font-size: 13px; color: var(--fg-muted); margin: 0; line-height: 1.45; }

/* ============== SLIDE 5: PROBLEM ============== */
.broken-chain {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  margin-top: 32px;
}
.chain-link {
  background: var(--rise-pure-white);
  border: 1px solid var(--neutral-100);
  border-radius: 20px;
  padding: 22px 18px;
  position: relative;
  text-align: center;
}
.chain-link h4 {
  font-size: 14px;
  font-weight: 700;
  margin: 12px 0 0;
}
.chain-link .icon {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: var(--neutral-100);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto;
  color: var(--rise-blue);
  font-weight: 700;
}
.chain-link:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -16px; top: 50%;
  width: 16px; height: 1px;
  background: var(--neutral-100);
}
.chain-link.broken { opacity: 0.5; }
.chain-link.broken .icon {
  background: rgba(229,72,77,0.12);
  color: var(--danger);
}
.chain-link.broken h4 { text-decoration: line-through; text-decoration-color: var(--danger); }
.problem-issues {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 16px;
}
.problem-issue {
  background: transparent;
  border: 1px solid var(--neutral-100);
  border-radius: 18px;
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.problem-issue .num {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--fg-muted);
  font-weight: 600;
}
.problem-issue p { font-size: 15px; line-height: 1.4; font-weight: 600; margin: 0; }

/* ============== SLIDE 6: WHO WE ARE (RISE counters) ============== */
.who-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 40px;
}
.who-counters {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.who-counter {
  background: var(--rise-pure-white);
  border-radius: 24px;
  padding: 28px;
  border: 1px solid var(--neutral-100);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  min-height: 200px;
}
.who-counter.accent {
  background: var(--rise-blue);
  color: var(--rise-white);
  border: none;
}
.who-counter .num {
  font-size: 72px;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
  font-feature-settings: "tnum" 1;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.who-counter.accent .num { letter-spacing: -0.03em; }
.who-counter .label {
  font-size: 14px;
  color: var(--fg-muted);
  font-weight: 500;
  line-height: 1.4;
}
.who-counter.accent .label { color: var(--rise-white); }
.who-photo-stack {
  display: grid;
  grid-template-rows: 2fr 1fr;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  height: 100%;
  min-height: 460px;
}
.who-photo-stack .photo {
  border-radius: 24px;
  background: linear-gradient(135deg, var(--neutral-200), var(--neutral-300));
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 16px;
}
.who-photo-stack .photo::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(34,34,34,0.55));
  z-index: 1;
}
.who-photo-stack .photo > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.who-photo-stack .photo .lbl {
  position: relative;
  z-index: 2;
  font-size: 11px;
  font-weight: 700;
  color: white;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.who-photo-stack .photo:nth-child(1) {
  grid-column: 1 / 3;
  background: linear-gradient(135deg, var(--blue-700), var(--rise-blue));
}
.who-photo-stack .photo:nth-child(2) {
  background: linear-gradient(135deg, var(--neutral-700), var(--neutral-800));
}
.who-photo-stack .photo:nth-child(3) {
  background: linear-gradient(135deg, var(--rise-acid), var(--acid-500));
}

/* ============== SLIDE 7: VIDEO MODULE DEMO (hover features) ============== */
.video-frame {
  background: var(--neutral-900);
  border-radius: 28px;
  padding: 16px;
  position: relative;
  aspect-ratio: 16/9;
  display: grid;
  grid-template-columns: 1fr 240px;
  gap: 12px;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.video-stage {
  background: var(--neutral-800);
  border-radius: 20px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.video-stage .teacher {
  position: absolute;
  inset: 16px;
  background: linear-gradient(135deg, var(--blue-700), var(--rise-blue));
  border-radius: 14px;
  display: flex;
  align-items: flex-end;
  padding: 16px;
  overflow: hidden;
}
.video-stage .teacher::before {
  content: "";
  position: absolute;
  top: 30%; left: 50%;
  transform: translate(-50%, -10%);
  width: 200px; height: 200px;
  border-radius: 999px;
  background: radial-gradient(circle at 40% 30%, rgba(245,245,245,0.7), transparent 60%);
}
.video-stage .teacher .badge {
  position: relative; z-index: 2;
  background: rgba(0,0,0,0.5);
  color: white;
  padding: 6px 10px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
}
.video-stage .controls {
  position: absolute;
  bottom: 16px; left: 50%;
  transform: translateX(-50%);
  display: flex; gap: 10px;
  z-index: 5;
}
.video-stage .ctrl {
  width: 44px; height: 44px;
  border-radius: 14px;
  background: rgba(0,0,0,0.6);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
}
.video-stage .ctrl.live {
  background: var(--danger);
}
.video-sidebar {
  display: flex; flex-direction: column; gap: 8px;
}
.video-student {
  background: var(--neutral-700);
  border-radius: 14px;
  aspect-ratio: 16/10;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 8px;
}
.video-student::before {
  content: "";
  position: absolute;
  top: 25%; left: 50%;
  transform: translate(-50%, 0);
  width: 60px; height: 60px;
  border-radius: 999px;
  background: var(--neutral-500);
}
.video-student .name {
  font-size: 10px; font-weight: 600; color: white;
  background: rgba(0,0,0,0.5);
  padding: 3px 6px; border-radius: 4px;
  z-index: 2; position: relative;
}
.video-student.attention { box-shadow: inset 0 0 0 2px var(--rise-acid); }
.video-student.muted-stu { opacity: 0.4; }
.video-features {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 24px;
}
.video-feature {
  cursor: pointer;
  padding: 18px 20px;
  background: var(--rise-pure-white);
  border: 1px solid var(--neutral-100);
  border-radius: 18px;
  transition: all var(--dur-base-x) var(--ease-standard);
  text-align: left;
  font: inherit;
  color: inherit;
}
.video-feature:hover,
.video-feature.active {
  background: var(--rise-blue);
  color: var(--rise-white);
  border-color: var(--rise-blue);
  transform: translateY(-2px);
}
.video-feature .label {
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase;
  opacity: 0.6;
  margin-bottom: 6px;
}
.video-feature h4 {
  font-size: 16px; font-weight: 700; margin: 0;
  letter-spacing: -0.01em;
}

/* ============== SLIDE 8: AROUND THE LESSON (dark, full-bleed) ============== */
.lesson-comparison {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 48px;
}
.lesson-col {
  padding: 36px;
  border-radius: 28px;
}
.lesson-col.them {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
}
.lesson-col.us {
  background: var(--rise-acid);
  color: var(--rise-blue);
  position: relative;
  overflow: hidden;
  border: 2px solid #E6FFB2;
}
.lesson-col.us .col-label { color: var(--neutral-900); opacity: 1; }
.lesson-col.us li { color: var(--neutral-900); }
.lesson-col.us .col-watermark {
  position: absolute;
  right: -60px;
  bottom: -60px;
  width: 280px;
  height: 280px;
  opacity: 0.14;
  pointer-events: none;
}
.lesson-col.us > *:not(.col-watermark) { position: relative; z-index: 2; }
.lesson-col .col-label {
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  margin-bottom: 8px;
  opacity: 0.6;
}
.lesson-col .col-title {
  font-size: 36px;
  font-weight: 800;
  letter-spacing: -0.03em;
  margin: 0 0 24px;
  line-height: 1;
}
.lesson-col ul {
  list-style: none;
  margin: 0; padding: 0;
  display: flex; flex-direction: column;
  gap: 12px;
}
.lesson-col li {
  font-size: 17px;
  font-weight: 500;
  display: flex; align-items: flex-start; gap: 12px;
  line-height: 1.4;
}
.lesson-col li::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: 999px;
  background: currentColor;
  margin-top: 10px;
  opacity: 0.5;
  flex-shrink: 0;
}

/* ============== SLIDE 9: SOLO MODE ============== */
.solo-stage {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.solo-diagram {
  aspect-ratio: 1;
  position: relative;
  background: var(--rise-pure-white);
  border-radius: 32px;
  border: 1px solid var(--neutral-100);
  padding: 40px;
}
.solo-diagram .center-teacher {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 96px; height: 96px;
  background: var(--rise-blue);
  color: var(--rise-acid);
  border-radius: 24px;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  font-weight: 800;
  z-index: 5;
  isolation: isolate;
}
.solo-diagram .center-teacher::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 24px;
  background: var(--rise-blue);
  opacity: 0.4;
  pointer-events: none;
  z-index: -1;
  animation: solo-teacher-pulse 2.4s ease-out infinite;
}
@keyframes solo-teacher-pulse {
  0% { transform: scale(1); opacity: 0.4; }
  100% { transform: scale(2.2); opacity: 0; }
}
.solo-diagram .center-teacher .lbl {
  font-size: 10px; letter-spacing: 0.08em;
  text-transform: uppercase;
}
.solo-diagram .center-teacher .who { font-size: 13px; margin-top: 2px; }
.solo-student {
  position: absolute;
  width: 64px; height: 64px;
  background: var(--rise-pure-white);
  border: 2px solid #BDB2FF;
  border-radius: 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--rise-blue);
}
.solo-arrow {
  position: absolute;
  height: 1px;
  background: var(--neutral-300);
  transform-origin: 0 0;
  z-index: 1;
}
.solo-arrow.teacher-out {
  background: linear-gradient(90deg, var(--rise-blue), transparent);
  height: 2px;
}
.solo-arrow.student-in {
  background: linear-gradient(90deg, transparent, var(--rise-acid));
  height: 2px;
}

/* ============== SLIDE 10: COMPUTER VISION ============== */
.cv-stage {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 40px;
}
.cv-frame {
  background: var(--neutral-900);
  border-radius: 28px;
  padding: 20px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  position: relative;
}
.cv-tile {
  aspect-ratio: 4/3;
  background: var(--neutral-700);
  border-radius: 14px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 10px;
}
.cv-tile::before {
  content: "";
  position: absolute;
  top: 25%; left: 50%;
  transform: translateX(-50%);
  width: 50px; height: 50px;
  border-radius: 999px;
  background: var(--neutral-500);
}
.cv-tile .name {
  font-size: 10px; font-weight: 600; color: white;
  background: rgba(0,0,0,0.5);
  padding: 3px 6px; border-radius: 4px;
  z-index: 2; position: relative;
}
.cv-tile.alert {
  outline: 2px solid var(--rise-acid);
  outline-offset: -2px;
}
.cv-tile.alert .tag {
  position: absolute;
  top: 10px; right: 10px;
  background: #BF6100;
  color: #f5f5f5;
  border: 1px solid #FD9E1D;
  font-size: 9px; font-weight: 800;
  padding: 4px 8px;
  border-radius: 6px;
  letter-spacing: 0.06em;
  z-index: 3;
}
.cv-tile.dim { opacity: 0.5; }
.cv-insight-panel {
  background: var(--rise-pure-white);
  border-radius: 24px;
  padding: 24px;
  border: 1px solid var(--neutral-100);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.cv-insight {
  display: flex; gap: 14px; align-items: flex-start;
}
.cv-insight .marker {
  width: 6px; height: 6px;
  border-radius: 999px;
  background: var(--rise-acid);
  margin-top: 8px;
  flex-shrink: 0;
  box-shadow: 0 0 0 4px rgba(199,255,84,0.2);
}
.cv-insight .text {
  font-size: 14px;
  line-height: 1.5;
}
.cv-insight .text strong {
  font-weight: 700;
}
.cv-insight .text .meta {
  display: block;
  font-size: 11px;
  color: var(--fg-muted);
  margin-top: 2px;
  font-family: var(--font-mono);
}

/* ============== SLIDE 11: DAILY PRACTICE ============== */
.practice-stage {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.practice-mockup {
  background: var(--rise-pure-white);
  border-radius: 28px;
  padding: 24px;
  box-shadow: var(--shadow-lg);
  border: 1px solid var(--neutral-100);
}
.practice-week {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  margin: 16px 0 20px;
}
.practice-day {
  aspect-ratio: 1;
  background: var(--neutral-100);
  border: 1px solid #CCCCCC;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  color: var(--fg-muted);
}
.practice-day.done {
  background: var(--neutral-100);
  color: var(--fg-muted);
}
.practice-day.today {
  background: #E9E5FF;
  color: var(--rise-blue);
  border: 1px solid var(--rise-blue);
  outline: none;
}
.practice-day .dnum { font-size: 14px; font-weight: 800; }
.practice-day .dlbl { font-size: 9px; opacity: 0.7; letter-spacing: 0.04em; }
.practice-slots {
  display: flex; flex-direction: column; gap: 8px;
}
.practice-slot {
  background: var(--neutral-50);
  border-radius: 14px;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.practice-slot.live { background: var(--rise-blue); color: var(--rise-white); }
.practice-slot .time {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
  min-width: 56px;
}
.practice-slot .topic {
  font-size: 14px;
  font-weight: 600;
  flex: 1;
}
.practice-slot .avatars {
  display: flex;
}
.practice-slot .avatar {
  width: 22px; height: 22px;
  border-radius: 999px;
  background: var(--neutral-300);
  border: 2px solid var(--rise-pure-white);
  margin-left: -6px;
}
.practice-slot.live .avatar { border-color: var(--rise-blue); }
.practice-slot.live .avatar:nth-child(1) { background: var(--rise-acid); }
.practice-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 24px;
}
.practice-stat {
  background: var(--rise-pure-white);
  border: 1px solid var(--neutral-100);
  border-radius: 18px;
  padding: 20px;
}
.practice-stat .big {
  font-size: 40px;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--rise-blue);
}
.practice-stat .lbl {
  font-size: 12px;
  color: var(--fg-muted);
  font-weight: 600;
  margin-top: 6px;
}

/* ============== SLIDE 12: PRODUCT MAP (clickable nodes) ============== */
.stack-map {
  position: relative;
  height: 560px;
  background: var(--rise-pure-white);
  border-radius: 32px;
  border: 1px solid var(--neutral-100);
  overflow: hidden;
}
.stack-svg-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.stack-svg-bg path {
  fill: none;
  stroke: #D9D9D9;
  stroke-width: 1;
  stroke-dasharray: 3 4;
  vector-effect: non-scaling-stroke;
  transition: stroke 0.2s ease;
}
.stack-svg-bg path.active {
  stroke: var(--rise-blue);
}
.stack-center {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 200px; height: 200px;
  background: var(--rise-blue);
  color: var(--rise-acid);
  border-radius: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  z-index: 3;
  box-shadow: var(--shadow-brand);
}
.stack-center .eyebrow-c { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 700; opacity: 0.7; }
.stack-center .word { font-size: 36px; font-weight: 800; letter-spacing: -0.02em; margin-top: 4px; }
.stack-center .sub { font-size: 11px; opacity: 0.7; margin-top: 6px; }
.stack-node {
  position: absolute;
  cursor: pointer;
  background: var(--rise-pure-white);
  border: 1px solid #D9D9D9;
  border-radius: 20px;
  padding: 14px 18px;
  font: inherit;
  color: inherit;
  transition: all var(--dur-base-x) var(--ease-standard);
  text-align: left;
  z-index: 2;
  min-width: 180px;
}
.stack-node:hover,
.stack-node.active {
  background: #E9E5FF;
  border: 1px solid var(--rise-blue);
  transform: scale(1.05);
  z-index: 4;
}
.stack-node .nlabel { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fg-muted); }
.stack-node .ntitle { font-size: 15px; font-weight: 700; margin-top: 4px; letter-spacing: -0.01em; }
.stack-node:hover .nlabel,
.stack-node.active .nlabel { color: var(--rise-blue); }

.stack-detail {
  margin-top: 24px;
  padding: 24px 28px;
  background: var(--rise-pure-white);
  border-radius: 24px;
  border: 1px solid var(--neutral-100);
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 28px;
  align-items: center;
}
.stack-detail .tagline { font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rise-blue); }
.stack-detail h4 { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; margin: 4px 0 4px; }
.stack-detail p { font-size: 14px; color: var(--fg-muted); line-height: 1.5; margin: 0; max-width: 50ch; }
.stack-detail .status {
  font-family: var(--font-mono);
  font-size: 12px;
  padding: 8px 14px;
  border-radius: 10px;
  background: var(--neutral-100);
  font-weight: 600;
}
.stack-detail .status.live { background: var(--rise-acid); color: var(--rise-blue); }
.stack-detail .status.building { background: var(--rise-blue); color: var(--rise-acid); }
.stack-detail .status.planned { background: var(--neutral-100); color: var(--fg-muted); }

/* ============== SLIDE 13: AI ============== */
.ai-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.ai-card {
  background: var(--rise-pure-white);
  border: 1px solid var(--neutral-100);
  border-radius: 24px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: relative;
  overflow: hidden;
}
.ai-card.feature {
  background: #E9E5FF;
  color: var(--fg-base);
  border: 1px solid var(--rise-blue);
}
.ai-card .ai-icon {
  width: 56px; height: 56px;
  border-radius: 18px;
  background: var(--rise-acid);
  color: var(--rise-blue);
  display: flex; align-items: center; justify-content: center;
}
.ai-card.feature .ai-icon { background: var(--rise-blue); color: var(--rise-acid); }
.ai-card h4 { font-size: 18px; font-weight: 700; margin: 0; letter-spacing: -0.01em; }
.ai-card p { font-size: 14px; color: var(--fg-muted); margin: 0; line-height: 1.5; }
.ai-card.feature p { color: var(--fg-muted); }

/* ============== SLIDE 14: COMPETITIVE MATRIX ============== */
.matrix-stage {
  position: relative;
  background: var(--rise-pure-white);
  border-radius: 32px;
  border: 1px solid var(--neutral-100);
  padding: 56px 64px 48px;
  aspect-ratio: 16/10;
}
.matrix-axis {
  position: absolute;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--fg-muted);
}
.matrix-axis.y { left: 24px; top: 50%; transform: translateY(-50%) rotate(-90deg); transform-origin: 0 0; }
.matrix-axis.x { left: 50%; bottom: 16px; transform: translateX(-50%); }
.matrix-axis.y-top { left: 30px; top: 56px; }
.matrix-axis.y-bot { left: 30px; bottom: 96px; }
.matrix-axis.x-left { left: 96px; bottom: 40px; }
.matrix-axis.x-right { right: 64px; bottom: 40px; }
.matrix-grid {
  position: absolute;
  inset: 56px 48px 80px 80px;
  border-left: 2px solid var(--neutral-300);
  border-bottom: 2px solid var(--neutral-300);
}
.matrix-grid::before, .matrix-grid::after {
  content: "";
  position: absolute;
  background: var(--neutral-100);
}
.matrix-grid::before { left: 50%; top: 0; bottom: 0; width: 1px; }
.matrix-grid::after { left: 0; top: 50%; right: 0; height: 1px; }
.matrix-dot {
  position: absolute;
  width: 14px; height: 14px;
  border-radius: 999px;
  background: var(--neutral-400);
  transform: translate(-50%, -50%);
  cursor: pointer;
  transition: all var(--dur-base-x) var(--ease-standard);
  opacity: 0;
  animation: dot-fade-in 600ms var(--ease-standard) forwards;
}
.matrix-dot::after {
  content: attr(data-name);
  position: absolute;
  left: 18px; top: 50%;
  transform: translateY(-50%);
  font-size: 12px;
  font-weight: 600;
  color: var(--fg);
  white-space: nowrap;
}
.matrix-dot:hover { transform: translate(-50%, -50%) scale(1.4); }
.matrix-dot.us {
  width: 28px; height: 28px;
  background: var(--rise-blue);
  box-shadow: 0 0 0 6px rgba(47,13,255,0.15);
}
.matrix-dot.us::after {
  left: 36px;
  font-size: 16px;
  font-weight: 800;
  color: var(--rise-blue);
}
@keyframes dot-fade-in {
  from { opacity: 0; transform: translate(-50%, -50%) scale(0.4); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
.matrix-dot[data-delay="1"] { animation-delay: 100ms; }
.matrix-dot[data-delay="2"] { animation-delay: 200ms; }
.matrix-dot[data-delay="3"] { animation-delay: 300ms; }
.matrix-dot[data-delay="4"] { animation-delay: 400ms; }
.matrix-dot[data-delay="5"] { animation-delay: 500ms; }
.matrix-dot[data-delay="6"] { animation-delay: 700ms; }
.matrix-zones {
  position: absolute;
  inset: 56px 48px 80px 80px;
  pointer-events: none;
}
.matrix-zone {
  position: absolute;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--neutral-300);
  padding: 8px;
}

/* ============== SLIDE 15: VISION (full bleed) ============== */
.vision-stack {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}
.vision-center {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 24px;
}
.vision-brand-box {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 20px;
  box-shadow: none;
  padding: 28px 32px;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: clamp(24px, 4vw, 56px);
}
.vbb-name {
  font-size: clamp(56px, 7vw, 104px);
  font-weight: 900;
  letter-spacing: -0.045em;
  line-height: 1;
  flex-shrink: 0;
  font-feature-settings: "ss01" 1;
}
.vbb-name-rise { color: var(--rise-white); }
.vbb-name-uz { color: var(--rise-acid); }
.vbb-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  min-width: 0;
}
.vbb-text-line {
  font-size: clamp(22px, 2.6vw, 36px);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--rise-white);
  white-space: nowrap;
}
.vision-brand-image {
  width: clamp(120px, 16vw, 220px);
  height: auto;
  flex-shrink: 0;
  display: block;
}
.vision-orbits {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
  margin-top: 32px;
}
.vision-orbit {
  text-align: center;
  padding: 20px 16px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 20px;
}
.vision-orbit .icon {
  width: 44px; height: 44px;
  margin: 0 auto 12px;
  border-radius: 14px;
  background: var(--rise-acid);
  color: var(--rise-blue);
  display: flex; align-items: center; justify-content: center;
}
.vision-orbit h5 { font-size: 14px; font-weight: 700; margin: 0; letter-spacing: -0.005em; color: var(--rise-white); }
.vision-orbit p { font-size: 12px; color: var(--rise-white); margin: 6px 0 0; line-height: 1.4; }

/* ============== SLIDE 16: PARTNER ROLES ============== */
.roles-stage {
  display: grid;
  grid-template-columns: 1fr 80px 1fr;
  gap: 0;
  align-items: stretch;
}
.role-col {
  background: var(--rise-pure-white);
  border: 1px solid var(--neutral-100);
  border-radius: 28px;
  padding: 32px;
}
.role-col.rise {
  background: #E9E5FF;
  border: 1px solid var(--rise-blue);
}
.role-col.partner {
  align-self: center;
}
.role-col h3 {
  font-size: 22px; font-weight: 800; letter-spacing: -0.02em;
  margin: 0 0 20px;
  display: flex; align-items: center; gap: 12px;
}
.role-col h3 .pill {
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 4px 10px; border-radius: 999px;
}
.role-col.rise h3 .pill { background: var(--rise-blue); color: var(--rise-white); }
.role-col.partner h3 .pill { background: var(--rise-acid); color: var(--rise-blue); }
.role-items {
  display: flex; flex-direction: column; gap: 10px;
}
.role-item {
  padding: 12px 14px;
  border-radius: 14px;
  background: var(--neutral-50);
  display: flex; gap: 10px; align-items: center;
  font-size: 14px; font-weight: 500;
}
.role-item .dot {
  width: 6px; height: 6px;
  border-radius: 999px;
  flex-shrink: 0;
}
.role-col.rise .role-item .dot { background: var(--rise-blue); }
.role-col.partner .role-item .dot { background: var(--rise-acid); border: 1px solid var(--rise-blue); }
.roles-merge {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.roles-merge .center {
  width: 80px; height: 80px;
  border-radius: 24px;
  background: var(--rise-blue);
  color: var(--rise-acid);
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 28px;
  z-index: 2;
  position: relative;
}
.roles-merge::before, .roles-merge::after {
  content: "";
  position: absolute;
  top: 50%;
  height: 2px;
  width: calc(50% - 32px);
  background: var(--rise-blue);
}
.roles-merge::before { left: -32px; }
.roles-merge::after { right: -32px; background: var(--rise-acid); }
.roles-bottom {
  margin-top: 24px;
  padding: 20px 24px;
  background: var(--neutral-900);
  color: var(--rise-white);
  border-radius: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 15px;
  font-weight: 600;
}
.roles-bottom strong { color: var(--rise-acid); font-weight: 700; }

/* ============== SLIDE 17: WHY US ============== */
.why-us-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.why-us-card {
  background: var(--rise-pure-white);
  border: 1px solid var(--neutral-100);
  border-radius: 22px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 200px;
}
.why-us-card.acid,
.why-us-card.blue { background: #E9E5FF; color: var(--fg-base); border: 1px solid var(--rise-blue); }
.why-us-card.acid p, .why-us-card.blue p { color: var(--fg-muted); opacity: 1; }
.why-us-card .num {
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 600;
  opacity: 0.6;
}
.why-us-card h4 { font-size: 18px; font-weight: 700; margin: 0; letter-spacing: -0.01em; line-height: 1.2; }
.why-us-card p { font-size: 13px; line-height: 1.5; margin: 0; opacity: 0.8; }

/* ============== SLIDE 18: ROADMAP (Year toggle) ============== */
.roadmap-tabs {
  display: flex;
  gap: 8px;
  background: var(--rise-pure-white);
  border: 1px solid var(--neutral-100);
  border-radius: 18px;
  padding: 6px;
  align-self: flex-start;
}
.roadmap-tab {
  background: transparent;
  border: none;
  font: inherit;
  cursor: pointer;
  padding: 10px 22px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.005em;
  color: var(--fg-muted);
  transition: all var(--dur-base-x) var(--ease-standard);
}
.roadmap-tab.active {
  background: var(--rise-blue);
  color: var(--rise-acid);
}
.roadmap-timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 16px;
}
.roadmap-timeline::before {
  content: "";
  position: absolute;
  top: 50%; left: 28px; right: 28px;
  transform: translateY(-50%);
  height: 2px;
  background: var(--neutral-200);
  z-index: 0;
}
.roadmap-step {
  position: relative;
  padding: 64px 24px 24px;
  background: var(--rise-pure-white);
  border-radius: 22px;
  border: 1px solid var(--neutral-100);
  z-index: 1;
}
.roadmap-step .ico {
  position: absolute;
  top: 24px; left: 24px;
  width: 36px; height: 36px;
  border-radius: 12px;
  background: var(--rise-blue);
  color: var(--rise-acid);
  display: flex; align-items: center; justify-content: center;
  font-weight: 800;
}
.roadmap-step .week {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--fg-muted);
}
.roadmap-step h4 { font-size: 17px; font-weight: 700; margin: 4px 0 8px; letter-spacing: -0.01em; }
.roadmap-step p { font-size: 13px; line-height: 1.5; color: var(--fg-muted); margin: 0; }
.roadmap-step.pilot {
  background: #E9E5FF;
  border: 1px solid var(--rise-blue);
}
.roadmap-step.pilot .ico { background: var(--rise-blue); color: var(--rise-acid); }
.roadmap-step.pilot .week,
.roadmap-step.pilot p { color: var(--fg-muted); opacity: 1; }

/* ============== SLIDE 19: DISCOVERY ============== */
.discovery-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
}
.discovery-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.discovery-item {
  padding: 16px 18px;
  border: none;
  border-radius: 14px;
  font-size: 14px;
  font-weight: 600;
  display: flex; align-items: center; gap: 12px;
  background: var(--rise-blue);
  color: var(--rise-white);
}
.discovery-item .check {
  width: 22px; height: 22px;
  border-radius: 8px;
  background: transparent;
  color: var(--rise-acid);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  font-weight: 800;
}
.discovery-quote {
  background: var(--rise-blue);
  color: var(--rise-white);
  padding: 40px;
  border-radius: 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  justify-content: space-between;
}
.discovery-quote h3 {
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0;
}
.discovery-quote h3 em { color: var(--rise-acid); font-style: normal; }
.discovery-quote .author { font-size: 13px; color: rgba(199,255,84,0.85); font-weight: 600; letter-spacing: 0.04em; }

/* ============== SLIDE 20: NEXT STEP (closing) ============== */
.closing {
  background: var(--neutral-900);
  color: var(--rise-white);
}
.closing-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 64px;
  align-items: center;
}
@media (max-width: 1080px) {
  .closing-grid { grid-template-columns: 1fr; gap: 32px; }
}
.closing h1 {
  font-size: clamp(40px, 4.6vw, 72px);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.02;
  margin: 0;
  overflow-wrap: break-word;
  max-width: 14ch;
}
.closing h1 em { font-style: normal; color: var(--rise-acid); }
.closing-quote {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 24px;
  padding: 32px;
  font-size: 17px;
  line-height: 1.55;
  color: rgba(245,245,245,0.88);
}
.closing-actions {
  display: flex; gap: 16px; flex-wrap: wrap;
  margin-top: 16px;
}
.closing-footer {
  margin-top: 48px;
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,0.08);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}
.closing-footer .btn.ghost {
  flex-shrink: 0;
}
.closing-contacts {
  display: flex;
  gap: 32px;
  margin-left: auto;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.contact-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 13px;
  line-height: 1.4;
}
.contact-card .contact-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--rise-white);
  letter-spacing: -0.01em;
}
.contact-card .contact-phone,
.contact-card .contact-tg {
  color: rgba(245,245,245,0.6);
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.01em;
}
.contact-card .contact-tg {
  color: var(--rise-acid);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.contact-card .tg-icon {
  width: 13px;
  height: 13px;
  fill: currentColor;
  flex-shrink: 0;
}
@media (max-width: 720px) {
  .closing-footer {
    flex-direction: column;
    align-items: stretch;
    gap: 28px;
  }
  .closing-contacts {
    flex-direction: column;
    gap: 18px;
    margin-left: 0;
    justify-content: flex-start;
  }
}
.next-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
}
.next-item {
  padding: 14px 16px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 14px;
  font-size: 13px;
  font-weight: 600;
  color: var(--rise-white);
  display: flex; align-items: center; gap: 10px;
}
.next-item .num {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--rise-acid);
  font-weight: 700;
}

/* ============== TWEAKS panel positioning override ============== */
[data-tweaks-panel] {
  font-family: var(--font-sans);
}

/* ============== SLIDE 12 (new): PRACTICE PRINCIPLE ============== */
.practice-principle-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 24px;
}
.principle-card {
  background: var(--rise-pure-white);
  border: 1px solid var(--neutral-100);
  border-radius: 20px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: 220px;
}
.principle-num {
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 700;
  color: var(--rise-blue);
  letter-spacing: 0.08em;
}
.principle-card h4 {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.2;
  margin: 0;
}
.principle-card p {
  font-size: 14px;
  line-height: 1.5;
  color: var(--fg-muted);
  margin: 0;
}

/* ============== SLIDE 13 (new): RISE TALKS ============== */
.talks-stage {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 32px;
  align-items: center;
}
.talks-mockup {
  position: relative;
  background: var(--rise-pure-white);
  border-radius: 20px;
  border: 1px solid var(--neutral-100);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  display: block;
  color: inherit;
  text-decoration: none;
  transform-style: preserve-3d;
  transform-origin: center center;
  will-change: transform;
  transition: transform 0.55s cubic-bezier(.22,.61,.36,1), box-shadow 0.25s ease;
}
.talks-mockup::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(
    circle at var(--tilt-glare-x, 50%) var(--tilt-glare-y, 50%),
    rgba(255, 255, 255, 0.35) 0%,
    rgba(255, 255, 255, 0) 45%
  );
  opacity: 0;
  transition: opacity 0.3s ease;
  mix-blend-mode: screen;
}
.talks-mockup.is-tilting::after {
  opacity: 1;
}
.talks-mockup.is-tilting {
  transition: transform 0.08s linear, box-shadow 0.25s ease;
}
.talks-mockup:hover {
  box-shadow: 0 24px 64px -16px rgba(47,13,255,0.18), 0 8px 24px -8px rgba(0,0,0,0.08);
}
.browser-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  background: #F5F5F0;
  border-bottom: 1px solid var(--neutral-100);
}
.browser-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--neutral-300);
}
.browser-url {
  flex: 1;
  margin-left: 14px;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--fg-muted);
  background: var(--rise-pure-white);
  padding: 6px 14px;
  border-radius: 6px;
  border: 1px solid var(--neutral-100);
  text-align: center;
}
.talks-content {
  padding: 20px 22px 22px;
}
.talks-screenshot {
  display: block;
  line-height: 0;
  background: var(--rise-pure-white);
  overflow: hidden;
}
.talks-screenshot img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 56vh;
  object-fit: cover;
  object-position: top center;
  pointer-events: none;
}
.talks-app-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  background: var(--rise-pure-white);
  border: 1px solid var(--neutral-100);
  border-radius: 14px;
  margin-bottom: 18px;
  box-shadow: 0 2px 8px -4px rgba(0,0,0,0.05);
}
.talks-app-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.talks-app-logo {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--rise-blue);
  color: var(--rise-acid);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 14px;
}
.talks-app-login {
  font-size: 12px;
  font-weight: 700;
  color: var(--rise-blue);
  padding: 6px 14px;
  border: 1px solid var(--rise-blue);
  border-radius: 999px;
}
.talks-day-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.talks-day-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: #E9E5FF;
  position: relative;
  flex-shrink: 0;
}
.talks-day-icon::before {
  content: "";
  position: absolute;
  top: 4px; left: 4px; right: 4px;
  height: 4px;
  background: var(--rise-blue);
  border-radius: 2px;
}
.talks-day-icon::after {
  content: "";
  position: absolute;
  top: 12px; left: 6px; right: 6px; bottom: 6px;
  background:
    linear-gradient(var(--rise-blue), var(--rise-blue)) center/100% 1.5px no-repeat,
    linear-gradient(var(--rise-blue), var(--rise-blue)) center 5px/100% 1.5px no-repeat,
    linear-gradient(var(--rise-blue), var(--rise-blue)) center 10px/100% 1.5px no-repeat;
  opacity: 0.5;
}
.talks-day-date {
  font-size: 10px;
  font-weight: 700;
  color: var(--fg-muted);
  letter-spacing: 0.1em;
  line-height: 1.2;
}
.talks-day-name {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.2;
  color: var(--fg-base);
}
.talks-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.talks-card {
  background: var(--rise-pure-white);
  border: 1px solid var(--neutral-100);
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.talks-card-image {
  aspect-ratio: 1.2;
  position: relative;
  overflow: hidden;
}
.talks-img-1 { background: linear-gradient(135deg, #F5A623 0%, #2A8C5C 100%); }
.talks-img-2 { background: linear-gradient(135deg, #6E7681 0%, #2D3742 100%); }
.talks-img-3 { background: linear-gradient(135deg, #FF6B9D 0%, #6B5BFF 50%, #FFC857 100%); }
.talks-img-4 { background: linear-gradient(135deg, #4C8DFF 0%, #6A4FE0 60%, #FF8A4C 100%); }
.talks-card-time {
  position: absolute;
  top: 6px;
  left: 6px;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  color: var(--rise-white);
  background: rgba(34,34,34,0.7);
  padding: 3px 8px;
  border-radius: 999px;
  letter-spacing: 0.04em;
}
.talks-card-level {
  position: absolute;
  bottom: 6px;
  left: 6px;
  font-size: 9px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 999px;
  letter-spacing: 0.02em;
}
.talks-card-level.mid { background: #E9E5FF; color: var(--rise-blue); }
.talks-card-level.beg { background: #E6FFB2; color: #2A8C5C; }
.talks-card-level.adv { background: #FFE0E5; color: #C73648; }
.talks-card-body {
  padding: 10px 12px 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
  justify-content: space-between;
}
.talks-card-title {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--fg-base);
}
.talks-card-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 10px;
  color: var(--fg-muted);
  font-family: var(--font-mono);
  gap: 6px;
}
.talks-features {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.talks-feature {
  background: var(--rise-pure-white);
  border: 1px solid var(--neutral-100);
  border-radius: 18px;
  padding: 20px 22px;
}
.talks-feature-tag {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  color: var(--rise-blue);
  letter-spacing: 0.08em;
  margin-bottom: 8px;
  text-transform: uppercase;
}
.talks-feature h4 {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 4px;
  letter-spacing: -0.01em;
}
.talks-feature p {
  font-size: 13px;
  line-height: 1.45;
  color: var(--fg-muted);
  margin: 0;
}

/* ============== SLIDE 14 (new): PRACTICE STATS ============== */
.practice-stats-stage {
  display: grid;
  grid-template-columns: 1.45fr 1fr;
  gap: 28px;
  align-items: stretch;
}
.practice-chart {
  background: var(--rise-pure-white);
  border: 1px solid var(--neutral-100);
  border-radius: 24px;
  padding: 22px 24px 18px;
  display: flex;
  flex-direction: column;
}
.practice-chart svg {
  width: 100%;
  height: auto;
  display: block;
  flex: 1;
}
.practice-chart .chart-source {
  font-size: 11px;
  color: var(--fg-muted);
  margin-top: 8px;
  line-height: 1.45;
}
.practice-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  align-content: stretch;
}
.practice-stat-card {
  background: var(--rise-pure-white);
  border: 1px solid var(--neutral-100);
  border-radius: 18px;
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
  min-height: 120px;
}
.practice-stat-num {
  font-size: 36px;
  font-weight: 800;
  color: var(--rise-blue);
  letter-spacing: -0.03em;
  line-height: 1;
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
}
.practice-stat-lbl {
  font-size: 12px;
  color: var(--fg-muted);
  font-weight: 600;
  line-height: 1.4;
}

/* ============== SLIDES 11–12: IMMERSIVE SCENARIOS (FUTURE) ============== */
.im-stage {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: 36px;
  align-items: stretch;
  margin-top: 4px;
}
.im-window {
  background: #2A2620;
  border-radius: 22px;
  padding: 10px;
  box-shadow: var(--shadow-lg);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.im-chrome {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 4px 8px 10px;
}
.im-dots { display: flex; gap: 6px; }
.im-dots i {
  width: 11px; height: 11px; border-radius: 999px;
  display: inline-block;
}
.im-dots i:nth-child(1) { background: #FF6259; }
.im-dots i:nth-child(2) { background: #FEBC2E; }
.im-dots i:nth-child(3) { background: #28C840; }
.im-url {
  font-family: var(--font-mono);
  font-size: 10px;
  color: rgba(245,245,245,0.58);
  letter-spacing: 0.04em;
}
.im-screen {
  flex: 1;
  background: #F4EDE0;
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.im-topbar {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 14px;
  background: rgba(26,26,26,0.04);
  border-bottom: 1px solid rgba(26,26,26,0.06);
  font-size: 11px;
  color: #1A1A1A;
}
.im-topbar .icon {
  width: 26px; height: 26px; border-radius: 8px;
  background: rgba(26,26,26,0.08);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
}
.im-topbar .name { font-weight: 800; font-size: 13px; }
.im-topbar .phase {
  display: inline-flex; gap: 6px;
  font-family: var(--font-mono); color: rgba(26,26,26,0.55);
  font-size: 10.5px;
  letter-spacing: 0.04em;
}
.im-topbar .phase b { color: #1A1A1A; font-weight: 800; }
.im-topbar .spacer { flex: 1; }
.im-topbar .clock {
  font-family: var(--font-mono);
  font-size: 11px;
  color: rgba(26,26,26,0.7);
  letter-spacing: 0.05em;
}
.im-topbar .role {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(26,26,26,0.06);
  padding: 4px 8px; border-radius: 999px;
  font-size: 10px; font-weight: 700;
}

/* Cafe scene */
.im-cafe {
  display: grid;
  grid-template-columns: 1fr 200px;
  gap: 10px;
  padding: 10px;
  flex: 1;
  min-height: 0;
}
.im-cafe-main { display: flex; flex-direction: column; gap: 10px; min-height: 0; }
.im-tile-pair {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 10px;
  height: 96px;
  flex-shrink: 0;
}
.im-tile {
  border-radius: 12px;
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #C9BDA4 0%, #5A4A38 100%);
  display: flex;
  align-items: flex-end;
  padding: 8px;
}
.im-tile.small { background: linear-gradient(135deg, #D8D2BE 0%, #2A2218 100%); }
.im-tile::before {
  content: ""; position: absolute;
  top: 14%; left: 50%; transform: translateX(-50%);
  width: 48px; height: 48px; border-radius: 999px;
  background: radial-gradient(circle at 40% 35%, rgba(255,255,255,0.55), rgba(0,0,0,0.05) 70%);
}
.im-role-tag {
  font-size: 9px; font-weight: 800; letter-spacing: 0.05em;
  background: rgba(0,0,0,0.55);
  color: #fff;
  padding: 3px 6px; border-radius: 5px;
  display: inline-flex; align-items: center; gap: 5px;
  text-transform: uppercase;
  z-index: 2; position: relative;
}
.im-role-tag.you::before {
  content:""; width:6px; height:6px; border-radius:999px;
  background: var(--rise-acid);
}
.im-role-tag.them::before {
  content:""; width:6px; height:6px; border-radius:999px;
  background: #E8B26A;
}

.im-cafe-props {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  flex: 1;
  min-height: 0;
}
.im-menu, .im-order {
  background: #FBF6EC;
  border: 1px solid rgba(26,26,26,0.08);
  border-radius: 12px;
  padding: 9px 11px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.im-menu .eb, .im-order .eb {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.1em;
  color: rgba(26,26,26,0.5);
  margin-bottom: 2px;
}
.im-menu h4 { margin: 0 0 2px; font-size: 13px; font-weight: 800; letter-spacing: -0.01em; }
.im-menu-row {
  display: flex; justify-content: space-between;
  font-size: 11px;
  padding: 4px 0;
  border-bottom: 1px dashed rgba(26,26,26,0.1);
  color: rgba(26,26,26,0.85);
}
.im-menu-row .pr {
  font-family: var(--font-mono);
  font-weight: 700;
  color: rgba(26,26,26,0.6);
}
.im-menu-row.picked {
  background: rgba(189,178,255,0.18);
  color: var(--rise-blue);
  margin: 0 -7px;
  padding: 4px 7px;
  border-radius: 6px;
  border-bottom-style: solid;
  border-bottom-color: rgba(189,178,255,0.3);
  font-weight: 700;
}
.im-menu-row.picked .pr { color: var(--rise-blue); }
.im-opt-group { margin-top: 4px; }
.im-opt-group .gl {
  font-size: 9px;
  color: rgba(26,26,26,0.55);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  display: block; margin-bottom: 4px;
}
.im-opt-pills { display: flex; gap: 4px; flex-wrap: wrap; }
.im-opt-pill {
  font-size: 10px;
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(26,26,26,0.05);
  color: rgba(26,26,26,0.7);
  font-weight: 700;
}
.im-opt-pill.on {
  background: var(--rise-blue);
  color: var(--rise-acid);
}
.im-pay {
  margin-top: auto;
  text-align: center;
  font-weight: 800;
  font-size: 11px;
  letter-spacing: 0.08em;
  padding: 8px 0;
  border-radius: 10px;
  background: var(--rise-blue);
  color: var(--rise-acid);
}

/* Right rail (phrases + twist) */
.im-rail {
  background: #1F1B14;
  color: #F0E6D0;
  border-radius: 12px;
  padding: 10px 11px;
  display: flex; flex-direction: column; gap: 9px;
  min-height: 0;
}
.im-role-pill {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(245,245,245,0.05);
  padding: 4px 8px 4px 4px; border-radius: 999px;
  font-size: 10px; font-weight: 700;
  color: #F0E6D0;
  align-self: flex-start;
}
.im-role-pill .av {
  width: 18px; height: 18px; border-radius: 999px;
  background: var(--rise-acid); color: var(--rise-blue);
  font-size: 9px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
}
.im-rail-head {
  display: flex; align-items: center; gap: 6px;
  font-size: 9px;
  text-transform: uppercase; letter-spacing: 0.08em;
  color: rgba(240,230,208,0.55);
}
.im-rail-head .cnt {
  margin-left: auto;
  font-family: var(--font-mono); font-weight: 800;
  color: var(--rise-acid);
  text-transform: none;
  letter-spacing: 0;
}
.im-rail-head .lv {
  font-family: var(--font-mono);
  background: rgba(189,178,255,0.18);
  color: #BDB2FF;
  padding: 1px 6px; border-radius: 4px;
  letter-spacing: 0;
}
.im-phrases { display: flex; flex-direction: column; gap: 5px; flex: 1; min-height: 0; }
.im-phrase {
  display: flex; gap: 7px; align-items: flex-start;
  padding: 6px 8px;
  background: rgba(245,245,245,0.04);
  border: 1px solid rgba(245,245,245,0.06);
  border-radius: 7px;
  font-size: 10.5px;
}
.im-phrase .ck {
  width: 14px; height: 14px; border-radius: 4px;
  border: 1px solid rgba(245,245,245,0.2);
  flex: 0 0 14px;
  margin-top: 1px;
}
.im-phrase.done .ck {
  background: var(--rise-acid); border-color: var(--rise-acid);
  color: var(--rise-blue);
  display: flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 10px;
}
.im-phrase.done .ck::before { content: "✓"; }
.im-phrase .txt { color: rgba(240,230,208,0.92); flex: 1; line-height: 1.35; }
.im-phrase.done .txt { color: rgba(240,230,208,0.5); text-decoration: line-through; }
.im-twist {
  background: rgba(232,178,106,0.12);
  border: 1px solid rgba(232,178,106,0.4);
  border-radius: 8px;
  padding: 7px 9px;
  font-size: 10px;
  color: #F0D9B1;
  display: flex; gap: 8px;
  line-height: 1.4;
  align-items: flex-start;
}
.im-twist::before {
  content: "🌶";
  font-size: 13px;
}

/* Taxi scene */
.im-taxi {
  display: grid;
  grid-template-columns: 1fr 195px;
  gap: 10px;
  padding: 10px;
  flex: 1;
  min-height: 0;
}
.im-taxi-main { display: flex; flex-direction: column; gap: 8px; min-height: 0; }
.im-tile-strip {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  height: 56px;
  flex-shrink: 0;
}
.im-tile-strip .im-tile { padding: 5px; align-items: flex-end; }
.im-tile-strip .im-tile::before { width: 32px; height: 32px; top: 12%; }

.im-map {
  position: relative;
  flex: 1;
  border-radius: 12px;
  background: #ECECEC;
  overflow: hidden;
  min-height: 220px;
  border: 1px solid rgba(0,0,0,0.06);
}
.im-map svg { display: block; width: 100%; height: 100%; }
.im-map-toolbar {
  position: absolute;
  top: 8px; left: 8px;
  display: flex; gap: 4px;
  align-items: center;
  background: rgba(255,255,255,0.94);
  padding: 4px;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(60,40,20,0.18);
  z-index: 5;
}
.im-map-toolbar button {
  width: 22px; height: 22px; border-radius: 5px;
  border: none; background: transparent;
  color: #1A1A1A;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px;
  cursor: pointer;
  padding: 0;
}
.im-map-toolbar button.on { background: rgba(26,26,26,0.1); }
.im-map-toolbar .sw {
  width: 14px; height: 14px;
  border-radius: 999px;
  border: 2px solid transparent;
  display: inline-block;
}
.im-map-toolbar .sw.ink { background: #1A1A1A; }
.im-map-toolbar .sw.red { background: #B85C3D; }
.im-map-toolbar .sw.amber { background: #E8B26A; }
.im-map-toolbar .sw.on { border-color: var(--rise-blue); box-shadow: 0 0 0 1px rgba(255,255,255,0.8) inset; }
.im-map-toolbar .sep { width: 1px; height: 16px; background: rgba(26,26,26,0.12); margin: 0 2px; }

.im-map-legend {
  position: absolute;
  bottom: 8px; left: 8px;
  background: rgba(255,255,255,0.94);
  border-radius: 8px;
  padding: 6px 9px;
  font-size: 9.5px;
  display: flex; flex-direction: column; gap: 3px;
  box-shadow: 0 2px 6px rgba(60,40,20,0.18);
  z-index: 5;
}
.im-map-legend .lr { display: flex; align-items: center; gap: 6px; color: rgba(26,26,26,0.8); font-weight: 700; }
.im-map-legend .sw { width: 18px; height: 3px; border-radius: 999px; }
.im-map-legend .sw.b { background: #1A1A1A; }
.im-map-legend .sw.r { background: #B85C3D; }

.im-map-pin, .im-map-dest {
  position: absolute;
  display: inline-flex; align-items: center; gap: 5px;
  background: #FFFFFF;
  color: #1A1A1A;
  font-size: 9.5px; font-weight: 700;
  padding: 4px 9px 4px 6px;
  border-radius: 999px;
  white-space: nowrap;
  transform: translate(-50%, -50%);
  z-index: 4;
  box-shadow: 0 2px 5px rgba(0,0,0,0.15), 0 0 0 1px rgba(0,0,0,0.04);
  letter-spacing: 0.02em;
}
.im-map-pin::before {
  content: "";
  width: 9px; height: 9px;
  border-radius: 999px;
  background: #00C46A;
  box-shadow: 0 0 0 2px rgba(0,196,106,0.25);
  flex: 0 0 9px;
}
.im-map-dest {
  background: #1A1A1A;
  color: #FFFFFF;
  padding: 4px 9px 4px 6px;
}
.im-map-dest::before {
  content: "";
  width: 9px; height: 9px;
  border-radius: 2px;
  background: #FFFFFF;
  flex: 0 0 9px;
}
.im-map-note {
  position: absolute;
  background: #FFFFFF;
  color: #1A1A1A;
  font-size: 9.5px;
  font-weight: 700;
  padding: 6px 10px;
  border-radius: 8px;
  transform: translate(-50%, -50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.12), 0 0 0 1px rgba(0,0,0,0.05);
  z-index: 4;
  white-space: nowrap;
}
.im-map-area {
  position: absolute;
  top: 8px; right: 8px;
  background: rgba(255,255,255,0.94);
  border-radius: 999px;
  padding: 5px 11px;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #1A1A1A;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  z-index: 5;
  text-transform: uppercase;
}
.im-map-eta {
  position: absolute;
  background: #FFFFFF;
  border-radius: 8px;
  padding: 7px 11px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.14), 0 0 0 1px rgba(0,0,0,0.04);
  z-index: 4;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  gap: 1px;
  text-align: left;
  min-width: 80px;
}
.im-map-eta .lb {
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #999;
}
.im-map-eta .vl {
  font-size: 13px;
  font-weight: 800;
  color: #1A1A1A;
  letter-spacing: -0.01em;
}

.im-hidden {
  background: rgba(189,178,255,0.10);
  border: 1px dashed rgba(189,178,255,0.45);
  border-radius: 8px;
  padding: 7px 9px;
  color: #F0E6D0;
}
.im-hidden .lb {
  font-size: 9px; text-transform: uppercase; letter-spacing: 0.08em;
  color: rgba(189,178,255,0.78);
  font-weight: 700;
  display: flex; align-items: center; gap: 4px;
}
.im-hidden b {
  color: var(--rise-acid); font-weight: 800;
  font-size: 13px; display: block; margin-top: 3px;
  letter-spacing: -0.01em;
}
.im-hidden span {
  color: rgba(240,230,208,0.7);
  font-size: 10px;
  display: block;
  margin-top: 1px;
}
.im-fare {
  background: rgba(245,245,245,0.04);
  border: 1px solid rgba(245,245,245,0.08);
  border-radius: 8px;
  padding: 8px 10px;
  display: flex; align-items: center; justify-content: space-between;
}
.im-fare .lb {
  font-size: 9px; text-transform: uppercase; letter-spacing: 0.08em;
  color: rgba(240,230,208,0.55);
  margin-bottom: 2px;
  font-weight: 700;
}
.im-fare .vl {
  font-family: var(--font-mono);
  font-size: 18px;
  font-weight: 800;
  color: #F0E6D0;
  letter-spacing: -0.01em;
}
.im-fare .ticker {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 8.5px;
  color: var(--rise-acid);
  font-weight: 800;
  letter-spacing: 0.1em;
}
.im-fare .ticker::before {
  content: ""; width: 6px; height: 6px; border-radius: 999px;
  background: var(--rise-acid);
  animation: imPulse 1.6s infinite;
}
@keyframes imPulse {
  0% { box-shadow: 0 0 0 0 rgba(199,255,84,0.55); }
  70% { box-shadow: 0 0 0 6px rgba(199,255,84,0); }
  100% { box-shadow: 0 0 0 0 rgba(199,255,84,0); }
}

/* Right-hand description column */
.im-features { display: flex; flex-direction: column; gap: 16px; padding-top: 2px; }
.im-feat {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--neutral-100);
}
.im-feat:last-child { border-bottom: none; padding-bottom: 0; }
.im-feat .num {
  width: 32px; height: 32px;
  border-radius: 999px;
  background: var(--rise-acid);
  color: var(--rise-blue);
  font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px;
  font-family: var(--font-mono);
}
.im-feat h4 {
  margin: 0 0 4px;
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.im-feat p {
  margin: 0;
  font-size: 13px;
  color: var(--fg-muted);
  line-height: 1.5;
}
.im-soon {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--rise-blue);
  padding: 5px 10px;
  background: rgba(189,178,255,0.16);
  border-radius: 999px;
  font-weight: 800;
  text-transform: uppercase;
  align-self: flex-start;
  margin-bottom: 4px;
}
.im-soon::before {
  content: ""; width: 7px; height: 7px; border-radius: 999px;
  background: var(--rise-blue);
}

/* ============== SLIDES 13–15: LMS LESSON CONTROL ROOM (FUTURE) ============== */
.lms-screen {
  flex: 1;
  background: #FFFFFF;
  border-radius: 16px;
  overflow: hidden;
  display: flex; flex-direction: column;
  min-height: 0;
  color: #1A1A1A;
}
.lms-topbar {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 14px;
  background: var(--rise-blue);
  color: var(--rise-white);
}
.lms-topbar .logo {
  font-weight: 800; font-size: 12.5px; letter-spacing: -0.01em;
}
.lms-topbar .pill {
  background: rgba(199,255,84,0.18);
  color: var(--rise-acid);
  border: 1px solid rgba(199,255,84,0.4);
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.04em;
}
.lms-topbar .clock {
  font-family: var(--font-mono);
  font-size: 10.5px;
  color: rgba(245,245,245,0.7);
  letter-spacing: 0.05em;
}
.lms-topbar .clock b { color: #fff; font-weight: 800; }
.lms-topbar .spacer { flex: 1; }
.lms-topbar .ctrl {
  width: 22px; height: 22px; border-radius: 6px;
  background: rgba(245,245,245,0.1);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; color: #fff;
}
.lms-topbar .ctrl.play {
  background: var(--rise-acid);
  color: var(--rise-blue);
  width: auto; padding: 0 9px; height: 22px;
  font-weight: 800; font-size: 9.5px;
  letter-spacing: 0.06em;
}

.lms-stages {
  display: flex;
  gap: 5px;
  padding: 8px 12px;
  background: #FAFAFA;
  border-bottom: 1px solid var(--neutral-100);
}
.lms-stage-chip {
  flex: 1;
  padding: 6px 8px;
  border-radius: 8px;
  background: var(--rise-white);
  border: 1px solid var(--neutral-100);
  display: flex; flex-direction: column;
  gap: 1px;
  font-size: 10px;
  color: var(--neutral-700);
  position: relative;
  min-width: 0;
}
.lms-stage-chip .n {
  font-family: var(--font-mono);
  font-size: 8.5px;
  color: var(--neutral-500);
  letter-spacing: 0.06em;
  font-weight: 700;
}
.lms-stage-chip .lbl {
  font-weight: 800;
  font-size: 10.5px;
  letter-spacing: -0.01em;
  color: var(--rise-blue);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lms-stage-chip.done .lbl { color: var(--neutral-500); }
.lms-stage-chip.done { opacity: 0.78; }
.lms-stage-chip.done::after {
  content: "✓";
  position: absolute;
  top: 4px; right: 6px;
  font-size: 9px;
  color: var(--rise-blue);
  font-weight: 900;
}
.lms-stage-chip.active {
  background: var(--rise-blue);
  border-color: var(--rise-blue);
}
.lms-stage-chip.active .n { color: rgba(199,255,84,0.7); }
.lms-stage-chip.active .lbl { color: var(--rise-acid); }

.lms-main {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 200px;
  gap: 12px;
  padding: 12px 14px;
  min-height: 0;
  overflow: hidden;
}
.lms-stage-head {
  display: flex; flex-direction: column;
  gap: 3px;
  margin-bottom: 8px;
}
.lms-stage-head .eb {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.1em;
  color: var(--neutral-500);
  text-transform: uppercase;
  font-weight: 700;
}
.lms-stage-head h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.lms-stage-head h3 .accent { color: var(--rise-blue); }
.lms-stage-head p {
  margin: 2px 0 0;
  font-size: 11px;
  color: var(--fg-muted);
  line-height: 1.4;
}

/* Warm-up grid (slide 13) */
.lms-warmup {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}
.lms-warmup-q {
  background: var(--rise-white);
  border: 1px solid var(--neutral-100);
  border-radius: 9px;
  padding: 7px 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11.5px;
  color: var(--neutral-700);
}
.lms-warmup-q .n {
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 800;
  color: var(--neutral-500);
  flex-shrink: 0;
}
.lms-warmup-q .pill {
  margin-left: auto;
  font-size: 8.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  padding: 2px 6px;
  border-radius: 999px;
  text-transform: uppercase;
}
.lms-warmup-q .pill.yes {
  background: rgba(199,255,84,0.3);
  color: var(--rise-blue);
}
.lms-warmup-q .pill.no {
  background: var(--neutral-100);
  color: var(--neutral-600);
}

/* Grammar Lab (slide 14) */
.lms-formula {
  background: #FAFAF6;
  border: 1px solid var(--neutral-100);
  border-radius: 11px;
  padding: 10px 12px;
}
.lms-formula .eb {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.1em;
  color: var(--neutral-500);
  text-transform: uppercase;
  font-weight: 700;
}
.lms-formula .row {
  display: inline-flex; align-items: center; gap: 7px;
  margin-top: 5px;
}
.lms-formula .piece {
  background: var(--rise-blue);
  color: var(--rise-white);
  padding: 4px 9px;
  border-radius: 7px;
  font-weight: 800;
  font-size: 12.5px;
}
.lms-formula .piece.acid {
  background: var(--rise-acid);
  color: var(--rise-blue);
}
.lms-formula .plus {
  font-weight: 800;
  font-size: 14px;
  color: var(--neutral-500);
}
.lms-formula .eg {
  margin-top: 6px;
  font-size: 10.5px;
  color: var(--neutral-700);
  line-height: 1.5;
}
.lms-formula .eg b { color: var(--rise-blue); font-weight: 800; }
.lms-uses {
  display: flex; flex-direction: column; gap: 5px;
  margin-top: 8px;
}
.lms-use-row {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 10px;
  align-items: center;
  background: var(--rise-white);
  border: 1px solid var(--neutral-100);
  border-radius: 9px;
  padding: 6px 10px;
}
.lms-use-tag {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 10.5px;
  font-weight: 800;
  color: var(--rise-blue);
}
.lms-use-tag .sw {
  width: 7px; height: 7px;
  border-radius: 999px;
  background: var(--rise-acid);
}
.lms-use-ex {
  font-size: 11.5px;
  color: var(--neutral-700);
}
.lms-use-ex em {
  font-style: normal;
  background: rgba(199,255,84,0.45);
  padding: 1px 4px;
  border-radius: 4px;
  color: var(--rise-blue);
  font-weight: 700;
}
.lms-timeline {
  margin-top: 8px;
  background: var(--rise-white);
  border: 1px solid var(--neutral-100);
  border-radius: 11px;
  padding: 8px 12px;
}
.lms-timeline .hd {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 2px;
}
.lms-timeline h4 {
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: -0.01em;
}
.lms-timeline p {
  margin: 1px 0 4px;
  font-size: 10px;
  color: var(--fg-muted);
}
.lms-timeline .chip {
  font-family: var(--font-mono);
  font-size: 8.5px;
  background: rgba(189,178,255,0.18);
  color: var(--rise-blue);
  padding: 2px 7px;
  border-radius: 999px;
  letter-spacing: 0.08em;
  font-weight: 800;
}
.lms-timeline svg {
  display: block;
  width: 100%;
  height: auto;
}

/* Teacher panel (right side of LMS main) */
.lms-panel {
  background: #FAFAF6;
  border: 1px solid var(--neutral-100);
  border-radius: 11px;
  padding: 10px;
  display: flex; flex-direction: column;
  gap: 9px;
  min-width: 0;
}
.lms-panel-timer {
  display: flex; flex-direction: column;
  background: var(--rise-blue);
  color: var(--rise-white);
  border-radius: 9px;
  padding: 8px 10px;
}
.lms-panel-timer .lb {
  font-size: 8.5px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(245,245,245,0.65);
  font-weight: 700;
}
.lms-panel-timer .vl {
  font-family: var(--font-mono);
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.01em;
}
.lms-panel-timer .tick {
  display: inline-flex; align-items: center; gap: 4px;
  margin-top: 2px;
  font-size: 8.5px;
  font-weight: 800;
  color: var(--rise-acid);
  letter-spacing: 0.1em;
}
.lms-panel-timer .tick::before {
  content: ""; width: 6px; height: 6px; border-radius: 999px;
  background: var(--rise-acid);
}
.lms-panel-sec {
  display: flex; flex-direction: column; gap: 3px;
}
.lms-panel-sec .lb {
  font-family: var(--font-mono);
  font-size: 8.5px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--neutral-500);
  font-weight: 700;
}
.lms-panel-sec .vl {
  font-size: 11px;
  color: var(--neutral-800);
  line-height: 1.4;
}
.lms-panel-tip {
  background: rgba(199,255,84,0.15);
  border: 1px dashed rgba(47,13,255,0.3);
  border-radius: 8px;
  padding: 7px 9px;
  font-size: 10.5px;
  line-height: 1.45;
  color: var(--rise-blue);
}
.lms-panel-tip b { display: block; font-weight: 800; margin-bottom: 2px; font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.06em; }
.lms-panel-tip s {
  text-decoration: line-through;
  opacity: 0.55;
  margin-right: 4px;
  color: var(--neutral-600);
}
.lms-panel-tip em {
  font-style: normal;
  background: var(--rise-acid);  color: var(--rise-blue);
  padding: 1px 4px;
  border-radius: 4px;
  font-weight: 800;
}

/* Student tracker (bottom) */
.lms-students {
  display: flex;
  gap: 5px;
  padding: 8px 14px;
  background: #FAFAFA;
  border-top: 1px solid var(--neutral-100);
}
.lms-students .av {
  width: 26px; height: 26px;
  border-radius: 999px;
  background: var(--neutral-100);
  color: var(--neutral-700);
  font-size: 9px;
  font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  flex: 1;
  border: 1px solid var(--neutral-100);
  letter-spacing: 0.02em;
}
.lms-students .av.spoken {
  background: rgba(199,255,84,0.4);
  color: var(--rise-blue);
  border-color: rgba(199,255,84,0.6);
}
.lms-students .av.strong {
  background: var(--rise-blue);
  color: var(--rise-acid);
  border-color: var(--rise-blue);
}
.lms-students .av.support {
  background: #FFF7E0;
  color: #8E5A12;
  border-color: rgba(232,178,106,0.55);
}

/* Role-play grid (slide 15) */
.lms-rp {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 8px;
  padding: 10px 12px;
  min-height: 0;
}
.lms-rp-card {
  background: var(--rise-white);
  border: 1px solid var(--neutral-100);
  border-radius: 11px;
  padding: 9px 11px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
  overflow: hidden;
}
.lms-rp-card.featured {
  background: var(--rise-blue);
  border-color: var(--rise-blue);
}
.lms-rp-card.featured .lms-rp-eb { color: rgba(199,255,84,0.85); }
.lms-rp-card.featured .lms-rp-title { color: var(--rise-acid); }
.lms-rp-card.featured .lms-rp-roles .role {
  background: rgba(245,245,245,0.08);
  color: #F5F5F5;
}
.lms-rp-card.featured .lms-rp-roles .role b { color: var(--rise-acid); }
.lms-rp-card.featured .lms-rp-lb { color: rgba(199,255,84,0.85); }
.lms-rp-card.featured .lms-rp-phrase {
  background: rgba(245,245,245,0.08);
  color: #F0F0E0;
}
.lms-rp-card.featured .lms-rp-challenge {
  background: rgba(199,255,84,0.18);
  border-color: rgba(199,255,84,0.4);
  color: var(--rise-acid);
}
.lms-rp-card.featured .lms-rp-criteria { color: rgba(245,245,245,0.78); }
.lms-rp-card.featured .lms-rp-criteria li::marker { color: var(--rise-acid); }
.lms-rp-eb {
  display: inline-flex; align-items: center; gap: 5px;
  font-family: var(--font-mono);
  font-size: 8.5px;
  letter-spacing: 0.08em;
  color: var(--neutral-500);
  font-weight: 700;
  text-transform: uppercase;
}
.lms-rp-eb .dot {
  width: 3px; height: 3px;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.4;
}
.lms-rp-title {
  margin: 0;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--rise-blue);
  line-height: 1.15;
}
.lms-rp-roles {
  display: flex; gap: 5px;
}
.lms-rp-roles .role {
  flex: 1;
  background: var(--neutral-100);
  padding: 3px 7px;
  border-radius: 6px;
  font-size: 10px;
  color: var(--neutral-700);
  min-width: 0;
}
.lms-rp-roles .role b {
  display: inline-block;
  font-weight: 800;
  color: var(--rise-blue);
  margin-right: 4px;
}
.lms-rp-lb {
  font-family: var(--font-mono);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--neutral-500);
  font-weight: 700;
  margin-top: 1px;
}
.lms-rp-phrases {
  display: flex; flex-wrap: wrap; gap: 3px;
}
.lms-rp-phrase {
  background: rgba(47,13,255,0.07);
  color: var(--rise-blue);
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 9.5px;
  font-weight: 700;
}
.lms-rp-challenge {
  background: #FFF7E0;
  border: 1px solid rgba(232,178,106,0.4);
  border-radius: 7px;
  padding: 5px 7px;
  font-size: 9.5px;
  line-height: 1.4;
  color: #8E5A12;
  display: flex; gap: 5px;
  align-items: flex-start;
}
.lms-rp-challenge::before {
  content: "⚡";
  font-size: 11px;
  line-height: 1.2;
  flex-shrink: 0;
}
.lms-rp-criteria {
  font-size: 9.5px;
  color: var(--neutral-700);
  margin: 0;
  padding-left: 14px;
  line-height: 1.4;
}
.lms-rp-criteria li { margin-bottom: 1px; }

/* Interactive prototype embedding (video module + LMS) */
.slide.lms-slide { padding-top: 28px; padding-bottom: 28px; }
.slide.lms-slide .slide-inner {
  justify-content: flex-start;
  gap: 10px;
  padding-top: 0;
}
.slide.lms-slide .slide-eyebrow { margin-bottom: 0; }
.slide.lms-slide .slide-title {
  font-size: clamp(26px, 3vw, 36px);
  margin: 0;
  line-height: 1.1;
}
.slide.lms-slide .slide-lede {
  font-size: 14.5px;
  max-width: 86ch;
  margin: 0;
  line-height: 1.45;
}
.lms-frame-wrap {
  width: 100%;
  aspect-ratio: 1400 / 880;
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  background: #FFFFFF;
}
.lms-frame-wrap iframe {
  width: 1400px;
  height: 880px;
  border: 0;
  display: block;
  position: absolute;
  top: 0; left: 0;
  transform-origin: top left;
  background: #FFFFFF;
}
.slide.lms-slide .im-window {
  flex: 0 0 auto;
  margin-top: 4px;
}
.lms-feat-row {
  display: grid;
  grid-template-columns: auto 1fr 1fr 1fr;
  gap: 14px;
  align-items: stretch;
  margin-top: 0;
}
.lms-feat-row .im-soon { align-self: center; margin: 0; }
.lms-feat-row .lms-feat {
  display: grid;
  grid-template-columns: 18px 1fr;
  column-gap: 6px;
  row-gap: 0;
  align-items: start;
  padding: 2px 0 2px 12px;
  border-left: 2px solid var(--rise-acid);
}
.lms-feat-row .lms-feat .num {
  font-family: var(--font-mono);
  font-weight: 800;
  color: var(--rise-blue);
  font-size: 12px;
  letter-spacing: -0.02em;
}
.lms-feat-row .lms-feat strong {
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: -0.01em;
  grid-column: 2;
  color: var(--fg);
  line-height: 1.2;
}
.lms-feat-row .lms-feat span {
  font-size: 11px;
  color: var(--fg-muted);
  line-height: 1.35;
  grid-column: 2;
  margin-top: 1px;
}

/* Print / PDF mode */
@media print {
  .deck-chrome, .progress, [data-tweaks-panel], .interactive-hint { display: none !important; }
  .deck { height: auto; overflow: visible; scroll-snap-type: none; }
  .slide {
    page-break-after: always;
    min-height: 0;
    height: 100vh;
  }
}
