:root {
  --color-text: #000000;
  --color-blue: #0C4DA2;
  --color-cyan: rgba(48, 161, 210, 1);
  --color-yellow: #F5FF02;
  --color-wave: #BEF0F4;

  --font-base: "Noto Sans JP", sans-serif;
}

/* ページ内アンカーへ滑らかにスクロール（視差軽減設定のユーザーには即時ジャンプ） */
@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
}

body {
  font-family: var(--font-base);
  color: var(--color-text);
  line-height: 1.8;
}

/* ========================================================================
   スクロールリビール（.js-reveal）
   - 画面に入ると下から現れる（main.js の IntersectionObserver が .is-shown を付与）
   - html.is-reveal-ready は main.js が付与。JS 無効時はクラスが付かず要素は表示のまま
   - prefers-reduced-motion 時は常に表示
   ======================================================================== */
.is-reveal-ready .js-reveal {
  opacity: 0;
  transform: translateY(28px);   /* translate プロパティは古いブラウザ非対応のため transform を使う */
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.is-reveal-ready .js-reveal.is-shown {
  opacity: 1;
  transform: none;
}
