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

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

html {
    scroll-behavior: smooth;
}

body {
    font-family:
        Arial,
        Helvetica,
        sans-serif;

    background: #f6f8fc;

    color: #111827;

    line-height: 1.6;

    overflow-x: hidden;
}


/* =====================================================
   INTRO
===================================================== */

.intro {

    position: fixed;

    inset: 0;

    z-index: 9999;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    background:
        radial-gradient(
            circle at center,
            #111c3d 0%,
            #070b19 45%,
            #03050c 100%
        );

    color: white;

    animation:
        introExit 1s ease forwards;

    animation-delay: 6s;
}


.intro-glow {

    position: absolute;

    width: 300px;

    height: 300px;

    border-radius: 50%;

    background: #2563eb;

    filter: blur(100px);

    opacity: 0.2;

    animation:
        glowPulse 2s ease-in-out infinite;

}


@keyframes glowPulse {

    0%,
    100% {
        transform: scale(0.8);
        opacity: 0.15;
    }

    50% {
        transform: scale(1.2);
        opacity: 0.3;
    }
}


/* =====================================================
   INTRO LOGO
===================================================== */

.intro-logo {

    position: relative;

    z-index: 2;

    width: 155px;

    height: 155px;

    border-radius: 50%;

    padding: 5px;

    background:
        linear-gradient(
            135deg,
            #60a5fa,
            #2563eb,
            #7c3aed
        );

    box-shadow:
        0 0 20px rgba(59,130,246,0.5),
        0 0 60px rgba(37,99,235,0.35);

    animation:
        logoIntro 1.5s
        cubic-bezier(.17,.67,.25,1.2)
        forwards;
}


.intro-logo img {

    width: 100%;

    height: 100%;

    display: block;

    object-fit: cover;

    border-radius: 50%;

    border: 4px solid #050816;
}


@keyframes logoIntro {

    0% {

        opacity: 0;

        transform:
            scale(0.15)
            rotate(-720deg);

    }

    70% {

        opacity: 1;

        transform:
            scale(1.08)
            rotate(25deg);

    }

    100% {

        opacity: 1;

        transform:
            scale(1)
            rotate(0);
    }
}


/* =====================================================
   INTRO NAME
===================================================== */

.intro-name {

    position: relative;

    z-index: 2;

    margin-top: 30px;

    color: white;

    font-size:
        clamp(2rem, 8vw, 4.5rem);

    font-weight: 800;

    letter-spacing: 2px;

    text-align: center;

    white-space: nowrap;

    animation:
        nameGlow 1.2s ease
        3.4s forwards;
}


.intro-name span {

    display: inline-block;

    opacity: 0;

    animation:
        letterAssemble
        0.8s
        cubic-bezier(.17,.67,.25,1.2)
        forwards;
}


.intro-name .space {

    animation: none;

    opacity: 1;
}


/* Letter directions */

.intro-name span:nth-child(1) {
    --x: -180px;
    --y: -120px;
    animation-delay: 1.1s;
}

.intro-name span:nth-child(2) {
    --x: 150px;
    --y: -150px;
    animation-delay: 1.2s;
}

.intro-name span:nth-child(3) {
    --x: -160px;
    --y: 130px;
    animation-delay: 1.3s;
}

.intro-name span:nth-child(4) {
    --x: 180px;
    --y: 100px;
    animation-delay: 1.4s;
}

.intro-name span:nth-child(5) {
    --x: -220px;
    --y: 20px;
    animation-delay: 1.5s;
}

.intro-name span:nth-child(6) {
    --x: 220px;
    --y: -20px;
    animation-delay: 1.6s;
}

.intro-name span:nth-child(8) {
    --x: 160px;
    --y: 150px;
    animation-delay: 1.7s;
}

.intro-name span:nth-child(9) {
    --x: -180px;
    --y: -150px;
    animation-delay: 1.8s;
}

.intro-name span:nth-child(10) {
    --x: 200px;
    --y: -100px;
    animation-delay: 1.9s;
}

.intro-name span:nth-child(11) {
    --x: -200px;
    --y: 100px;
    animation-delay: 2s;
}

.intro-name span:nth-child(12) {
    --x: 120px;
    --y: 180px;
    animation-delay: 2.1s;
}

.intro-name span:nth-child(13) {
    --x: -130px;
    --y: -180px;
    animation-delay: 2.2s;
}

.intro-name span:nth-child(14) {
    --x: 230px;
    --y: 40px;
    animation-delay: 2.3s;
}


@keyframes letterAssemble {

    0% {

        opacity: 0;

        transform:
            translate(var(--x), var(--y))
            rotate(180deg)
            scale(0.2);
    }

    70% {

        opacity: 1;

        transform:
            translate(0, 0)
            rotate(-8deg)
            scale(1.08);
    }

    100% {

        opacity: 1;

        transform:
            translate(0, 0)
            rotate(0)
            scale(1);
    }
}


@keyframes nameGlow {

    0% {
        text-shadow: none;
    }

    35% {

        text-shadow:
            0 0 10px #60a5fa,
            0 0 25px #3b82f6,
            0 0 50px #2563eb,
            0 0 90px #2563eb;
    }

    65% {

        text-shadow:
            0 0 15px #93c5fd,
            0 0 35px #3b82f6,
            0 0 70px #2563eb;
    }

    100% {

        text-shadow:
            0 0 5px rgba(96,165,250,0.5);
    }
}


/* =====================================================
   INTRO TAGLINE
===================================================== */

.intro-tagline {

    position: relative;

    z-index: 2;

    margin-top: 12px;

    color: #94a3b8;

    font-size: 0.9rem;

    letter-spacing: 3px;

    opacity: 0;

    animation:
        taglineAppear
        1s ease
        3s forwards;
}


@keyframes taglineAppear {

    from {

        opacity: 0;

        transform:
            translateY(15px);
    }

    to {

        opacity: 1;

        transform:
            translateY(0);
    }
}


/* =====================================================
   INTRO EXIT
===================================================== */

@keyframes introExit {

    0% {

        opacity: 1;

        visibility: visible;

        transform: scale(1);
    }

    100% {

        opacity: 0;

        visibility: hidden;

        transform: scale(1.08);
    }
}


/* =====================================================
   WEBSITE REVEAL
===================================================== */

.website {

    opacity: 0;

    animation:
        websiteReveal
        1.2s ease
        5.8s forwards;
}


@keyframes websiteReveal {

    from {

        opacity: 0;

        transform:
            translateY(35px);
    }

    to {

        opacity: 1;

        transform:
            translateY(0);
    }
}


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

.site-header {

    position: sticky;

    top: 0;

    z-index: 1000;

    background:
        rgba(255,255,255,0.85);

    backdrop-filter:
        blur(15px);

    border-bottom:
        1px solid #e5e7eb;
}


.header-content {

    max-width: 1200px;

    margin: auto;

    padding:
        18px 24px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 25px;
}


.brand {

    color: #111827;

    font-size: 1.2rem;

    font-weight: 800;

    text-decoration: none;

    white-space: nowrap;
}


.brand span {

    color: #2563eb;
}


.navigation {

    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    gap: 5px;
}


.navigation a {

    color: #4b5563;

    text-decoration: none;

    padding:
        8px 10px;

    border-radius: 8px;

    font-size: 0.9rem;

    transition:
        0.25s ease;
}


.navigation a:hover,
.navigation a.active {

    color: #2563eb;

    background: #eff6ff;

    transform:
        translateY(-2px);
}


/* =====================================================
   MAIN
===================================================== */

main {

    max-width: 1150px;

    margin: auto;

    padding:
        0 24px;
}


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

.hero {

    min-height:
        calc(100vh - 80px);

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 70px;

    padding:
        80px 0;
}


.hero-content {

    max-width: 650px;
}


.hero-label,
.section-label {

    color: #2563eb;

    font-size: 0.78rem;

    font-weight: 800;

    letter-spacing: 3px;

    margin-bottom: 15px;
}


.hero-title {

    font-size:
        clamp(2.8rem, 7vw, 5.5rem);

    line-height: 1.05;

    letter-spacing: -3px;

    color: #111827;

    animation:
        heroTitle 1s ease
        6.3s both;
}


.hero-title span {

    color: #2563eb;
}


.hero-description {

    max-width: 550px;

    margin-top: 25px;

    color: #64748b;

    font-size: 1.1rem;

    animation:
        heroText 1s ease
        6.5s both;
}


@keyframes heroTitle {

    from {

        opacity: 0;

        transform:
            translateY(40px);
    }

    to {

        opacity: 1;

        transform:
            translateY(0);
    }
}


@keyframes heroText {

    from {

        opacity: 0;

        transform:
            translateY(25px);
    }

    to {

        opacity: 1;

        transform:
            translateY(0);
    }
}


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

.hero-buttons {

    display: flex;

    flex-wrap: wrap;

    gap: 12px;

    margin-top: 30px;

    animation:
        heroButtons 1s ease
        6.7s both;
}


@keyframes heroButtons {

    from {

        opacity: 0;

        transform:
            translateY(20px);
    }

    to {

        opacity: 1;

        transform:
            translateY(0);
    }
}


.button {

    display: inline-flex;

    align-items: center;

    gap: 10px;

    padding:
        12px 20px;

    border-radius: 10px;

    text-decoration: none;

    font-weight: 700;

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        background 0.25s ease;
}


.primary-button {

    color: white;

    background: #2563eb;

    box-shadow:
        0 8px 25px
        rgba(37,99,235,0.25);
}


.primary-button:hover {

    background: #1d4ed8;

    transform:
        translateY(-4px);

    box-shadow:
        0 14px 30px
        rgba(37,99,235,0.35);
}


.secondary-button {

    color: #1f2937;

    background: white;

    border:
        1px solid #dbe1ea;
}


.secondary-button:hover {

    transform:
        translateY(-4px);

    border-color:
        #93c5fd;

    box-shadow:
        0 10px 25px
        rgba(15,23,42,0.08);
}


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

.hero-image-wrapper {

    position: relative;

    width: 320px;

    height: 320px;

    flex-shrink: 0;

    animation:
        floatingImage 4s ease-in-out
        infinite;
}


.hero-image {

    position: relative;

    z-index: 2;

    width: 100%;

    height: 100%;

    object-fit: cover;

    border-radius: 50%;

    border:
        6px solid white;

    box-shadow:
        0 20px 60px
        rgba(15,23,42,0.18);
}


.hero-ring {

    position: absolute;

    inset: -18px;

    border:
        2px solid #93c5fd;

    border-radius: 50%;

    animation:
        ringRotate 10s linear infinite;
}


.hero-ring::after {

    content: "";

    position: absolute;

    width: 14px;

    height: 14px;

    border-radius: 50%;

    background: #2563eb;

    top: 20px;

    left: 50%;

    box-shadow:
        0 0 20px #2563eb;
}


@keyframes floatingImage {

    0%,
    100% {

        transform:
            translateY(0);
    }

    50% {

        transform:
            translateY(-12px);
    }
}


@keyframes ringRotate {

    from {

        transform:
            rotate(0);
    }

    to {

        transform:
            rotate(360deg);
    }
}


/* =====================================================
   CONTENT SECTIONS
===================================================== */

.content-section {

    display: grid;

    grid-template-columns:
        100px 1fr;

    gap: 35px;

    padding:
        80px 0;

    border-top:
        1px solid #e5e7eb;
}


.section-number {

    font-size: 0.85rem;

    color: #2563eb;

    font-weight: 800;
}


.section-content {

    max-width: 700px;
}


.section-content h2,
.projects-heading h2,
.experience-section h2 {

    font-size:
        clamp(2rem, 5vw, 3.5rem);

    line-height: 1.1;

    letter-spacing: -1.5px;

    margin-bottom: 20px;
}


.section-content p,
.experience-section p {

    color: #64748b;

    max-width: 650px;
}


.text-link {

    display: inline-block;

    margin-top: 20px;

    color: #2563eb;

    text-decoration: none;

    font-weight: 700;

    transition:
        0.25s ease;
}


.text-link:hover {

    transform:
        translateX(6px);
}


/* =====================================================
   PROJECTS
===================================================== */

.projects-section {

    padding:
        80px 0;
}


.projects-heading {

    display: flex;

    justify-content: space-between;

    align-items: end;

    gap: 30px;

    margin-bottom: 35px;
}


.project-grid {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 20px;
}


.project-card {

    position: relative;

    background: white;

    border:
        1px solid #e5e7eb;

    border-radius: 16px;

    padding: 30px;

    min-height: 280px;

    display: flex;

    flex-direction: column;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        border-color 0.3s ease;
}


.project-card:hover {

    transform:
        translateY(-8px);

    border-color:
        #93c5fd;

    box-shadow:
        0 20px 45px
        rgba(15,23,42,0.1);
}


.project-number {

    color: #2563eb;

    font-weight: 800;

    font-size: 0.8rem;

    margin-bottom: 40px;
}


.project-card h3 {

    font-size: 1.4rem;

    margin-bottom: 10px;
}


.project-card p {

    color: #64748b;

    font-size: 0.95rem;
}


.project-card a {

    margin-top: auto;

    padding-top: 25px;

    color: #2563eb;

    text-decoration: none;

    font-weight: 700;
}


/* =====================================================
   EXPERIENCE
===================================================== */

.experience-section {

    margin:
        60px 0;

    padding:
        70px 40px;

    border-radius: 25px;

    background:
        linear-gradient(
            135deg,
            #111827,
            #172554
        );

    color: white;

    text-align: center;
}


.experience-section h2 {

    color: white;

    max-width: 750px;

    margin:
        0 auto 20px;
}


.experience-section p {

    color: #cbd5e1;

    margin:
        0 auto 25px;
}


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

footer {

    background: #0b1120;

    color: white;

    padding:
        60px 24px 25px;
}


.footer-content {

    max-width: 1150px;

    margin: auto;

    display: flex;

    justify-content: space-between;

    gap: 30px;
}


.footer-content h3 {

    font-size: 1.3rem;
}


.footer-content p {

    color: #94a3b8;

    margin-top: 5px;
}


.footer-links {

    display: flex;

    flex-wrap: wrap;

    gap: 15px;

    align-items: center;
}


.footer-links a {

    color: #cbd5e1;

    text-decoration: none;

    transition:
        0.25s ease;
}


.footer-links a:hover {

    color: #60a5fa;
}


.copyright {

    max-width: 1150px;

    margin:
        40px auto 0;

    padding-top:
        20px;

    border-top:
        1px solid #1e293b;

    color: #64748b;

    font-size: 0.85rem;
}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 800px) {

    .header-content {

        flex-direction: column;

        gap: 10px;
    }


    .navigation {

        gap: 2px;
    }


    .navigation a {

        font-size:
            0.78rem;

        padding:
            6px 7px;
    }


    .hero {

        min-height:
            auto;

        flex-direction: column-reverse;

        text-align: center;

        padding:
            70px 0;
    }


    .hero-image-wrapper {

        width: 220px;

        height: 220px;
    }


    .hero-description {

        margin-left: auto;

        margin-right: auto;
    }


    .hero-buttons {

        justify-content:
            center;
    }


    .content-section {

        grid-template-columns:
            1fr;

        gap: 10px;

        padding:
            60px 0;
    }


    .project-grid {

        grid-template-columns:
            1fr;
    }


    .projects-heading {

        align-items:
            flex-start;

        flex-direction:
            column;
    }


    .footer-content {

        flex-direction:
            column;
    }

}


@media (max-width: 500px) {

    .intro-logo {

        width: 120px;

        height: 120px;
    }


    .intro-name {

        font-size:
            1.9rem;

        letter-spacing:
            0;
    }


    .intro-tagline {

        font-size:
            0.7rem;

        letter-spacing:
            2px;
    }


    main {

        padding:
            0 18px;
    }


    .hero-title {

        letter-spacing:
            -1.5px;
    }


    .hero-buttons {

        flex-direction:
            column;
    }


    .button {

        justify-content:
            center;
    }


    .experience-section {

        padding:
            50px 20px;
    }

}


/* =====================================================
   REDUCED MOTION
===================================================== */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {

        animation-duration:
            0.01ms !important;

        animation-iteration-count:
            1 !important;

        scroll-behavior:
            auto !important;
    }

}
/* =====================================================
   PROFILE PAGE
===================================================== */

.profile-page {
    max-width: 1150px;
}


/* Profile Hero */

.profile-hero {

    min-height: 75vh;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 80px;

    padding: 80px 0;

}


/* Profile Photo */

.profile-photo-box {

    position: relative;

    width: 280px;

    height: 280px;

    flex-shrink: 0;

    animation:
        profileFloat
        4s ease-in-out
        infinite;

}


.profile-photo-box img {

    position: relative;

    z-index: 2;

    width: 100%;

    height: 100%;

    object-fit: cover;

    border-radius: 50%;

    border: 6px solid white;

    box-shadow:
        0 20px 60px
        rgba(15,23,42,0.18);

}


.profile-ring {

    position: absolute;

    inset: -15px;

    border-radius: 50%;

    border:
        2px solid #93c5fd;

    animation:
        profileRing
        8s linear
        infinite;
}


.profile-ring::before {

    content: "";

    position: absolute;

    width: 12px;

    height: 12px;

    border-radius: 50%;

    background: #2563eb;

    top: 15px;

    left: 50%;

    box-shadow:
        0 0 20px #2563eb;
}


@keyframes profileFloat {

    0%,
    100% {
        transform:
            translateY(0);
    }

    50% {
        transform:
            translateY(-12px);
    }

}


@keyframes profileRing {

    from {
        transform:
            rotate(0deg);
    }

    to {
        transform:
            rotate(360deg);
    }

}


/* Profile Intro */

.profile-intro {

    max-width: 600px;

    animation:
        profileText
        1s ease
        both;

}


.profile-intro h1 {

    font-size:
        clamp(2.5rem, 7vw, 5rem);

    line-height: 1;

    letter-spacing:
        -3px;

    margin-bottom: 15px;

}


.profile-role {

    color: #2563eb;

    font-weight: 700;

    font-size: 1.1rem;

    margin-bottom: 20px;

}


.profile-intro > p:last-child {

    color: #64748b;

    font-size: 1.05rem;

}


@keyframes profileText {

    from {

        opacity: 0;

        transform:
            translateX(40px);

    }

    to {

        opacity: 1;

        transform:
            translateX(0);

    }

}


/* Profile Cards */

.profile-card {

    display: grid;

    grid-template-columns:
        100px 1fr;

    gap: 35px;

    padding:
        70px 0;

    background: transparent;

    border-top:
        1px solid #e5e7eb;

    border-radius: 0;

    box-shadow: none;

}


.profile-card-number {

    color: #2563eb;

    font-weight: 800;

    font-size: 0.85rem;

}


.profile-card h2 {

    font-size:
        clamp(2rem, 5vw, 3.2rem);

    line-height: 1.1;

    margin-bottom: 20px;

    letter-spacing: -1.5px;

}


.profile-card p:not(.section-label) {

    max-width: 700px;

    color: #64748b;

}


/* Profile Links */

.profile-links {

    max-width: 700px;

    margin-top: 25px;

}


.profile-link {

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding:
        18px 5px;

    border-bottom:
        1px solid #e5e7eb;

    color: #111827;

    text-decoration: none;

    font-weight: 700;

    transition:
        0.25s ease;

}


.profile-link:hover {

    color: #2563eb;

    padding-left: 12px;

    padding-right: 12px;

    background: #eff6ff;

}


/* Interests */

.interest-list {

    display: flex;

    flex-wrap: wrap;

    gap: 12px;

    margin-top: 25px;

}


.interest-list span {

    padding:
        10px 15px;

    background: white;

    border:
        1px solid #e5e7eb;

    border-radius: 999px;

    color: #475569;

    transition:
        0.25s ease;

}


.interest-list span:hover {

    transform:
        translateY(-4px);

    border-color:
        #93c5fd;

    color: #2563eb;

    box-shadow:
        0 8px 20px
        rgba(37,99,235,0.1);

}


/* Profile CTA */

.profile-cta {

    margin:
        60px 0 90px;

    padding:
        70px 30px;

    text-align: center;

    border-radius: 25px;

    background:
        linear-gradient(
            135deg,
            #111827,
            #172554
        );

    color: white;

}


.profile-cta h2 {

    max-width: 700px;

    margin:
        0 auto 30px;

    color: white;

    font-size:
        clamp(2rem, 5vw, 3.5rem);

}


/* Profile Mobile */

@media (max-width: 800px) {

    .profile-hero {

        min-height: auto;

        flex-direction:
            column;

        text-align: center;

        gap: 50px;

        padding:
            70px 0;

    }


    .profile-photo-box {

        width: 220px;

        height: 220px;

    }


    .profile-card {

        grid-template-columns:
            1fr;

        gap: 12px;

        padding:
            55px 0;

    }


    .profile-intro h1 {

        letter-spacing:
            -1.5px;

    }

}
/* =====================================================
   SUMMARY PAGE
===================================================== */

.summary-page {
    max-width: 1150px;
}


/* Summary Hero */

.summary-hero {

    min-height: 70vh;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 50px;

    padding: 90px 0;

    background: transparent;

    border-radius: 0;

    box-shadow: none;
}


.summary-hero-content {

    max-width: 750px;

    animation:
        summaryHeroIn
        1s ease
        both;
}


.summary-hero h1 {

    font-size:
        clamp(3rem, 8vw, 6rem);

    line-height: 1;

    letter-spacing: -4px;

    margin-bottom: 25px;
}


.summary-hero h1 span {

    display: block;

    color: #2563eb;
}


.summary-hero-content > p:last-child {

    max-width: 650px;

    color: #64748b;

    font-size: 1.1rem;
}


@keyframes summaryHeroIn {

    from {

        opacity: 0;

        transform:
            translateY(40px);
    }

    to {

        opacity: 1;

        transform:
            translateY(0);
    }

}


/* DK Symbol */

.summary-symbol {

    width: 210px;

    height: 210px;

    flex-shrink: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    color: white;

    font-size: 4rem;

    font-weight: 900;

    background:
        linear-gradient(
            135deg,
            #2563eb,
            #172554
        );

    box-shadow:
        0 25px 60px
        rgba(37,99,235,0.25);

    animation:
        summarySymbol
        4s ease-in-out
        infinite;
}


@keyframes summarySymbol {

    0%,
    100% {

        transform:
            translateY(0)
            rotate(0deg);
    }

    50% {

        transform:
            translateY(-12px)
            rotate(3deg);
    }

}


/* Summary Blocks */

.summary-block {

    display: grid;

    grid-template-columns:
        100px 1fr;

    gap: 35px;

    padding:
        80px 0;

    border-top:
        1px solid #e5e7eb;

    background: transparent;

    border-radius: 0;

    box-shadow: none;
}


.summary-number {

    color: #2563eb;

    font-size: 0.85rem;

    font-weight: 800;
}


.summary-content {

    max-width: 750px;
}


.summary-content h2 {

    font-size:
        clamp(2rem, 5vw, 3.5rem);

    line-height: 1.1;

    letter-spacing: -1.5px;

    margin-bottom: 25px;
}


.summary-content > p:not(.section-label) {

    color: #64748b;

    margin-bottom: 18px;
}


/* Tags */

.summary-tags {

    display: flex;

    flex-wrap: wrap;

    gap: 12px;

    margin-top: 25px;
}


.summary-tags span {

    padding:
        11px 16px;

    background: white;

    border:
        1px solid #e5e7eb;

    border-radius: 999px;

    color: #475569;

    transition:
        0.25s ease;
}


.summary-tags span:hover {

    color: #2563eb;

    border-color:
        #93c5fd;

    transform:
        translateY(-4px);

    box-shadow:
        0 10px 25px
        rgba(37,99,235,0.1);
}


/* Quote */

.summary-content blockquote {

    margin:
        30px 0;

    padding:
        25px 30px;

    border-left:
        4px solid #2563eb;

    background: white;

    border-radius:
        0 12px 12px 0;

    color: #1e293b;

    font-size: 1.15rem;

    font-weight: 700;

    box-shadow:
        0 10px 30px
        rgba(15,23,42,0.05);
}


/* CTA */

.summary-cta {

    margin:
        60px 0 90px;

    padding:
        75px 30px;

    text-align: center;

    border-radius: 25px;

    background:
        linear-gradient(
            135deg,
            #111827,
            #172554
        );

    color: white;
}


.summary-cta h2 {

    max-width: 700px;

    margin:
        0 auto 30px;

    color: white;

    font-size:
        clamp(2rem, 5vw, 3.5rem);

    line-height: 1.1;
}


/* Mobile */

@media (max-width: 800px) {

    .summary-hero {

        min-height: auto;

        flex-direction:
            column;

        align-items:
            flex-start;

        padding:
            70px 0;
    }


    .summary-symbol {

        width: 150px;

        height: 150px;

        font-size: 2.8rem;

        align-self:
            center;
    }


    .summary-hero h1 {

        letter-spacing:
            -2px;
    }


    .summary-block {

        grid-template-columns:
            1fr;

        gap: 12px;

        padding:
            60px 0;
    }

}
/* =====================================================
   EDUCATION PAGE
===================================================== */

.education-page {
    max-width: 1150px;
}


/* HERO */

.education-hero {

    min-height: 65vh;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 50px;

    padding: 90px 0;

    background: transparent;

    border-radius: 0;

    box-shadow: none;
}


.education-hero > div:first-child {

    max-width: 750px;

    animation:
        educationHeroIn
        1s ease
        both;
}


.education-hero h1 {

    font-size:
        clamp(3rem, 8vw, 6rem);

    line-height: 1;

    letter-spacing: -4px;

    margin-bottom: 25px;
}


.education-hero h1 span {

    display: block;

    color: #2563eb;
}


.education-hero p:last-child {

    max-width: 650px;

    color: #64748b;

    font-size: 1.1rem;
}


@keyframes educationHeroIn {

    from {

        opacity: 0;

        transform:
            translateY(40px);
    }

    to {

        opacity: 1;

        transform:
            translateY(0);
    }

}


/* EDUCATION ICON */

.education-icon {

    width: 190px;

    height: 190px;

    flex-shrink: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 40px;

    background:
        linear-gradient(
            135deg,
            #2563eb,
            #172554
        );

    font-size: 5rem;

    box-shadow:
        0 25px 60px
        rgba(37,99,235,0.25);

    animation:
        educationIconFloat
        4s ease-in-out
        infinite;
}


@keyframes educationIconFloat {

    0%,
    100% {

        transform:
            translateY(0)
            rotate(0deg);
    }

    50% {

        transform:
            translateY(-12px)
            rotate(3deg);
    }

}


/* TIMELINE */

.education-timeline {

    position: relative;

    padding:
        50px 0 80px;
}


.timeline-line {

    position: absolute;

    left: 49px;

    top: 0;

    bottom: 0;

    width: 2px;

    background:
        #dbeafe;
}


.education-item {

    position: relative;

    display: grid;

    grid-template-columns:
        100px 1fr;

    gap: 35px;

    margin-bottom: 45px;
}


.timeline-dot {

    position: relative;

    z-index: 2;

    width: 100px;

    height: 100px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: #eff6ff;

    border:
        2px solid #93c5fd;

    color: #2563eb;

    font-size: 0.8rem;

    font-weight: 800;

    transition:
        0.3s ease;
}


.education-item:hover .timeline-dot {

    background: #2563eb;

    color: white;

    border-color: #2563eb;

    transform:
        scale(1.08);

    box-shadow:
        0 0 0 8px #eff6ff,
        0 10px 30px
        rgba(37,99,235,0.25);
}


/* CARD */

.education-card {

    background: white;

    border:
        1px solid #e5e7eb;

    border-radius: 18px;

    padding: 35px;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        border-color 0.3s ease;
}


.education-card:hover {

    transform:
        translateY(-6px);

    border-color:
        #93c5fd;

    box-shadow:
        0 20px 45px
        rgba(15,23,42,0.1);
}


.education-status {

    color: #2563eb;

    font-size: 0.75rem;

    font-weight: 800;

    letter-spacing: 2px;

    margin-bottom: 10px;
}


.education-card h2 {

    font-size:
        clamp(1.7rem, 4vw, 2.5rem);

    line-height: 1.1;

    margin-bottom: 10px;
}


.education-place {

    color: #334155;

    font-weight: 700;

    margin-bottom: 3px;
}


.education-period {

    color: #2563eb;

    font-size: 0.85rem;

    font-weight: 700;

    margin-bottom: 20px;
}


.education-card > p:not(
    .education-status
):not(
    .education-place
):not(
    .education-period
) {

    color: #64748b;

    max-width: 700px;
}


/* TAGS */

.education-tags {

    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    margin-top: 25px;
}


.education-tags span {

    padding:
        7px 12px;

    background: #f8fafc;

    border:
        1px solid #e2e8f0;

    border-radius: 999px;

    color: #475569;

    font-size: 0.8rem;

    transition:
        0.25s ease;
}


.education-tags span:hover {

    color: #2563eb;

    border-color:
        #93c5fd;

    transform:
        translateY(-2px);
}


/* PHILOSOPHY */

.education-philosophy {

    margin:
        40px 0 70px;

    padding:
        70px 40px;

    text-align: center;

    border-radius: 25px;

    background:
        #eff6ff;

    border:
        1px solid #dbeafe;
}


.education-philosophy h2 {

    max-width: 750px;

    margin:
        0 auto 20px;

    font-size:
        clamp(2rem, 5vw, 3.5rem);

    line-height: 1.1;

    letter-spacing: -1.5px;
}


.education-philosophy p:last-child {

    max-width: 650px;

    margin: auto;

    color: #64748b;
}


/* CTA */

.education-cta {

    margin:
        60px 0 90px;

    padding:
        75px 30px;

    text-align: center;

    border-radius: 25px;

    background:
        linear-gradient(
            135deg,
            #111827,
            #172554
        );

    color: white;
}


.education-cta h2 {

    margin-bottom: 30px;

    color: white;

    font-size:
        clamp(2rem, 5vw, 3.5rem);
}


/* MOBILE */

@media (max-width: 800px) {

    .education-hero {

        min-height: auto;

        flex-direction:
            column;

        align-items:
            flex-start;

        padding:
            70px 0;
    }


    .education-icon {

        width: 140px;

        height: 140px;

        font-size: 3.5rem;

        align-self:
            center;
    }


    .education-hero h1 {

        letter-spacing:
            -2px;
    }


    .education-item {

        grid-template-columns:
            55px 1fr;

        gap: 18px;
    }


    .timeline-line {

        left: 27px;
    }


    .timeline-dot {

        width: 55px;

        height: 55px;

        font-size: 0.7rem;
    }


    .education-card {

        padding: 25px 20px;
    }


    .education-philosophy {

        padding:
            55px 20px;
    }

}
/* =====================================================
   SKILLS PAGE
===================================================== */

.skills-page {
    max-width: 1150px;
}


/* HERO */

.skills-hero {

    min-height: 70vh;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 70px;

    padding: 90px 0;
}


.skills-hero-content {

    max-width: 700px;

    animation:
        skillsHeroIn
        1s ease
        both;
}


.skills-hero h1 {

    font-size:
        clamp(3rem, 8vw, 6rem);

    line-height: 1;

    letter-spacing: -4px;

    margin-bottom: 25px;
}


.skills-hero h1 span {

    display: block;

    color: #2563eb;
}


.skills-hero-content > p:last-child {

    max-width: 650px;

    color: #64748b;

    font-size: 1.1rem;
}


@keyframes skillsHeroIn {

    from {

        opacity: 0;

        transform:
            translateY(40px);
    }

    to {

        opacity: 1;

        transform:
            translateY(0);
    }

}


/* SKILL ORBIT */

.skills-orbit {

    position: relative;

    width: 250px;

    height: 250px;

    flex-shrink: 0;

    border:
        1px dashed #93c5fd;

    border-radius: 50%;

    animation:
        orbitRotate
        15s linear
        infinite;
}


.skills-core {

    position: absolute;

    top: 50%;

    left: 50%;

    width: 100px;

    height: 100px;

    transform:
        translate(-50%, -50%);

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background:
        linear-gradient(
            135deg,
            #2563eb,
            #172554
        );

    color: white;

    font-size: 1.7rem;

    font-weight: 900;

    box-shadow:
        0 20px 45px
        rgba(37,99,235,0.25);
}


.skills-orbit > span {

    position: absolute;

    padding:
        8px 12px;

    background: white;

    border:
        1px solid #dbeafe;

    border-radius: 999px;

    color: #2563eb;

    font-size: 0.75rem;

    font-weight: 800;

    box-shadow:
        0 5px 15px
        rgba(15,23,42,0.08);
}


.skills-orbit > span:nth-child(1) {

    top: 5px;
    left: 50%;

    transform:
        translateX(-50%);
}


.skills-orbit > span:nth-child(2) {

    right: -5px;
    top: 50%;

    transform:
        translateY(-50%);
}


.skills-orbit > span:nth-child(3) {

    bottom: 5px;
    left: 50%;

    transform:
        translateX(-50%);
}


.skills-orbit > span:nth-child(4) {

    left: -5px;
    top: 50%;

    transform:
        translateY(-50%);
}


@keyframes orbitRotate {

    from {
        transform:
            rotate(0deg);
    }

    to {
        transform:
            rotate(360deg);
    }

}


/* SECTION */

.skills-section {

    padding:
        90px 0;

    border-top:
        1px solid #e5e7eb;
}


.skills-section-heading {

    max-width: 700px;

    margin-bottom: 45px;
}


.skills-section-heading h2 {

    font-size:
        clamp(2.3rem, 5vw, 4rem);

    line-height: 1.05;

    letter-spacing: -2px;

    margin-bottom: 18px;
}


.skills-section-heading > p:last-child {

    color: #64748b;
}


/* TECHNICAL GRID */

.technical-grid {

    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 20px;
}


.skill-card {

    padding: 30px;

    background: white;

    border:
        1px solid #e5e7eb;

    border-radius: 18px;

    transition:
        0.3s ease;
}


.skill-card:hover {

    transform:
        translateY(-7px);

    border-color:
        #93c5fd;

    box-shadow:
        0 20px 45px
        rgba(15,23,42,0.1);
}


.skill-card-top {

    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 30px;
}


.skill-icon {

    width: 50px;

    height: 50px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 12px;

    background: #eff6ff;

    color: #2563eb;

    font-weight: 900;
}


.skill-number {

    color: #94a3b8;

    font-size: 0.75rem;

    font-weight: 800;
}


.skill-card h3 {

    font-size: 1.7rem;

    margin-bottom: 10px;
}


.skill-card p {

    color: #64748b;

    min-height: 48px;
}


.skill-level {

    display: flex;

    justify-content: space-between;

    margin-top: 25px;

    margin-bottom: 8px;

    color: #64748b;

    font-size: 0.75rem;

    font-weight: 700;
}


.skill-bar {

    width: 100%;

    height: 5px;

    overflow: hidden;

    background: #e2e8f0;

    border-radius: 99px;
}


.skill-bar span {

    display: block;

    height: 100%;

    border-radius: inherit;

    background:
        linear-gradient(
            90deg,
            #2563eb,
            #60a5fa
        );

    animation:
        skillLoad
        1.5s ease
        both;
}


@keyframes skillLoad {

    from {
        width: 0 !important;
    }

}


/* SOFT SKILLS */

.soft-skills-grid {

    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    border-top:
        1px solid #e5e7eb;

    border-left:
        1px solid #e5e7eb;
}


.soft-skill {

    padding: 30px;

    border-right:
        1px solid #e5e7eb;

    border-bottom:
        1px solid #e5e7eb;

    transition:
        0.3s ease;
}


.soft-skill:hover {

    background: #eff6ff;
}


.soft-skill > span {

    display: block;

    margin-bottom: 25px;

    color: #2563eb;

    font-size: 0.75rem;

    font-weight: 800;
}


.soft-skill strong {

    display: block;

    margin-bottom: 10px;

    font-size: 1.3rem;
}


.soft-skill p {

    color: #64748b;

    margin: 0;
}


/* CURRENTLY LEARNING */

.learning-section {

    display: grid;

    grid-template-columns:
        0.8fr 1.2fr;

    gap: 80px;

    padding:
        100px 0;

    border-top:
        1px solid #e5e7eb;
}


.learning-section h2 {

    font-size:
        clamp(2.3rem, 5vw, 4rem);

    line-height: 1.05;

    letter-spacing: -2px;

    margin-bottom: 20px;
}


.learning-section h2 span {

    display: block;

    color: #2563eb;
}


.learning-section > div:first-child > p:last-child {

    color: #64748b;
}


.learning-list {

    border-top:
        1px solid #e5e7eb;
}


.learning-item {

    display: grid;

    grid-template-columns:
        50px 1fr 30px;

    gap: 20px;

    align-items: center;

    padding:
        25px 5px;

    border-bottom:
        1px solid #e5e7eb;

    transition:
        0.25s ease;
}


.learning-item:hover {

    padding-left: 15px;

    padding-right: 15px;

    background: #eff6ff;
}


.learning-item > span:first-child {

    color: #2563eb;

    font-size: 0.75rem;

    font-weight: 800;
}


.learning-item h3 {

    margin-bottom: 5px;

    font-size: 1.15rem;
}


.learning-item p {

    margin: 0;

    color: #64748b;

    font-size: 0.9rem;
}


.learning-arrow {

    color: #2563eb;

    font-size: 1.3rem;
}


/* INTERESTS */

.interests-section {

    padding:
        100px 0;

    text-align: center;

    border-top:
        1px solid #e5e7eb;
}


.interests-section h2 {

    max-width: 700px;

    margin:
        0 auto 50px;

    font-size:
        clamp(2.5rem, 6vw, 4.5rem);

    line-height: 1;

    letter-spacing: -3px;
}


.interests-section h2 span {

    color: #2563eb;
}


.interest-cloud {

    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    align-items: center;

    gap: 12px;

    max-width: 800px;

    margin:
        0 auto 60px;
}


.interest-cloud span {

    padding:
        12px 18px;

    border:
        1px solid #e2e8f0;

    border-radius: 999px;

    background: white;

    color: #475569;

    transition:
        0.25s ease;
}


.interest-cloud span:hover {

    color: #2563eb;

    border-color:
        #93c5fd;

    transform:
        translateY(-5px)
        rotate(-2deg);
}


.interest-cloud .interest-large {

    font-size: 1.15rem;

    font-weight: 700;
}


.interests-section blockquote {

    max-width: 650px;

    margin: auto;

    color: #334155;

    font-size: 1.2rem;

    font-weight: 700;
}


/* CTA */

.skills-cta {

    margin:
        50px 0 90px;

    padding:
        75px 30px;

    text-align: center;

    border-radius: 25px;

    background:
        linear-gradient(
            135deg,
            #111827,
            #172554
        );

    color: white;
}


.skills-cta h2 {

    max-width: 800px;

    margin:
        0 auto 30px;

    color: white;

    font-size:
        clamp(2rem, 5vw, 3.5rem);

    line-height: 1.1;
}


/* MOBILE */

@media (max-width: 800px) {

    .skills-hero {

        min-height: auto;

        flex-direction:
            column;

        align-items:
            flex-start;

        padding:
            70px 0;
    }


    .skills-hero h1 {

        letter-spacing:
            -2px;
    }


    .skills-orbit {

        width: 190px;

        height: 190px;

        align-self:
            center;
    }


    .skills-core {

        width: 75px;

        height: 75px;
    }


    .technical-grid,
    .soft-skills-grid {

        grid-template-columns:
            1fr;
    }


    .learning-section {

        grid-template-columns:
            1fr;

        gap: 45px;

        padding:
            70px 0;
    }


    .skills-section {

        padding:
            70px 0;
    }


    .interests-section {

        padding:
            70px 0;
    }

}
/* =====================================================
   PROJECTS PAGE
===================================================== */

.projects-page {
    max-width: 1150px;
}


/* HERO */

.projects-hero {

    min-height: 65vh;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 50px;

    padding: 90px 0;
}


.projects-hero > div:first-child {

    max-width: 750px;

    animation:
        projectHeroIn
        1s ease
        both;
}


.projects-hero h1 {

    font-size:
        clamp(3rem, 8vw, 6rem);

    line-height: 1;

    letter-spacing: -4px;

    margin-bottom: 25px;
}


.projects-hero h1 span {

    display: block;

    color: #2563eb;
}


.projects-hero p:last-child {

    max-width: 650px;

    color: #64748b;

    font-size: 1.1rem;
}


@keyframes projectHeroIn {

    from {

        opacity: 0;

        transform:
            translateY(40px);
    }

    to {

        opacity: 1;

        transform:
            translateY(0);
    }

}


/* COUNTER */

.project-counter {

    width: 160px;

    height: 160px;

    flex-shrink: 0;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    border:
        1px solid #dbeafe;

    border-radius: 50%;

    background: #eff6ff;

    color: #2563eb;

    animation:
        projectCounter
        4s ease-in-out
        infinite;
}


.project-counter strong {

    font-size: 3rem;

    line-height: 1;
}


.project-counter span {

    margin-top: 8px;

    font-size: 0.65rem;

    font-weight: 800;

    letter-spacing: 2px;
}


@keyframes projectCounter {

    0%,
    100% {
        transform:
            translateY(0);
    }

    50% {
        transform:
            translateY(-10px);
    }

}


/* FEATURED PROJECT */

.featured-project {

    display: grid;

    grid-template-columns:
        1.15fr 0.85fr;

    gap: 70px;

    align-items: center;

    padding:
        80px 0 110px;

    border-top:
        1px solid #e5e7eb;
}


/* PROJECT VISUAL */

.project-visual {

    position: relative;

    min-height: 420px;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;

    border-radius: 25px;

    background:
        linear-gradient(
            135deg,
            #eff6ff,
            #dbeafe
        );
}


.project-window {

    position: relative;

    z-index: 2;

    width: 78%;

    overflow: hidden;

    border:
        1px solid #cbd5e1;

    border-radius: 14px;

    background: white;

    box-shadow:
        0 30px 70px
        rgba(15,23,42,0.18);

    transform:
        perspective(1000px)
        rotateY(-7deg)
        rotateX(3deg);

    transition:
        0.5s ease;
}


.project-visual:hover .project-window {

    transform:
        perspective(1000px)
        rotateY(0)
        rotateX(0)
        translateY(-8px);
}


.window-bar {

    display: flex;

    gap: 6px;

    padding: 12px;

    border-bottom:
        1px solid #e5e7eb;

    background: #f8fafc;
}


.window-bar span {

    width: 8px;

    height: 8px;

    border-radius: 50%;

    background: #cbd5e1;
}


.window-content {

    min-height: 260px;

    padding: 30px;
}


.fake-heading {

    margin-bottom: 25px;

    font-size: 2rem;

    font-weight: 900;
}


.fake-heading span {

    color: #2563eb;
}


.fake-lines {

    display: flex;

    flex-direction: column;

    gap: 9px;
}


.fake-lines span {

    display: block;

    width: 80%;

    height: 7px;

    border-radius: 99px;

    background: #e2e8f0;
}


.fake-lines span:nth-child(2) {

    width: 60%;
}


.fake-lines span:nth-child(3) {

    width: 70%;
}


.fake-boxes {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 10px;

    margin-top: 35px;
}


.fake-boxes div {

    height: 65px;

    border-radius: 9px;

    background: #eff6ff;

    border:
        1px solid #dbeafe;
}


.project-glow {

    position: absolute;

    width: 220px;

    height: 220px;

    border-radius: 50%;

    background:
        #93c5fd;

    filter:
        blur(80px);

    opacity: 0.4;

    animation:
        projectGlow
        5s ease-in-out
        infinite;
}


@keyframes projectGlow {

    0%,
    100% {
        transform:
            scale(1);
    }

    50% {
        transform:
            scale(1.3);
    }

}


/* FEATURED INFO */

.featured-info {

    animation:
        featuredInfoIn
        1s 0.2s ease
        both;
}


@keyframes featuredInfoIn {

    from {

        opacity: 0;

        transform:
            translateX(30px);
    }

    to {

        opacity: 1;

        transform:
            translateX(0);
    }

}


.project-label {

    margin-bottom: 15px;

    color: #2563eb;

    font-size: 0.75rem;

    font-weight: 800;

    letter-spacing: 2px;
}


.featured-info h2 {

    font-size:
        clamp(2.5rem, 5vw, 4.5rem);

    line-height: 1;

    letter-spacing: -2px;

    margin-bottom: 25px;
}


.featured-info > p:not(.project-label) {

    color: #64748b;

    margin-bottom: 25px;
}


/* TECH STACK */

.tech-stack {

    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    margin: 20px 0;
}


.tech-stack span {

    padding:
        7px 11px;

    border:
        1px solid #e2e8f0;

    border-radius: 999px;

    background: #f8fafc;

    color: #475569;

    font-size: 0.75rem;

    font-weight: 700;
}


/* BUTTONS */

.project-actions {

    display: flex;

    flex-wrap: wrap;

    gap: 10px;

    margin-top: 30px;
}


.project-button {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    padding:
        12px 18px;

    border-radius: 10px;

    text-decoration: none;

    font-size: 0.85rem;

    font-weight: 800;

    transition:
        0.25s ease;
}


.project-button.primary {

    background: #2563eb;

    color: white;
}


.project-button.primary:hover {

    background: #1d4ed8;

    transform:
        translateY(-3px);

    box-shadow:
        0 10px 25px
        rgba(37,99,235,0.25);
}


.project-button.secondary {

    border:
        1px solid #e2e8f0;

    background: white;

    color: #334155;
}


.project-button.secondary:hover {

    border-color:
        #93c5fd;

    color: #2563eb;

    transform:
        translateY(-3px);
}


/* PROJECT SECTION */

.projects-section {

    padding:
        90px 0;

    border-top:
        1px solid #e5e7eb;
}


.projects-heading {

    max-width: 700px;

    margin-bottom: 45px;
}


.projects-heading h2 {

    font-size:
        clamp(2.5rem, 6vw, 4.5rem);

    line-height: 1;

    letter-spacing: -3px;
}


.projects-heading h2 span {

    color: #2563eb;
}


/* PROJECT GRID */

.projects-grid {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 20px;
}


.project-card {

    position: relative;

    min-height: 420px;

    display: flex;

    flex-direction: column;

    padding: 30px;

    background: white;

    border:
        1px solid #e5e7eb;

    border-radius: 18px;

    transition:
        0.3s ease;
}


.project-card:hover {

    transform:
        translateY(-8px);

    border-color:
        #93c5fd;

    box-shadow:
        0 20px 45px
        rgba(15,23,42,0.1);
}


.project-card-number {

    position: absolute;

    top: 25px;

    right: 25px;

    color: #94a3b8;

    font-size: 0.75rem;

    font-weight: 800;
}


.project-card-icon {

    width: 55px;

    height: 55px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin-bottom: 35px;

    border-radius: 14px;

    background: #eff6ff;

    color: #2563eb;

    font-weight: 900;
}


.project-card-label {

    color: #2563eb;

    font-size: 0.7rem;

    font-weight: 800;

    letter-spacing: 1.5px;
}


.project-card h3 {

    margin:
        10px 0 15px;

    font-size: 1.7rem;
}


.project-card > p:not(.project-card-label) {

    color: #64748b;

    font-size: 0.9rem;
}


.project-card .tech-stack {

    margin-top: auto;
}


.project-card-link {

    display: inline-block;

    margin-top: 20px;

    color: #2563eb;

    text-decoration: none;

    font-weight: 800;

    font-size: 0.85rem;
}


.project-card-link:hover {

    text-decoration: underline;
}


/* PHILOSOPHY */

.project-philosophy {

    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 70px;

    align-items: center;

    padding:
        100px 0;

    border-top:
        1px solid #e5e7eb;
}


.project-philosophy h2 {

    margin: 0;

    font-size:
        clamp(2.5rem, 5vw, 4rem);

    line-height: 1;

    letter-spacing: -2px;
}


.project-philosophy h2 span {

    display: block;

    color: #2563eb;
}


.project-philosophy > p {

    color: #64748b;

    font-size: 1.05rem;
}


/* CTA */

.projects-cta {

    margin:
        50px 0 90px;

    padding:
        75px 30px;

    text-align: center;

    border-radius: 25px;

    background:
        linear-gradient(
            135deg,
            #111827,
            #172554
        );

    color: white;
}


.projects-cta h2 {

    max-width: 700px;

    margin:
        0 auto 30px;

    color: white;

    font-size:
        clamp(2rem, 5vw, 3.5rem);

    line-height: 1.1;
}


/* MOBILE */

@media (max-width: 850px) {

    .projects-hero {

        min-height: auto;

        flex-direction:
            column;

        align-items:
            flex-start;

        padding:
            70px 0;
    }


    .projects-hero h1 {

        letter-spacing:
            -2px;
    }


    .project-counter {

        width: 130px;

        height: 130px;

        align-self:
            center;
    }


    .project-counter strong {

        font-size: 2.4rem;
    }


    .featured-project {

        grid-template-columns:
            1fr;

        gap: 50px;

        padding:
            60px 0 80px;
    }


    .project-visual {

        min-height: 300px;
    }


    .projects-grid {

        grid-template-columns:
            1fr;
    }


    .project-card {

        min-height: 350px;
    }


    .project-philosophy {

        grid-template-columns:
            1fr;

        gap: 35px;

        padding:
            70px 0;
    }

}
/* =====================================================
   EXPERIENCE PAGE
===================================================== */

.experience-page {
    max-width: 1150px;
}


/* HERO */

.experience-hero {

    min-height: 65vh;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 60px;

    padding: 90px 0;
}


.experience-hero > div:first-child {

    max-width: 750px;

    animation:
        experienceHeroIn
        1s ease
        both;
}


.experience-hero h1 {

    font-size:
        clamp(3rem, 8vw, 6rem);

    line-height: 1;

    letter-spacing: -4px;

    margin-bottom: 25px;
}


.experience-hero h1 span {

    display: block;

    color: #2563eb;
}


.experience-hero > div:first-child > p:last-child {

    max-width: 650px;

    color: #64748b;

    font-size: 1.1rem;
}


@keyframes experienceHeroIn {

    from {

        opacity: 0;

        transform:
            translateY(40px);
    }

    to {

        opacity: 1;

        transform:
            translateY(0);
    }

}


/* STATUS */

.experience-status {

    display: flex;

    align-items: center;

    gap: 15px;

    min-width: 230px;

    padding: 18px;

    border:
        1px solid #dbeafe;

    border-radius: 15px;

    background: #eff6ff;

    animation:
        statusFloat
        4s ease-in-out
        infinite;
}


.status-dot {

    width: 12px;

    height: 12px;

    flex-shrink: 0;

    border-radius: 50%;

    background: #22c55e;

    box-shadow:
        0 0 0 6px
        rgba(34,197,94,0.12);

    animation:
        statusPulse
        2s infinite;
}


.experience-status strong {

    display: block;

    font-size: 0.9rem;
}


.experience-status p {

    margin: 4px 0 0;

    color: #64748b;

    font-size: 0.8rem;
}


@keyframes statusPulse {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.25);
    }

}


@keyframes statusFloat {

    0%,
    100% {
        transform:
            translateY(0);
    }

    50% {
        transform:
            translateY(-8px);
    }

}


/* SECTION */

.experience-section {

    padding:
        90px 0;

    border-top:
        1px solid #e5e7eb;
}


.experience-heading {

    max-width: 700px;

    margin-bottom: 70px;
}


.experience-heading h2 {

    font-size:
        clamp(2.5rem, 6vw, 4.5rem);

    line-height: 1;

    letter-spacing: -3px;
}


.experience-heading h2 span {

    display: block;

    color: #2563eb;
}


/* TIMELINE */

.experience-timeline {

    position: relative;

    padding-bottom: 20px;
}


.experience-line {

    position: absolute;

    left: 83px;

    top: 20px;

    bottom: 50px;

    width: 2px;

    background:
        linear-gradient(
            to bottom,
            #93c5fd,
            #dbeafe,
            transparent
        );
}


.experience-item {

    position: relative;

    display: grid;

    grid-template-columns:
        65px 40px 1fr;

    gap: 18px;

    margin-bottom: 55px;
}


.experience-date {

    padding-top: 30px;

    color: #94a3b8;

    font-size: 0.75rem;

    font-weight: 900;

    text-align: right;
}


.experience-marker {

    position: relative;

    z-index: 2;

    display: flex;

    justify-content: center;

    padding-top: 31px;
}


.experience-marker span {

    width: 14px;

    height: 14px;

    border-radius: 50%;

    background: #2563eb;

    border:
        4px solid white;

    box-shadow:
        0 0 0 2px #93c5fd;
}


.experience-item:hover .experience-marker span {

    transform:
        scale(1.4);

    box-shadow:
        0 0 0 6px #dbeafe;
}


/* CARD */

.experience-card {

    padding: 32px;

    border:
        1px solid #e5e7eb;

    border-radius: 18px;

    background: white;

    transition:
        0.3s ease;
}


.experience-card:hover {

    transform:
        translateX(7px);

    border-color:
        #93c5fd;

    box-shadow:
        0 20px 45px
        rgba(15,23,42,0.1);
}


.experience-card.upcoming {

    background:
        linear-gradient(
            135deg,
            #f8fafc,
            #eff6ff
        );

    border-style:
        dashed;
}


.experience-card-top {

    display: flex;

    justify-content: space-between;

    gap: 15px;

    margin-bottom: 15px;
}


.experience-type {

    color: #2563eb;

    font-size: 0.7rem;

    font-weight: 900;

    letter-spacing: 1.5px;
}


.experience-period {

    color: #94a3b8;

    font-size: 0.7rem;

    font-weight: 800;
}


.experience-card h3 {

    margin-bottom: 8px;

    font-size:
        clamp(1.5rem, 3vw, 2rem);
}


.experience-role {

    color: #2563eb;

    font-size: 0.85rem;

    font-weight: 700;

    margin-bottom: 18px;
}


.experience-card > p:not(.experience-role) {

    max-width: 700px;

    color: #64748b;
}


/* TAGS */

.experience-tags {

    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    margin-top: 25px;
}


.experience-tags span {

    padding:
        7px 11px;

    border:
        1px solid #e2e8f0;

    border-radius: 999px;

    background: #f8fafc;

    color: #475569;

    font-size: 0.75rem;

    font-weight: 700;
}


/* LESSONS */

.experience-lessons {

    padding:
        100px 0;

    border-top:
        1px solid #e5e7eb;
}


.lessons-intro {

    margin-bottom: 50px;
}


.lessons-intro h2 {

    max-width: 700px;

    font-size:
        clamp(2.5rem, 6vw, 4.5rem);

    line-height: 1;

    letter-spacing: -3px;
}


.lessons-intro h2 span {

    display: block;

    color: #2563eb;
}


.lessons-grid {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    border-top:
        1px solid #e5e7eb;

    border-left:
        1px solid #e5e7eb;
}


.lessons-grid article {

    min-height: 250px;

    padding: 30px;

    border-right:
        1px solid #e5e7eb;

    border-bottom:
        1px solid #e5e7eb;

    transition:
        0.3s ease;
}


.lessons-grid article:hover {

    background: #eff6ff;
}


.lessons-grid article > span {

    color: #2563eb;

    font-size: 0.75rem;

    font-weight: 900;
}


.lessons-grid h3 {

    margin:
        40px 0 12px;

    font-size: 1.4rem;
}


.lessons-grid p {

    color: #64748b;

    font-size: 0.9rem;
}


/* CURRENT STATUS */

.current-status {

    display: grid;

    grid-template-columns:
        120px 1fr;

    gap: 45px;

    align-items: center;

    margin:
        20px 0 90px;

    padding:
        65px;

    border-radius: 25px;

    background:
        linear-gradient(
            135deg,
            #eff6ff,
            #dbeafe
        );

    border:
        1px solid #bfdbfe;
}


.current-status-icon {

    width: 110px;

    height: 110px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 30px;

    background: white;

    font-size: 3rem;

    box-shadow:
        0 15px 35px
        rgba(37,99,235,0.12);

    animation:
        statusIconFloat
        3s ease-in-out
        infinite;
}


@keyframes statusIconFloat {

    0%,
    100% {
        transform:
            rotate(-3deg)
            translateY(0);
    }

    50% {
        transform:
            rotate(3deg)
            translateY(-8px);
    }

}


.current-status h2 {

    margin-bottom: 18px;

    font-size:
        clamp(2rem, 5vw, 3.5rem);

    line-height: 1;

    letter-spacing: -2px;
}


.current-status p:last-child {

    max-width: 650px;

    color: #64748b;
}


/* CTA */

.experience-cta {

    margin:
        50px 0 90px;

    padding:
        80px 30px;

    text-align: center;

    border-radius: 25px;

    background:
        linear-gradient(
            135deg,
            #111827,
            #172554
        );

    color: white;
}


.experience-cta h2 {

    max-width: 700px;

    margin:
        0 auto 20px;

    color: white;

    font-size:
        clamp(2.3rem, 6vw, 4rem);

    line-height: 1;

    letter-spacing: -2px;
}


.experience-cta > p:not(.section-label) {

    max-width: 550px;

    margin:
        0 auto 30px;

    color: #cbd5e1;
}


.experience-actions {

    display: flex;

    justify-content: center;

    flex-wrap: wrap;

    gap: 10px;
}


/* MOBILE */

@media (max-width: 800px) {

    .experience-hero {

        min-height: auto;

        flex-direction:
            column;

        align-items:
            flex-start;

        padding:
            70px 0;
    }


    .experience-hero h1 {

        letter-spacing:
            -2px;
    }


    .experience-status {

        align-self:
            center;
    }


    .experience-section {

        padding:
            70px 0;
    }


    .experience-line {

        left: 43px;
    }


    .experience-item {

        grid-template-columns:
            35px 25px 1fr;

        gap: 8px;
    }


    .experience-date {

        font-size:
            0.65rem;
    }


    .experience-marker {

        padding-top: 31px;
    }


    .experience-card {

        padding: 22px 18px;
    }


    .experience-card-top {

        flex-direction:
            column;

        gap: 5px;
    }


    .lessons-grid {

        grid-template-columns:
            1fr;
    }


    .current-status {

        grid-template-columns:
            1fr;

        gap: 30px;

        padding:
            45px 25px;

        margin-bottom:
            70px;
    }


    .current-status-icon {

        width: 80px;

        height: 80px;

        font-size: 2rem;
    }

}