:root {
        --bg: #f7f3fb;
        --purple: #6a0dad;
        --purple-700: #5a0aa8;
        --purple-900: #3d0066;
        --accent: #d7a3ff;
        --muted: #6b6b7a;
    }

    html,
    body {
        height: 100%;
        background: var(--bg);
        font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
    }

    /* ===== MODERN NAVBAR ===== */
    .navbar {
        position: fixed;
        top: 0;
        width: 100%;
        z-index: 999;
        padding: 18px 0;
        background: var(--primary);
        transition: background 0.45s ease, padding 0.3s ease, box-shadow 0.3s ease;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    /* NAVBAR saat scroll → jadi transparan + blur */
    .navbar.scrolled {
        background: rgba(45, 0, 82, 0.45);
        backdrop-filter: blur(16px);
        -webkit-backdrop-filter: blur(16px);
        padding: 10px 0;
        box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
    }

    /* Brand */
    .navbar-brand {
        color: #fff !important;
        font-weight: 800;
        font-size: 1.45rem;
        letter-spacing: 0.7px;
    }

    /* Link */
    .nav-link {
        color: #fff !important;
        font-weight: 500;
        padding: 8px 14px !important;
        position: relative;
        transition: 0.3s;
    }

    /* Hover underline animation */
    .nav-link::after {
        content: "";
        width: 0%;
        height: 2px;
        background: var(--accent);
        position: absolute;
        left: 50%;
        bottom: 2px;
        transform: translateX(-50%);
        transition: width 0.3s ease;
        border-radius: 10px;
    }

    .nav-link:hover::after {
        width: 60%;
    }

    /* Hover color */
    .nav-link:hover {
        color: var(--accent) !important;
    }

    .navbar-toggler {
        border: none;
    }

    .navbar-toggler i {
        color: #fff;
        font-size: 1.4rem;
    }

    /* ===== NEW PREMIUM OPEN PORTAL BUTTON ===== */
    .btn-nav {
        background: linear-gradient(135deg, #c77dff, #9d4edd);
        color: #2d0052;
        padding: 7px 22px;
        border-radius: 50px;
        text-decoration: none;
        font-weight: 600;
        transition: all 0.35s ease;
        border: none;
        box-shadow: 0 0 0 rgba(155, 0, 255, 0);
    }

    .btn-nav:hover {
        color: white;
        box-shadow: 0 0 15px rgba(198, 42, 255, 0.6);
        transform: translateY(-2px);
    }

    section {
        scroll-margin-top: 60px;
    }

    li{
        list-style: none;
    }


    .service-card {
        border: none;
        border-radius: 20px;
        background: rgba(255, 255, 255, 0.85);
        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08);
        transition: all 0.4s ease;
        height: 100%;
    }

    .service-card p {
        color: #6c757d;
        font-size: 0.95rem;
    }

    .service-icon {
        font-size: 2.6rem;
        color: #0d6efd;
        transition: transform 0.4s ease, color 0.4s ease;
    }

    .service-card:hover .service-icon {
        transform: scale(1.15) rotate(5deg);
        color: #0a58ca;
    }

    /* Swiper slide effect */
    .swiper-slide {
        transform: scale(0.9);
        opacity: 0.6;
        transition: all 0.4s ease;
    }

    .swiper-slide-active {
        transform: scale(1);
        opacity: 1;
    }

    /* Pagination */
    .swiper-pagination-bullet {
        background: #adb5bd;
        opacity: 1;
    }

    .swiper-pagination-bullet-active {
        background: #0d6efd;
        width: 20px;
        border-radius: 10px;
    }

    .justify-text {
        text-align: justify;
    }

    /* ===== BUTTON STYLE LIKE IMAGE ===== */

    .btn-modern {
        background: linear-gradient(135deg, #c77dff, #9d4edd);
        color: #fff !important;
        padding: 12px 20px;
        border-radius: 50px;
        font-weight: 600;
        font-size: 1rem;
        text-decoration: none;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        border: none;
        transition: 0.35s ease;
        box-shadow: 0 4px 14px rgba(198, 55, 255, 0.35);
    }

    .btn-modern:hover {
        transform: translateY(-3px);
        background: linear-gradient(135deg, #c77dff, #9d4edd);
        box-shadow: 0 8px 22px rgba(215, 55, 255, 0.5);
    }

    #typed {
        position: relative;
    }

    #typed::after {
        content: "";
        position: absolute;
        width: 8px;
        height: 8px;
        background: var(--accent);
        border-radius: 50%;
        top: 50%;
        left: -18px;
        animation: pulseDot 1.4s infinite alternate;
    }

    @keyframes pulseDot {
        from {
            transform: scale(0.6);
            opacity: 0.5;
        }

        to {
            transform: scale(1.2);
            opacity: 1;
        }
    }


    /* ===== HERO UPGRADED ===== */
    .hero {
        min-height: 100vh;
        display: flex;
        align-items: center;
        padding: 5rem 0;
        position: relative;
        overflow: hidden;

        /* Background utama + overlay */
        background:
            linear-gradient(120deg, rgba(66, 0, 113, 0.75), rgba(32, 0, 62, 0.55)),
            url("https://images.unsplash.com/photo-1644088379091-d574269d422f?q=80&w=1993&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D");
        background-size: cover;
        background-position: center;
        color: #fff;
    }

    .hero .eyebrow {
        color: var(--accent);
        font-weight: 700;
        letter-spacing: 0.6px;
        text-shadow: 0 0 6px rgba(255, 150, 255, 0.4);
    }

    .hero h1 {
        font-size: clamp(2.1rem, 4.6vw, 3.8rem);
        font-weight: 800;
        line-height: 1.03;
        margin-bottom: 1rem;
        text-shadow: 0 3px 18px rgba(0, 0, 0, 0.35);
    }

    .hero p.lead {
        font-size: 1.12rem;
        color: #f4ecff;
        opacity: 0.92;
    }


    @keyframes heroGlow {
        0% {
            transform: scale(1);
            opacity: 0.55;
        }

        100% {
            transform: scale(1.15);
            opacity: 0.75;
        }
    }


    @keyframes floatParticles {
        from {
            transform: translateY(0);
        }

        to {
            transform: translateY(-400px);
        }
    }

    .mySwiperServices {
        padding-bottom: 40px;
    }


    .card-ghost {
        background: rgba(255, 255, 255, 0.096);
        border-radius: 18px;
        color: #fff;
        border: 1px solid rgba(31, 31, 31, 0.15);
        backdrop-filter: blur(14px);
        transition: transform 0.35s ease, box-shadow 0.35s ease;
        position: relative;
        overflow: hidden;
    }

    .card-ghost:hover {
        transform: translateY(-6px);
        box-shadow: 0 18px 40px rgba(0, 0, 0, 0.3);
    }

    /* Shine sweep */
    .card-ghost::after {
        content: "";
        position: absolute;
        top: -100%;
        left: -100%;
        width: 250%;
        height: 250%;
        background: linear-gradient(135deg,
                transparent 0%,
                rgba(255, 255, 255, 0.15) 50%,
                transparent 100%);
        transform: rotate(25deg);
        animation: shine 9s infinite;
    }

    @keyframes shine {
        0% {
            transform: translate(-120%, -120%) rotate(25deg);
        }

        100% {
            transform: translate(120%, 120%) rotate(25deg);
        }
    }


    /* SERVICES */
    .service-icon {
        width: 96px;
        height: 96px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 18px;
        background: linear-gradient(135deg, rgba(106, 13, 173, 0.12), rgba(215, 163, 255, 0.06));
        margin: 0 auto 1.1rem;
        color: var(--purple-900);
        font-size: 1.6rem;
    }

    /* Team Card */
    .team-card {
        background: #ffffff;
        border-radius: 20px;
        padding: 24px 16px;
        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08);
        transition: all 0.4s ease;
        height: 100%;
    }

    .team-card:hover {
        transform: translateY(-8px);
        box-shadow: 0 20px 45px rgba(0, 0, 0, 0.12);
    }

    /* Photo */
    .team-photo {
        width: 120px;
        height: 120px;
        object-fit: cover;
        border-radius: 50%;
        border: 4px solid #e9ecef;
        transition: all 0.4s ease;
    }

    .team-card:hover .team-photo {
        border-color: #0d6efd;
        transform: scale(1.05);
    }

    /* Text */
    .team-name {
        font-weight: 600;
        margin-top: 12px;
    }

    .team-role {
        font-size: 0.85rem;
        color: #6c757d;
    }

    .portfolio-card {
        background: #fff;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 8px 20px rgba(0, 0, 0, .08);
        transition: transform .3s ease;
    }

    .portfolio-card:hover {
        transform: translateY(-6px);
    }

    /* Carousel */
    .portfolio-carousel {
        width: 100%;
    }

    .portfolio-carousel .carousel-item {
        height: 300px;
    }

    .portfolio-img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .portfolio-content {
        padding: 20px;
    }

    .portfolio-title {
        font-weight: 700;
    }

    .portfolio-features {
        padding-left: 18px;
    }

    /* FILTER */
    .portfolio-filter {
        display: flex;
        justify-content: center;
        gap: 32px;
    }

    .filter-tab {
        position: relative;
        cursor: pointer;
        font-weight: 600;
        color: #6c757d;
        padding-bottom: 6px;
        transition: color .3s;
    }

    .filter-tab:hover {
        color: #000;
    }

    .filter-tab::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        width: 0;
        height: 2px;
        background: #000;
        transition: width .3s;
    }

    .filter-tab:hover::after,
    .filter-tab.active::after {
        width: 100%;
    }

    .filter-tab.active {
        color: #000;
    }

    /* =======================
   CONTACT SECTION
======================= */
    .contact-section {
        background: #f8f9fa;
    }

    .contact-card {
        background: #fff;
        padding: 30px;
        border-radius: 16px;
        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
        transition: transform .3s ease, box-shadow .3s ease;
    }


    /* MAP */
    .map-container iframe {
        border-radius: 14px;
    }

    /* CONTACT ITEM */
    .contact-item {
        display: flex;
        gap: 15px;
        margin-bottom: 18px;
    }

    .contact-item i {
        font-size: 20px;
        color: var(--purple);
        background: rgba(102, 16, 242, 0.1);
        width: 42px;
        height: 42px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .contact-item small {
        color: #6c757d;
    }

    .contact-item p {
        margin: 0;
        font-weight: 500;
    }

    /* BUTTON */
    .contact-btn {
        background: var(--purple);
        color: #fff;
        border-radius: 30px;
        padding: 10px 22px;
        transition: all .3s ease;
    }

    .contact-btn:hover {
        background: #4b0fd8;
        color: #fff;
        transform: translateY(-2px);
    }

    .form-control {
        border-radius: 12px;
    }

    /* MAP FULL CARD */
    .map-card {
        overflow: hidden;
    }

    .map-card iframe {
        width: 100%;
        height: 100%;
        min-height: 100%;
        border: 0;
    }

    /* PORTAL / DASHBOARD */
    .dashboard {
        background: linear-gradient(180deg, rgba(234, 221, 255, 0.6), rgba(243, 233, 255, 0.9));
        padding: 3rem;
        border-radius: 18px;
        border: 1px solid rgba(106, 13, 173, 0.06);
    }

    /* =====================
   QUICK ACTION CARD
===================== */
    .quick-card {
        background: #fff;
        border-radius: 18px;
        box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
    }

    /* ACTION ITEM */
    .quick-action {
        display: flex;
        align-items: center;
        gap: 14px;
        padding: 14px 16px;
        border-radius: 14px;
        text-decoration: none;
        color: #212529;
        background: #f8f9fa;
        transition: all 0.3s ease;
    }

    .quick-action:hover {
        background: #fff;
        transform: translateY(-4px);
        box-shadow: 0 12px 24px rgba(106, 13, 173, 0.15);
    }

    /* ICON */
    .quick-action .icon {
        width: 44px;
        height: 44px;
        border-radius: 12px;
        background: rgba(106, 13, 173, 0.12);
        color: var(--purple);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 18px;
    }

    /* TEXT */
    .quick-action .text {
        flex: 1;
    }

    .quick-action .text strong {
        display: block;
        font-weight: 600;
    }

    .quick-action .text small {
        color: #6c757d;
    }

    /* ARROW */
    .quick-action .arrow {
        color: #adb5bd;
        transition: transform 0.3s ease;
    }

    .quick-action:hover .arrow {
        transform: translateX(4px);
        color: var(--purple);
    }

    /* ACTIVITY */
    .activity-list {
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .activity-list li {
        font-size: 14px;
        margin-bottom: 10px;
        color: #495057;
    }

    .activity-list span {
        display: block;
        font-size: 12px;
        color: #adb5bd;
    }


    .metric {
        border-radius: 12px;
        background: #fff;
        padding: 18px;
        box-shadow: 0 10px 20px rgba(57, 10, 95, 0.04);
        border: 1px solid rgba(106, 13, 173, 0.05);
    }

    /* ======================
   FOOTER
====================== */
    .footer {
        background: linear-gradient(120deg, rgba(66, 0, 113, 0.75), rgba(32, 0, 62, 0.55));
        color: #ccc;
        padding: 30px 0;
        font-size: 14px;
    }

    .footer strong {
        color: #fff;
    }

    /* SOCIAL ICONS */
    .footer-social a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 38px;
        height: 38px;
        margin-left: 8px;
        border-radius: 50%;
        background: #1f1f1f;
        color: #ccc;
        transition: all 0.3s ease;
        text-decoration: none;
    }

    /* Hover animation */
    .footer-social a:hover {
        background: var(--purple);
        color: #fff;
        transform: translateY(-4px) scale(1.05);
        box-shadow: 0 8px 20px rgba(102, 16, 242, 0.4);
    }

    /* Icon size */
    .footer-social i {
        font-size: 16px;
    }

    @media (max-width: 991px) {

        .navbar {
            position: fixed;
            top: 0;
            width: 100%;
            z-index: 999;
            overflow-x: hidden;
            padding: 18px 0;
            background: var(--primary);
            transition: background 0.45s ease, padding 0.3s ease, box-shadow 0.3s ease;
            border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        }

        .navbar.scrolled {
            background: rgba(45, 0, 82, 0.45);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            padding: 10px 0;
            box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
        }

        .navbar-collapse {
            width: 100%;
            box-sizing: border-box;
            margin-left: 0;
            margin-right: 0;
        }

        .navbar-brand {
            color: var(--purple-900) !important;
        }

        .nav-link {
            color: #212529 !important;
        }

        .nav-link::after {
            content: "";
            width: 0%;
            height: 2px;
            background: var(--accent);
            position: absolute;
            left: 0%;
            bottom: 2px;
            transform: translateX(0%);
            transition: width 0.3s ease;
            border-radius: 10px;
        }

        .nav-link:hover::after {
            width: 20%;
        }

        .navbar-toggler i {
            color: #fff;
        }

        .navbar-toggler:hover i {
            color: #c77dff;
        }

        .btn-nav {
            background: linear-gradient(135deg, #c77dff, #9d4edd);
            color: #fff !important;
            margin-top: 10px;
        }
    }

    /* =========================
   PORTFOLIO MOBILE FIX
========================= */
    @media (max-width: 768px) {

        /* Portfolio card spacing */
        .portfolio-card {
            border-radius: 16px;
        }

        /* Slider height */
        .portfolio-carousel .carousel-item,
        .portfolio-slider {
            height: 220px;
        }

        /* Slider arrows */
        .slider-nav {
            padding: 6px 10px;
            font-size: 20px;
        }

        /* Portfolio text */
        .portfolio-content {
            padding: 16px;
        }

        .portfolio-title {
            font-size: 1.05rem;
        }

        .portfolio-features {
            font-size: 0.9rem;
        }

        /* Filter tabs wrap */
        .portfolio-filter {
            flex-wrap: wrap;
            gap: 16px;
        }

        .mySwiperServices .swiper-pagination {
        position: relative;
        margin-top: 16px;
    }

        #about {
            padding-left: 0;
            padding-right: 0;
        }

        #about .container {
            padding-left: 16px;
            padding-right: 16px;
        }

        #about .row {
            margin-left: 0;
            margin-right: 0;
        }
    }


    @media (max-width: 991px) {
        .navbar-collapse {
            background: #fff;
            padding: 14px 18px;
            border-radius: 16px;
            margin-top: 12px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
        }

        .navbar-nav .nav-link {
            padding: 10px 0 !important;
        }
    }