@import url('https://fonts.googleapis.com/css2?family=Elms+Sans:ital,wght@0,100..900;1,100..900&family=Nunito:ital,wght@0,200..1000;1,200..1000&family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap');

/* Container untuk Preloader */
        .preloader-wrapper {
            /* display: flex;*/
            flex-direction: column;
            align-items: center; 
            gap: 20px; /* Sedikit dirapatkan agar elemen teks baru muat dengan baik */
            position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: #fff;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
        }

        /* Styling untuk SVG */
        .logo-svg {
            width: 180px;
            height: 240px;
            /* Animasi melayang setelah logo tergabung */
            animation: float 3s ease-in-out infinite 2.5s;
            overflow: visible;
        }

        /* transform-box: fill-box; memastikan animasi rotasi & skala 
           berpusat pada setiap potongan segitiga itu sendiri.
        */
        .piece {
            transform-box: fill-box;
            transform-origin: center;
            opacity: 0;
            /* Efek spring (memantul halus) saat menyatu */
            animation: assemblePiece 1.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
        }

        /* Kondisi Awal (Kreatif) & Staggering (Jeda)
           Titik awal dijauhkan agar efek menyatu lebih dramatis.
        */
        
        /* Bagian Tengah (Merah & Oranye) */
        .p-top-red {
            transform: translateY(-200px) scale(0);
            animation-delay: 0.1s;
        }
        .p-dark-red {
            transform: translate(-150px, -150px) scale(0) rotate(-90deg);
            animation-delay: 0.2s;
        }
        .p-mid-orange {
            transform: translate(150px, -150px) scale(0) rotate(90deg);
            animation-delay: 0.3s;
        }
        .p-bot-orange {
            transform: translate(-150px, 150px) scale(0) rotate(45deg);
            animation-delay: 0.4s;
        }
        
        /* Bagian Bawah yang Dibagi Dua (Kuning) */
        .p-top-yellow {
            transform: translate(150px, 150px) scale(0) rotate(-90deg);
            animation-delay: 0.5s;
        }
        .p-bot-yellow {
            transform: translateY(200px) scale(0) rotate(-45deg);
            animation-delay: 0.6s;
        }

        /* Sayap Kiri (Biru) */
        .p-dark-blue {
            transform: translateX(-200px) scale(0) rotate(-180deg);
            animation-delay: 0.6s;
        }
        .p-light-blue {
            transform: translate(-200px, 150px) scale(0) rotate(-90deg);
            animation-delay: 0.7s;
        }

        /* Sayap Kanan (Hijau) */
        .p-light-green {
            transform: translate(200px, -150px) scale(0) rotate(90deg);
            animation-delay: 0.6s;
        }
        .p-dark-green {
            transform: translateX(200px) scale(0) rotate(180deg);
            animation-delay: 0.7s;
        }

        /* Styling Teks Brand "Tematik" */
        .brand-name {
            font-size: 2.4rem;
            font-weight: 500; /* Ketebalan medium agar lebih elegan dan tidak terlalu tegas */
            color: #154B88; 
            letter-spacing: 6px;
            margin-left: 6px; /* Kompensasi alignment akibat letter-spacing */
            display: flex; /* Flexbox agar span (huruf) berjejer rapi */
            justify-content: center;
            text-transform: lowercase; /* Memastikan teks selalu lowercase */
            font-family: 'Elms Sans', sans-serif;;
        }

        .brand-name span {
            opacity: 0;
            display: inline-block;
            /* Efek reveal per huruf */
            animation: revealLetter 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
        }

        /* Teks Loading */
        .loading-text {
            color: #888; /* Warna abu-abu dilembutkan sedikit */
            font-size: 0.95rem;
            letter-spacing: 3px;
            font-weight: 500;
            opacity: 0;
            text-transform: lowercase; /* Memastikan teks loading juga lowercase */
            /* Delay ditambah agar muncul setelah semua huruf "Tematik" selesai animasi */
            animation: fadeInOut 2s ease-in-out infinite 2.8s; 
        }

        /* Keyframes untuk merakit logo */
        @keyframes assemblePiece {
            0% {
                opacity: 0;
            }
            100% {
                opacity: 1;
                transform: translate(0, 0) scale(1) rotate(0deg);
            }
        }

        /* Keyframes untuk efek melayang */
        @keyframes float {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-12px); }
        }

        /* Keyframes untuk teks */
        @keyframes fadeInOut {
            0%, 100% { opacity: 0.3; }
            50% { opacity: 1; }
        }

        /* Keyframes untuk reveal teks per huruf */
        @keyframes revealLetter {
            0% {
                opacity: 0;
                transform: translateY(20px);
                filter: blur(4px); /* Tambahan efek blur lembut saat muncul */
            }
            100% {
                opacity: 1;
                transform: translateY(0);
                filter: blur(0);
            }
        }