/* ĐỐI TÁC — style scoped của CinemaPartners.vue. */

/* Rọi đèn: vầng sáng CỠ CỐ ĐỊNH (bán kính 300px), đưa chuột vào thì cả vầng SÁNG DẦN TẠI CHỖ. Khung ngoài mờ dần hai mép
   trái/phải; mỗi dải một mặt nạ vầng tròn quanh con trỏ, mép vầng về độ mờ riêng `--base` của dải (trên 55%, dưới 35%).
   `--spot-k` (0 → 1) là độ "bật đèn", khai @property để chuyển mượt. */
@property --spot-k {
  syntax: '<number>';
  inherits: true;
  initial-value: 0;
}
[data-ex-section="partners"] .ex-spot {
  --spot-k: 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  transition: --spot-k 0.45s ease;
}
[data-ex-section="partners"] .ex-spot.is-on { --spot-k: 1; }
[data-ex-section="partners"] .ex-spot-row {
  --sx: 50%;
  --sy: 50%;
  --spot: radial-gradient(
    circle 300px at var(--sx) var(--sy),
    rgba(0, 0, 0, calc(var(--base) + (1 - var(--base)) * var(--spot-k))) 0%,
    rgba(0, 0, 0, calc(var(--base) + (1 - var(--base)) * 0.6 * var(--spot-k))) 45%,
    rgba(0, 0, 0, var(--base)) 100%
  );
  -webkit-mask-image: var(--spot);
  mask-image: var(--spot);
}

/* Quầng sáng tròn trên lớp phủ: màu `--c` đậm ở tâm tan dần ra rìa, trôi + phập phồng chậm. */
[data-ex-section="partners"] .ex-light {
  position: absolute;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle closest-side, var(--c) 0%, var(--c) 18%, transparent 100%);
  filter: blur(12px);
}
@media (prefers-reduced-motion: no-preference) {
  [data-ex-section="partners"] .ex-light { animation: ex-light var(--d) ease-in-out infinite alternate; }
}
@keyframes ex-light {
  0% { transform: translate3d(0, 0, 0) scale(1); }
  100% { transform: translate3d(-10%, 8%, 0) scale(1.12); }
}
/* Hình vô cực: mép phải cột mô tả = giữa khối + nửa khung (tối đa 1360px) − lề khung 40px (≥992px); rộng = cột phải lưới
   (300px từ 992, 360px từ 1200). Cao = rộng × 332/724; top = −nửa cao ⇒ mép trên khối cắt đúng nửa hình. */
[data-ex-section="partners"] .ex-infinity { --w: 300px; --half: 680px; width: var(--w); left: calc(50% + min(var(--half), 50%) - 40px - var(--w)); top: calc(var(--w) * 332 / 724 / -2); }
@media (min-width: 1200px) { [data-ex-section="partners"] .ex-infinity { --w: 360px; } }

/* Tâm quầng ngay ở góc khối: dịch nửa cỡ ra ngoài. */
[data-ex-section="partners"] .ex-light-tl,
[data-ex-section="partners"] .ex-light-br { --s: clamp(560px, 68vw, 1100px); width: var(--s); }
[data-ex-section="partners"] .ex-light-tl { left: calc(var(--s) / -2); top: calc(var(--s) / -2); }
[data-ex-section="partners"] .ex-light-br { right: calc(var(--s) / -2); bottom: calc(var(--s) / -2); }

/* Cụm cuối tít: xanh lá chuyển màu như phần "eco" logo. Đệm hộp nền để chữ không bị cắt dấu (ố, ư) và chân chữ. */
[data-ex-section="partners"] .ex-green-text {
  background: linear-gradient(100deg, #a8dc4f 0%, #74c043 50%, #3f9e3c 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  padding: 0.2em 0.06em 0.18em;
  margin: -0.2em -0.06em -0.18em;
}

/* Tít cùng font với tít màn đầu; Momo Trust Display chỉ có nét 400 — để trình duyệt tự tô đậm là chữ nhoè. */
[data-ex-section="partners"] .ex-partners-title {
  font-family: 'Momo Trust Display', 'Be Vietnam Pro', sans-serif;
  font-weight: 400;
  letter-spacing: -0.025em;
}
