/* Warp headings are already complete when their scene becomes visible.
   The source text remains accessible and is the static WebGL fallback. */
.is-psd-story .psd-ko-title,
.svc-psd-heading h2[data-type-title] {
  opacity: 1;
}
.is-psd-story .psd-title-selection {
  color: #fff;
  -webkit-text-fill-color: #fff;
  font-weight: 500;
  letter-spacing: inherit;
  background: none;
}
.is-psd-story .psd-ko-title .film-warp-canvas,
.svc-psd-heading .service-warp-canvas,
.s03-editorial-headline .about-warp-canvas,
.is-psd-story .psd-ko-title > span,
.svc-psd-heading h2 > span:not(.svc-title-selection),
.s03-editorial-headline > span { transition: none; }
.svc-psd-heading h2[data-type-title] { color: #fff; }
.svc-psd-heading h2.is-service-warp-active .service-warp-canvas { opacity: 1; }

/* The old editorial clip stopped copy 72–82px before the viewport edge.
   The sticky viewport still clips naturally at its actual top boundary. */
.s03-editorial { clip-path: none; }

/* Light clear glass with enough local tint for ink on bright video frames. */
.svc151-card .svc151-panel,
.svc151-card.is-frontmost .svc151-panel {
  background: linear-gradient(180deg,rgba(12,5,16,.11),rgba(12,5,16,.36)),linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.025) 35%,rgba(255,255,255,.04) 72%,rgba(255,255,255,.12)),rgba(17,10,23,.18);
}
.svc151-card :is(.svc151-title,.svc151-english,.svc151-body,.svc151-view),
.svc151-card :is(.svc151-title,.svc151-english,.svc151-body,.svc151-view) * {
  text-shadow: none;
  filter: none;
}
@media (prefers-reduced-motion: reduce) {
  .is-psd-story .psd-ko-title .film-warp-canvas,
  .svc-psd-heading .service-warp-canvas,
  .s03-editorial-headline .about-warp-canvas { display: none; }
}
