/* 基本設定 */
        html { scroll-behavior: smooth; }
        body { -webkit-font-smoothing: antialiased; }

        /* アニメーション */
        .fade-in-up {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .fade-in-up.visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* 数字の強調用クラス */
        .text-shadow-sm {
            text-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }

        /* Video Container (YouTube/MP4共通) */
        .video-container {
            position: relative;
            padding-bottom: 56.25%; /* 16:9 Aspect Ratio */
            height: 0;
            overflow: hidden;
            background: #000;
        }
        
        /* iframeとvideoタグ両方に適用 */
        .video-container iframe,
        .video-container video {
            position: absolute;
            top: 0; 
            left: 0; 
            width: 100%; 
            height: 100%;
            object-fit: cover; /* 動画をコンテナいっぱいに表示 */
        }

        /* 背景ドットパターン */
        .bg-dots {
            background-size: 20px 20px;
        }
        
        /* グラデーションテキスト */
        .text-gradient {
            background-clip: text;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-image: linear-gradient(to right, #fbbf24, #f59e0b);
        }