body {
            font-family: 'Noto Sans JP', sans-serif;
        }

        @keyframes fadeInUp {
            0% {
                opacity: 0;
                transform: translateY(30px);
            }

            100% {
                opacity: 1;
                transform: translateY(0);
            }
        }

        @keyframes slideInLeft {
            0% {
                opacity: 0;
                transform: translateX(-50px);
            }

            100% {
                opacity: 1;
                transform: translateX(0);
            }
        }

        @keyframes slideInRight {
            0% {
                opacity: 0;
                transform: translateX(50px);
            }

            100% {
                opacity: 1;
                transform: translateX(0);
            }
        }

        @keyframes pulse {

            0%,
            100% {
                transform: scale(1);
            }

            50% {
                transform: scale(1.05);
            }
        }

        @keyframes float {

            0%,
            100% {
                transform: translateY(0px);
            }

            50% {
                transform: translateY(-10px);
            }
        }

        @keyframes gradient {
            0% {
                background-position: 0% 50%;
            }

            50% {
                background-position: 100% 50%;
            }

            100% {
                background-position: 0% 50%;
            }
        }

        .animate-fadeInUp {
            animation: fadeInUp 0.8s ease-out;
        }

        .animate-slideInLeft {
            animation: slideInLeft 0.8s ease-out;
        }

        .animate-slideInRight {
            animation: slideInRight 0.8s ease-out;
        }

        .animate-pulse-custom {
            animation: pulse 2s infinite;
        }

        .animate-float {
            animation: float 3s ease-in-out infinite;
        }

        .animate-gradient {
            background-size: 200% 200%;
            animation: gradient 3s ease infinite;
        }

        .hover-scale {
            transition: transform 0.3s ease;
        }

        .hover-scale:hover {
            transform: scale(1.05);
        }

        .hover-lift {
            transition: all 0.3s ease;
        }

        .hover-lift:hover {
            transform: translateY(-5px);
            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
        }

        .text-gradient {
            background: linear-gradient(135deg, #ffcba1 0%, #fc8f13 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }

        .bg-gradient-hero {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        }

        .bg-video {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            z-index: -1;
            transition: opacity 1s ease;
            filter: blur(6px);
            /* デフォルトでBlur */
        }

        .btn-hover.color-2 {
            background-image: linear-gradient(to right, #f5ce62, #e43603, #fa7199, #e85a19);
            box-shadow: 0 4px 15px 0 rgba(229, 66, 10, 0.75);
        }

        .hidden {
            opacity: 0;
            pointer-events: none;
        }

        .visible {
            opacity: 1;
        }

        .bg-gradient-animated {
            background: linear-gradient(135deg, #667eea, #764ba2, #f093fb, #f5576c);
        }

        .card-shadow {
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
            transition: all 0.3s ease;
        }

        .card-shadow:hover {
            box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
        }

        .icon-bounce {
            animation: float 2s ease-in-out infinite;
        }

        .delayed-animation-1 {
            animation-delay: 0.2s;
        }

        .delayed-animation-2 {
            animation-delay: 0.4s;
        }

        .delayed-animation-3 {
            animation-delay: 0.6s;
        }

        .delayed-animation-4 {
            animation-delay: 0.8s;
        }

        .delayed-animation-5 {
            animation-delay: 1.0s;
        }

        .nav-hover {
            position: relative;
            transition: all 0.3s ease;
        }

        .nav-hover::after {
            content: '' '';
            position: absolute;
            bottom: -2px;
            left: 0;
            width: 0;
            height: 2px;
            background: #667eea;
            transition: width 0.3s ease;
        }

        .nav-hover:hover::after {
            width: 100%;
        }

        .section-fade-in {
            opacity: 0;
            transform: translateY(30px);
            transition: all 0.8s ease;
        }

        .section-fade-in.visible {
            opacity: 1;
            transform: translateY(0);
        }

        @media print {
            body {
                -webkit-print-color-adjust: exact;
                color-adjust: exact;
            }
        }

/* Splash Screen Styles */
#splash.fade-out {
    opacity: 0;
    transition: opacity 0.5s ease-out;
}

#splash-logo {
    animation: seesaw 1.5s ease-in-out infinite;
    transform-origin: bottom center;
    max-width: 200px;
}

@keyframes seesaw {
    0%, 100% {
        transform: rotate(0deg);
    }
    25% {
        transform: rotate(10deg);
    }
    75% {
        transform: rotate(-10deg);
    }
}