/* ===============================
           RESET
        =============================== */

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: 'Poppins', sans-serif;
            background:
                radial-gradient(circle at 15% 15%, rgba(0, 170, 255, .16), transparent 30%),
                radial-gradient(circle at 85% 80%, rgba(0, 89, 255, .15), transparent 30%),
                linear-gradient(135deg, #020711 0%, #071525 45%, #020812 100%);
            color: #ffffff;
            min-height: 100vh;
            overflow-x: hidden;
        }

        body::before {
            content: "";
            position: fixed;
            inset: 0;
            pointer-events: none;
            background-image:
                linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
                linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
            background-size: 45px 45px;
            z-index: -1;
        }

        a {
            text-decoration: none;
            color: inherit;
        }

        img {
            max-width: 100%;
            display: block;
        }


        /* ===============================
           HEARTBEAT ANIMATION
        =============================== */

        @-webkit-keyframes heartbeat {
            0% {
                -webkit-transform: scale(1);
                transform: scale(1);
            }

            14% {
                -webkit-transform: scale(1.08);
                transform: scale(1.08);
            }

            28% {
                -webkit-transform: scale(1);
                transform: scale(1);
            }

            42% {
                -webkit-transform: scale(1.08);
                transform: scale(1.08);
            }

            70% {
                -webkit-transform: scale(1);
                transform: scale(1);
            }
        }

        @keyframes heartbeat {
            0% {
                transform: scale(1);
            }

            14% {
                transform: scale(1.08);
            }

            28% {
                transform: scale(1);
            }

            42% {
                transform: scale(1.08);
            }

            70% {
                transform: scale(1);
            }
        }

        .heartbeat {
            -webkit-animation: heartbeat 1.5s ease-in-out infinite both;
            animation: heartbeat 1.5s ease-in-out infinite both;
        }


        /* ===============================
           FLOATING LIGHT
        =============================== */

        @keyframes floatLight {
            0%, 100% {
                transform: translateY(0) translateX(0);
                opacity: .35;
            }

            50% {
                transform: translateY(-25px) translateX(15px);
                opacity: .8;
            }
        }

        .light {
            position: fixed;
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: #38bdf8;
            box-shadow:
                0 0 10px #38bdf8,
                0 0 25px #38bdf8;
            animation: floatLight 5s ease-in-out infinite;
            pointer-events: none;
            z-index: 0;
        }

        .light:nth-child(1) {
            top: 18%;
            left: 8%;
        }

        .light:nth-child(2) {
            top: 65%;
            left: 18%;
            animation-delay: 1s;
        }

        .light:nth-child(3) {
            top: 28%;
            right: 12%;
            animation-delay: 2s;
        }

        .light:nth-child(4) {
            bottom: 15%;
            right: 20%;
            animation-delay: 3s;
        }


        /* ===============================
           HEADER
        =============================== */

        header {
            position: sticky;
            top: 0;
            z-index: 1000;
            backdrop-filter: blur(18px);
            -webkit-backdrop-filter: blur(18px);
            background: rgba(2, 8, 18, .82);
            border-bottom: 1px solid rgba(56, 189, 248, .18);
        }

        .navbar {
            width: min(1180px, 92%);
            margin: auto;
            min-height: 82px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 25px;
        }

        .logo {
            width: 190px;
            filter:
                drop-shadow(0 0 8px rgba(0, 174, 255, .45))
                drop-shadow(0 0 20px rgba(0, 174, 255, .18));
        }

        .nav-menu {
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .nav-menu a {
            padding: 11px 18px;
            border-radius: 12px;
            color: #d9f5ff;
            font-size: 13px;
            font-weight: 600;
            transition: .3s ease;
        }

        .nav-menu a:hover {
            color: #fff;
            background: rgba(14, 165, 233, .12);
            box-shadow: inset 0 0 0 1px rgba(56,189,248,.18);
        }

        .btn-login {
            border: 1px solid rgba(56, 189, 248, .5);
        }

        .btn-daftar {
            background: linear-gradient(135deg, #0ea5e9, #2563eb);
            box-shadow:
                0 0 18px rgba(14,165,233,.28),
                inset 0 1px 0 rgba(255,255,255,.22);
        }


        /* ===============================
           RUNNING TEXT
        =============================== */

        .ticker {
            overflow: hidden;
            white-space: nowrap;
            background:
                linear-gradient(
                    90deg,
                    rgba(14,165,233,.08),
                    rgba(37,99,235,.2),
                    rgba(14,165,233,.08)
                );
            border-bottom: 1px solid rgba(56,189,248,.12);
        }

        .ticker-track {
            display: inline-block;
            padding: 10px 0;
            padding-left: 100%;
            animation: marquee 18s linear infinite;
            color: #b9ecff;
            font-size: 13px;
            font-weight: 500;
            letter-spacing: .5px;
        }

        @keyframes marquee {
            0% {
                transform: translateX(0);
            }

            100% {
                transform: translateX(-100%);
            }
        }


        /* ===============================
           HERO
        =============================== */

        .hero {
            width: min(1180px, 92%);
            margin: 45px auto 30px;
        }

        .hero-card {
            position: relative;
            overflow: hidden;
            min-height: 440px;
            border-radius: 28px;
            border: 1px solid rgba(96, 209, 255, .2);
            background: rgba(5, 17, 32, .72);
            box-shadow:
                0 25px 80px rgba(0,0,0,.45),
                0 0 50px rgba(14,165,233,.08);
        }

        .hero-card::after {
            content: "";
            position: absolute;
            inset: 0;
            background:
                linear-gradient(
                    90deg,
                    rgba(2,8,18,.92) 0%,
                    rgba(2,8,18,.62) 38%,
                    rgba(2,8,18,.18) 100%
                );
            z-index: 1;
        }

        .hero-banner {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .hero-content {
            position: relative;
            z-index: 2;
            width: 58%;
            min-height: 440px;
            padding: 65px 50px;
            display: flex;
            flex-direction: column;
            justify-content: center;
        }

        .badge {
            display: inline-flex;
            width: fit-content;
            padding: 7px 14px;
            border: 1px solid rgba(56,189,248,.35);
            border-radius: 999px;
            background: rgba(14,165,233,.1);
            color: #7dd3fc;
            font-size: 11px;
            font-weight: 700;
            letter-spacing: 1.5px;
            margin-bottom: 18px;
        }

        .hero h1 {
            font-family: 'Orbitron', sans-serif;
            font-size: clamp(30px, 5vw, 58px);
            line-height: 1.08;
            letter-spacing: -1px;
            margin-bottom: 18px;
            background:
                linear-gradient(
                    90deg,
                    #ffffff,
                    #7dd3fc,
                    #60a5fa,
                    #ffffff
                );
            background-size: 250%;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            animation: shineText 5s linear infinite;
        }

        @keyframes shineText {
            0% {
                background-position: 0%;
            }

            100% {
                background-position: 250%;
            }
        }

        .hero p {
            color: #c6d9e7;
            font-size: 15px;
            line-height: 1.9;
            max-width: 620px;
        }

        .hero-buttons {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            margin-top: 28px;
        }

        .button {
            min-width: 145px;
            padding: 13px 22px;
            text-align: center;
            border-radius: 12px;
            font-size: 13px;
            font-weight: 700;
            transition: .3s ease;
        }

        .button:hover {
            transform: translateY(-3px);
        }

        .primary {
            background: linear-gradient(135deg, #0ea5e9, #2563eb);
            box-shadow: 0 10px 30px rgba(14,165,233,.22);
        }

        .secondary {
            border: 1px solid rgba(125,211,252,.3);
            background: rgba(255,255,255,.04);
        }


        /* ===============================
           SECTION
        =============================== */

        .section {
            width: min(1180px, 92%);
            margin: 55px auto;
        }

        .section-title {
            text-align: center;
            margin-bottom: 28px;
        }

        .section-title span {
            color: #38bdf8;
            font-size: 11px;
            font-weight: 700;
            letter-spacing: 3px;
            text-transform: uppercase;
        }

        .section-title h2 {
            font-family: 'Orbitron', sans-serif;
            margin-top: 8px;
            font-size: clamp(22px, 4vw, 34px);
        }

        .section-title p {
            max-width: 700px;
            margin: 10px auto 0;
            color: #8fa7b9;
            font-size: 13px;
            line-height: 1.8;
        }


        /* ===============================
           CARDS
        =============================== */

        .cards {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 18px;
        }

        .card {
            position: relative;
            padding: 27px;
            border-radius: 20px;
            background:
                linear-gradient(
                    145deg,
                    rgba(14,165,233,.08),
                    rgba(255,255,255,.025)
                );
            border: 1px solid rgba(125,211,252,.13);
            box-shadow: 0 15px 45px rgba(0,0,0,.22);
            transition: .35s ease;
            overflow: hidden;
        }

        .card::before {
            content: "";
            position: absolute;
            width: 120px;
            height: 120px;
            top: -60px;
            right: -60px;
            border-radius: 50%;
            background: rgba(14,165,233,.16);
            filter: blur(5px);
        }

        .card:hover {
            transform: translateY(-6px);
            border-color: rgba(56,189,248,.35);
            box-shadow:
                0 20px 55px rgba(0,0,0,.3),
                0 0 25px rgba(14,165,233,.08);
        }

        .icon {
            width: 48px;
            height: 48px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 14px;
            margin-bottom: 18px;
            background: rgba(14,165,233,.12);
            border: 1px solid rgba(56,189,248,.2);
            color: #7dd3fc;
            font-size: 21px;
        }

        .card h3 {
            font-family: 'Orbitron', sans-serif;
            font-size: 16px;
            margin-bottom: 10px;
        }

        .card p {
            color: #91a8b9;
            font-size: 13px;
            line-height: 1.8;
        }


        /* ===============================
           ARTICLE
        =============================== */

        .article {
            padding: 35px;
            border-radius: 22px;
            border: 1px solid rgba(125,211,252,.13);
            background: rgba(255,255,255,.025);
            box-shadow: 0 20px 55px rgba(0,0,0,.22);
        }

        .article h2 {
            font-family: 'Orbitron', sans-serif;
            font-size: 22px;
            margin-bottom: 18px;
        }

        .article p {
            color: #9eb2c1;
            font-size: 14px;
            line-height: 2;
        }


        /* ===============================
           CTA
        =============================== */

        .cta {
            text-align: center;
            padding: 55px 25px;
            border-radius: 26px;
            border: 1px solid rgba(56,189,248,.2);
            background:
                radial-gradient(
                    circle at center,
                    rgba(14,165,233,.13),
                    rgba(2,8,18,.4)
                );
        }

        .cta h2 {
            font-family: 'Orbitron', sans-serif;
            font-size: clamp(22px, 4vw, 36px);
            margin-bottom: 12px;
        }

        .cta p {
            color: #91a8b9;
            font-size: 13px;
            margin-bottom: 25px;
        }


        /* ===============================
           FLOATING BUTTON
        =============================== */

        .floating-chat {
            position: fixed;
            right: 22px;
            bottom: 22px;
            z-index: 2000;
            width: 58px;
            height: 58px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            background: linear-gradient(135deg, #0ea5e9, #2563eb);
            border: 2px solid rgba(255,255,255,.25);
            box-shadow:
                0 0 20px rgba(14,165,233,.45),
                0 10px 35px rgba(0,0,0,.4);
            font-size: 22px;
        }


        /* ===============================
           FOOTER
        =============================== */

        footer {
            margin-top: 70px;
            padding: 35px 20px;
            border-top: 1px solid rgba(125,211,252,.1);
            text-align: center;
            color: #657b8c;
            font-size: 12px;
        }

        footer strong {
            color: #7dd3fc;
        }


        /* ===============================
           RESPONSIVE
        =============================== */

        @media (max-width: 850px) {

            .navbar {
                min-height: 72px;
            }

            .logo {
                width: 150px;
            }

            .nav-menu a {
                padding: 9px 10px;
                font-size: 11px;
            }

            .hero {
                margin-top: 25px;
            }

            .hero-card {
                min-height: 520px;
            }

            .hero-content {
                width: 100%;
                min-height: 520px;
                padding: 45px 28px;
                justify-content: flex-end;
                background: linear-gradient(
                    0deg,
                    rgba(2,8,18,.95),
                    rgba(2,8,18,.25)
                );
            }

            .hero-card::after {
                background:
                    linear-gradient(
                        0deg,
                        rgba(2,8,18,.85),
                        rgba(2,8,18,.05)
                    );
            }

            .cards {
                grid-template-columns: 1fr;
            }

        }

        @media (max-width: 520px) {

            .navbar {
                width: 94%;
            }

            .nav-menu {
                gap: 4px;
            }

            .nav-menu a {
                padding: 8px 7px;
                font-size: 10px;
            }

            .btn-login {
                display: none;
            }

            .hero h1 {
                font-size: 30px;
            }

            .hero p {
                font-size: 13px;
            }

            .hero-buttons {
                display: grid;
                grid-template-columns: 1fr 1fr;
            }

            .button {
                min-width: auto;
                padding: 12px 10px;
                font-size: 11px;
            }

            .article {
                padding: 24px;
            }

        }
