body {
            font-family: "Noto Serif SC", serif;
            color: #3a3343;
            background-color: #fff;
            -webkit-font-smoothing: antialiased;
            overflow-x: hidden;
        }

        .writing-vertical {
            writing-mode: vertical-rl;
            text-orientation: upright;
            font-feature-settings: "vhal" 1;
        }

        #loading {
            position: fixed;
            inset: 0;
            z-index: 9999;
            overflow: hidden;
            pointer-events: none;
        }

        #loading:not(.slide-out) {
            pointer-events: auto;
        }

        #loading-bg-pink {
            transform: translateX(0);

            transition: transform 0.8s cubic-bezier(0.85, 0, 0.15, 1);
            will-change: transform;
        }

        #loading-bg-white {
            transform: translateX(0);
            transition: transform 0.8s cubic-bezier(0.85, 0, 0.15, 1);
            will-change: transform;
        }

        #loading.slide-out #loading-bg-white {
            transform: translateX(100%);
        }

        #loading.slide-out #loading-bg-pink {
            transform: translateX(100%);

            transition-delay: 0.35s;
        }

        .loading-content-wrapper {
            transition: opacity 0.3s ease;
            opacity: 1;
        }
        #loading.is-animating .loading-content-wrapper {
            opacity: 0;
        }

        .loading-petal {
            position: absolute;
            top: -10%;
            background: linear-gradient(135deg, rgba(255, 183, 197, 0.8), rgba(255, 240, 245, 0.4));
            border-radius: 15px 0 15px 0;
            pointer-events: none;
            animation: fall linear infinite, sway ease-in-out infinite alternate;
        }

        @keyframes fall {
            0% { top: -10%; opacity: 0; }
            10% { opacity: 1; }
            80% { opacity: 1; }
            100% { top: 110%; opacity: 0; }
        }

        @keyframes sway {
            0% { transform: translateX(0px) rotate(0deg) scale(1); }
            50% { transform: translateX(30px) rotate(180deg) scale(1.1); }
            100% { transform: translateX(-30px) rotate(360deg) scale(0.9); }
        }

        .menu-trigger {
            z-index: 50;
            mix-blend-mode: difference;
            transition: mix-blend-mode 0.3s;
        }
        .menu-trigger span {
            transition: all .4s; display: block; position: absolute;
            width: 30px; height: 2px; left: 0; border-radius: 2px;
            background-color: #fff;
        }

        .menu-trigger.active span:nth-of-type(1) { transform: translateY(10px) rotate(-45deg); }
        .menu-trigger.active span:nth-of-type(2) { opacity: 0; }
        .menu-trigger.active span:nth-of-type(3) { transform: translateY(-10px) rotate(45deg); }

        .nav-overlay {
            transform: translateX(100%);
            transition: transform 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
        }
        .nav-overlay.active { transform: translateX(0); }

        .custom-scrollbar::-webkit-scrollbar { width: 4px; }
        .custom-scrollbar::-webkit-scrollbar-track { background: #f1f1f1; }
        .custom-scrollbar::-webkit-scrollbar-thumb { background: #3a3343; border-radius: 2px; }

        @keyframes fadeUp {
            from { opacity: 0; transform: translateY(20px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .animate-fade-up { animation: fadeUp 1s cubic-bezier(0.075, 0.82, 0.165, 1) forwards; opacity: 0; }
        .delay-100 { animation-delay: 0.1s; } .delay-200 { animation-delay: 0.2s; }
        .delay-300 { animation-delay: 0.3s; } .delay-400 { animation-delay: 0.4s; }
        .delay-500 { animation-delay: 0.5s; } .delay-700 { animation-delay: 0.7s; }

        #cherry-canvas {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            z-index: 0; pointer-events: none; opacity: 0.6;
        }

        @keyframes maskSlideAnim {
            0% { transform: scaleX(0); transform-origin: 0% 0%; }
            50% { transform: scaleX(1); transform-origin: 0% 0%; }
            51% { transform: scaleX(1); transform-origin: 100% 0%; }
            100% { transform: scaleX(0); transform-origin: 100% 0%; }
        }
        .animate-mask-slide { animation: maskSlideAnim 1.2s cubic-bezier(0.8, 0, 0.17, 1) forwards; }
        .reveal-content { transition: opacity 0.1s; transition-delay: 0.6s; }
        .reveal-content.show { opacity: 1; }

        .swiper-wrapper { align-items: center; }

        .share-widget {
            mix-blend-mode: difference;
            color: #ffffff;
            z-index: 45;
            transition: mix-blend-mode 0.3s;
        }

        .force-white {
            mix-blend-mode: normal !important;
        }
        .menu-trigger.force-white span { background-color: #fff !important; }
        .share-widget.force-white { color: #fff !important; }

        .side-btn-hidden { transform: translate(100%, -50%) !important; opacity: 0 !important; }

.menu-trigger.dark-color { mix-blend-mode: normal; }
.menu-trigger.dark-color span { background-color: #3a3343; }
.share-widget.dark-color { mix-blend-mode: normal; color: #3a3343; }
.text-theme-text { color: #3a3343; }
.text-theme-pink { color: #e4007f; }
.bg-theme-text { background-color: #3a3343; }
.bg-theme-pink { background-color: #e4007f; }
.border-theme-text { border-color: #3a3343; }
.border-theme-pink { border-color: #e4007f; }
.fill-theme-text { fill: #3a3343; }
.text-theme-text\/5 { color: rgba(58, 51, 67, 0.05); }
.bg-theme-text\/0 { background-color: rgba(58, 51, 67, 0); }
.bg-theme-text\/10 { background-color: rgba(58, 51, 67, 0.1); }
.bg-theme-text\/20 { background-color: rgba(58, 51, 67, 0.2); }
.bg-theme-text\/30 { background-color: rgba(58, 51, 67, 0.3); }
.bg-theme-text\/40 { background-color: rgba(58, 51, 67, 0.4); }
.via-theme-pink {
    --tw-gradient-via: #e4007f var(--tw-gradient-via-position);
    --tw-gradient-to: rgb(228 0 127 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-via), var(--tw-gradient-to);
}
.hover\:bg-theme-pink:hover { background-color: #e4007f; }
.hover\:text-theme-pink:hover { color: #e4007f; }
.hover\:text-theme-text:hover { color: #3a3343; }
.group:hover .group-hover\:text-theme-pink { color: #e4007f; }
.group:hover .group-hover\:border-theme-pink { border-color: #e4007f; }
.group:hover .group-hover\:bg-theme-text\/10 { background-color: rgba(58, 51, 67, 0.1); }
.group.active .group-\[\.active\]\:bg-theme-text { background-color: #3a3343; }
.group.active .group-\[\.active\]\:border-theme-text { border-color: #3a3343; }
.group.active .group-\[\.active\]\:text-theme-pink { color: #e4007f; }

