/* 起動演出：ロゴがふわっと浮かぶ → 青い光の線が横に走る → EXECUTIVE SUITE → 約3秒で消える */
@keyframes ksbIntro { 0% { opacity: 1 } 78% { opacity: 1 } 100% { opacity: 0; visibility: hidden } }
@keyframes ksbSweep { 0% { transform: translateX(-120%) } 60% { transform: translateX(120%) } 100% { transform: translateX(120%) } }
@keyframes ksbRise { 0% { opacity: 0; transform: translateY(10px) } 35% { opacity: 0; transform: translateY(10px) } 70% { opacity: 1; transform: none } 100% { opacity: 1; transform: none } }

.ksb-intro {
  position: fixed; inset: 0; z-index: 100;
  background: var(--ksb-bg-intro);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 26px;
  animation: ksbIntro 3.2s ease forwards;
}
.ksb-intro__logo { height: 120px; width: auto; max-width: 70vw; animation: ksbRise 3.2s ease forwards; }
.ksb-intro__track { width: 320px; max-width: 70%; height: 1px; background: var(--ksb-line); overflow: hidden; }
.ksb-intro__sweep {
  width: 100%; height: 1px;
  background: linear-gradient(90deg, rgba(60,143,216,0), var(--ksb-accent-light), rgba(60,143,216,0));
  animation: ksbSweep 2.2s cubic-bezier(.6,0,.2,1) forwards;
}
.ksb-intro__label { font-size: 11px; letter-spacing: .5em; color: var(--ksb-muted-2); animation: ksbRise 3.2s ease forwards; padding-left: .5em; }

/* 要対応が入った時に1回だけ走る光の線（motion.js の KSB.sweepOnce） */
.ksb-sweep-host { position: relative; overflow: hidden; }
.ksb-sweep-line {
  position: absolute; left: 0; right: 0; top: 0; height: 1px; pointer-events: none;
  background: linear-gradient(90deg, rgba(60,143,216,0), var(--ksb-accent-light), rgba(60,143,216,0));
  animation: ksbSweep 1.6s cubic-bezier(.6,0,.2,1) forwards;
}

/* 背景の青い光がゆっくり動く */
@keyframes ksbDrift { 0% { transform: translate3d(0,0,0) } 50% { transform: translate3d(-4%, 3%, 0) } 100% { transform: translate3d(0,0,0) } }
.ksb-glow { animation: ksbDrift 24s ease-in-out infinite; }

@media (prefers-reduced-motion: reduce) {
  .ksb-intro, .ksb-intro__logo, .ksb-intro__sweep, .ksb-intro__label, .ksb-sweep-line { animation-duration: .01s; }
  .ksb-glow { animation: none; }
}
