html {
  scroll-behavior: smooth;
}
body {
  -webkit-font-smoothing: antialiased;
  background-color: #0B0F19;
}

/* タブレット以上：背中写真をサイド背景に固定表示 */
@media (min-width: 481px) {
  body {
    background-image:
      linear-gradient(rgba(11,15,25,0.55), rgba(11,15,25,0.55)),
      url('images/bg-back.jpg');
    background-size: cover;
    background-position: center top;
    background-attachment: fixed;
  }
}

/* Typography Effects */
.text-outline {
  color: transparent;
  -webkit-text-stroke: 1px rgba(255, 255, 255, 0.15);
}

/* Scroll Animations */
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}
.delay-100 {
  transition-delay: 100ms;
}
.delay-200 {
  transition-delay: 200ms;
}
.delay-300 {
  transition-delay: 300ms;
}

/* Graph Animation */
.graph-bar {
  width: 0;
  transition: width 1.5s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
}

/* Pulse Animation for CTA */
@keyframes pulse-soft {
  0%,
  100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
}
.animate-pulse-soft {
  animation: pulse-soft 2s infinite ease-in-out;
}

/* Mobile: FV画像を全幅で表示 */
#fv-image {
  display: block;
  width: 100%;
  height: auto;
}

/* タップ領域を広くする（モバイル向け） */
@media (max-width: 640px) {
  a, button {
    min-height: 44px;
  }
}
