/* ==========================================================
   SMANES DIGITAL ECOSYSTEM
   Design System v1.0
========================================================== */


/* ==========================================================
   RESET
========================================================== */

*,
*::before,
*::after{

    margin:0;
    padding:0;

    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

    font-size:16px;

}

body{

    font-family:"Inter",sans-serif;

    color:#E2E8F0;

    background:#020617;

    overflow-x:hidden;

    line-height:1.7;

    -webkit-font-smoothing:antialiased;

}

img{

    display:block;

    width:100%;

}

a{

    text-decoration:none;

    color:inherit;

}

button{

    font:inherit;

    border:none;

    background:none;

    cursor:pointer;

}

ul{

    list-style:none;

}



/* ==========================================================
   DESIGN TOKEN
========================================================== */

:root{

    /* Brand */

    --primary:#2563EB;
    --primary-light:#3B82F6;
    --primary-dark:#1D4ED8;

    --secondary:#06B6D4;

    --success:#10B981;

    --warning:#F59E0B;

    --danger:#EF4444;

    /* Background */

    --bg:#020617;

    --surface:#081225;

    --surface-2:#0F172A;

    --surface-3:#162033;

    /* Text */

    --text:#F8FAFC;

    --text-soft:#CBD5E1;

    --text-muted:#94A3B8;

    /* Border */

    --border:rgba(255,255,255,.08);

    /* Glass */

    --glass:rgba(255,255,255,.05);

    --glass-border:rgba(255,255,255,.12);

    /* Shadow */

    --shadow:

        0 20px 60px rgba(0,0,0,.35);

    --shadow-lg:

        0 30px 80px rgba(0,0,0,.45);

    /* Radius */

    --radius-sm:10px;

    --radius:18px;

    --radius-lg:28px;

    --radius-xl:40px;

    /* Container */

    --container:1320px;

    /* Transition */

    --transition:.35s ease;

}

/*==================================================
GLOBAL CONTAINER
==================================================*/

.container{

    width:min(96%,1400px);

    margin:0 auto;

    padding:0;

    box-sizing:border-box;

}

/* ==========================================================
   DIGITAL FLOW BACKGROUND
========================================================== */

body{

    background:
        radial-gradient(circle at top left,#1e3a8a 0%,transparent 35%),
        radial-gradient(circle at bottom right,#0f766e 0%,transparent 30%),
        linear-gradient(180deg,#020617 0%,#071426 40%,#081b33 100%);

    color:var(--text);

    position:relative;

}



body::before{

    content:"";

    position:fixed;

    inset:0;

    pointer-events:none;

    opacity:.05;

    background-image:

        linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),

        linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);

    background-size:50px 50px;

    z-index:-2;

}



body::after{

    content:"";

    position:fixed;

    inset:0;

    pointer-events:none;

    background:

        radial-gradient(circle,#60A5FA22 0%,transparent 60%);

    filter:blur(140px);

    animation:aurora 20s linear infinite alternate;

    z-index:-3;

}



.background{

    position:fixed;

    inset:0;

    overflow:hidden;

    z-index:-4;

}



.bg-gradient{

    position:absolute;

    inset:0;

    background:

        radial-gradient(circle at 20% 20%,#2563EB33,transparent 35%),

        radial-gradient(circle at 80% 30%,#06B6D433,transparent 30%),

        radial-gradient(circle at 50% 80%,#3B82F633,transparent 35%);

}



.bg-grid{

    position:absolute;

    inset:0;

    background-size:60px 60px;

    background-image:

        linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),

        linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);

}

/* ==========================================================
   FLOATING BLOBS
========================================================== */

.blob{

    position:absolute;

    border-radius:50%;

    filter:blur(80px);

    opacity:.35;

    animation:floatBlob 18s ease-in-out infinite;

}



.blob-1{

    width:450px;

    height:450px;

    background:#2563EB;

    top:-150px;

    left:-120px;

}



.blob-2{

    width:500px;

    height:500px;

    background:#0891B2;

    right:-150px;

    top:200px;

    animation-delay:5s;

}



.blob-3{

    width:420px;

    height:420px;

    background:#1D4ED8;

    bottom:-120px;

    left:40%;

    animation-delay:9s;

}

/* ==========================================================
   ANIMATION
========================================================== */

@keyframes floatBlob{

    0%{

        transform:translate(0,0) scale(1);

    }

    25%{

        transform:translate(40px,-30px) scale(1.08);

    }

    50%{

        transform:translate(-20px,35px) scale(.95);

    }

    75%{

        transform:translate(35px,10px) scale(1.05);

    }

    100%{

        transform:translate(0,0) scale(1);

    }

}



@keyframes aurora{

    from{

        transform:translateX(-10%) translateY(-5%) scale(1);

    }

    to{

        transform:translateX(15%) translateY(10%) scale(1.3);

    }

}

/* ==========================================================
   HEADER
========================================================== */

.header{

    position:fixed;

    top:24px;

    left:50%;

    transform:translateX(-50%);

    width:min(96%,1400px);

    z-index:1000;

    transition:.4s ease;

}


.header > .container{
    position:relative;
}

.header.scrolled{

    top:12px;

}

/* ==========================================================
   HEADER CONTAINER
========================================================== */

.header>.container{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:40px;

    padding:14px 28px;

    border-radius:22px;

    background:rgba(9,15,28,.58);

    backdrop-filter:blur(24px);

    -webkit-backdrop-filter:blur(24px);

    border:1px solid rgba(255,255,255,.08);

    box-shadow:

        0 20px 50px rgba(0,0,0,.35);

}


/* ==========================================================
   LOGO
========================================================== */

.logo{

    display:flex;

    align-items:center;

    gap:16px;

    flex-shrink:0;

}

.logo img{

    width:56px;

    height:56px;

    object-fit:contain;

}

.logo-text{

    display:flex;

    flex-direction:column;

}

.logo-text strong{

    font-size:1.2rem;

    font-weight:800;

    letter-spacing:.06em;

}

.logo-text span{

    color:var(--text-muted);

    font-size:.82rem;

    margin-top:3px;

}

/* ==========================================================
   NAVIGATION
========================================================== */

.navigation{

    flex:1;

}

.navigation ul{

    display:flex;

    justify-content:center;
    align-items: center; /* Memastikan teks sejajar secara vertikal */

    gap:8px;

}

.navigation a{

    display:flex;

    align-items:center;

    justify-content:center;

    height:46px;

    padding:0 18px;

    border-radius:14px;

    color:var(--text-soft);

    font-weight:600;

    transition:.3s;

}

.navigation a:hover{

    color:white;

    background:rgba(255,255,255,.08);

}

/*==================================================
MOBILE NAVIGATION
==================================================*/

.mobile-menu-btn{
    display:none;
}

@media (max-width:768px){

    /* Sembunyikan menu desktop */
    .navigation{
        display:none;
    }

    /* Tampilkan hamburger */
    .mobile-menu-btn{
        display:flex;
    }

}


/* ==========================================================
   HEADER RIGHT
========================================================== */

.header-right{

    display:flex;

    align-items:center;

    gap:14px;

}

.search-button{

    width:48px;

    height:48px;

    border-radius:14px;

    display:grid;

    place-items:center;

    color:white;

    background:rgba(255,255,255,.05);

    transition:.3s;

}

.search-button:hover{

    background:var(--primary);

}

.btn-login{

    display:flex;

    align-items:center;

    justify-content:center;

    padding:0 28px;

    height:44px;

    border-radius:14px;

    background:linear-gradient(135deg,#2563EB,#3B82F6);

    color:white;

    font-weight:700;

    transition:.35s;

}

.btn-login:hover{

    transform:translateY(-3px);

    box-shadow:

        0 18px 40px rgba(37,99,235,.45);

}

/*==================================================
MEGA MENU
==================================================*/

.has-mega{

    position:static;

}



.mega-menu{

    position:absolute;

    top:70px;

    left:50%;

    transform:translateX(-50%) translateY(20px);

    width:920px;

    padding:35px;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:35px;

    background:rgba(9,15,28,.92);

    backdrop-filter:blur(24px);

    border:1px solid rgba(255,255,255,.08);

    border-radius:24px;

    box-shadow:0 40px 80px rgba(0,0,0,.45);

    opacity:0;

    visibility:hidden;

    transition:.35s;

}



.has-mega:hover .mega-menu{

    opacity:1;

    visibility:visible;

    transform:translateX(-50%) translateY(0);

}



.mega-column{

    display:flex;

    flex-direction:column;

    gap:10px;

}



.mega-column h4{

    margin-bottom:8px;

    color:#60A5FA;

    font-size:.95rem;

    text-transform:uppercase;

    letter-spacing:.08em;

}



.mega-column a{

    padding:10px 14px;

    border-radius:12px;

    transition:.3s;

}



.mega-column a:hover{

    background:rgba(255,255,255,.06);

    color:white;

}

/*==================================================
DIGITAL SPHERE
==================================================*/

.digital-sphere{

    position:relative;

    width:560px;

    height:560px;

}



.sphere-center{

    position:absolute;

    left:50%;

    top:50%;

    transform:translate(-50%,-50%);

    width:220px;

    height:220px;

    border-radius:50%;

    background:rgba(255,255,255,.06);

    backdrop-filter:blur(25px);

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    border:1px solid rgba(255,255,255,.08);

    box-shadow:

        0 30px 80px rgba(37,99,235,.25);

}

.sphere-center img{

    width:82px;

    margin-bottom:15px;

}



.sphere-center h3{

    font-size:1.6rem;

    margin-bottom:6px;

}



.sphere-center small{

    color:var(--text-muted);

}

/*==================================================
ORBIT
==================================================*/

.orbit{

    position:absolute;

    width:120px;

    height:120px;

    border-radius:50%;

    background:rgba(255,255,255,.05);

    backdrop-filter:blur(15px);

    display:flex;

    align-items:center;

    justify-content:center;

    color:white;

    font-weight:600;

    border:1px solid rgba(255,255,255,.08);

    transition:.35s;

}

.orbit-1{

    top:0;

    left:220px;

}



.orbit-2{

    top:70px;

    right:20px;

}



.orbit-3{

    top:220px;

    right:0;

}



.orbit-4{

    bottom:70px;

    right:20px;

}



.orbit-5{

    bottom:0;

    left:220px;

}



.orbit-6{

    bottom:70px;

    left:20px;

}



.orbit-7{

    top:220px;

    left:0;

}

.orbit-8{
    top:70px;

    left:20px;

}


.hero-badge{
    margin:50px 0 24px;
    display:inline-flex;
    align-items:center;
    padding:.75rem 1.5rem;
    border-radius:999px;
    letter-spacing:.18em;
    text-transform:uppercase;
    font-size:clamp(1.05rem,1.5vw,1.5rem);
    font-weight:800;
}

.hero h1{
    margin:0;
    font-size:clamp(2.3rem,4.5vw,4.8rem);
    line-height:1.05;
    font-weight:700;
    margin-bottom:24px;
}

.hero p{
    font-size:clamp(1rem,1.2vw,1.25rem);
    line-height:1.8;
    max-width:36rem;
	margin-bottom:16px;
}

.hero-button{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:10px;
    margin-bottom:10px;
}

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:170px;
    height:44px;
    padding:0;
    border-radius:16px;
    font-weight:700;
    transition:.35s ease;
    white-space:nowrap;
}

.btn-primary{
    background:
        linear-gradient(135deg,#2563EB,#3B82F6);
    color:white;
}

.btn-primary:hover{
    transform:translateY(-5px);
    box-shadow:
        0 25px 50px rgba(37,99,235,.45);
}

.btn-outline{
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.03);
}

.btn-outline:hover{
    background:rgba(255,255,255,.08);
}

/*==================================================
STAT HERO
==================================================*/
.hero-stat{
    display:flex;
    align-items:center;
    gap:34px;
    flex-shrink:0;
}
.hero-stat article{
    display:flex;
    flex-direction:column;
    gap:0;
}

.hero-stat strong{
    display:block;
    margin:0;
    padding:0;
    font-size:1.55rem;
    font-weight:800;
    line-height:1;
}

.hero-stat span{
    display:block;
    margin-top:-2px;   /* membuat "Siswa" lebih dekat */
    padding:0;
    font-size:.88rem;
    line-height:1;
    color:var(--text-muted);
}
/*==================================================
  DIGITAL SERVICES - PREMIUM EDITION
==================================================*/

.services{

    position:relative;

    padding:10px 0 70px;

    background:transparent;

    overflow:hidden;
	scroll-margin-top:100px;



}

.services::before{

    content:"";

    position:absolute;

    width:700px;

    height:700px;

    border-radius:50%;

    left:-250px;

    top:-150px;

    background:

        radial-gradient(

            rgba(37,99,235,.12),

            transparent 70%

        );

    filter:blur(60px);

}

.services::after{

    content:"";

    position:absolute;

    width:650px;

    height:650px;

    border-radius:50%;

    right:-220px;

    bottom:-220px;

    background:

        radial-gradient(

            rgba(96,165,250,.08),

            transparent 70%

        );

    filter:blur(70px);

}

.services .container{

    position:relative;

    z-index:2;

}


/*==================================================
  GRID
==================================================*/

.services-grid{

    display:grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(150px,1fr)
        );

    gap:20px;

    margin-top:55px;

    justify-items:center;

}

/*==================================================
  CARD
==================================================*/

.service-card > a{
    width:100%;
    height:100%;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    text-decoration:none;
    color:inherit;
    gap:5px;
}

.service-card{
    position:relative;

    width:100%;
    max-width:155px;
    aspect-ratio:1/1;

    padding:4px;

    border-radius:12px;
    overflow:hidden;
    cursor:pointer;

    background:
         linear-gradient(
            185deg,
            rgba(255,255,255,.25),
            rgba(255,255,255,.13)
        );

    /* Border blue halus 
       border:1px solid rgba(96,165,250,.25);*/
    /* Border blue halus 
       border:1px solid rgba(255,255,255,.15);*/

    backdrop-filter:blur(14px);

    transition:
        transform .35s,
        box-shadow .35s,
        border-color .35s,
        background .35s;
}

.service-card:hover{
	    transform: scale(1.08);
    /*transform:translateY(-6px);*/

    border-color:rgba(96,165,250,.85);

    box-shadow:
        0 14px 32px rgba(0,0,0,.28),
        0 0 18px rgba(96,165,250,.28);
}

/*
.service-card::before{
    content:"";
    position:absolute;
    inset:0;

    border-radius:8px;
    padding:1px;

    background:linear-gradient(
        135deg,
        rgba(255,255,255,.04),
        rgba(96,165,250,.90),
        rgba(255,255,255,.04)
    );

    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);

    -webkit-mask-composite:xor;
            mask-composite:exclude;

    pointer-events:none;
}
*/
/*==================================================
  ICON
==================================================*/

.service-icon{
    width:130px;
    height:110px;

    display:flex;
    justify-content:center;
    align-items:center;

    border-radius:12px;

    background:linear-gradient(135deg,#2563EB,#60A5FA);
    box-shadow:0 8px 22px rgba(37,99,235,.28);

    overflow:hidden;
	    transform .35s ease,
        box-shadow .35s ease;
	 transition: transform .25s cubic-bezier(.34,1.56,.64,1);
	/*transition: transform .35s ease;*/
}

.service-icon img{
    width:100%;
    height:100%;

    object-fit:cover;
    display:block;
}

.service-card:hover .service-icon{

    transform:
        translateY(-3px)
        scale(1.08)
		    animation:bubble .5s ease;
    box-shadow:
        0 0 18px rgba(34,211,238,.7),
        0 0 40px rgba(34,211,238,.4);
		/* animation: bubble .5s ease;*/
        /* rotate(-4deg); */

}

.service-icon svg{
    width:26px;
    height:26px;
}


/*==================================================
  TITLE
==================================================*/

.service-card h3{

    margin:0;

    font-size:.88rem;

    font-weight:600;

    line-height:1.35;

    color:#fff;

    transition:.3s;

}

.service-card:hover h3{

    color:#0af519;

}

/*==================================================
  DESCRIPTION
==================================================*/

.service-card p{

    display:none;

}

/*==================================================
  RESPONSIVE
==================================================*/

@media(max-width:768px){

    .services{

        padding:70px 0 50px;

    }

    .services-grid{

        gap:16px;

    }

    .service-card{

        max-width:145px;

    }

}


/*==================================================
DIGITAL ECOSYSTEM
==================================================*/

.ecosystem{
    position:relative;
    padding:10px 0 70px;
    overflow:hidden;

}

.ecosystem-wrapper{
    position:relative;
    width:900px;
    height:900px;
    margin:100px auto 0;
}

/*==================================================
ECOSYSTEM
==================================================*/
.ecosystem{
    position:relative;
    padding:120px 0;
}

.ecosystem-wrapper{
    display:flex;
    justify-content:center;
    align-items:center;
    margin-top:-200px;
}

.ecosystem-mobile{
    display:none;
}


/*==================================================
ORBIT
==================================================*/
.ecosystem-orbit{
    position:relative;
    width:400px;
    height:250px;
}

/*==================================================
CENTER
==================================================*/

.ecosystem-core{

    position:absolute;

    left:50%;

    top:50%;

    transform:translate(-50%,-50%);

    width:100px;

    height:100px;

    border-radius:50%;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    text-align:center;

    background:

        linear-gradient(
            180deg,
            rgba(255,255,255,.06),
            rgba(255,255,255,.02)
        );

    border:1px solid rgba(255,255,255,.08);

    backdrop-filter:blur(24px);

    box-shadow:

        0 30px 80px rgba(0,0,0,.35);

    z-index:50;

}

.core-logo img{

    width:50px;

    margin-bottom:5px;

}

.ecosystem-core h3{

    font-size:1.2rem;

    margin:0;

}

.ecosystem-core small{

    margin-top:6px;

    color:var(--text-muted);

}

/*==================================================
NODE MINIMAL GALAXY
==================================================*/

.node{

    position:absolute;

    transform:translate(-50%,-50%);

    width:76px;
    height:76px;

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;

    text-align:center;

    cursor:pointer;

    z-index:10;

    transition:
        transform .35s ease,
        filter .35s ease;

}

/*==================================================
ICON
==================================================*/

.node-icon{

    width:42px;
    height:42px;

    border-radius:14px;

    display:flex;
    align-items:center;
    justify-content:center;

    margin-bottom:8px;

    background:
        linear-gradient(
            135deg,
            #2563EB,
            #06B6D4
        );

    box-shadow:
        0 6px 16px rgba(37,99,235,.28);

    transition:
        transform .35s ease,
        box-shadow .35s ease;

}

/*==================================================
TITLE
==================================================*/

.node h4{

    margin:0;

    font-size:.72rem;

    font-weight:600;

    line-height:1.25;

    color:#E5E7EB;

    white-space:nowrap;

    transition:
        color .35s ease,
        transform .35s ease;

}

/*==================================================
HOVER
==================================================*/

.node:hover{

    transform:
        translate(-50%,-50%)
        scale(1.28);

    z-index:100;

}

.node:hover .node-icon{

    transform:scale(1.12);

    box-shadow:
        0 0 14px rgba(59,130,246,.55),
        0 0 30px rgba(59,130,246,.30);

}

.node:hover h4{

    color:#FFFFFF;

}
/*==================================================
LIVE STATISTICS
==================================================*/

.statistics{
    position:relative;
    padding:150px 0;
}

.statistics-dashboard{
    display:grid;
    grid-template-columns:repeat(12,1fr);
    gap:28px;
    margin-top:50px;

}

/*==================================================
STAT CARD
==================================================*/

.stat-card{
    position:relative;
    overflow:hidden;
    padding:35px;
    border-radius:26px;
    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,.05),
            rgba(255,255,255,.02)
        );
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:blur(20px);
    transition:.35s;
	
	
    /* Tambahan */
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
	
}

.stat-card:hover{

    transform:translateY(-10px);

    border-color:#60A5FA;

    box-shadow:

        0 25px 60px rgba(0,0,0,.35);

}
.stat-large{

    grid-column:span 6;

}

.stat-medium{

    grid-column:span 4;

}

.stat-wide{

    grid-column:span 4;

}

.stat-card:not(.stat-large):not(.stat-medium):not(.stat-wide){

    grid-column:span 2;
}
/*==================================================
STAT TYPOGRAPHY
==================================================*/

.stat-label{

    display:block;

    color:#60A5FA;

    text-transform:uppercase;

    letter-spacing:.12em;

    font-size:.80rem;

    font-weight:700;

    margin-bottom:18px;

}
.counter{

    display:block;

    font-size:clamp(2.5rem,5vw,4rem);

    font-weight:900;

    line-height:1;

    margin-bottom:15px;

}

/*==================================================
STAT SPLIT (Guru & Staf)
==================================================*/

.stat-split{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:1.5rem;

    margin-top:.8rem;

}

.stat-half{

    flex:1;

    text-align:center;

}



.stat-half small{

    display:block;

    font-size:.85rem;

    color:var(--text-muted);

    line-height:1.4;

}

.stat-divider{

    width:1px;

    align-self:stretch;

    background:linear-gradient(
        to bottom,
        transparent,
        rgba(255,255,255,.18),
        transparent
    );

}


.stat-card small{

    display:block;

    color:var(--text-muted);

    line-height:1.8;

}

/*==================================================
LIVE STATUS
==================================================*/
.stat-status{
    position:absolute;
    top:8px;
    left:8px;
    display:flex;
    align-items:center;
    gap:.45rem;
    padding:.35rem .7rem;
    border-radius:999px;
    background:rgba(37,99,235,.08);
    border:1px solid rgba(96,165,250,.15);
    backdrop-filter:blur(10px);
    z-index:5;
}

.status-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#22C55E;
    box-shadow:
        0 0 12px rgba(34,197,94,.7);
    animation:livePulse 2s infinite;
}

.status-text{
    font-size:.72rem;
    font-weight:600;
    color:#A5F3FC;
    letter-spacing:.05em;
}

@keyframes livePulse{
    0%{
        transform:scale(1);
        opacity:1;
    }
    50%{
        transform:scale(1.4);
        opacity:.45;
    }
    100%{
        transform:scale(1);
        opacity:1;
    }
}

.stat-status.update{
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.08);
}
.stat-status.update .status-text{
    color:#CBD5E1;
    font-size:.70rem;
    letter-spacing:.03em;
}

/*==================================================
STAT GLOW
==================================================*/

.stat-card::before{

    content:"";

    position:absolute;

    width:220px;

    height:220px;

    right:-80px;

    top:-80px;

    border-radius:50%;

    background:

        radial-gradient(

            rgba(59,130,246,.18),

            transparent 70%

        );

    opacity:0;

    transition:.4s;

}
.stat-card:hover::before{

    opacity:1;

}
.stat-card::after{

    content:"";

    position:absolute;

    inset:0;

    border-radius:26px;

    border:1px solid transparent;

    transition:.35s;

}
.stat-card:hover::after{

    border-color:

        rgba(96,165,250,.25);

}



/*==================================================
CAMPUS HIGHLIGHTS
==================================================*/
.highlights{
    position:relative;
    padding:160px 0;
}

.highlight-layout{
    display:grid;
    grid-template-columns:1fr 540px 1fr;
    gap:50px;
    align-items:center;
    margin-top:60px;
}

/*==================================================
FEATURE CARD
==================================================*/
.feature-card{
    display:flex;
    gap:25px;
    padding:30px;
    margin-bottom:25px;
    border-radius:24px;
    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,.05),
            rgba(255,255,255,.02)
        );
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:blur(18px);
    transition:.35s;
}

.feature-card:hover{
    transform:translateX(12px);
    border-color:#60A5FA;
    box-shadow:
        0 20px 60px rgba(37,99,235,.22);
}

.feature-number{
    width:70px;
    height:70px;
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:18px;
    background:
        linear-gradient(
            135deg,
            #2563EB,
            #3B82F6
        );
    font-size:1.4rem;
    font-weight:800;
}
.feature-content h3{
    margin-bottom:6px;
    font-size:1.2rem;
}

.feature-content p{
    color:var(--text-muted);
    line-height:1.5;
}

/*==================================================
SHOWCASE
==================================================*/
.campus-showcase{
    position:relative;
    border-radius:36px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.08);
    box-shadow:
        0 40px 100px rgba(0,0,0,.45);
}
.campus-showcase img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:.6s;
}
.campus-showcase:hover img{
    transform:scale(1.05);
}

/*==================================================
LATEST NEWS
==================================================*/
.news{
    position:relative;
	padding:10px 0 70px;
	scroll-margin-top:100px;
}
.news-layout{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:45px;
}
/*==================================================
FEATURED NEWS
==================================================*/
.featured-news{
    overflow:hidden;
    border-radius:32px;
    background:
        rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.08);
}
.featured-news figure{

    height:420px;

    overflow:hidden;

}

.featured-news img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.6s;

}
.featured-news:hover img{

    transform:scale(1.08);

}
.featured-content{

    padding:40px;

}

.featured-content h3{

    margin:20px 0;

    font-size:2rem;

    line-height:1.3;

}

.featured-content p{

    color:var(--text-muted);

    margin-bottom:30px;

}
.news-list{

    display:flex;

    flex-direction:column;

    gap:24px;

}
.news-card{

    display:flex;

    gap:18px;

    align-items:center;

    padding:18px;

    border-radius:22px;

    background:

        rgba(255,255,255,.04);

    border:1px solid rgba(255,255,255,.08);

    transition:.35s;

}
.news-card:hover{

    transform:translateX(10px);

    border-color:#60A5FA;

}
.news-card figure{

    width:130px;

    height:100px;

    overflow:hidden;

    border-radius:18px;

    flex-shrink:0;

}
.news-card img{

    width:100%;

    height:100%;

    object-fit:cover;

}
.news-card time{

    color:#60A5FA;

    font-size:.82rem;

}

.news-card h4{

    margin-top:10px;

    line-height:1.5;

}

/*==================================================
ACHIEVEMENTS
==================================================*/

.achievements{

    position:relative;

    padding:160px 0;

}

.achievement-layout{

    display:grid;

    grid-template-columns:1.5fr 1fr;

    gap:40px;

    align-items:start;

}

/*==================================================
FEATURED ACHIEVEMENT
==================================================*/

.achievement-feature{

    overflow:hidden;

    border-radius:30px;

    background:linear-gradient(
        180deg,
        rgba(255,255,255,.05),
        rgba(255,255,255,.02)
    );

    border:1px solid rgba(255,255,255,.08);

}

.achievement-feature figure{

    height:420px;

    overflow:hidden;

}

.achievement-feature img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.6s;

}

.achievement-feature:hover img{

    transform:scale(1.06);

}

.achievement-content{

    padding:40px;

}

.achievement-badge{

    display:inline-flex;

    padding:8px 16px;

    border-radius:999px;

    background:#2563EB22;

    color:#60A5FA;

    font-size:.8rem;

    font-weight:700;

}

.achievement-content h3{

    margin:20px 0;

    font-size:2rem;

}

.achievement-content p{

    color:var(--text-muted);

    line-height:1.8;

}
/*==================================================
ACHIEVEMENT LIST
==================================================*/

.achievement-list{

    display:flex;

    flex-direction:column;

    gap:20px;

}

.achievement-item{

    padding:28px;

    border-radius:22px;

    background:rgba(255,255,255,.04);

    border:1px solid rgba(255,255,255,.08);

    transition:.3s;

}

.achievement-item:hover{

    transform:translateX(10px);

    border-color:#60A5FA;

}

.achievement-year{

    color:#60A5FA;

    font-weight:700;

    display:block;

    margin-bottom:10px;

}

/*==================================================
MASONRY GALLERY
==================================================*/

.moments{

    position:relative;
	
	padding:10px 0 70px;
	scroll-margin-top:100px;

}

.masonry{

    columns:4 280px;

    column-gap:22px;

}
.photo{

    break-inside:avoid;

    margin-bottom:22px;

    overflow:hidden;

    border-radius:24px;

    background:#111827;

    border:1px solid rgba(255,255,255,.08);

}
.photo img{

    width:100%;

    display:block;

    transition:.7s;

}
.photo:hover img{

    transform:scale(1.08);

}
.gallery-footer{

    text-align:center;

    margin-top:70px;

}
/*==================================================
ALUMNI
==================================================*/

.alumni{

    padding:160px 0;

}

.alumni-layout{

    display:grid;

    grid-template-columns:430px 1fr;

    gap:50px;

}
.alumni-summary{

    padding:45px;

    border-radius:30px;

    background:linear-gradient(
        180deg,
        rgba(255,255,255,.05),
        rgba(255,255,255,.02)
    );

    border:1px solid rgba(255,255,255,.08);

}
.summary-number{

    font-size:4rem;

    font-weight:900;

    color:#60A5FA;

    margin-bottom:20px;

}
.alumni-sector{

    margin-top:30px;

}

.alumni-sector li{

    padding:14px 0;

    border-bottom:1px solid rgba(255,255,255,.06);

    color:var(--text-soft);

}
.alumni-story{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:28px;

}
.story-card{

    border-radius:28px;

    overflow:hidden;

    background:rgba(255,255,255,.04);

    border:1px solid rgba(255,255,255,.08);

    transition:.35s;

}

.story-card:hover{

    transform:translateY(-10px);

}
.story-card figure{

    height:280px;

    overflow:hidden;

}
.story-card img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.6s;

}

.story-card:hover img{

    transform:scale(1.08);

}
.story-content{

    padding:30px;

}

.story-content h3{

    margin:12px 0;

}

.story-content small{

    color:#60A5FA;

}

.story-content p{

    margin-top:20px;

    color:var(--text-muted);

    line-height:1.8;

}

/*==================================================
CALL TO ACTION
==================================================*/

.cta{

    position:relative;

    padding:180px 0;

}

.cta-box{

    position:relative;

    overflow:hidden;

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:60px;

    padding:80px;

    border-radius:36px;

    background:
        linear-gradient(
            135deg,
            #1D4ED8,
            #2563EB,
            #0F766E
        );

    box-shadow:
        0 40px 100px rgba(0,0,0,.40);

}
.cta-box::before{

    content:"";

    position:absolute;

    width:600px;

    height:600px;

    right:-220px;

    top:-220px;

    border-radius:50%;

    background:
        radial-gradient(
            rgba(255,255,255,.15),
            transparent 70%
        );

}
.cta-content{

    max-width:700px;

}

.cta-content h2{

    margin:24px 0;

    font-size:clamp(2.5rem,5vw,4rem);

    line-height:1.15;

}

.cta-content p{

    color:#D6E4FF;

    line-height:1.9;

}
.cta-action{

    display:flex;

    gap:20px;

    flex-wrap:wrap;

}
.cta .btn-primary{

    background:white;

    color:#2563EB;

}

.cta .btn-primary:hover{

    background:#F8FAFC;

}

.cta .btn-outline{

    color:white;

    border:1px solid rgba(255,255,255,.35);

}
/*==================================================
FOOTER
==================================================*/

.footer{

    position:relative;
	
	padding:50px 0 70px;
	scroll-margin-top:100px;

    background:#030712;

    border-top:1px solid rgba(255,255,255,.06);

}
.footer-grid{

    display:grid;

    grid-template-columns:2fr 1fr 1fr 1.3fr;

    gap:60px;

}
.footer-logo{

    width:90px;

    margin-bottom:25px;

}
.footer h3{

    margin-bottom:18px;

}

.footer h4{

    margin-bottom:22px;

    color:white;

}
.footer p{

    color:var(--text-muted);

    line-height:1.8;

}
.footer ul{

    display:flex;

    flex-direction:column;

    gap:14px;

}
.footer a{

    color:var(--text-muted);

    transition:.3s;

}

.footer a:hover{

    color:#60A5FA;

}
.footer-bottom{

    margin-top:70px;

    padding-top:35px;

    border-top:1px solid rgba(255,255,255,.06);

    display:flex;

    justify-content:space-between;

    color:var(--text-muted);

}

/*==================================================
RESPONSIVE
==================================================*/

@media (max-width:992px){

.hero-container{
grid-template-columns:1fr;
text-align:center;
}
.hero p{
margin-inline:auto;
}

.hero-button{

justify-content:center;

}

.hero-stat{

justify-content:center;

}

.hero-visual{

margin-top:60px;

}

}
@media (max-width:992px){

.services-grid{

grid-template-columns:repeat(2,1fr);

}

.highlight-layout{

grid-template-columns:1fr;

}

.news-layout{

grid-template-columns:1fr;

}

.achievement-layout{

grid-template-columns:1fr;

}

.alumni-layout{

grid-template-columns:1fr;

}

.footer-grid{

grid-template-columns:repeat(2,1fr);

}

}

@media (max-width:768px){

.statistics-dashboard{

grid-template-columns:1fr;

}

.stat-card,

.stat-large,

.stat-wide{

grid-column:auto;

}

.services-grid{

grid-template-columns:1fr;

}

.alumni-story{

grid-template-columns:1fr;

}

.footer-grid{

grid-template-columns:1fr;

}

.footer-bottom{

flex-direction:column;

gap:15px;

text-align:center;

}

.cta-box{

flex-direction:column;

text-align:center;

padding:60px 35px;

}

.hero h1{

font-size:3rem;

}

}

/*==================================================
REVEAL ANIMATION
==================================================*/

.reveal{

    opacity:0;

    transform:translateY(60px);

    transition:
        opacity .8s ease,
        transform .8s ease;

}

.reveal.active{

    opacity:1;

    transform:none;

}

.fade-left{

    opacity:0;

    transform:translateX(-60px);

    transition:.8s;

}

.fade-left.active{

    opacity:1;

    transform:none;

}

.fade-right{

    opacity:0;

    transform:translateX(60px);

    transition:.8s;

}

.fade-right.active{

    opacity:1;

    transform:none;

}
/* ==========================================================
   SMANES CSS OPTIMIZATION
   HERO ECOSYSTEM POLISH
========================================================== */

/*==================================================
HERO INFO 
==================================================*/
.hero-info{
    display:flex;
    align-items:center;
    gap:18px;
    width:100%;

    margin-top:1px;
    margin-bottom:24px;
}

/*==================================================
SPONSOR MARQUEE
==================================================*/
.sponsor{
    flex:1;
    width:auto;
    min-width:0;
    height:38px;
    display:flex;
    align-items:center;
    overflow:hidden;
    margin-left:0px;
    padding-left:20px;
    border-left:1px solid rgba(255,255,255,.08);
    position:relative;
}

/* fade kiri kanan */
.sponsor::before,
.sponsor::after{
    content:"";
    position:absolute;
    top:0;
    width:18px;          /* sebelumnya 70px */
    height:100%;
    z-index:2;
    pointer-events:none;
}

.sponsor::before{
    left:0;
	background:transparent);
    /* background:linear-gradient(to right,#071426,transparent); */
}

.sponsor::after{
    right:0;
    background:transparent);
    /* background:linear-gradient(to left,#071426,transparent);*/
}

/*==================================================
LOGO
==================================================*/
.sponsor img{
    height:24px;
    width:auto;
    flex-shrink:0;
    opacity:.75;
    transition:.3s;
}

/* ==========================================================
   SPONSOR ITEM
========================================================== */

.hero-sponsors .sponsor-item{

    width:100px;

    height:72px;

    display:flex;
    justify-content:center;
    align-items:center;

}

/* ==========================================================
   LOGO
========================================================== */

.hero-sponsors .sponsor-item img{

    max-width:100%;

    max-height:100%;

     width:100%;

    height:100%;

    object-fit:contain;

    opacity:.75;

    filter:
       /* grayscale(100%) */
        brightness(1.15);

    transition:
        transform .35s,
        opacity .35s,
        filter .35s;

}

.hero-sponsors .sponsor-item:hover img{

    opacity:1;

    filter:none;

    transform:
        translateY(-3px)
        scale(1.08);

}

.sponsor img:hover{
    opacity:1;
    transform:scale(1.08);
 }

/*==================================================
RESPONSIVE
==================================================*/
@media(max-width:1400px){
.hero-info{
    flex-direction:column;
    align-items:flex-start;
}
.sponsor{
    width:100%;
    border-left:none;
    border-top:1px solid rgba(255,255,255,.08);
    padding-left:0;
    padding-top:20px;
}
}

@media(max-width:768px){
.sponsor{
    height:55px;
}
.sponsor img{
    height:24px;
}
.sponsor-track{
    gap:35px;
}
}

/* ==========================================================
   HERO SPONSORS
========================================================== */
.hero-sponsors{
    position:relative;
    margin-top:-20px; /*mengatur letak tulisan 'DIDUKUNG OLEH TEKNOLOGI ...' */
    padding-bottom:10px;
}

.sponsor-title{
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;

    margin-bottom: 28px;

    font-size: .9rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: #93C5FD;
}

/* garis kiri */
.sponsor-title::before{
    content:"";
    flex:1;
    max-width:220px;
    height:1px;
    background:rgba(255,255,255,.12);
}

/* garis kanan */
.sponsor-title::after{
    content:"";
    flex:1;
    max-width:220px;
    height:1px;
    background:rgba(255,255,255,.12);
}

/* Area marquee */
.hero-sponsors .sponsor{
	height:60px;   /* marquee track */
	transform:none;
	margin-top:1rem;
    width:100%;
    overflow:hidden;
    position:relative;
}


/* Logo */
.hero-sponsors .sponsor img{
   height:clamp(42px,3vw,56px); /* besar logo */
    width:auto;
    opacity:.75;
    transition:.35s ease;
}
.hero-sponsors .sponsor img:hover{
    opacity:1;
    transform:translateY(-2px) scale(1.08);
}

/* ==========================================================
   SPONSOR TRACK (JavaScript Animation)
========================================================== */
.hero-sponsors .sponsor{
    overflow:hidden;
    position:relative;
}
.hero-sponsors .sponsor-track{
    display:flex;
    align-items:center;
    gap:clamp(3rem,5vw,6rem);
    width:max-content;
    will-change:transform;
}
.hero-sponsors .sponsor img{
    height:38px;
    width:auto;
    flex-shrink:0;
    opacity:.75;
    transition:.35s;
}
.hero-sponsors .sponsor img:hover{
    opacity:1;
    transform:translateY(-2px) scale(1.08);
}

/*==================================================
HERO VISUAL
==================================================*/
.hero{
    position:relative;
    overflow:hidden;
}

.hero-visual{
    position:absolute;
    inset:0;
    overflow:hidden;
    pointer-events:none;
}

/*==================================================
IMAGE
==================================================*/
.hero-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;

    object-fit:cover;

    opacity:0;

    transform:scale(1.06);

    transition:
        opacity 1.2s ease,
        transform 6s ease;

    will-change:opacity,transform;
}

.hero-bg::after{
    display:none;
}
.hero-visual::after{

    content:"";

    position:absolute;

    inset:-30px;

    pointer-events:none;

    z-index:3;

    background:

        radial-gradient(

            ellipse at center,

            transparent 45%,

            rgba(18,32,63,.12) 72%,

            rgba(6,12,25,.55) 100%

        );

}
/* gambar aktif */
.hero-bg.active{
    opacity:1;
    transform:scale(1);
}

/*==================================================
HERO IMAGE GLOW
==================================================*/

.hero-visual::before{

    content:"";

    position:absolute;

    inset:-80px;

    z-index:0;

    background:

        radial-gradient(
            circle,
            rgba(37,99,235,.22),
            rgba(37,99,235,.10),
            transparent 72%
        );

   filter:blur(clamp(3rem,5vw,6rem));

}

/*==================================================
HERO VIGNETTE
==================================================*/

.hero-visual::after{

    content:"";

    position:absolute;

    inset:0;

    pointer-events:none;

    z-index:3;

    box-shadow:
        inset 0 0 120px rgba(7,20,38,.65);
		
    background:

        radial-gradient(

            ellipse at center,

            transparent 40%,

            rgba(2,6,23,.18) 70%,

            rgba(2,6,23,.55) 100%

        );

}
/*==================================================
HERO BLUR
==================================================*/

.hero-blur{

    position:absolute;

    inset:-8%;

    width:116%;

    height:116%;

    object-fit:cover;

    filter:
    blur(32px)
    brightness(.82)
    saturate(1.18);

    opacity:.55;

    transform:scale(1.12);

    z-index:1;

}

.hero-light{

    position:absolute;

    inset:-12%;

    z-index:0;

    pointer-events:none;

    background:

        radial-gradient(

            circle at center,

            rgba(0,170,255,.28),

            rgba(37,99,235,.18),

            rgba(37,99,235,.08),

            transparent 72%

        );

    filter:blur(90px);

    animation:heroLightMove 20s linear infinite alternate;

}

@keyframes heroLightMove{

    0%{

        transform:scale(1);

        opacity:.55;

    }

    50%{

        transform:scale(1.12);

        opacity:.95;

    }

    100%{

        transform:scale(1);

        opacity:.55;

    }

}
}

/*==================================================
MASK
==================================================*/

.hero-bg{

    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;

    -webkit-mask-image:
        radial-gradient(
            ellipse 88% 82% at center,
            #000 45%,
            rgba(0,0,0,.98) 58%,
            rgba(0,0,0,.80) 72%,
            rgba(0,0,0,.35) 86%,
            transparent 100%
        );

    mask-image:
        radial-gradient(
            ellipse 88% 82% at center,
            #000 45%,
            rgba(0,0,0,.98) 58%,
            rgba(0,0,0,.80) 72%,
            rgba(0,0,0,.35) 86%,
            transparent 100%
        );

}

/* ==========================================================
   HERO CAPTION
========================================================== */

.hero-caption{

    position:absolute;

    top:clamp(1.5rem,3vh,2.5rem);

    left:clamp(1.5rem,2vw,2.5rem);

    z-index:20;

    max-width:28rem;

    color:#fff;

    pointer-events:none;

    animation:fadeCaption .6s ease;
	text-align:left;
	

}

.hero-caption-category{

    display:inline-flex;

    align-items:center;

    padding:.45rem 1rem;

    border-radius:999px;

    background:rgba(37,99,235,.88);

    backdrop-filter:blur(12px);

    font-size:clamp(.72rem,.9vw,.85rem);

    font-weight:700;

    letter-spacing:.16em;

    text-transform:uppercase;

    box-shadow:0 .4rem 1.2rem rgba(37,99,235,.35);
	text-align:left;

}

.hero-caption-title{

    margin-top:1rem;

    font-size:clamp(1.4rem,2.1vw,2.1rem);

    font-weight:700;

    line-height:1.2;

    text-shadow:0 .25rem 1rem rgba(0,0,0,.45);
	text-align:left;

}

@keyframes fadeCaption{

    from{

        opacity:0;

        transform:translateY(12px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* ==========================================================
   HERO NAVIGATION
========================================================== */

.hero-prev,
.hero-next{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:3.6rem;

    height:3.6rem;

    border:none;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

    color:#fff;

    font-size:1.5rem;

    cursor:pointer;

    z-index:25;

    transition:
        background .3s,
        transform .3s,
        box-shadow .3s,
        opacity .3s;

    opacity:0;

}

.hero-prev{

    left:1.25rem;

}

.hero-next{

    right:1.25rem;

}

.hero-visual:hover .hero-prev,
.hero-visual:hover .hero-next{

    opacity:1;

}

.hero-prev:hover,
.hero-next:hover{

    background:#2563EB;

    transform:translateY(-50%) scale(1.08);

    box-shadow:0 .6rem 2rem rgba(37,99,235,.45);

}

/* ==========================================================
   HERO DOTS
========================================================== */

.hero-dots{

    position:absolute;

    left:50%;

    bottom:1.8rem;

    transform:translateX(-50%);

    display:flex;

    align-items:center;

    gap:.8rem;

    z-index:25;

}

.hero-dot{

    width:.75rem;

    height:.75rem;

    border:none;

    border-radius:50%;

    background:rgba(255,255,255,.35);

    cursor:pointer;

    transition:all .35s ease;

}

.hero-dot.active{

    width:2.2rem;

    border-radius:999px;

    background:#60A5FA;

    box-shadow:0 0 18px rgba(96,165,250,.6);

}

.hero-dot:hover{

    background:#93C5FD;

}

/* ==========================================================
   HERO PROGRESS
========================================================== */
.hero-progress{
    position:absolute;
    left:50%;
    bottom:.8rem;
    transform:translateX(-50%);
    width:min(220px,45%);
    height:3px;
    background:rgba(255,255,255,.15);
    border-radius:999px;
    overflow:hidden;
    z-index:30;
}
.hero-progress-bar{
    width:0;
    height:100%;
    border-radius:999px;
    background:linear-gradient(
        90deg,
        #60A5FA,
        #2563EB
    );
}
.hero-caption{
    transition:
        opacity .45s ease,
        transform .45s ease;
}
.hero-caption.hide{
    opacity:0;
    transform:translateY(20px);
}
.hero-bg{
    transform:scale(1.08);
}
.hero-bg.active{
    animation:kenburns 8s linear forwards;
}
@keyframes kenburns{
    from{
        transform:scale(1.08);
    }
    to{
        transform:scale(1);
    }
}

/*==================================================
ORBIT
==================================================*/
.orbit{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    border-radius:50%;
    border:1px solid rgba(59,130,246,.10);
}
.orbit-1{
    width:760px;
    height:400px;
    border:1px solid rgba(59,130,246,.14);
}
.orbit-2{
    width:540px;
    height:260px;
    border:1px solid rgba(59,130,246,.09);
}
.orbit-3{
    width:320px;
    height:140px;
    border:1px dashed rgba(59,130,246,.07);
}

/*==================================================
CENTER GLOW
==================================================*/
.orbit-glow{
    position:absolute;
    left:50%;
    top:50%;
    width:520px;
    height:520px;
    transform:translate(-50%,-50%);
    border-radius:50%;
    background:
        radial-gradient(
            circle,
            rgba(37,99,235,.16),
            rgba(37,99,235,.05),
            transparent 72%
        );
    filter:blur(80px);
    animation:orbitGlow 8s ease-in-out infinite;
}

@keyframes orbitGlow{
    0%{
        opacity:.45;
        transform:translate(-50%,-50%) scale(1);
    }
    50%{
        opacity:.8;
        transform:translate(-50%,-50%) scale(1.08);
    }
    100%{
        opacity:.45;
        transform:translate(-50%,-50%) scale(1);
    }
}

/*=========================================
SVG CONNECTION
=========================================*/
.ecosystem-lines{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    overflow:visible;
    pointer-events:none;
    z-index:5;
}
.ecosystem-lines line{
    stroke:rgba(96,165,250,.18);
    stroke-width:1.5;
    stroke-linecap:round;
}
.ecosystem-lines line.active{
    stroke:#60A5FA;
    stroke-width:2;
    filter:drop-shadow(0 0 8px rgba(96,165,250,.5));
}

/*==================================================
ORBIT DOT
==================================================*/
.orbit-dot{
    position:absolute;
    width:10px;
    height:10px;
    border-radius:50%;
    background:#60A5FA;
    box-shadow:
        0 0 10px #60A5FA,
        0 0 25px rgba(96,165,250,.65);
    z-index:30;
    pointer-events:none;
}


/*==================================================
 AWAL PENGATURAN MOBIL
==================================================*/
/*==================================================
 MOBILE RESPONSIVE FINAL
==================================================*/

@media(max-width:768px){

/* HEADER */
.navigation,
.search-button,
.btn-login{
    display:none;
}
.mobile-menu-btn{
    display:flex;
    align-items:center;
    justify-content:center;
}

/* HERO */
.hero{
    position:relative;
    overflow:hidden;
    min-height:100svh;
    padding:90px 20px 40px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.hero .container,
.hero-container{
    width:100%;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    gap:20px;
}

/* HERO IMAGE */
.hero-visual{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    z-index:0;
    overflow:hidden;
}

.hero-visual::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(to bottom,rgba(0,0,0,.35),rgba(0,0,0,.65));
    z-index:2;
}

.hero-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    opacity:0;
    transform:scale(1);
    transition:opacity 1.2s ease-in-out,transform 6s ease;
}

.hero-bg.active{
    opacity:1;
    transform:scale(1.05);
}

/* HERO CONTENT */
.hero-content{
    position:relative;
    z-index:5;
    width:100%;
    max-width:360px;
    margin:0 auto;
    text-align:left;
    transform:translateY(40px);
}

.hero-badge{
    display:block;
	width:max-content;
    transform:translateX(-20px);

}

.hero-content h1{
    margin:0;
}

.hero-content h1{
    font-size:2.1rem;
    line-height:1.15;
}

.hero-content p{
    font-size:1rem;
    margin:18px 0 28px;
    max-width:340px;
}

.hero-button,
.hero-buttons{
    display:flex;
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:12px;
}

.hero-button{
    margin-top:22px;
}

.hero-info{
    margin-top:18px;
}

/* HERO NAV */
.hero-prev,
.hero-next{
    width:2.8rem;
    height:2.8rem;
    font-size:1.2rem;
    opacity:1;
    z-index:6;
}

.hero-prev{
    left:.5rem;
}

.hero-next{
    right:.5rem;
}

.hero-dots{
    bottom:1rem;
    z-index:6;
}

/* STAT */
.hero-stats{
    width:100%;
    max-width:380px;
    margin:32px auto 0;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
}

.stat-item{
    position:relative;
    text-align:center;
    padding:8px 4px;
}

.stat-item:not(:last-child)::after{
    content:"";
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    width:1px;
    height:36px;
    background:rgba(255,255,255,.08);
}

.stat-number{
    display:block;
    font-size:1.8rem;
    font-weight:800;
    line-height:1;
    color:#fff;
    margin-bottom:6px;
}

.stat-label{
    display:block;
    font-size:.78rem;
    font-weight:500;
    color:rgba(255,255,255,.7);
}

/* SPONSOR */
.hero-sponsors{
    padding:22px 0;
    overflow:hidden;
    transform:translateY(75px);
    -webkit-mask-image:linear-gradient(to right,transparent,black 8%,black 92%,transparent);
    mask-image:linear-gradient(to right,transparent,black 8%,black 92%,transparent);
}

.hero-sponsors .container{
    padding:0 10px;
}

.sponsor-title{
    margin-bottom:18px;
    text-align:center;
    justify-content:center;
}

.sponsor-title span{
    font-size:.78rem;
    letter-spacing:.15em;
}

.sponsor-track{
    gap:36px;
    animation-duration:34s;
}

.sponsor-item{
    flex:0 0 auto;
}

.sponsor-item img{
    height:34px;
    width:auto;
    opacity:.85;
}

/* SERVICES */
.services{
    padding:60px 0;
}

.services .container{
    padding:0 16px;
}

.services-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:16px;
    margin-top:35px;
}

.service-card{
    width:100%;
    height:100%;
    border-radius:20px;
    padding:18px 12px;
    opacity:0;
    transform:translateY(24px);
    animation:serviceMobile .6s forwards;
}

.service-card:nth-child(1){animation-delay:.05s}
.service-card:nth-child(2){animation-delay:.10s}
.service-card:nth-child(3){animation-delay:.15s}
.service-card:nth-child(4){animation-delay:.20s}
.service-card:nth-child(5){animation-delay:.25s}
.service-card:nth-child(6){animation-delay:.30s}
.service-card:nth-child(7){animation-delay:.35s}
.service-card:nth-child(8){animation-delay:.40s}
.service-card:nth-child(9){animation-delay:.45s}
.service-card:nth-child(10){animation-delay:.50s}
.service-card:nth-child(11){animation-delay:.55s}
.service-card:nth-child(12){animation-delay:.60s}

.service-card:active{
    transform:scale(.97);
    border-color:#3B82F6;
    box-shadow:0 0 18px rgba(59,130,246,.28);
}

.service-icon{
    width:120px;
    height:145px;
    border-radius:12px;
}

.service-icon svg{
    width:26px;
    height:26px;
}

.service-card h3{
    font-size:.84rem;
    line-height:1.35;
}

/*==================================================
STATISTICS MOBILE
==================================================*/

.statistics{
    padding:70px 0;
}

.statistics-dashboard{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:14px;
    margin-top:30px;
}

/* Semua card kembali normal */
.stat-large,
.stat-medium,
.stat-wide{
    grid-column:span 1 !important;
}

.stat-card{
    padding:46px 22px 16px;
    border-radius:18px;
}

/* Badge */

.stat-status{
    top:8px;
    left:10px;
    padding:.18rem .45rem;
}

.status-text{
    font-size:.60rem;
}

/* Typography */
.counter{
    font-size:2rem;
}

.stat-label{
    font-size:.70rem;
}

.stat-card small{
    font-size:.72rem;
}

/* ECOSYSTEM */
.ecosystem-wrapper{
    display:none;
}

.ecosystem-mobile{
    display:block;
    position:relative;
    margin:40px auto 0;
    width:100%;
    max-width:360px;
}

.mobile-core{
    text-align:center;
    margin-bottom:35px;
}

.mobile-core img{
    width:64px;
    margin-bottom:12px;
    filter:drop-shadow(0 0 20px rgba(37,99,235,.35));
}

.mobile-core h3{
    font-size:1.5rem;
    margin-bottom:4px;
}

.mobile-core p{
    color:#94A3B8;
    font-size:.85rem;
}

.mobile-grid{
    position:relative;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    justify-items:center;
    row-gap:28px;
    column-gap:10px;
    padding:10px 0 20px;
}

.mobile-network{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    pointer-events:none;
    z-index:1;
}

.mobile-network line{
    stroke:rgba(96,165,250,.18);
    stroke-width:1.4;
}

.mobile-node{
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
}

.mobile-icon{
    width:52px;
    height:52px;
    border-radius:16px;
    background:linear-gradient(135deg,#2563EB,#06B6D4);
    box-shadow:0 8px 22px rgba(37,99,235,.25);
    transition:.35s;
}

.mobile-node small{
    margin-top:8px;
    color:#fff;
    font-size:.68rem;
    font-weight:600;
    text-align:center;
    line-height:1.2;
}

.mobile-node:active .mobile-icon{
    transform:scale(1.12);
    box-shadow:0 0 30px rgba(37,99,235,.45);
}

@keyframes serviceMobile{
    to{
        opacity:1;
        transform:translateY(0);
    }
}

}

/* SMALL MOBILE */
@media(max-width:360px){

.hero-content h1{
    font-size:1.8rem;
}

.hero-content p{
    font-size:.9rem;
}

.stat-number{
    font-size:1.5rem;
}

.service-card{
    padding:14px 8px;
}

}




/*==================================================
 AKHIR PENGATURAN MOBIL
==================================================*/


/*==================================================
HERO LAYOUT FIX
==================================================*/
.hero-container{
    display:grid;
    grid-template-columns:
        minmax(22rem,0.75fr)
        minmax(30rem,1.25fr);
    gap:clamp(2rem,4vw,5rem);
    align-items:center;
}
.hero-content{

    position:relative;

    z-index:10;

    width:100%;

    max-width:42rem;

}

.hero-visual{

    position:relative;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:16px;

	width:100%;

    min-height:clamp(28rem,65vh,48rem);

    overflow:hidden;

    isolation:isolate;
	pointer-events:auto; /*ini untuk menampilkan next prev di image */

}
/*==================================================
DIGITAL GLOW
==================================================*/

.hero-visual::before{

    content:"";

    position:absolute;

    inset:-12%;

    z-index:0;

    pointer-events:none;

    background:
        radial-gradient(
            circle at center,
            rgba(59,130,246,.22) 0%,
            rgba(37,99,235,.14) 35%,
            rgba(37,99,235,.05) 60%,
            transparent 78%
        );

    filter:blur(80px);

    animation:heroGlow 10s ease-in-out infinite;

}
@keyframes heroGlow{

    0%,100%{
        opacity:.6;
        transform:scale(1);
    }

    50%{
        opacity:1;
        transform:scale(1.08);
    }

}

/*==================================================
DIGITAL LIGHT
==================================================*/

.hero-visual::before{

    content:"";

    position:absolute;

    inset:-12%;

    z-index:0;

    pointer-events:none;

    background:

        radial-gradient(
            circle at 50% 50%,
            rgba(56,189,248,.22) 0%,
            rgba(37,99,235,.16) 35%,
            rgba(37,99,235,.06) 58%,
            transparent 78%
        );

    filter:blur(70px);

    animation:heroGlow 8s ease-in-out infinite;

}
@keyframes heroGlow{

    0%,100%{

        opacity:.65;

        transform:scale(1);

    }

    50%{

        opacity:1;

        transform:scale(1.08);

    }

}

/*==================================================
HERO FLOAT ANIMATION
==================================================*/

@keyframes heroFloat{

    0%,100%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-14px);
    }

}

/*==================================================
HERO IMAGE
==================================================*/

.hero-bg{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    object-fit:cover;

    z-index:4;

    filter:

        drop-shadow(0 40px 80px rgba(0,0,0,.45));
		
    -webkit-mask-image:
        radial-gradient(

            ellipse 92% 88% at center,

            #000 42%,

            rgba(0,0,0,.96) 58%,

            rgba(0,0,0,.75) 72%,

            rgba(0,0,0,.35) 88%,

            transparent 100%

        );

    mask-image:
        radial-gradient(

            ellipse 92% 88% at center,

            #000 42%,

            rgba(0,0,0,.96) 58%,

            rgba(0,0,0,.75) 72%,

            rgba(0,0,0,.35) 88%,

            transparent 100%

        );

}
.hero-bg{

    -webkit-mask-image:

    radial-gradient(

        ellipse 88% 82% at center,

        black 48%,

        rgba(0,0,0,.96) 62%,

        rgba(0,0,0,.78) 78%,

        rgba(0,0,0,.25) 92%,

        transparent 100%

    );

    mask-image:

    radial-gradient(

        ellipse 88% 82% at center,

        black 48%,

        rgba(0,0,0,.96) 62%,

        rgba(0,0,0,.78) 78%,

        rgba(0,0,0,.25) 92%,

        transparent 100%

    );

}

.hero-bg.active{

    opacity:.82;

    animation:heroZoom 12s linear forwards;

}

@keyframes heroZoom{

    from{

        transform:scale(1);

    }

    to{

        transform:scale(1.06);

    }

}


/*==================================================
HERO CONTAINER ALIGNMENT
==================================================*/

.hero > .container{
    width:min(92vw,88rem);

    margin-inline:auto;
    padding:0;
}


/*==================================================
HERO SPACING
==================================================*/
.hero{
    padding-top:60px !important;
	min-height:auto !important;
    padding-bottom:0px !important;
}

/*==================================================
PREMIUM HERO BACKGROUND
==================================================*/

.hero{

    position:relative;

    overflow:hidden;

}

/*==================================================
GRID
==================================================*/

.hero::before{

    content:"";

    position:absolute;

    inset:0;

    background-image:

        linear-gradient(
            rgba(255,255,255,.035) 1px,
            transparent 1px
        ),

        linear-gradient(
            90deg,
            rgba(255,255,255,.035) 1px,
            transparent 1px
        );

    background-size:56px 56px;

    opacity:.45;

    pointer-events:none;

    z-index:0;

}

/*==================================================
LIGHT
==================================================*/

.hero-light{

    position:absolute;

    inset:0;

    z-index:0;

    pointer-events:none;

    background:

        radial-gradient(

            ellipse at 50% -10%,

            rgba(227,242,253,.22),

            rgba(227,242,253,.08) 28%,

            transparent 60%

        );

    animation:lightMove 19s ease-in-out infinite alternate;

}

@keyframes lightMove{

    0%{

        transform:translateY(0);

        opacity:.55;

    }

    50%{

        transform:translateY(-1.5vh);

        opacity:.82;

    }

    100%{

        transform:translateY(1vh);

        opacity:.60;

    }

}

/*==================================================
AURORA LEFT
==================================================*/

.hero-aurora-left{

    position:absolute;

    left:-18vw;

    top:-10vh;

    width:clamp(40rem,55vw,70rem);

    aspect-ratio:1;

    border-radius:50%;

    background:

        radial-gradient(

            circle,

            rgba(80,170,255,.30) 0%,

            rgba(80,170,255,.12) 42%,

            transparent 75%

        );

    filter:blur(clamp(5rem,7vw,9rem));

    mix-blend-mode:screen;

    opacity:.75;

    animation:auroraLeft 24s ease-in-out infinite alternate;

    pointer-events:none;

    z-index:0;

}

@keyframes auroraLeft{

    0%{

        transform:translate(0,0) scale(1);

        opacity:.70;

    }

    25%{

        transform:translate(2vw,-1vh) scale(1.04);

        opacity:.82;

    }

    50%{

        transform:translate(5vw,2vh) scale(1.08);

        opacity:.92;

    }

    75%{

        transform:translate(2vw,4vh) scale(1.04);

        opacity:.80;

    }

    100%{

        transform:translate(0,0) scale(1);

        opacity:.70;

    }

}

/*==================================================
AURORA RIGHT
==================================================*/

.hero-aurora-right{

    position:absolute;

    right:-16vw;

    bottom:-8vh;

    width:clamp(42rem,60vw,76rem);

    aspect-ratio:1;

    border-radius:50%;

    background:

        radial-gradient(

            circle,

            rgba(37,99,235,.28) 0%,

            rgba(37,99,235,.14) 40%,

            transparent 74%

        );

    filter:blur(clamp(5rem,8vw,10rem));

    mix-blend-mode:screen;

    opacity:.80;

    animation:auroraRight 31s ease-in-out infinite alternate;

    pointer-events:none;

    z-index:0;

}

@keyframes auroraRight{

    0%{

        transform:translate(0,0) scale(1);

        opacity:.75;

    }

    25%{

        transform:translate(-2vw,2vh) scale(1.03);

    }

    50%{

        transform:translate(-5vw,-2vh) scale(1.08);

        opacity:.95;

    }

    75%{

        transform:translate(-2vw,-4vh) scale(1.04);

    }

    100%{

        transform:translate(0,0) scale(1);

        opacity:.75;

    }

}

/*==================================================
DEPTH
==================================================*/

.hero-depth{

    position:absolute;

    left:50%;

    top:50%;

    transform:translate(-50%,-50%);

    width:clamp(34rem,48vw,56rem);

    aspect-ratio:1;

    border-radius:50%;

    background:

        radial-gradient(

            circle,

            rgba(255,255,255,.08),

            rgba(37,99,235,.12),

            transparent 72%

        );

    filter:blur(90px);

    animation:depthPulse 27s ease-in-out infinite;

    pointer-events:none;

    z-index:0;

}

@keyframes depthPulse{

    0%{

        transform:translate(-50%,-50%) scale(1);

        opacity:.35;

    }

    50%{

        transform:translate(-50%,-50%) scale(1.08);

        opacity:.65;

    }

    100%{

        transform:translate(-50%,-50%) scale(1);

        opacity:.35;

    }

}

