/* -----------------------------------------------------------
    /* Cover-only visual refinement. Kept inside this HTML so archive/ge3.html remains a clean backup. */
    .reveal .cover-slide {
      overflow: hidden;
      /* Grid nền rõ hơn + spotlight trắng lớn bên phải + ambient xanh nhẹ */
      background:
        linear-gradient(rgba(37, 99, 235, 0.048) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.048) 1px, transparent 1px),
        radial-gradient(ellipse at 72% 38%, rgba(255, 255, 255, 0.78) 0%, rgba(220, 236, 255, 0.38) 34%, transparent 68%),
        radial-gradient(ellipse at 95% 60%, rgba(110, 172, 245, 0.18) 0%, transparent 52%),
        radial-gradient(ellipse at 10% 85%, rgba(37, 99, 235, 0.05) 0%, transparent 38%),
        linear-gradient(145deg, #f5f9ff 0%, #eaf3ff 60%, #f8fcff 100%);
      background-size: 30px 30px, 30px 30px, 100% 100%, 100% 100%, 100% 100%, 100% 100%;
    }

    .reveal .cover-slide .blueprint-frame {
      inset: 16px;
      /* Single premium blue line, ultra-clean */
      border: 1.5px solid rgba(49, 118, 245, 0.82);
      border-radius: 44px;
      background-clip: padding-box;
      /* Nền panel: inner highlight trắng phía trên + body trong suốt */
      background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.60) 0%, rgba(255, 255, 255, 0.10) 40%, rgba(255, 255, 255, 0.04) 100%);
      box-shadow:
        /* Bóng đổ cực kỳ mềm dưới đáy để tạo chiều sâu tinh tế */
        0 8px 24px rgba(20, 50, 120, 0.05),
        /* Glow xanh nhẹ quanh viền mịn màng, khống chế trong phạm vi 16px */
        0 0 20px rgba(49, 118, 245, 0.15),
        /* Inner highlight trắng giả kính cường lực cao cấp */
        inset 0 0 0 1px rgba(255, 255, 255, 0.90),
        inset 0 2px 24px rgba(255, 255, 255, 0.45),
        inset 0 0 60px rgba(200, 222, 255, 0.06);
    }

    /* Bỏ hoàn toàn các nhãn chữ thô và sọc ở viền trên/dưới để thiết kế thoáng và cao cấp */
    .reveal .cover-slide .blueprint-frame::before,
    .reveal .cover-slide .blueprint-frame::after {
      display: none !important;
    }

    .reveal .cover-slide .cover-copy .subtitle {
      text-shadow: 0 10px 30px rgba(37, 99, 235, 0.12);
    }

    .reveal .cover-slide .vision-dot {
      box-shadow:
        16px 0 0 -12px var(--paper),
        -16px 0 0 -12px var(--paper),
        0 16px 0 -12px var(--paper),
        0 -16px 0 -12px var(--paper),
        0 0 24px rgba(37, 99, 235, 0.16);
    }

    .reveal .cover-slide .rule-line {
      width: 400px;
      height: 2px;
      margin-top: 28px;
      position: relative;
      /* Một đường thẳng duy nhất mỏng, mượt mà và mờ dần về bên phải */
      background: linear-gradient(90deg, 
        rgba(49, 118, 245, 0.85) 0%, 
        rgba(49, 118, 245, 0.4) 60%, 
        transparent) !important;
      box-shadow: 0 0 10px rgba(37, 99, 235, 0.08);
    }

    .reveal .cover-slide .rule-line::after {
      display: none !important;
    }

    .reveal .cover-slide .team-strip span {
      border-color: rgba(37, 99, 235, 0.24);
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 249, 255, 0.92));
      box-shadow:
        0 12px 28px rgba(15, 35, 80, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    }

    .reveal .cover-slide .hero-visual {
      isolation: isolate;
    }

    .reveal .cover-slide .hero-visual::after {
      content: "";
      position: absolute;
      z-index: 2; /* Renders above spotlight and floor glow, but below robot arm */
      right: -2px;
      bottom: 22px;
      width: 700px;
      height: 156px;
      border-radius: 50%;
      border: 3.5px solid rgba(255, 255, 255, 0.98) !important; /* Brighter, thicker white core */
      background:
        radial-gradient(ellipse at center, rgba(255, 255, 255, 0.40) 0%, rgba(229, 241, 255, 0.22) 42%, transparent 70%) !important;
      box-shadow:
        0 0 16px rgba(255, 255, 255, 0.95),
        0 0 36px rgba(100, 172, 248, 0.65), /* Stronger blue neon glow outer */
        inset 0 0 20px rgba(255, 255, 255, 0.95),
        inset 0 0 30px rgba(100, 172, 248, 0.45) !important;
      filter: blur(1.5px) !important; /* Crisper, premium glow edge */
      transform: rotate(-3deg);
      pointer-events: none;
    }

    .reveal .cover-slide .robot-object-stage::before {
      z-index: 0;
      /* Spotlight to và sáng hơn phía sau robot */
      width: 760px;
      height: 580px;
      right: -40px;
      bottom: 20px;
      background:
        radial-gradient(ellipse at 55% 35%, rgba(255, 255, 255, 0.72) 0%, rgba(235, 246, 255, 0.44) 28%, transparent 62%),
        radial-gradient(ellipse at 60% 55%, rgba(110, 172, 245, 0.22) 0%, transparent 68%);
      filter: blur(28px);
      opacity: 1;
    }

    .reveal .cover-slide .robot-object-stage::after {
      content: "";
      position: absolute;
      z-index: 1; /* Under the neon ring and robot arm */
      /* Floor glow: to hơn, sáng hơn, blur cao, fade mềm */
      width: 740px;
      height: 160px;
      left: -20px;
      right: auto;
      bottom: 16px;
      border: 0;
      border-radius: 50%;
      background:
        radial-gradient(ellipse at center, rgba(255, 255, 255, 0.92) 0%, rgba(218, 238, 255, 0.56) 28%, rgba(100, 170, 248, 0.26) 54%, transparent 82%);
      box-shadow:
        0 0 100px rgba(100, 172, 248, 0.32),
        inset 0 0 64px rgba(255, 255, 255, 0.68);
      filter: blur(14px);
      opacity: 1;
      transform: rotate(-3deg);
    }

    .reveal .cover-slide .robot-cutout {
      position: relative;
      z-index: 3 !important; /* Renders above floor glows and neon ring (z-index 2), but behind labels */
      filter:
        drop-shadow(0 30px 34px rgba(9, 23, 51, 0.17))
        drop-shadow(0 0 18px rgba(255, 255, 255, 0.62));
    }

    .reveal .cover-slide .tech-label {
      z-index: 10 !important; /* Forces the labels to render on top of the robot cutout */
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 249, 255, 0.94));
      backdrop-filter: blur(10px);
      box-shadow:
        0 12px 30px rgba(15, 35, 80, 0.14),
        0 0 18px rgba(37, 99, 235, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.92);
    }

    .reveal .cover-slide .tech-label::before {
      background: linear-gradient(180deg, #3b82f6, var(--blue));
      box-shadow: 0 4px 10px rgba(37, 99, 235, 0.3);
    }

    /* Mascot styling: add glowing blue drop shadow */
    .reveal .cover-slide .mascot-cover {
      width: 150px !important;
      right: -10px !important;
      bottom: -15px !important;
      z-index: 10 !important;
      filter:
        drop-shadow(0 10px 18px rgba(100, 172, 248, 0.55)) /* Glowing blue ring effect */
        drop-shadow(0 16px 28px rgba(15, 40, 90, 0.18)) !important; /* Soft shadow */
    }
/* ═══════════════════════════════════════════════════════════
   SLIDE 1 — COVER
   ═══════════════════════════════════════════════════════════ */
.cover-grid {
  display: grid;
  grid-template-columns: 0.88fr 1.12fr;
  gap: 32px;
  align-items: center;
  min-height: 600px;
}

.cover-copy {
  position: relative;
  z-index: 2;
  padding-left: 8px;
}

.cover-copy .subtitle {
  color: var(--blue);
  font-size: 36px;
  font-weight: 800;
  letter-spacing: -0.4px;
}

.cover-slide h1 {
  max-width: 520px;
  font-size: 96px;
  line-height: 0.9;
  color: #030d1c;
  letter-spacing: -3px;
}

/* Blueprint outer border */
.blueprint-frame {
  position: absolute;
  inset: 24px;
  z-index: -1;
  pointer-events: none;
  border: 1px solid rgba(17, 24, 39, 0.16);
  border-radius: 6px 32px 6px 32px;
}

.blueprint-frame::before,
.blueprint-frame::after {
  content: "";
  position: absolute;
  width: 80px;
  height: 10px;
  background: repeating-linear-gradient(135deg, rgba(37, 99, 235, 0.9) 0 3px, transparent 3px 9px);
}

.blueprint-frame::before {
  top: -6px;
  left: 48%;
}

.blueprint-frame::after {
  bottom: -6px;
  left: 48%;
}

/* Vision-eye icon */
.vision-dot {
  width: 52px;
  height: 52px;
  margin-bottom: 20px;
  border: 5px solid var(--blue);
  border-radius: 14px;
  background: radial-gradient(circle, var(--blue) 0 14px, transparent 15px);
  box-shadow:
    16px 0 0 -12px var(--paper),
    -16px 0 0 -12px var(--paper),
    0 16px 0 -12px var(--paper),
    0 -16px 0 -12px var(--paper);
}

/* Horizontal rule accent */
.rule-line {
  width: 400px;
  height: 3px;
  margin-top: 28px;
  background: linear-gradient(90deg, var(--blue), var(--blue), transparent);
}

.rule-line::after {
  content: "";
  display: block;
  width: 56px;
  height: 10px;
  margin-left: 210px;
  transform: translateY(-4px);
  background: repeating-linear-gradient(135deg, var(--blue) 0 2px, transparent 2px 7px);
}

/* Team name chips */
.team-strip {
  display: grid;
  gap: 12px;
  max-width: 520px;
  margin-top: 52px;
}

.team-strip span {
  width: fit-content;
  padding: 11px 18px;
  border: 1px solid rgba(37, 99, 235, 0.2);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--ink);
  font-size: 19px;
  font-weight: 800;
  box-shadow: 0 8px 24px rgba(37, 99, 235, 0.07);
}

.team-strip b {
  margin: 0 18px;
  color: var(--blue);
}

/* Hero image area */
.hero-visual {
  position: relative;
  min-height: 560px;
}

/* Robot stage with glow */
.robot-object-stage {
  position: absolute;
  inset: -18px 10px -4px -28px;
  display: grid;
  place-items: center;
}

.robot-object-stage::before {
  content: "";
  position: absolute;
  width: 520px;
  height: 360px;
  right: 30px;
  bottom: 30px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(37, 99, 235, 0.14), transparent 68%);
  filter: blur(6px);
}

.robot-cutout {
  position: relative;
  z-index: 1;
  width: 640px;
  max-height: 580px;
  object-fit: contain;
  filter: drop-shadow(0 28px 36px rgba(9, 23, 51, 0.17));
}

/* Tech annotation badges (numbered pill style) */
.tech-label {
  position: absolute;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px 7px 8px;
  border: 1px solid rgba(37, 99, 235, 0.28);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(6px);
  color: var(--ink-soft);
  font-size: 14px;
  line-height: 1.2;
  font-weight: 700;
  box-shadow: 0 6px 20px rgba(15, 35, 80, 0.12);
  white-space: nowrap;
}

/* Numbered circle prefix */
.tech-label::before {
  content: attr(data-num);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--blue);
  color: white;
  font-size: 12px;
  font-weight: 900;
}

/* No ::after needed */
.tech-label::after { display: none; }

/* Position each label near its part on the robot */
.label-arm     { top: 38px;   left: 220px; }
.label-suction { top: 260px;  right: 8px;  }
.label-stepper { bottom: 105px; left: 80px; }

/* Mascot base */
.mascot {
  position: absolute;
  z-index: 4;
  object-fit: contain;
  pointer-events: none;
}

.mascot-cover {
  right: -8px;
  bottom: 14px;
  width: 154px;
  filter: drop-shadow(0 14px 24px rgba(15, 40, 90, 0.17));
}

/* ═══════════════════════════════════════════════════════════
