:root{
    --bg:#f6f8fc;
    --card:#ffffff;
    --text:#020617;
    --primary:#2563eb;
    --secondary:#38bdf8;
    --muted:#64748b;
    --radius-xl:32px;
    --radius-lg:24px;
    --shadow-soft:0 12px 30px rgba(0,0,0,.06);
    --shadow-strong:0 35px 80px rgba(0,0,0,.12);
}

body.dark{
    --bg:#020617;
    --card:#020617;
    --text:#e5e7eb;
}

body{
    background:
        radial-gradient(circle at 20% 10%, rgba(56,189,248,.08), transparent 40%),
        radial-gradient(circle at 80% 20%, rgba(37,99,235,.08), transparent 45%),
        var(--bg);
    color:var(--text);
    font-family:'Inter',system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
    transition:background .4s,color .3s;
    overflow-x:hidden;
    line-height:1.65;
}

h1,h2,h3,h4,h5{
    font-family:'Space Grotesk',system-ui,sans-serif;
    letter-spacing:-0.02em;
}

/* PROGRESS BAR */
#progress{
    position:fixed;
    top:0;left:0;
    height:4px;
    background:linear-gradient(90deg,var(--primary),var(--secondary));
    z-index:9999;
}

/* CURSOR */
.cursor{
    width:18px;
    height:18px;
    border:2px solid var(--primary);
    border-radius:50%;
    position:fixed;
    pointer-events:none;
    z-index:9999;
    transition:transform .08s ease-out, opacity .3s;
    mix-blend-mode:difference;
}

/* NAVBAR */
.navbar{
    backdrop-filter: blur(18px);
    background: rgba(255,255,255,.72);
    box-shadow:var(--shadow-soft);
    transition:all .4s ease;
}

body.dark .navbar{
    background: rgba(2,6,23,.9);
}

.navbar-brand{
    font-weight:700;
    letter-spacing:.5px;
}

.nav-link{
    position:relative;
    font-weight:500;
    color:var(--text);
    transition:color .3s;
}

.nav-link:hover{
    color:var(--primary);
}

.nav-link::after{
    content:'';
    position:absolute;
    left:0;
    bottom:-6px;
    width:0;
    height:2px;
    background:linear-gradient(90deg,var(--primary),var(--secondary));
    transition:.35s;
    border-radius:10px;
}

.nav-link:hover::after,
.nav-link.active::after{
    width:100%;
}

/* HERO */
.hero{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    background:
        radial-gradient(circle at top, rgba(37,99,235,.12), transparent 60%),
        linear-gradient(135deg,#dbe9ff,#f4f7ff);
}

body.dark .hero{
    background:
        radial-gradient(circle at top, rgba(56,189,248,.12), transparent 60%),
        #020617;
}

.hero h1{
    font-size:clamp(3rem,6vw,4.5rem);
    color:var(--primary);
    font-weight:700;
}

.hero p{
    font-size:1.4rem;
    color:var(--muted);
    max-width:700px;
    margin-inline:auto;
}

.typing{
    border-right:3px solid var(--primary);
    white-space:nowrap;
    overflow:hidden;
}

/* SECTIONS */
.section-title{
    font-size:clamp(2.2rem,4vw,2.8rem);
    text-align:center;
    margin-bottom:70px;
}

/* CARDS */
.card-custom,
.project-card{
    background:
        linear-gradient(180deg, rgba(255,255,255,.75), rgba(255,255,255,1));
    border-radius:var(--radius-xl);
    padding:45px;
    box-shadow:var(--shadow-strong);
    transition:transform .45s ease, box-shadow .45s ease;
    position:relative;
    overflow:hidden;
}

body.dark .card-custom,
body.dark .project-card{
    background:
        linear-gradient(180deg, rgba(2,6,23,.7), rgba(2,6,23,1));
}

.card-custom::before,
.project-card::before{
    content:'';
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at var(--x) var(--y),
        rgba(56,189,248,.18), transparent 40%);
    opacity:0;
    transition:.35s;
}

.card-custom:hover::before,
.project-card:hover::before{
    opacity:1;
}

.card-custom:hover,
.project-card:hover{
    transform:translateY(-16px) scale(1.03);
    box-shadow:0 45px 100px rgba(0,0,0,.18);
}

/* REVEAL */
.reveal{
    opacity:0;
    transform:translateY(60px);
    transition:1.1s cubic-bezier(.19,1,.22,1);
}

.reveal.active{
    opacity:1;
    transform:none;
}

/* COUNTERS */
.counter{
    font-size:3.2rem;
    font-weight:700;
    color:var(--primary);
}

/* TECH STACK */
.tech-stack{
    display:flex;
    flex-wrap:wrap;
    gap:15px;
    justify-content:center;
}

.tech{
    padding:12px 24px;
    border-radius:999px;
    background:linear-gradient(135deg,var(--primary),var(--secondary));
    color:#fff;
    font-weight:500;
    box-shadow:0 12px 30px rgba(37,99,235,.35);
    transition:transform .3s;
}

.tech:hover{
    transform:translateY(-6px);
}

/* AI BOX */
.ai-box{
    background:
        radial-gradient(circle at top, rgba(56,189,248,.18), transparent 55%),
        #020617;
    color:#e5e7eb;
    border-radius:var(--radius-xl);
    padding:80px 35px;
    text-align:center;
    box-shadow:0 40px 90px rgba(0,0,0,.45);
}

/* CONTACT */
.contact{
    background:
        linear-gradient(135deg,#dbe9ff,#f4f7ff);
    border-radius:var(--radius-xl);
    padding:90px 25px;
}

body.dark .contact{
    background:
        radial-gradient(circle at top, rgba(56,189,248,.15), transparent 55%),
        #020617;
}

/* FOOTER */
footer{
    padding:40px 20px;
    text-align:center;
    color:var(--muted);
    font-size:.95rem;
}
