
        /* CSS Variables – light, elegant theme */
        :root {
            --pink: #f9a8d4;
            --purple: #b28bdf;
            --light-blue: #b3d9f7;
            --pastel-bg: #fdf6f9;
            --shadow-soft: 0 12px 28px rgba(0, 0, 0, 0.06);
            --transition-smooth: all 0.3s ease;
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Quicksand', sans-serif;
            background: var(--pastel-bg);
            color: #2e2e2e;
            scroll-behavior: smooth;
            overflow-x: hidden;
        }

        h1,
        h2,
        h3,
        h4,
        h5,
        h6 {
            font-weight: 600;
        }

        .section-padding {
            padding: 70px 0;
        }
        section{
            overflow: hidden;
        }

        .gradient-pink-purple {
            background: linear-gradient(135deg, #f9a8d4 0%, #b28bdf 100%);
        }

        .gradient-lightblue-white {
            background: linear-gradient(135deg, #e6f3fc 0%, #ffffff 80%);
        }

        .btn-joyup {
            background: linear-gradient(135deg, var(--pink), var(--purple));
            border: none;
            color: #fff;
            padding: 10px 28px;
            border-radius: 60px;
            font-weight: 600;
            transition: var(--transition-smooth);
            box-shadow: 0 8px 18px rgba(178, 139, 223, 0.3);
        }

        .btn-joyup:hover {
            transform: translateY(-3px);
            box-shadow: 0 12px 28px rgba(178, 139, 223, 0.5);
            color: #fff;
            background: linear-gradient(135deg, #f08fc4, #a074d1);
        }

        .btn-outline-joyup {
            background: transparent;
            border: 2px solid var(--purple);
            color: var(--purple);
            border-radius: 60px;
            font-weight: 600;
            padding: 8px 24px;
            transition: var(--transition-smooth);
        }

        .btn-outline-joyup:hover {
            background: var(--purple);
            color: #fff;
        }

        /* top header */
        .top-header {
            background: #2d1b3d;
            color: #f0e6f6;
            font-size: 0.85rem;
            padding: 6px 0;
        }

        .top-header a {
            color: #f0e6f6;
            text-decoration: none;
            margin: 0 8px;
            transition: var(--transition-smooth);
        }

        .top-header a:hover {
            color: var(--pink);
        }

        .top-social i {
            font-size: 1rem;
            margin: 0 6px;
            transition: var(--transition-smooth);
        }

        .top-social i:hover {
            color: var(--pink);
            transform: scale(1.1);
        }

        /* navbar */
        .navbar-joyup {
            background: rgba(255, 255, 255, 0.9);
            backdrop-filter: blur(6px);
            box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
        }

        .navbar-joyup .navbar-brand {
            font-weight: 700;
            color: #4a2c5e;
            font-size: 1.7rem;
            letter-spacing: -0.5px;
        }

        .navbar-joyup .navbar-brand i {
            color: var(--pink);
            margin-right: 8px;
        }

        .nav-link {
            font-weight: 700;
            color: #3d2b4a !important;
            margin: 0 6px;
            transition: var(--transition-smooth);
            border-radius: 40px;
            padding: 6px 16px;
        }

        .nav-link:hover {
            background: rgba(249, 168, 212, 0.2);
            color: #8a4f9e !important;
        }

        .navbar-joyup .btn-call {
            background: linear-gradient(135deg, var(--pink), var(--purple));
            color: #fff;
            border-radius: 60px;
            padding: 8px 24px;
            font-weight: 600;
            transition: var(--transition-smooth);
            border: none;
        }

        .navbar-joyup .btn-call:hover {
            transform: scale(1.03);
            box-shadow: 0 6px 18px rgba(178, 139, 223, 0.4);
            color: #fff;
        }

        /* hero carousel */
        .carousel-item {
            height: 88vh;
            min-height: 480px;
            background-size: cover;
            background-position: center;
        }

        .carousel-item::after {
            content: '';
            position: absolute;
            inset: 0;
            background: rgba(20, 10, 30, 0.25);
        }

        .hero-content {
            z-index: 2;
            color: #fff;
            text-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
        }

        .hero-content h1 {
            font-size: 3.8rem;
            font-weight: 700;
        }

        .hero-content p {
            font-size: 1.3rem;
            opacity: 0.9;
        }

        .carousel-control-prev-icon,
        .carousel-control-next-icon {
            background-color: rgba(178, 139, 223, 0.5);
            border-radius: 40px;
            padding: 18px;
        }

        /* about */
        .about-img-wrapper {
            position: relative;
        }

        .about-img-wrapper img {
            border-radius: 32px;
            box-shadow: var(--shadow-soft);
        }

        .floating-card {
            background: rgba(255, 255, 255, 0.8);
            backdrop-filter: blur(4px);
            border-radius: 30px;
            padding: 14px 20px;
            box-shadow: 0 12px 28px rgba(0, 0, 0, 0.06);
            max-width: 200px;
        }

        .icon-point i {
            color: var(--purple);
            width: 28px;
            font-size: 1.2rem;
        }

        /* services cards */
        .service-card {
            background: #fff;
            border-radius: 32px;
            padding: 18px 16px 24px;
            box-shadow: var(--shadow-soft);
            transition: var(--transition-smooth);
            height: 100%;
            border: 1px solid rgba(249, 168, 212, 0.2);
        }

        .service-card:hover {
            transform: translateY(-12px);
            box-shadow: 0 24px 48px rgba(178, 139, 223, 0.12);
        }

        .service-card img {
            border-radius: 24px;
            width: 100%;
            height: 300px;
            object-fit: cover;
        }

        .service-card .icon-circle {
            background: var(--pastel-bg);
            width: 56px;
            height: 56px;
            border-radius: 60px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.8rem;
            color: var(--purple);
            margin-top: -28px;
            margin-left: 10px;
            border: 2px solid #fff;
            box-shadow: var(--shadow-soft);
        }

        /* why choose */
        .why-bg {
            background: linear-gradient(135deg, #e3f0fa 0%, #faf0f5 100%);
        }

        .feature-box {
            background: #fff;
            border-radius: 40px;
            padding: 24px 16px;
            box-shadow: var(--shadow-soft);
            transition: var(--transition-smooth);
            height: 100%;
            border: 1px solid rgba(179, 217, 247, 0.3);
        }

        .feature-box:hover {
            transform: scale(1.02);
            border-color: var(--pink);
        }

        .feature-box i {
            font-size: 2.2rem;
            color: var(--purple);
            margin-bottom: 12px;
        }

        /* process */
        .step-circle {
            width: 68px;
            height: 68px;
            background: linear-gradient(135deg, var(--pink), var(--purple));
            color: #fff;
            font-weight: 700;
            font-size: 1.8rem;
            border-radius: 60px;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 16px;
            box-shadow: 0 12px 24px rgba(178, 139, 223, 0.2);
        }

        .process-line {
            width: 2px;
            height: 40px;
            background: var(--purple);
            margin: 6px auto;
            opacity: 0.4;
        }

        /* gallery */
        .gallery-item {
            position: relative;
            overflow: hidden;
            border-radius: 28px;
            cursor: pointer;
        }

        .gallery-item img {
            width: 100%;
            height: 220px;
            object-fit: cover;
            transition: var(--transition-smooth);
            border-radius: 28px;
        }

        .gallery-item:hover img {
            transform: scale(1.06);
        }

        .gallery-overlay {
            position: absolute;
            inset: 0;
            background: rgba(178, 139, 223, 0.25);
            backdrop-filter: blur(2px);
            opacity: 0;
            transition: var(--transition-smooth);
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 28px;
        }

        .gallery-item:hover .gallery-overlay {
            opacity: 1;
        }

        .gallery-overlay i {
            font-size: 3.2rem;
            color: #fff;
            text-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
        }

        /* lightbox */
        .lightbox-modal .modal-content {
            background: rgba(0, 0, 0, 0.85);
            border: none;
        }

        .lightbox-modal .btn-close {
            filter: invert(1);
            opacity: 0.9;
        }

        /* testimonials */
        .testimonial-card {
            background: #fff;
            border-radius: 40px;
            padding: 28px 24px;
            box-shadow: var(--shadow-soft);
        }

        .testimonial-card img {
            width: 64px;
            height: 64px;
            object-fit: cover;
            border-radius: 60px;
            border: 3px solid var(--pink);
        }

        .testimonial-card .stars i {
            color: #f9b74b;
        }

        /* contact */
        .contact-left i {
            color: var(--purple);
            width: 30px;
        }

        .contact-form .form-control {
            border-radius: 40px;
            padding: 12px 20px;
            border: 1px solid #e2d2ea;
            background: rgba(255, 255, 255, 0.7);
        }

        .contact-form .form-control:focus {
            border-color: var(--purple);
            box-shadow: 0 0 0 3px rgba(178, 139, 223, 0.2);
        }

        /* footer */
        .footer-joyup {
            background: #1d1127;
            color: #d9cae3;
        }

        .footer-joyup a {
            color: #d9cae3;
            text-decoration: none;
            transition: var(--transition-smooth);
        }

        .footer-joyup a:hover {
            color: var(--pink);
        }

        .footer-joyup .social-icon {
            background: rgba(255, 255, 255, 0.06);
            border-radius: 40px;
            padding: 8px 14px;
            transition: var(--transition-smooth);
        }

        .footer-joyup .social-icon:hover {
            background: var(--purple);
            color: #fff;
        }

        /* floating buttons */
        .floating-btns {
            position: fixed;
            bottom: 28px;
            right: 28px;
            display: flex;
            flex-direction: column;
            gap: 14px;
            z-index: 1030;
        }

        .floating-btns a {
            width: 60px;
            height: 60px;
            border-radius: 60px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 2rem;
            color: #fff;
            box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
            transition: var(--transition-smooth);
        }

        .floating-btns .btn-phone {
            background: linear-gradient(135deg, var(--pink), var(--purple));
        }

        .floating-btns .btn-wa {
            background: #25D366;
        }

        .floating-btns a:hover {
            transform: scale(1.08);
        }

        /* responsive */
        @media (max-width: 768px) {
            .hero-content h1 {
                font-size: 2.4rem;
            }

            .hero-content p {
                font-size: 1rem;
            }

            .carousel-item {
                height: 70vh;
                min-height: 380px;
            }

            .section-padding {
                padding: 40px 0;
            }

            .top-header .d-none {
                display: none !important;
            }
        }

        /* aos reveal mimic */
        .reveal {
            opacity: 0;
            transform: translateY(30px);
            transition: all 0.8s ease;
        }

        .reveal.visible {
            opacity: 1;
            transform: translateY(0);
        }