@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@900&display=swap');
        
        :root {
            color-scheme: only light;
            -webkit-text-size-adjust: 100%;
            text-size-adjust: 100%;
        }

        html {
            color-scheme: only light;
            -webkit-text-size-adjust: 100%;
            text-size-adjust: 100%;
            background-color: #f3f4f6;
        }

        body { font-family: 'Pretendard', sans-serif; background-color: #f3f4f6; color: #111111; overflow-x: hidden; }
        body, .mobile-container, input, select, textarea, button { color-scheme: light !important; }
        button, input, select, textarea { font: inherit; }
        .mobile-container {
            max-width: 600px;
            margin: 0 auto;
            background-color: #ffffff;
            box-shadow: 0 0 50px rgba(0, 0, 0, 0.05);
            min-height: 100vh;
            position: relative;
            padding-bottom: 120px; 
            overflow: hidden;
        }
        
        .hide-scrollbar::-webkit-scrollbar { display: none; }
        .hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
        
        .highlight-thick { background: linear-gradient(180deg, rgba(255,255,255,0) 40%, #fbcfe8 40%); display: inline; }
        .keep-all { word-break: keep-all; }
        .leading-story { line-height: 1.6; }
        .leading-loose-story { line-height: 2.1; }
        
        .loader {
            border: 4px solid #fce7f3;
            border-top: 4px solid #e11d48;
            border-radius: 50%;
            width: 24px;
            height: 24px;
            animation: spin 1s linear infinite;
            display: inline-block;
        }
        @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

        .btn-pulse {
            animation: pulse-scale 2s infinite ease-in-out;
        }
        @keyframes pulse-scale {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.03); }
        }
        
        .cta-btn:active {
            transform: scale(0.96) !important;
            transition: transform 0.1s;
        }

        /* 벚꽃 애니메이션 */
        .petal {
            position: absolute;
            background: radial-gradient(ellipse at 30% 30%, rgba(255, 245, 248, 0.95), rgba(255, 210, 225, 0.85));
            border-radius: 80% 0% 80% 0%;
            pointer-events: none;
            z-index: 45; 
            opacity: 0;
            transform-origin: 50% 50%; 
            filter: drop-shadow(1px 3px 4px rgba(255, 150, 180, 0.3)) blur(3.5px); 
        }
        @keyframes fall {
            0% { top: -5%; opacity: 0; }
            10% { opacity: 0.85; } 
            90% { opacity: 0.85; }
            100% { top: 105%; opacity: 0; }
        }
        @keyframes sway {
            0% { margin-left: 0px; }
            50% { margin-left: 50px; } 
            100% { margin-left: -50px; }
        }
        @keyframes flutter {
            0% { transform: rotateX(-15deg) rotateY(10deg) rotateZ(0deg); }
            20% { transform: rotateX(15deg) rotateY(-15deg) rotateZ(72deg); }
            40% { transform: rotateX(-10deg) rotateY(15deg) rotateZ(144deg); }
            60% { transform: rotateX(65deg) rotateY(-25deg) rotateZ(216deg); } 
            80% { transform: rotateX(-15deg) rotateY(15deg) rotateZ(288deg); }
            100% { transform: rotateX(-15deg) rotateY(10deg) rotateZ(360deg); } 
        }

        /* 무한 스크롤 갤러리 애니메이션 */
        .marquee-container {
            display: flex;
            flex-direction: column;
            gap: 10px;
            overflow: hidden;
            width: calc(100% + 4rem); 
            margin-left: -2rem;
            margin-right: -2rem;
            padding: 10px 0;
            mask-image: linear-gradient(to right, transparent, black 2%, black 98%, transparent);
            -webkit-mask-image: linear-gradient(to right, transparent, black 2%, black 98%, transparent);
        }
        .marquee-track {
            display: flex;
            width: max-content;
            gap: 10px; 
        }
        .marquee-fast { animation: scroll-left 35s linear infinite; }
        .marquee-slow { animation: scroll-left 45s linear infinite; }
        .marquee-medium { animation: scroll-left 40s linear infinite; }
        
        @keyframes scroll-left {
            0% { transform: translateX(0); }
            100% { transform: translateX(-50%); } 
        }
        @keyframes scroll-right {
            0% { transform: translateX(-50%); }
            100% { transform: translateX(0); } 
        }

        .marquee-img {
            width: clamp(142px, 37vw, 214px);
            aspect-ratio: 3 / 4;
            border-radius: 18px;
            cursor: pointer;
            transition: transform 0.2s ease;
            object-fit: cover;
            object-position: center;
            background-color: transparent;
            border: none;
            box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
            padding: 0;
        }
        .marquee-img:active { transform: scale(0.95); }
        .marquee-photo { }
        .marquee-icon { }

        .story-gallery-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px;
        }

        .story-gallery-card {
            aspect-ratio: 3 / 4;
            border-radius: 1rem;
            overflow: hidden;
            border: none;
            background-color: transparent;
            box-shadow: none;
            padding: 0;
        }

        .story-gallery-image {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
            border-radius: 1rem;
            cursor: pointer;
            transition: opacity 0.2s ease, transform 0.2s ease;
            background-color: transparent;
        }

        .story-gallery-image:hover {
            opacity: 0.96;
        }

        .story-gallery-image:active {
            transform: scale(0.985);
        }

        /* 조건 태그 애니메이션 및 스타일 */
        .marquee-tag-track {
            display: flex;
            width: max-content;
            gap: 16px; 
            padding: 10px 0;
        }
        .marquee-tag-slow-right { animation: scroll-right 80s linear infinite; }
        .marquee-tag-left { animation: scroll-left 25s linear infinite; }
        .marquee-tag-right { animation: scroll-right 25s linear infinite; }
        
        .tag-item {
            padding: 12px 24px;
            background-color: white;
            border-radius: 9999px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.04);
            font-weight: 900;
            font-size: 15px;
            color: #4b5563; 
            white-space: nowrap;
            border: 1px solid #f3f4f6;
        }
        .tag-item.highlight {
            color: #e11d48; 
            background-color: #fff5f8; 
            border-color: #fce7f3; 
        }

        /* 첫 번째 줄 미니 박스 스타일 */
        .tag-item.mini-box {
            padding: 8px 16px;
            background-color: #f3e8ff; 
            color: #7e22ce; 
            border: 1.5px solid #e9d5ff; 
            border-radius: 12px;
            font-size: 13px;
            font-weight: 800;
            box-shadow: 0 2px 8px rgba(126, 34, 206, 0.05); 
        }

        .condition-box { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }

        /* 후기 카드 전용 스타일 */
        .review-card {
            border-bottom: 1px solid #f1f5f9;
            padding: 16px 0;
        }
        .review-card:last-child { border-bottom: none; }
        
        /* 카테고리 필터 스타일 */
        .filter-tab {
            padding: 4px 10px;
            border-radius: 6px;
            font-size: 11px;
            font-weight: 800;
            color: #94a3b8;
            background-color: #f8fafc;
            border: 1px solid #f1f5f9;
            white-space: nowrap;
            transition: all 0.2s;
        }
        .filter-tab.active {
            background-color: #ffffff;
            color: #e11d48;
            border-color: #fce7f3;
            box-shadow: 0 2px 4px rgba(225, 29, 72, 0.05);
        }

        /* SPA 페이지 토글용 클래스 */
        .page-section { display: none; }
        .page-section.active { display: block; }

        :root {
            color-scheme: only light;
            -webkit-text-size-adjust: 100%;
            text-size-adjust: 100%;
        }

        html {
            color-scheme: only light;
            -webkit-text-size-adjust: 100%;
            text-size-adjust: 100%;
            background-color: #f3f4f6;
        }

        body,
        .mobile-container,
        input,
        select,
        textarea,
        button {
            color-scheme: light !important;
        }

        button,
        input,
        select,
        textarea {
            font: inherit;
        }

        body.menu-open {
            overflow: hidden;
        }

        #page-product-detail #pd-inline-payment-btn {
            display: none !important;
        }

        .footer-menu-button,
        .footer-legal-button {
            display: block;
            width: 100%;
            text-align: left;
            font-size: 14px;
            line-height: 1.5;
            font-weight: 500;
            color: #374151;
            transition: color 0.2s ease, transform 0.2s ease;
        }

        .footer-menu-button:hover,
        .footer-legal-button:hover {
            color: #e11d48;
        }

        .footer-menu-button:active,
        .footer-legal-button:active {
            transform: translateY(1px);
        }

        .footer-menu-button.active {
            color: #e11d48;
            font-weight: 900;
        }

        .policy-modal-body {
            scrollbar-width: thin;
            scrollbar-color: #d1d5db transparent;
        }

        .policy-modal-body::-webkit-scrollbar {
            width: 6px;
        }

        .policy-modal-body::-webkit-scrollbar-thumb {
            background-color: #d1d5db;
            border-radius: 9999px;
        }

        .policy-section + .policy-section {
            margin-top: 1.25rem;
        }

        .policy-section-title {
            font-size: 0.95rem;
            line-height: 1.7;
            font-weight: 900;
            color: #111827;
        }

        .policy-line {
            margin-top: 0.45rem;
            font-size: 0.875rem;
            line-height: 1.8;
            color: #4b5563;
        }

        .policy-line--bullet {
            padding-left: 0.75rem;
        }

        .page-section.active {
            display: block;
            animation: page-enter 0.45s ease both;
        }

        @keyframes page-enter {
            0% { opacity: 0; transform: translateY(18px); }
            100% { opacity: 1; transform: translateY(0); }
        }

        #page-products .product-card-image {
            object-fit: contain !important;
            object-position: center !important;
            background-color: #ffffff;
            padding: 8px;
        }

        #page-products .product-card-image--hero {
            padding: 12px;
        }

        #page-product-detail #pd-image {
            object-fit: contain !important;
            background-color: #ffffff;
        }

        /* Emergency restore: keep content visible even if AOS init fails */
        [data-aos] {
            opacity: 1 !important;
            transform: none !important;
            transition-property: none !important;
        }

        .aos-init,
        .aos-animate {
            opacity: 1 !important;
            transform: none !important;
        }
