/* =============================================
   WOW Effects Plugin — wow-effects.css
   ============================================= */

/* カスタムカーソル */
#wow-cursor {
  position: fixed;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 99999;
  mix-blend-mode: screen;
  transform: translate(-50%, -50%);
  transition: width 0.2s, height 0.2s, background 0.2s, box-shadow 0.2s;
  background: var(--wow-cursor-color, #00f0ff);
  box-shadow: 0 0 18px 6px var(--wow-cursor-color, #00f0ff);
}

#wow-cursor-ring {
  position: fixed;
  width: 40px;
  height: 40px;
  border: 1.5px solid rgba(0, 240, 255, 0.45);
  border-radius: 50%;
  pointer-events: none;
  z-index: 99998;
  transform: translate(-50%, -50%);
  transition: width 0.25s, height 0.25s;
}

/* ホバー時にカーソルを拡大 */
body.wow-cursor-active a:hover ~ #wow-cursor,
body.wow-cursor-active button:hover ~ #wow-cursor {
  width: 24px;
  height: 24px;
}

/* カーソル軌跡ドット */
.wow-trail-dot {
  position: fixed;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 99990;
  transform: translate(-50%, -50%);
  animation: wowTrailFade 0.8s forwards;
}

@keyframes wowTrailFade {
  0%   { opacity: 0.85; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: 0;    transform: translate(-50%, -50%) scale(0.1); }
}

/* =============================================
   スクロールアニメーション
   ============================================= */
.wow-reveal {
  opacity: 0;
  transform: translateY(55px);
  transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
}

.wow-reveal.wow-visible {
  opacity: 1;
  transform: translateY(0);
}

/* 遅延バリエーション */
.wow-reveal-delay-1 { transition-delay: 0.10s; }
.wow-reveal-delay-2 { transition-delay: 0.22s; }
.wow-reveal-delay-3 { transition-delay: 0.34s; }
.wow-reveal-delay-4 { transition-delay: 0.46s; }
.wow-reveal-delay-5 { transition-delay: 0.58s; }

/* =============================================
   クリック爆発パーティクル
   ============================================= */
.wow-burst-particle {
  position: fixed;
  border-radius: 50%;
  pointer-events: none;
  z-index: 99995;
  transform: translate(-50%, -50%);
  animation: wowBurst var(--wow-duration, 0.7s) cubic-bezier(0.2, 0.8, 0.4, 1) forwards;
}

@keyframes wowBurst {
  0%   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: 0; transform: translate(
    calc(-50% + var(--wow-tx, 0px)),
    calc(-50% + var(--wow-ty, 0px))
  ) scale(0); }
}

/* 衝撃波リング */
.wow-burst-ring {
  position: fixed;
  border-radius: 50%;
  pointer-events: none;
  z-index: 99994;
  border: 2px solid rgba(255, 230, 0, 0.75);
  transform: translate(-50%, -50%);
  animation: wowRingExpand 0.55s ease-out forwards;
}

@keyframes wowRingExpand {
  0%   { width: 8px;   height: 8px;   opacity: 1; }
  100% { width: 180px; height: 180px; opacity: 0; }
}

/* スクリーンフラッシュ */
.wow-screen-flash {
  position: fixed;
  inset: 0;
  z-index: 99993;
  pointer-events: none;
  animation: wowFlashOut 0.4s forwards;
}

@keyframes wowFlashOut {
  0%   { opacity: 1; }
  100% { opacity: 0; }
}

/* =============================================
   ショートコードボタンのデフォルトスタイル
   ============================================= */
button.wow-explode,
a.wow-explode {
  display: inline-block;
  padding: 0.9rem 2.8rem;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #fff;
  background: linear-gradient(135deg, #ff6a00, #ee0979);
  border: none;
  border-radius: 50px;
  cursor: pointer;
  text-decoration: none;
  box-shadow: 0 4px 20px rgba(238, 9, 121, 0.4);
  transition: transform 0.15s, box-shadow 0.15s;
}

button.wow-explode:hover,
a.wow-explode:hover {
  transform: scale(1.05);
  box-shadow: 0 6px 28px rgba(238, 9, 121, 0.55);
}

button.wow-explode:active,
a.wow-explode:active {
  transform: scale(0.97);
}
