 @font-face {
            font-family: 'LeferiPoint-BlackA';
            src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/noonfonts_2201-2@1.0/LeferiPoint-BlackA.woff') format('woff');
            font-weight: 900;
            font-style: normal;
        }
        @font-face {
            font-family: 'Paperlogy';
            src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-8ExtraBold.woff2') format('woff2');
            font-weight: 800;
            font-style: normal;
        }
        @font-face {
            font-family: 'Paperlogy';
            src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-7Bold.woff2') format('woff2');
            font-weight: 700;
            font-style: normal;
        }
        @font-face {
            font-family: 'Paperlogy';
            src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-5Medium.woff2') format('woff2');
            font-weight: 500;
            font-style: normal;
        }

        html {
            scroll-behavior: smooth;
            scroll-padding-top: 60px; /* 상단 고정 헤더 높이만큼 스크롤 위치 보정 */
        }

        body {
            font-family: 'Pretendard', sans-serif;
            color: #333;
            overflow-x: hidden;
            /* 모바일 하단 탭바 영역 확보 */
            padding-bottom: 65px; 
        }
        @media (min-width: 768px) {
            body { padding-bottom: 0; }
        }

        .font-paperlogy { font-family: 'Paperlogy', sans-serif; }
        .font-nunito { font-family: 'Nunito Sans', sans-serif; }
        .font-leferi { font-family: 'LeferiPoint-BlackA', sans-serif; }

        /* Accordion (Smooth Grid Animation) */
        .faq-content {
            display: grid;
            grid-template-rows: 0fr;
            transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .faq-item.active .faq-content {
            grid-template-rows: 1fr;
        }
        .faq-inner {
            overflow: hidden;
            opacity: 0;
            transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .faq-item.active .faq-inner {
            opacity: 1;
        }
        .faq-icon {
            transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .faq-item.active .faq-icon {
            transform: rotate(180deg);
        }
        
        .masonry-grid {
            column-count: 2;
            column-gap: 1rem;
        }
        @media (min-width: 768px) {
            .masonry-grid { column-count: 3; }
        }
        .masonry-grid > div {
            break-inside: avoid;
            margin-bottom: 1rem;
        }

        /* Hide Scrollbar for Mobile Slider */
        .hide-scrollbar::-webkit-scrollbar {
            display: none;
        }
        .hide-scrollbar {
            -ms-overflow-style: none;
            scrollbar-width: none;
        }

        /* Infinite Scroll Marquee (Left & Right) */
        @keyframes scroll-left {
            0% { transform: translateX(0); }
            100% { transform: translateX(-50%); }
        }
        @keyframes scroll-right {
            0% { transform: translateX(-50%); }
            100% { transform: translateX(0); }
        }
        .animate-scroll-left {
            display: flex;
            width: max-content;
            animation: scroll-left 40s linear infinite;
        }
        .animate-scroll-right {
            display: flex;
            width: max-content;
            animation: scroll-right 45s linear infinite;
        }
        /* 마우스 호버 시 슬라이드 일시정지 */
        .animate-scroll-left:hover, .animate-scroll-right:hover {
            animation-play-state: paused;
        }

        /* Mobile Menu Custom Styles */
        #mobileMenu {
            visibility: hidden;
        }
        #mobileMenu.active {
            transform: translateX(0);
            visibility: visible;
        }
        #mobileMenuOverlay.active {
            opacity: 1;
            visibility: visible;
            pointer-events: auto;
        }