    /* グラデーション背景 */
    .gradient-bg {
      background: linear-gradient(135deg, #f5ede7 0%, #faf6f3 100%);
    }
    
    /* フェードインアニメーション */
    @keyframes fadeIn {
      from {
        opacity: 0;
        transform: translateY(-10px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }
    .animate-fadeIn {
      animation: fadeIn 0.3s ease-out;
    }
    
    /* カウントアップアニメーション */
    @keyframes countUp {
      from {
        transform: scale(0.5);
        opacity: 0;
      }
      to {
        transform: scale(1);
        opacity: 1;
      }
    }
    .animate-countUp {
      animation: countUp 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
    }
    
    /* プログレスバー */
    .progress-bar {
      transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
    }
    
    /* ブラーオーバーレイ */
    .blur-overlay {
      backdrop-filter: blur(8px);
      background: rgba(250, 246, 243, 0.9);
    }
    
    /* スクロールバーカスタマイズ */
    .overflow-y-auto::-webkit-scrollbar {
      width: 6px;
    }
    .overflow-y-auto::-webkit-scrollbar-track {
      background: #f5ede7;
      border-radius: 3px;
    }
    .overflow-y-auto::-webkit-scrollbar-thumb {
      background: #c9a27b;
      border-radius: 3px;
    }
    .overflow-y-auto::-webkit-scrollbar-thumb:hover {
      background: #a67c52;
    }
    
    /* グラフカードホバーエフェクト */
    .chart-card {
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }
    .chart-card:hover {
      transform: translateY(-2px);
    }
    
    /* プレミアム限定セクションのロック表示 */
    .premium-section {
      position: relative; /* オーバーレイがページ全体に広がるのを防ぐ */
      isolation: isolate; /* backdrop/filterの影響をセクション内に閉じ込める */
    }

    .premium-section.locked .section-content {
      filter: blur(4px);
      pointer-events: none;
      user-select: none;
    }
    
    .premium-section .premium-overlay {
      display: none;
    }
    
    .premium-section.locked .premium-overlay {
      display: flex;
      position: absolute;
      inset: 0;
      z-index: 10;
      background: rgba(255, 255, 255, 0.7);
      backdrop-filter: blur(2px);
      align-items: center;
      justify-content: center;
      border-radius: 1rem;
    }

