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

:root {
    --primary-background-color: #000000;
    --secondary-background-color: #ffffff;

    --primary-color: #ffffff;
    --secondary-color: #000000;
    --off-white: #d1d1d1;
    --grey: #1f1f1f;

    --primary-accent-color: green;
    --secondary-accent-color: red;
    --tertiary-accent-color: rgb(6, 213, 147);

    --dull-color: rgb(180.54, 180.54, 180.54);
    --dull-background-color: rgb(30, 30, 30);
    --very-dull-color: rgb(114, 114, 114);
    --container-box-border: rgb(120, 120, 120);

    --font-sans:
        ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
        "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono:
        ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
        "Liberation Mono", "Courier New", monospace;

    --font-size-extra-small: 0.75rem;
    --font-size-small: 0.875rem;
    --font-size-lg: 1.125rem;
    --font-size-3xl: 1.875rem;
    --font-size-4xl: 2.25rem;

    --font-size-medium: 3rem;
    --font-size-large: 3.8rem;
    --font-size-extra-large: 4.5rem;

    --global-border-radius: 0.65rem;
}

/* Utitlity classes */
.text-small {
    font-size: var(--font-size-small);
    line-height: 1.43;
}

.text-medium {
    font-size: var(--font-size-medium);
    line-height: 1;
}

.text-large {
    font-size: var(--font-size-large);
    line-height: 1;
}

.text-extra-large {
    font-size: var(--font-size-extra-large);
    line-height: 1;
}

.text-muted-color {
    color: var(--dull-color);
}

.blue-accent {
    color: var(--tertiary-accent-color);
    font-size: 1rem;
    font-weight: 600;
}

.text-green {
    color: #48bb78;
}

.text-blue {
    color: #4299e1;
}

.text-cyan {
    color: #26c6da;
}

.text-white {
    color: #ffffff;
}

html {
    scroll-behavior: smooth;
}

body {
    background-color: var(--primary-background-color);
    color: var(--primary-color);
    font-family: var(--font-sans);
    overflow-x: hidden;
}

.no-select {
    -webkit-user-select: none;
    /* Safari */
    -moz-user-select: none;
    /* Firefox */
    -ms-user-select: none;
    /* Internet Explorer/Edge */
    user-select: none;
    /* Standard property */
}

.main-container {
    position: relative;
    min-height: 100vh;
}

/* BASE MOBILE SCREEN */
main {
    padding: 0 1.5rem;
    line-height: normal;
    transition: all 0.5s ease-in-out 0.2s;
}

/* Navigation-bar */
nav {
    display: none;
    padding: 1.5rem 0;

    /* glass effect */
    background: rgba(15, 15, 15, 0.55);
    /* translucent dark layer */
    backdrop-filter: blur(18px) saturate(160%);
    /* iOS glass look */
    -webkit-backdrop-filter: blur(18px) saturate(160%);

    /* subtle border like iOS */
    border-left: 1px solid rgba(255, 255, 255, 0.08);
    border-right: 1px solid rgba(255, 255, 255, 0.08);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 5rem;

    box-shadow:
        0 20px 40px rgba(0, 0, 0, 0.35),
        0 1px 0 rgba(255, 255, 255, 0.05) inset;

    .navbar {
        display: flex;
        align-items: center;
        justify-content: space-between;

        a {
            text-decoration: none;
            color: var(--primary-color);
        }

        .nav-right {
            display: none;

            audio {
                display: none;
            }

            #audio-toggle {
                background: none;
                border: none;
                cursor: pointer;
                display: inline-flex;
                align-items: center;
            }

            /* default state = show play, hide pause */
            .icon-pause {
                display: none;
            }

            /* when playing (class added by JS) */
            #audio-toggle.playing .icon-play {
                display: none;
            }

            #audio-toggle.playing .icon-pause {
                display: inline;
            }

        }

        .nav-name {
            font-weight: 600;
        }

        .items {
            cursor: pointer;
        }
    }
}

/* nav::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(to bottom,
            rgba(255, 255, 255, 0.08),
            rgba(255, 255, 255, 0.02));
    pointer-events: none;
} */

.ping {
    height: 0.6em;
    width: 0.6em;
    background-color: var(--primary-accent-color);
    border-radius: 50%;
    animation: pulse 2s linear infinite;
}

.flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Hero section */
#hero-section {
    display: flex;
    align-items: center;
    padding: 5rem 0;

    .hero-container {
        width: 100%;
        display: grid;
        gap: 4rem;

        .hero-left {
            .head {
                margin-bottom: 2rem;
            }

            .full-name {
                font-size: 2.2rem;
                font-weight: 600;
                display: flex;
                gap: 1rem;
                margin-bottom: 1rem;
            }

            .roles {
                font-family: var(--font-mono);
                display: flex;
                flex-direction: column;
                gap: 0.4rem;

                .dot {
                    display: none;
                }
            }

            .body {
                margin-bottom: 1rem;
                display: flex;
                flex-direction: column;
                gap: 1rem;

                .about-me {
                    margin-bottom: 0.5rem;

                    span {
                        color: var(--primary-color);
                    }
                }
            }

            .status-container {
                display: flex;
                justify-content: flex-start;
                align-items: center;
                gap: 0.5rem;
                color: var(--dull-color);
                font-size: var(--font-size-small);
                margin-bottom: 2rem;
                text-decoration: none;
                cursor: default;

                div {
                    cursor: pointer;
                }
            }

            .call-to-action {
                display: flex;
                flex-wrap: wrap;
                gap: 0.8rem;

                .items {
                    padding: 0.5rem 1rem;
                    color: var(--primary-color);
                    text-decoration: none;
                    background-color: var(--dull-background-color);
                    border-radius: var(--global-border-radius);
                    flex: 1;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    gap: 0.5rem;
                    white-space: nowrap;

                    svg {
                        width: 1rem;
                        height: 1rem;
                    }
                }

                .resume {
                    background-color: var(--secondary-background-color);
                    color: var(--secondary-color);
                    transition: transform 0.2s ease, box-shadow 0.2s ease;
                }

                .contact {
                    transition: transform 0.2s ease, box-shadow 0.2s ease;
                }

                .contact:hover,
                .resume:hover {
                    transform: translateY(-1px);
                    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
                }
            }
        }

        .hero-right {
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            gap: 1.6rem;

            .title {
                font-family: var(--font-mono);
                color: var(--dull-color);
            }

            .head,
            .title {
                margin-bottom: 1rem;
            }

            .flow {
                .body {
                    .sub-title {
                        margin-bottom: 0.8rem;
                    }

                    .desc {
                        span {
                            color: var(--dull-color);
                        }
                    }
                }
            }

            .focus {
                .capsules {
                    display: flex;
                    flex-wrap: wrap;
                    gap: 0.5rem;

                    .items {
                        font-size: var(--font-size-extra-small);
                        padding: 0.25rem 0.75rem;
                        background-color: var(--dull-background-color);
                        border-radius: 0.4rem;
                        border: 0.5px dashed var(--dull-background-color);
                        cursor: pointer;

                        display: flex;
                        align-items: center;
                        justify-content: center;
                        gap: 0.5rem;
                    }

                    .items:hover {
                        border: 0.5px dashed var(--container-box-border);
                    }
                }
            }
        }
    }
}

/* Skill section */
#skill-section {
    .body {
        position: relative;

        .track-group {
            display: flex;
            padding: 0.5rem;
            overflow: hidden;

            .track {
                display: flex;
                gap: 1rem;
                animation: marquee 80s linear infinite;

                .items {
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    align-items: center;
                    white-space: nowrap;
                    padding: 1rem;
                    min-width: 80px;
                    gap: 0.75rem;
                    cursor: pointer;

                    .logo {
                        width: 2rem;
                        height: 2rem;
                        display: flex;
                        justify-content: center;
                        align-items: center;

                        * {
                            width: 100%;
                            height: 100%;
                        }
                    }

                    .skill-name {
                        font-size: var(--font-size-extra-small);
                        color: var(--dull-color);
                    }
                }

                .items:last-child {
                    padding-right: 1rem;
                }
            }
        }

        .track-group:hover * {
            animation-play-state: paused;
        }
    }

    .shadow {
        position: absolute;
        width: 5rem;
        height: 100%;
        z-index: 10;
    }

    .left-shadows {
        top: 0;
        left: 0;
        background: linear-gradient(to right, hsl(0, 0%, 0%), transparent);
    }

    .right-shadows {
        top: 0;
        right: 0;
        background: linear-gradient(to left, hsl(0, 0%, 0%), transparent);
    }
}

#skill-section,
#experience-section {
    line-height: 1.2;
    padding: 5rem 0;

    .title-section {
        margin-bottom: 1rem;

        .title {
            display: flex;
            flex-direction: column;
            gap: 1rem;
            margin-bottom: 1rem;

            .left {
                font-size: var(--font-size-3xl);
                line-height: 1.2;
                font-weight: 500;
            }

            .right {
                font-family: var(--font-mono);
                color: var(--dull-color);
            }
        }

        .desc {
            color: var(--dull-color);
        }
    }
}

#experience-section {
    /* min-height: 100vh; */
    display: flex;
    align-items: center;

    .item-group {
        position: relative;

        .vertical-line {
            display: none;
        }

        .exp-item {
            display: grid;
            grid-template-columns: minmax(60px, 1fr) 6fr;
            gap: 1rem 0;

            .logo-section {
                position: relative;
                display: flex;
                justify-content: flex-start;
            }

            .logo-section img {
                background: #000;
                border-radius: 50%;
                padding: 6px;
                z-index: 2;
                border: 2px solid var(--dull-background-color);
            }

            .breif-section {
                display: flex;
                flex-direction: column;
                justify-content: space-between;
                align-items: flex-start;
                gap: 1rem;

                .left-section *,
                .right-section * {
                    margin-bottom: 0.25rem;
                }

                .left-section *:last-child,
                .right-section *:last-child {
                    margin-bottom: 0;
                }

                .left-section {
                    .company-title-section {
                        display: flex;
                        justify-content: center;
                        align-items: center;
                        gap: 0.5rem;

                        a {
                            text-decoration: none;
                            color: var(--primary-color);
                        }

                        .ping {
                            width: 6px;
                            height: 6px;
                        }

                        .company-name {
                            white-space: nowrap;
                            font-weight: 500;
                        }
                    }

                    .designation {
                        font-size: var(--font-size-small);
                        font-family: var(--font-mono);
                        color: var(--dull-color);
                    }
                }

                .right-section {
                    font-size: var(--font-size-small);
                    color: var(--dull-color);
                }
            }

            .desc-section>div {
                margin-bottom: 1rem;
            }

            .desc-section>div:nth-child {
                margin-bottom: 0;
            }

            .desc-section {
                grid-column: 1/3;

                .tools-and-tech {
                    h4 {
                        font-weight: 500;
                    }

                    .item-group {
                        margin-top: 0.75rem;
                        display: flex;
                        flex-wrap: wrap;
                        gap: 0.5rem;

                        .item {
                            font-size: var(--font-size-extra-small);
                            color: var(--dull-color);
                            background-color: var(--dull-background-color);
                            padding: 0.25rem 0.75rem;
                            border-radius: 0.4rem;
                            display: flex;
                            gap: 0.5rem;
                            align-items: center;
                            justify-content: center;
                            white-space: nowrap;
                            border: 0.5px dashed var(--dull-background-color);
                            cursor: pointer;

                            .tool-logo {
                                display: flex;
                                justify-content: center;
                                align-items: center;

                                svg {
                                    width: 16px;
                                    height: 16px;
                                }
                            }
                        }

                        .item:hover {
                            border: 0.5px dashed var(--container-box-border);
                        }
                    }
                }

                .role-details {
                    color: var(--dull-color);
                    font-size: var(--font-size-small);

                    ul li {
                        list-style-position: inside;
                        padding-left: 0;
                        margin-top: 0.5rem;
                    }
                }
            }
        }

        .exp-item {}

        .exp-item:not(:last-child) {
            padding-bottom: 3rem;
        }
    }
}

#contact-section {
    display: flex;
    align-items: center;
    /* min-height: 100vh; */
    padding: 5rem 0;

    .content-group {
        display: grid;
        gap: 3rem;

        .contact-left-container {
            .head-container {
                .title {
                    display: flex;
                    flex-direction: column;
                    gap: 1rem;
                    margin-bottom: 1rem;

                    h2 {
                        font-size: var(--font-size-3xl);
                        line-height: 1.2;
                        font-weight: 500;
                    }
                }

                margin-bottom: 1rem;

                p {
                    color: var(--dull-color);
                    line-height: 1.625;
                }
            }

            .call-to-action-container,
            .call-to-action,
            .logo,
            .straight-arrow-btn {
                display: flex;
                gap: 0.5rem;
                align-items: center;
                color: var(--dull-color);
            }

            .call-to-action {
                text-decoration: none;
            }

            .call-to-action:hover {
                color: var(--primary-color);

                .straight-arrow-btn {
                    color: var(--primary-color);

                    svg {
                        transition: transform 300ms ease-in-out;
                        transform: translateX(6px);
                    }
                }
            }
        }
    }

    .contact-right-container {
        display: flex;
        flex-direction: column;
        gap: 2rem;

        .sub-title {
            color: var(--dull-color);
            font-size: var(--font-size-small);
            font-family: var(--font-mono);
        }

        .socials-containers {
            display: grid;
            gap: 1rem;
            grid-template-columns: repeat(1, minmax(0, 1fr));

            a {
                text-decoration: none;
            }

            .flex-container {
                color: var(--dull-color);
                padding: 1rem;
                background-color: var(--dull-background-color);
                border: 0.5px dashed var(--dull-background-color);
                border-radius: 0.625rem;

                display: flex;
                justify-content: space-between;
                align-items: center;

                .left-container {
                    display: flex;
                    gap: 1rem;
                    align-items: center;
                }
            }

            .flex-container:hover {
                border: 0.5px dashed var(--container-box-border);
                color: var(--primary-color);

                .sub-title {
                    color: var(--primary-color);
                }
            }
        }
    }
}

footer {
    padding: 4rem 0;
    border-top: 1px solid var(--dull-background-color);

    .container {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.5rem;
        color: var(--very-dull-color);
        font-size: var(--font-size-small);
    }
}

#blur-section {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 6rem;
    width: 100%;
    pointer-events: none;

    background: linear-gradient(to top,
            rgba(0, 0, 0, 0.9),
            rgba(0, 0, 0, 0));

    z-index: 999;
}

.back-to-top-container {
    display: none;

    #back-to-top {
        background-color: var(--primary-color);
        width: 4rem;
        height: 4rem;
        border-radius: 50%;
        position: fixed;
        right: 3rem;
        bottom: 3rem;
        cursor: pointer;

        display: flex;
        justify-content: center;
        align-items: center;

        opacity: 0;
        pointer-events: none;

        transition:
            opacity .25s ease,
            transform .25s ease,
            background .25s ease;
    }

    #back-to-top.show {
        opacity: 1;
        pointer-events: auto;
    }


    #back-to-top:hover {
        transform: translateY(-1px);
    }

    #back-to-top:active {
        transform: translateY(0);
        box-shadow: inset 0 3px 6px rgba(0, 0, 0, 0.25);
    }
}

/* Animations */
@keyframes pulse {
    0% {
        background-color: #1bd066;
    }

    50% {
        background-color: #054821;
    }

    100% {
        background-color: #1bd066;
    }
}

@keyframes marquee {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-100%);
    }
}

/* Media queries */

/* Tablets and small laptops (480px - 768px) */
@media screen and (min-width: 480px) {
    main {
        padding: 0 6rem;
    }

    nav {
        display: block;
        margin: 0 4rem;
        position: fixed;
        top: 0.5rem;
        left: 0;
        right: 0;
        z-index: 99;

        .navbar {
            padding: 0 2rem;
        }
    }

    #hero-section {
        margin-top: 5rem;
    }
}

/* Tablets and small laptops (769px - 1024px) */
@media screen and (min-width: 768px) {
    main {
        padding: 0 10rem;
    }

    nav {
        margin: 0 8rem;

        .navbar {
            padding: 0 2rem;

            .nav-right {
                display: flex;
                align-items: center;
                justify-content: space-evenly;
                gap: 2rem;
            }
        }
    }

    #hero-section {
        margin-top: 4rem;

        .hero-container {
            gap: 4rem;
        }
    }

    #skill-section {
        .body {
            .track-group {
                padding: 1rem;

                .track {
                    gap: 1.75rem;

                    .items {
                        padding: 1rem;
                        min-width: 80px;

                        .logo {
                            width: 2.5rem;
                            height: 2.5rem;

                            * {
                                width: 100%;
                                height: 100%;
                            }
                        }

                        .skill-name {
                            font-size: var(--font-size-extra-small);
                        }
                    }

                    .items:last-child {
                        padding-right: 1.75rem;
                    }
                }
            }
        }
    }

    #skill-section,
    #experience-section {
        .title-section {
            .title {
                display: flex;
                flex-direction: row;
                gap: 0;
                justify-content: space-between;
                align-items: flex-end;
                margin-bottom: 1rem;

                .left {
                    font-size: var(--font-size-4xl);
                    line-height: 1.11;
                    font-weight: 500;
                }
            }
        }
    }

    #experience-section {
        .item-group {
            .vertical-line {
                display: block;
                position: absolute;
                left: 25px;
                top: 0;
                bottom: 0;
                width: 2px;
                background: linear-gradient(to bottom,
                        transparent,
                        rgba(255, 255, 255, 0.25),
                        transparent);
            }

            .exp-item {
                display: grid;
                grid-template-columns: minmax(60px, 1fr) 6fr;
                gap: 1rem 0;

                .breif-section {
                    display: flex;
                    flex-direction: row;
                    justify-content: space-between;
                    align-items: center;

                    .left-section {
                        .company-title-section {
                            display: flex;
                            justify-content: center;
                            align-items: center;
                            gap: 1rem;
                            font-size: var(--font-size-lg);
                        }

                        .designation {
                            color: var(--dull-color);
                        }
                    }

                    .right-section {
                        text-align: end;
                    }
                }

                .desc-section {
                    grid-column: 2/3;

                    .tools-and-tech {
                        .item-group {
                            margin-top: 0.75rem;

                            .item {
                                font-size: var(--font-size-small);
                            }
                        }
                    }

                    .role-details {
                        ul li {
                            margin-top: 0.5rem;
                        }
                    }
                }
            }
        }
    }

    #contact-section {
        .content-group {
            .contact-right-container {
                .socials-containers {
                    gap: 1rem;
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                }
            }
        }
    }

    footer {
        padding: 4rem 0;
        border-top: 1px solid var(--dull-background-color);

        .container {
            display: flex;
            flex-direction: row;
            align-items: center;
            justify-content: space-between;
        }
    }

    .back-to-top-container {
        display: block;
    }
}

/* Large desktops and high-resolution screens (1025px and up) */
@media screen and (min-width: 1025px) {
    main {
        padding: 0 12rem;
    }

    nav {
        margin: 0 10rem;

        .navbar {
            padding: 0 2rem;

            .nav-right {
                display: flex;
                align-items: center;
                justify-content: space-evenly;
                gap: 2.5rem;
            }
        }
    }

    #hero-section {
        min-height: 100vh;
        padding: 10rem 0;

        .hero-container {
            grid-template-columns: repeat(2, 1fr);

            .hero-left {
                .full-name {
                    font-size: 2.8rem;
                }

                .roles>* {
                    white-space: nowrap;
                }

                .roles {
                    display: flex;
                    flex-direction: row;
                    gap: 0.5rem;

                    .dot {
                        display: block;
                        font-weight: 800;
                    }
                }
            }
        }
    }

    #skill-section,
    #experience-section {
        padding: 10rem 0;
    }

    #experience-section {
        padding: 10rem 0;

        .item-group {
            margin-top: 3rem;

            .vertical-line {
                left: 35px;
            }

            .exp-item {
                .logo-section img {
                    width: 70px;
                    height: 70px;
                }
            }
        }
    }

    #contact-section {
        padding: 10rem 0;

        .content-group {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
    }

    .back-to-top-container {
        #back-to-top {
            right: 4rem;
            bottom: 4rem;
        }
    }
}

/* Extra-large screens (1440px and up) */
@media screen and (min-width: 1440px) {
    main {
        padding: 0 25rem;
    }

    nav {
        margin: 0 21rem;

        .navbar {
            padding: 0 4rem;
        }
    }

    .full-name {
        font-size: 3rem;
    }

    .nav-right {
        display: flex;
        align-items: center;
        justify-content: space-evenly;
        gap: 4rem;
    }

    #skill-section {
        .body {
            .track-group {
                padding: 1.5rem;

                .track {
                    gap: 3rem;

                    .items {
                        padding: 1rem;
                        min-width: 80px;

                        .logo {
                            width: 3rem;
                            height: 3rem;
                        }

                        .skill-name {
                            font-size: var(--font-size-small);
                        }
                    }

                    .items:last-child {
                        padding-right: 3rem;
                    }
                }
            }
        }
    }
}