﻿/* ==========================================
   RESET
========================================== */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: Inter, sans-serif;
    background: #050814;
    color: white;
    overflow-x: hidden;
    position: relative;
}

/* ==========================================
   CUSTOM SCROLLBAR
========================================== */

::-webkit-scrollbar {
    width: 10px;
}

::-webkit-scrollbar-track {
    background: #050814;
}

::-webkit-scrollbar-thumb {
    border-radius: 50px;
    background: linear-gradient( 180deg, #00a8ff, #0066ff );
}

/* ==========================================
   NOISE LAYER
========================================== */

.noise {
    position: fixed;
    inset: 0;
    pointer-events: none;
    opacity: .03;
    z-index: 999;
    background-image: radial-gradient( circle, white 1px, transparent 1px );
    background-size: 4px 4px;
}

/* ==========================================
   HERO
========================================== */

.hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 100px 8%;
}

/* ==========================================
   BACKGROUND
========================================== */

.hero-bg {
    position: absolute;
    inset: 0;
    background: radial-gradient( circle at 20% 20%, rgba(0,140,255,.18), transparent 35% ), radial-gradient( circle at 80% 80%, rgba(0,255,200,.12), transparent 35% ), linear-gradient( 180deg, #050814, #091121, #050814 );
}

/* ==========================================
   FLOATING ORBS
========================================== */

.hero-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
}

.orb-1 {
    width: 400px;
    height: 400px;
    background: rgba(0,140,255,.25);
    top: -100px;
    left: -100px;
    animation: floatOne 12s ease-in-out infinite;
}

.orb-2 {
    width: 500px;
    height: 500px;
    background: rgba(0,255,200,.12);
    bottom: -200px;
    right: -100px;
    animation: floatTwo 14s ease-in-out infinite;
}

@keyframes floatOne {

    50% {
        transform: translateY(80px) scale(1.2);
    }
}

@keyframes floatTwo {

    50% {
        transform: translateX(-100px) scale(1.15);
    }
}

/* ==========================================
   HERO CONTENT
========================================== */

.hero-content {
    position: relative;
    z-index: 5;
    max-width: 1200px;
}

.hero-tag {
    display: inline-flex;
    padding: 12px 22px;
    border-radius: 50px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.08);
    backdrop-filter: blur(20px);
    margin-bottom: 40px;
}

.hero h1 {
    font-size: clamp( 70px, 9vw, 180px );
    line-height: .9;
    font-weight: 900;
    letter-spacing: -5px;
    margin-bottom: 40px;
}

    .hero h1 span {
        display: block;
        color: #00a8ff;
        text-shadow: 0 0 40px rgba(0,168,255,.5);
    }

.hero p {
    font-size: 22px;
    max-width: 700px;
    line-height: 1.8;
    color: rgba(255,255,255,.7);
    margin-bottom: 50px;
}

.hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 65px;
    padding: 0 40px;
    border-radius: 60px;
    text-decoration: none;
    color: white;
    font-weight: 700;
    background: linear-gradient( 135deg, #00a8ff, #0066ff );
    box-shadow: 0 20px 50px rgba(0,140,255,.3);
    transition: .5s;
}

    .hero-btn:hover {
        transform: translateY(-6px) scale(1.03);
    }

/* ==========================================
   SECTIONS
========================================== */

section {
    position: relative;
    padding: 140px 8%;
}

/* ==========================================
   SECTION TITLE
========================================== */

.section-title {
    text-align: center;
    margin-bottom: 80px;
}

    .section-title span {
        color: #00a8ff;
        font-weight: 700;
        letter-spacing: 3px;
    }

    .section-title h2 {
        margin-top: 20px;
        font-size: clamp( 40px, 5vw, 90px );
        line-height: 1;
    }

/* ==========================================
   GLASS
========================================== */

.glass-card,
.bento,
.stat-card {
    background: linear-gradient( 135deg, rgba(255,255,255,.08), rgba(255,255,255,.03) );
    backdrop-filter: blur(30px);
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: 0 20px 50px rgba(0,0,0,.25);
    transition: .7s cubic-bezier( .19, 1, .22, 1 );
}

/* ==========================================
   WHO
========================================== */

.who-grid {
    display: grid;
    gap: 25px;
    grid-template-columns: repeat(3,1fr);
}

.large {
    grid-column: span 2;
    min-height: 300px;
}

.glass-card {
    border-radius: 35px;
    padding: 50px;
}

    .glass-card:hover {
        transform: translateY(-12px) rotateX(5deg) rotateY(-5deg);
    }

    .glass-card p {
        font-size: 28px;
        line-height: 1.7;
    }

/* ==========================================
   BENTO GRID
========================================== */

.bento-grid {
    display: grid;
    gap: 25px;
    grid-template-columns: repeat(4,1fr);
    grid-auto-rows: 220px;
}

.bento {
    border-radius: 35px;
    padding: 35px;
    display: flex;
    align-items: flex-end;
}

    .bento h3 {
        font-size: 34px;
    }

    .bento:hover {
        transform: translateY(-15px) rotateX(8deg) rotateY(-6deg);
    }

    .bento.large {
        grid-column: span 2;
    }

    .bento.tall {
        grid-row: span 2;
    }

/* ==========================================
   TIMELINE
========================================== */

.timeline-line {
    position: relative;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-top: 100px;
}

    .timeline-line::before {
        content: "";
        position: absolute;
        top: 30px;
        left: 0;
        width: 100%;
        height: 3px;
        background: rgba(255,255,255,.1);
    }

.timeline-item {
    position: relative;
    z-index: 2;
    text-align: center;
}

    .timeline-item::before {
        content: "";
        width: 20px;
        height: 20px;
        border-radius: 50%;
        display: block;
        margin: auto;
        margin-bottom: 20px;
        background: #00a8ff;
        box-shadow: 0 0 30px #00a8ff;
    }

.year {
    font-size: 48px;
    font-weight: 900;
    margin-bottom: 15px;
}

/* ==========================================
   STATS
========================================== */

.stats {
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(4,1fr);
}

.stat-card {
    border-radius: 35px;
    padding: 50px;
    text-align: center;
}

    .stat-card:hover {
        transform: translateY(-12px);
    }

    .stat-card h2 {
        font-size: 80px;
        color: #00a8ff;
    }

    .stat-card span {
        font-size: 20px;
        opacity: .8;
    }

    /* ==========================================
   SHINE EFFECT
========================================== */

    .glass-card::before,
    .bento::before,
    .stat-card::before {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: inherit;
        background: linear-gradient( 135deg, rgba(255,255,255,.15), transparent 40% );
        pointer-events: none;
    }

/* ==========================================
   RESPONSIVE
========================================== */

@media(max-width:992px) {

    .stats {
        grid-template-columns: repeat(2,1fr);
    }

    .bento-grid {
        grid-template-columns: repeat(2,1fr);
    }

    .who-grid {
        grid-template-columns: 1fr;
    }

    .large {
        grid-column: auto;
    }
}

@media(max-width:768px) {

    .hero {
        padding-top: 160px;
    }

        .hero h1 {
            font-size: 18vw;
            letter-spacing: -2px;
        }

        .hero p {
            font-size: 16px;
        }

    .section-title h2 {
        font-size: 12vw;
    }

    .stats {
        grid-template-columns: 1fr;
    }

    .bento-grid {
        grid-template-columns: 1fr;
    }

    .timeline-line {
        flex-direction: column;
    }

        .timeline-line::before {
            display: none;
        }

    .year {
        font-size: 38px;
    }

    .glass-card p {
        font-size: 20px;
    }
}
/* REVEAL */

.reveal-base {
    opacity: 0;
    transform: translateY(80px);
    transition: 1s cubic-bezier(.19,1,.22,1);
}

.revealed {
    opacity: 1;
    transform: translateY(0);
}

/* TIMELINE */

.timeline-active::before {
    background: #00a8ff;
    box-shadow: 0 0 40px #00a8ff, 0 0 80px #00a8ff;
}

/* TITLE */

.section-title h2 {
    opacity: 0;
    transform: translateY(40px);
    transition: .9s ease;
}

.title-visible {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

/* CURSOR GLOW */

.cursor-glow {
    position: fixed;
    width: 300px;
    height: 300px;
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
    background: radial-gradient( circle, rgba(0,140,255,.12), transparent 70% );
    transform: translate(-50%,-50%);
    filter: blur(50px);
}
/* ==========================================
   MOBILE RESPONSIVE
========================================== */

@media screen and (max-width:768px) {

    body {
        overflow-x: hidden;
    }

    section {
        padding: 90px 20px;
    }

    /* HERO */

    .hero {
        min-height: 100vh;
        padding: 140px 20px 80px;
        text-align: center;
    }

    .hero-content {
        width: 100%;
    }

    .hero-tag {
        font-size: 12px;
        padding: 10px 18px;
        margin-bottom: 25px;
    }

    .hero h1 {
        font-size: 16vw;
        line-height: .95;
        letter-spacing: -1px;
        margin-bottom: 25px;
    }

    .hero p {
        font-size: 15px;
        line-height: 1.9;
        max-width: 100%;
        margin-bottom: 35px;
    }

    .hero-btn {
        width: 100%;
        max-width: 280px;
        height: 55px;
        margin: auto;
    }

    /* ORBS */

    .orb-1 {
        width: 180px;
        height: 180px;
        filter: blur(50px);
        top: -40px;
        left: -40px;
    }

    .orb-2 {
        width: 220px;
        height: 220px;
        filter: blur(60px);
        right: -60px;
        bottom: -60px;
    }

    /* TITLES */

    .section-title {
        margin-bottom: 50px;
    }

        .section-title span {
            font-size: 12px;
            letter-spacing: 2px;
        }

        .section-title h2 {
            font-size: 12vw;
            line-height: 1.05;
        }

    /* WHO */

    .who-grid {
        grid-template-columns: 1fr;
    }

    .glass-card {
        padding: 28px;
        border-radius: 24px;
    }

        .glass-card p {
            font-size: 17px;
            line-height: 1.8;
        }

    .large {
        min-height: auto;
    }

    /* BENTO */

    .bento-grid {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
    }

    .bento {
        min-height: 180px;
        padding: 25px;
        border-radius: 24px;
    }

        .bento.large {
            grid-column: auto;
        }

        .bento.tall {
            grid-row: auto;
        }

        .bento h3 {
            font-size: 26px;
        }

    /* TIMELINE */

    .timeline-line {
        flex-direction: column;
        gap: 40px;
        margin-top: 40px;
    }

        .timeline-line::before {
            display: none;
        }

    .timeline-item {
        padding: 25px;
        border-radius: 24px;
        background: rgba(255,255,255,.03);
        border: 1px solid rgba(255,255,255,.05);
    }

    .year {
        font-size: 34px;
    }

    /* STATS */

    .stats {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .stat-card {
        padding: 35px 20px;
        border-radius: 24px;
    }

        .stat-card h2 {
            font-size: 56px;
        }

        .stat-card span {
            font-size: 16px;
        }

    /* PERFORMANCE */

    .glass-card,
    .bento,
    .stat-card {
        backdrop-filter: blur(15px);
    }

    .cursor-glow {
        display: none;
    }
}
@media screen and (max-width:480px) {

    .hero h1 {
        font-size: 18vw;
    }

    .hero p {
        font-size: 14px;
    }

    .section-title h2 {
        font-size: 13vw;
    }

    .bento h3 {
        font-size: 22px;
    }

    .glass-card p {
        font-size: 15px;
    }

    .year {
        font-size: 30px;
    }

    .stat-card h2 {
        font-size: 48px;
    }
}
.glass-card,
.bento,
.stat-card {
    position: relative;
    overflow: hidden;
}