        :root {
            --primary-pink: #FFE4EF;
            --accent-rosy: #F39EB6;
            --warm-yellow: #F7F6D3;
            --text-main: #4A4A4A;
        }

        body {
            font-family: 'Noto Serif', serif;
            background-color: #FFFFFF;
            color: var(--text-main);
            scroll-behavior: smooth;
            overflow-x: hidden;
        }

        /* TYPOGRAPHY */
        h1, h2, h3, h4 { font-weight: 600; letter-spacing: -0.01em; }
        .serif-italic { font-style: italic; }

        /* HERO ANIMATION */
        .hero-zoom {
            animation: slowZoom 20s infinite alternate ease-in-out;
        }
        @keyframes slowZoom {
            from { transform: scale(1); }
            to { transform: scale(1.15); }
        }

        /* UI ELEMENTS */
        .btn-soft {
            background-color: var(--accent-rosy);
            color: white;
            padding: 12px 32px;
            border-radius: 50px;
            transition: all 0.4s ease;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            box-shadow: 0 4px 15px rgba(243, 158, 182, 0.3);
        }
        .btn-soft:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 25px rgba(243, 158, 182, 0.4);
            background-color: #e28ca2;
        }

        .rounded-card { border-radius: 24px; overflow: hidden; }
        .soft-shadow { box-shadow: 0 10px 40px rgba(0,0,0,0.04); }

        /* NAVIGATION */
        .nav-link {
            position: relative;
            cursor: pointer;
            font-size: 0.95rem;
            padding: 5px 0;
        }
        .nav-link::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            width: 0;
            height: 1px;
            background: var(--accent-rosy);
            transition: width 0.3s ease;
        }
        .nav-link:hover::after { width: 100%; }

        /* OVERLAPPING LAYOUT */
        .overlap-container {
            position: relative;
            padding-bottom: 50px;
        }
        .overlap-img {
            z-index: 1;
            position: relative;
        }
        .overlap-card {
            position: absolute;
            bottom: -30px;
            right: 5%;
            z-index: 10;
            background: var(--warm-yellow);
            padding: 40px;
            border-radius: 20px;
            max-width: 400px;
        }

        /* MODAL */
        #modal-overlay {
            background: rgba(255, 255, 255, 0.95);
            backdrop-filter: blur(10px);
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.4s ease;
        }
        #modal-overlay.active { opacity: 1; pointer-events: auto; }

        /* MOBILE MENU */
        #mobile-menu {
            transform: translateX(100%);
            transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);
        }
        #mobile-menu.active { transform: translateX(0); }

        /* GRID ANIMATION */
        .reveal { opacity: 0; transform: translateY(30px); transition: all 0.8s ease-out; }
        .reveal.active { opacity: 1; transform: translateY(0); }

        /* CUSTOM SCROLLBAR */
        ::-webkit-scrollbar { width: 6px; }
        ::-webkit-scrollbar-track { background: #f1f1f1; }
        ::-webkit-scrollbar-thumb { background: var(--accent-rosy); border-radius: 10px; }
