/* =========================================================
   JL DEVELOPER PORTFOLIO
   BLACK + ELECTRIC BLUE
========================================================= */

:root {
    --background: #02050a;
    --background-secondary: #050a12;

    --card: rgba(6, 14, 26, 0.78);
    --card-solid: #07111f;

    --blue: #008cff;
    --blue-light: #38b6ff;
    --blue-bright: #00a8ff;
    --blue-dark: #0057ff;
    --cyan: #5ed8ff;

    --text: #f5f9ff;
    --text-secondary: #8d9db4;
    --text-dark: #52627a;

    --success: #35d48a;
    --error: #ff667a;

    --border: rgba(56, 182, 255, 0.14);
    --border-bright: rgba(56, 182, 255, 0.42);

    --container: 1180px;

    --transition: 0.3s ease;
}


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

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


html {
    scroll-behavior: smooth;
}


body {
    position: relative;

    background:
        radial-gradient(
            circle at 50% -10%,
            rgba(0, 126, 255, 0.12),
            transparent 35%
        ),
        radial-gradient(
            circle at 10% 65%,
            rgba(0, 88, 255, 0.05),
            transparent 35%
        ),
        var(--background);

    color: var(--text);

    font-family: "Inter", sans-serif;

    line-height: 1.6;

    overflow-x: hidden;
}


body.loading,
body.menu-open {
    overflow: hidden;
}


a {
    color: inherit;
    text-decoration: none;
}


button,
input,
textarea {
    font: inherit;
}


button {
    color: inherit;
}


img {
    display: block;
    max-width: 100%;
}


::selection {
    background: rgba(0, 149, 255, 0.35);
    color: #ffffff;
}


/* =========================================================
   SCROLLBAR
========================================================= */

::-webkit-scrollbar {
    width: 10px;
}


::-webkit-scrollbar-track {
    background: #02050a;
}


::-webkit-scrollbar-thumb {
    background:
        linear-gradient(
            to bottom,
            #074879,
            #008cff
        );

    border-radius: 10px;

    border: 3px solid #02050a;
}


/* =========================================================
   LOADER
========================================================= */

.site-loader {
    position: fixed;

    inset: 0;

    z-index: 10000;

    display: grid;

    place-items: center;

    overflow: hidden;

    background:
        radial-gradient(
            circle at center,
            #06172b,
            #02060c 52%,
            #010306 100%
        );

    transition:
        opacity 0.7s ease,
        visibility 0.7s ease;
}


.site-loader.loader-hidden {
    opacity: 0;
    visibility: hidden;

    pointer-events: none;
}


.loader-grid {
    position: absolute;

    inset: 0;

    background-image:
        linear-gradient(
            rgba(0, 153, 255, 0.045) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(0, 153, 255, 0.045) 1px,
            transparent 1px
        );

    background-size: 45px 45px;

    animation: loaderGrid 10s linear infinite;
}


.loader-orb {
    position: absolute;

    width: 420px;
    height: 420px;

    border-radius: 50%;

    background: rgba(0, 119, 255, 0.18);

    filter: blur(100px);

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


.loader-scanline {
    position: absolute;

    left: 0;

    width: 100%;
    height: 90px;

    background:
        linear-gradient(
            to bottom,
            transparent,
            rgba(0, 166, 255, 0.045),
            transparent
        );

    animation: loaderScan 3s linear infinite;
}


.loader-content {
    position: relative;

    z-index: 3;

    width: min(
        calc(100% - 50px),
        430px
    );

    text-align: center;
}


.loader-logo {
    display: flex;

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

    font-family: "Space Grotesk", sans-serif;

    font-size: clamp(56px, 10vw, 82px);

    font-weight: 700;

    letter-spacing: -5px;
}


.loader-bracket {
    color: var(--blue-light);

    animation: loaderBracket 1.3s ease-in-out infinite;
}


.loader-name {
    padding: 0 8px;
}


.loader-slash {
    color: #168eea;
}


.loader-status {
    margin-top: 18px;

    color: #6e819b;

    font-family: Consolas, monospace;

    font-size: 10px;

    letter-spacing: 3px;
}


.loader-progress {
    width: 100%;
    height: 3px;

    margin-top: 30px;

    overflow: hidden;

    border-radius: 20px;

    background: rgba(255, 255, 255, 0.055);
}


.loader-progress-bar {
    width: 0;
    height: 100%;

    border-radius: inherit;

    background:
        linear-gradient(
            to right,
            #0057ff,
            #00a8ff,
            #62d6ff
        );

    box-shadow: 0 0 18px rgba(0, 153, 255, 0.8);

    transition: width 0.08s linear;
}


.loader-bottom {
    margin-top: 11px;

    display: flex;

    justify-content: space-between;

    color: #3d526a;

    font-family: Consolas, monospace;

    font-size: 8px;

    letter-spacing: 1.4px;
}


/* =========================================================
   GENERAL
========================================================= */

.container {
    width: min(
        calc(100% - 40px),
        var(--container)
    );

    margin-inline: auto;
}


.section {
    position: relative;

    padding: 120px 0;
}


.blue-text {
    color: var(--blue-light);
}


.gradient-text {
    background:
        linear-gradient(
            110deg,
            #ffffff 5%,
            #7dd1ff 42%,
            #008cff 75%,
            #5ed8ff
        );

    background-size: 200% auto;

    background-clip: text;
    -webkit-background-clip: text;

    color: transparent;

    animation: gradientMove 6s linear infinite;
}


/* =========================================================
   BACKGROUND
========================================================= */

.background {
    position: fixed;

    inset: 0;

    overflow: hidden;

    z-index: -10;

    pointer-events: none;
}


.grid {
    position: absolute;

    inset: 0;

    background-image:
        linear-gradient(
            rgba(0, 132, 255, 0.04) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(0, 132, 255, 0.04) 1px,
            transparent 1px
        );

    background-size: 55px 55px;

    animation: gridMove 18s linear infinite;
}


.orb {
    position: absolute;

    border-radius: 50%;

    filter: blur(110px);

    opacity: 0.28;

    animation: orbFloat 12s ease-in-out infinite;
}


.orb-one {
    width: 540px;
    height: 540px;

    background: #006eff;

    top: -330px;
    left: 12%;
}


.orb-two {
    width: 500px;
    height: 500px;

    background: #001aff;

    top: 45%;
    right: -320px;
}


.orb-three {
    width: 430px;
    height: 430px;

    background: #00a2ff;

    bottom: -280px;
    left: -250px;
}


#cursorGlow {
    position: absolute;

    width: 500px;
    height: 500px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(0, 142, 255, 0.1),
            transparent 70%
        );

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

    opacity: 0;

    pointer-events: none;
}


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

.header {
    position: fixed;

    top: 0;
    left: 0;
    right: 0;

    z-index: 1000;

    border-bottom: 1px solid transparent;

    transition: 0.35s ease;
}


.header.scrolled {
    background: rgba(2, 6, 12, 0.9);

    backdrop-filter: blur(22px);

    border-color: rgba(56, 182, 255, 0.09);
}


.navbar {
    min-height: 82px;

    display: flex;

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

    gap: 28px;
}


.logo {
    font-family: "Space Grotesk", sans-serif;

    font-size: 24px;

    font-weight: 700;
}


.logo-symbol {
    color: var(--blue-light);
}


.nav-links {
    margin-left: auto;

    display: flex;

    align-items: center;

    gap: 25px;
}


.nav-link {
    position: relative;

    color: var(--text-secondary);

    font-size: 13px;

    transition: var(--transition);
}


.nav-link::after {
    content: "";

    position: absolute;

    bottom: -11px;
    left: 50%;

    width: 0;
    height: 2px;

    background: var(--blue-light);

    transform: translateX(-50%);

    box-shadow: 0 0 12px var(--blue);

    transition: var(--transition);
}


.nav-link:hover,
.nav-link.active {
    color: #ffffff;
}


.nav-link:hover::after,
.nav-link.active::after {
    width: 135%;
}


.github-nav {
    display: flex;

    gap: 8px;

    align-items: center;

    padding: 10px 17px;

    border: 1px solid var(--border-bright);

    border-radius: 10px;

    color: #d9edff;

    font-size: 13px;

    background: rgba(0, 139, 255, 0.04);

    transition: var(--transition);
}


.github-nav:hover {
    transform: translateY(-2px);

    background: rgba(0, 132, 255, 0.11);
}


.menu-button {
    width: 42px;
    height: 42px;

    display: none;

    flex-direction: column;

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

    gap: 5px;

    border: 1px solid var(--border);

    border-radius: 8px;

    background: rgba(4, 10, 19, 0.7);

    cursor: pointer;
}


.menu-button span {
    width: 18px;
    height: 2px;

    background: #ffffff;
}


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

.hero {
    min-height: 100vh;

    padding-top: 150px;
    padding-bottom: 80px;

    display: flex;

    align-items: center;
}


.hero-container {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(420px, 0.82fr);

    gap: 90px;

    align-items: center;
}


.availability {
    width: fit-content;

    display: flex;

    align-items: center;

    gap: 10px;

    margin-bottom: 28px;

    padding: 8px 14px;

    border: 1px solid rgba(0, 149, 255, 0.24);

    border-radius: 50px;

    color: #9cd4ff;

    font-size: 11px;

    letter-spacing: 1.3px;
}


.availability-dot {
    width: 7px;
    height: 7px;

    border-radius: 50%;

    background: #00b7ff;

    box-shadow: 0 0 9px #00a6ff;

    animation: pulse 2s infinite;
}


.hero-intro {
    color: var(--text-secondary);

    font-size: 17px;
}


.hero-title {
    font-family: "Space Grotesk", sans-serif;

    font-size: clamp(68px, 8vw, 105px);

    line-height: 0.92;

    letter-spacing: -6px;

    margin-bottom: 30px;
}


.hero-title span {
    display: block;
}


.typing-row {
    min-height: 44px;

    display: flex;

    align-items: center;

    gap: 8px;

    margin-bottom: 25px;

    font-size: clamp(20px, 2vw, 27px);

    font-family: "Space Grotesk", sans-serif;
}


.typing-prefix {
    color: var(--text-secondary);
}


.typing-text {
    color: var(--blue-light);

    font-weight: 600;
}


.typing-cursor {
    width: 2px;
    height: 26px;

    background: var(--blue-light);

    animation: blink 0.8s infinite;
}


.hero-description {
    max-width: 590px;

    color: var(--text-secondary);

    font-size: 17px;

    line-height: 1.8;
}


.hero-buttons {
    margin-top: 35px;

    display: flex;

    gap: 13px;

    flex-wrap: wrap;
}


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

.button {
    min-height: 51px;

    display: inline-flex;

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

    gap: 13px;

    padding: 0 23px;

    border: 0;

    border-radius: 9px;

    font-size: 14px;

    font-weight: 600;

    cursor: pointer;

    transition: 0.3s ease;
}


.button-primary {
    color: #ffffff;

    background:
        linear-gradient(
            120deg,
            #005bd7,
            #008cff 55%,
            #00a8ff
        );

    border: 1px solid rgba(99, 193, 255, 0.45);

    box-shadow: 0 12px 35px rgba(0, 116, 255, 0.2);
}


.button-primary:hover:not(:disabled),
.button-secondary:hover:not(:disabled) {
    transform: translateY(-3px);
}


.button-primary:disabled {
    opacity: 0.65;

    cursor: not-allowed;
}


.button-secondary {
    color: #c5d5ea;

    border: 1px solid rgba(255, 255, 255, 0.1);

    background: rgba(255, 255, 255, 0.025);
}


.button-arrow {
    font-size: 18px;
}


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

.hero-socials {
    margin-top: 55px;

    display: flex;

    align-items: center;

    gap: 15px;

    color: var(--text-dark);

    font-size: 12px;
}


.social-line {
    width: 50px;
    height: 1px;

    background: rgba(56, 182, 255, 0.4);
}


/* =========================================================
   CODE WINDOW
========================================================= */

.hero-visual {
    position: relative;

    animation: heroFloat 5.5s ease-in-out infinite;
}


.code-window {
    overflow: hidden;

    background:
        linear-gradient(
            145deg,
            rgba(7, 16, 30, 0.98),
            rgba(2, 7, 15, 0.98)
        );

    border: 1px solid rgba(74, 164, 255, 0.25);

    border-radius: 16px;

    box-shadow:
        0 35px 100px rgba(0, 0, 0, 0.6),
        0 0 70px rgba(0, 116, 255, 0.11);
}


.code-header {
    height: 47px;

    display: grid;

    grid-template-columns: 1fr auto 1fr;

    align-items: center;

    padding: 0 16px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}


.window-buttons {
    display: flex;

    gap: 7px;
}


.window-buttons span {
    width: 9px;
    height: 9px;

    border-radius: 50%;
}


.window-buttons span:nth-child(1) {
    background: #ff5a67;
}


.window-buttons span:nth-child(2) {
    background: #f7c348;
}


.window-buttons span:nth-child(3) {
    background: #31c877;
}


.file-name {
    color: #7d8ea4;

    font-size: 11px;
}


.code-body {
    padding: 24px 20px;

    font-family: Consolas, monospace;

    font-size: 12.5px;

    line-height: 2;
}


.code-line {
    white-space: nowrap;

    color: #8c9caf;
}


.line-number {
    width: 30px;

    display: inline-block;

    margin-right: 12px;

    color: #364458;
}


.code-indent {
    display: inline-block;

    width: 18px;
}


.code-double-indent {
    display: inline-block;

    width: 37px;
}


.code-purple {
    color: #d787ff;
}


.code-blue {
    color: #52b6ff;
}


.code-green {
    color: #91d08b;
}


.code-orange {
    color: #ff966a;
}


.terminal-line {
    min-height: 45px;

    padding: 0 18px;

    display: flex;

    align-items: center;

    gap: 8px;

    color: #718198;

    border-top: 1px solid rgba(255, 255, 255, 0.06);
}


.terminal-arrow {
    color: var(--blue-light);
}


.terminal-cursor {
    width: 5px;
    height: 12px;

    background: #8fa4bc;

    animation: blink 1s infinite;
}


.scroll-indicator {
    position: absolute;

    bottom: 25px;
    left: 50%;

    transform: translateX(-50%);

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 8px;

    color: #4f647d;

    font-size: 8px;

    letter-spacing: 3px;
}


.scroll-line {
    width: 1px;
    height: 35px;

    background:
        linear-gradient(
            to bottom,
            var(--blue-light),
            transparent
        );
}


/* =========================================================
   TECH MARQUEE
========================================================= */

.tech-stack-section {
    padding: 35px 0 48px;

    overflow: hidden;

    border-top: 1px solid rgba(56, 182, 255, 0.07);

    border-bottom: 1px solid rgba(56, 182, 255, 0.07);
}


.tech-stack-label {
    margin: 0 auto 27px;

    display: flex;

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

    gap: 18px;

    color: #526b85;

    font-size: 9px;

    letter-spacing: 2.5px;
}


.tech-label-line {
    width: 65px;
    height: 1px;

    background: rgba(56, 182, 255, 0.45);
}


.tech-marquee {
    position: relative;

    overflow: hidden;
}


.tech-marquee-track {
    display: flex;

    width: max-content;

    gap: 18px;

    animation: techMarquee 32s linear infinite;
}


.tech-marquee:hover .tech-marquee-track {
    animation-play-state: paused;
}


.tech-item {
    min-width: 170px;
    height: 68px;

    display: flex;

    align-items: center;

    gap: 13px;

    padding: 0 19px;

    border: 1px solid rgba(56, 182, 255, 0.12);

    border-radius: 12px;

    background: rgba(7, 17, 31, 0.82);

    color: #9cacbf;
}


.tech-icon {
    width: 38px;
    height: 38px;

    display: grid;

    place-items: center;

    border: 1px solid rgba(56, 182, 255, 0.28);

    border-radius: 9px;

    color: var(--blue-light);

    font-size: 10px;
}


.tech-marquee-fade {
    position: absolute;

    top: 0;
    bottom: 0;

    width: 120px;

    z-index: 5;

    pointer-events: none;
}


.tech-marquee-fade-left {
    left: 0;

    background:
        linear-gradient(
            to right,
            #02050a,
            transparent
        );
}


.tech-marquee-fade-right {
    right: 0;

    background:
        linear-gradient(
            to left,
            #02050a,
            transparent
        );
}


/* =========================================================
   HEADINGS
========================================================= */

.section-heading {
    display: flex;

    align-items: center;

    gap: 14px;

    margin-bottom: 15px;
}


.section-number {
    color: var(--blue-light);
}


.section-heading h2 {
    font-family: "Space Grotesk", sans-serif;

    font-size: clamp(32px, 5vw, 46px);
}


.heading-line {
    height: 1px;

    flex: 1;

    max-width: 190px;

    background: rgba(56, 182, 255, 0.4);
}


.section-description {
    max-width: 680px;

    color: var(--text-secondary);

    margin-bottom: 55px;
}


/* =========================================================
   ABOUT
========================================================= */

.about-grid {
    margin-top: 50px;

    display: grid;

    grid-template-columns: 1.2fr 0.8fr;

    gap: 100px;

    align-items: center;
}


.about-large {
    font-size: clamp(27px, 3vw, 36px);

    font-weight: 600;

    margin-bottom: 30px;
}


.about-text > p:not(.about-large) {
    color: var(--text-secondary);

    margin-bottom: 18px;
}


.about-stats {
    margin-top: 45px;

    display: grid;

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

    gap: 12px;
}


.stat-card {
    padding: 18px;

    border: 1px solid var(--border);

    border-radius: 11px;

    background: rgba(5, 13, 24, 0.55);
}


.stat-card strong {
    display: block;

    font-size: 26px;
}


.stat-card strong::after {
    content: "+";

    color: var(--blue);
}


#githubRepoCount::after {
    content: "";
}


.stat-card span {
    color: var(--text-dark);

    font-size: 11px;
}


/* =========================================================
   GITHUB PROFILE
========================================================= */

.about-card {
    position: relative;

    overflow: hidden;

    padding: 30px;

    border: 1px solid var(--border);

    border-radius: 17px;

    background: rgba(5, 14, 26, 0.85);
}


.about-card-glow {
    position: absolute;

    width: 220px;
    height: 220px;

    right: -100px;
    top: -100px;

    border-radius: 50%;

    background: rgba(0, 130, 255, 0.13);

    filter: blur(60px);
}


.github-profile-top {
    position: relative;

    display: flex;

    align-items: center;

    gap: 18px;

    padding-bottom: 24px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}


.github-avatar-wrapper {
    position: relative;

    width: 86px;
    height: 86px;
}


.github-avatar {
    width: 86px;
    height: 86px;

    object-fit: cover;

    border-radius: 18px;

    border: 1px solid rgba(74, 177, 255, 0.5);
}


.github-online-dot {
    position: absolute;

    right: -3px;
    bottom: -3px;

    width: 15px;
    height: 15px;

    border: 3px solid #07111f;

    border-radius: 50%;

    background: #00a6ff;
}


.small-label {
    color: var(--blue-light);

    font-size: 10px;
}


.github-profile-identity h3 {
    margin-top: 5px;

    font-size: 25px;
}


.github-username {
    color: #6cbcff;

    font-size: 12px;
}


.github-bio {
    position: relative;

    margin-top: 24px;

    color: var(--text-secondary);

    font-size: 13px;
}


.github-profile-stats {
    position: relative;

    display: grid;

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

    gap: 9px;

    margin-top: 24px;
}


.github-stat {
    padding: 14px;

    text-align: center;

    border: 1px solid var(--border);

    border-radius: 10px;
}


.github-stat strong {
    display: block;

    font-size: 22px;
}


.github-stat span {
    font-size: 8px;

    color: #5f748d;
}


.github-profile-button {
    position: relative;

    width: 100%;

    margin-top: 24px;
}


/* =========================================================
   SKILLS
========================================================= */

.skills-grid {
    display: grid;

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

    gap: 16px;
}


.skill-card {
    padding: 26px;

    border: 1px solid var(--border);

    border-radius: 13px;

    background: rgba(6, 14, 26, 0.7);

    transition: var(--transition);
}


.skill-card:hover {
    transform: translateY(-5px);

    border-color: var(--border-bright);
}


.skill-icon {
    width: 50px;
    height: 50px;

    display: grid;

    place-items: center;

    margin-bottom: 22px;

    border: 1px solid rgba(72, 171, 255, 0.3);

    border-radius: 10px;

    color: var(--blue-light);
}


.skill-card p {
    color: var(--text-secondary);
}


.skill-level {
    margin-top: 22px;

    height: 3px;

    background: rgba(255, 255, 255, 0.055);
}


.skill-level span {
    display: block;

    height: 100%;

    background:
        linear-gradient(
            to right,
            #0057ff,
            #22adff
        );
}


/* =========================================================
   ACTIVITY
========================================================= */

.activity-terminal {
    overflow: hidden;

    border: 1px solid rgba(56, 182, 255, 0.19);

    border-radius: 17px;

    background: rgba(3, 10, 19, 0.95);
}


.activity-terminal-header,
.activity-profile-row,
.activity-terminal-footer {
    min-height: 55px;

    padding: 0 24px;

    display: flex;

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

    gap: 20px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}


.activity-terminal-left,
.activity-window-buttons,
.activity-live-badge {
    display: flex;

    align-items: center;

    gap: 7px;
}


.activity-window-buttons span {
    width: 9px;
    height: 9px;

    border-radius: 50%;
}


.activity-window-buttons span:nth-child(1) {
    background: #ff5a67;
}


.activity-window-buttons span:nth-child(2) {
    background: #f7c348;
}


.activity-window-buttons span:nth-child(3) {
    background: #31c877;
}


.activity-terminal-title,
.activity-profile-row,
.activity-detail,
.activity-time,
.activity-sync-time {
    color: #64758c;

    font-family: Consolas, monospace;

    font-size: 10px;
}


.activity-live-badge {
    padding: 5px 10px;

    border: 1px solid rgba(0, 170, 255, 0.22);

    border-radius: 50px;

    color: #78cfff;
}


.activity-live-dot {
    width: 6px;
    height: 6px;

    border-radius: 50%;

    background: #00aaff;
}


.activity-command,
.activity-user {
    color: var(--blue-light);
}


.activity-loading {
    padding: 45px 24px;

    text-align: center;

    color: #64758c;
}


.activity-item {
    display: grid;

    grid-template-columns: 76px 1fr auto;

    gap: 20px;

    align-items: center;

    padding: 24px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}


.activity-type {
    padding: 6px 7px;

    text-align: center;

    border: 1px solid rgba(56, 182, 255, 0.2);

    border-radius: 6px;

    color: var(--blue-light);

    font-size: 9px;
}


.activity-title {
    font-size: 15px;

    font-weight: 600;
}


.activity-terminal-footer {
    border-bottom: 0;
}


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

.projects-grid {
    display: grid;

    gap: 30px;
}


.project-card {
    display: grid;

    grid-template-columns: 0.85fr 1.15fr;

    min-height: 350px;

    overflow: hidden;

    border: 1px solid var(--border);

    border-radius: 16px;

    background: rgba(3, 9, 18, 0.65);

    transition: var(--transition);
}


.project-card:hover {
    transform: translateY(-4px);

    border-color: var(--border-bright);
}


.project-image {
    display: grid;

    place-items: center;

    padding: 40px;

    background: rgba(0, 96, 255, 0.09);
}


.project-screen {
    width: 100%;
    max-width: 300px;

    aspect-ratio: 1.45;

    display: flex;

    flex-direction: column;

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

    border: 1px solid rgba(64, 173, 255, 0.34);

    border-radius: 10px;

    overflow: hidden;
}


.project-screen strong {
    max-width: 88%;

    overflow: hidden;

    white-space: nowrap;

    text-overflow: ellipsis;
}


.screen-small {
    color: #53657a;

    font-size: 8px;
}


.screen-blue {
    color: var(--blue-light);

    font-size: 36px;

    font-weight: 700;
}


.project-content {
    padding: 38px;

    display: flex;

    flex-direction: column;

    justify-content: center;
}


.project-top,
.project-tech,
.project-links {
    display: flex;

    gap: 12px;

    flex-wrap: wrap;
}


.project-top {
    justify-content: space-between;
}


.project-type {
    color: var(--blue-light);

    font-size: 9px;
}


.project-content h3 {
    margin: 12px 0;

    font-family: "Space Grotesk", sans-serif;

    font-size: 27px;
}


.project-content p {
    color: var(--text-secondary);
}


.project-tech {
    margin-top: 22px;
}


.project-tech span {
    padding: 5px 9px;

    border: 1px solid var(--border);

    border-radius: 5px;

    font-size: 9px;

    color: #7fa2c5;
}


.project-links {
    margin-top: 25px;
}


.project-link {
    color: #a9bfd6;

    font-size: 12px;
}


.project-link:hover {
    color: var(--blue-light);
}


.projects-view-all {
    margin-top: 40px;

    display: flex;

    justify-content: center;
}


/* =========================================================
   CONTACT
========================================================= */

.contact-section {
    position: relative;

    padding-bottom: 160px;

    background:
        radial-gradient(
            circle at 75% 65%,
            rgba(0, 109, 255, 0.06),
            transparent 30%
        );
}


.contact-layout {
    display: grid;

    grid-template-columns: 0.85fr 1.15fr;

    gap: 70px;

    align-items: center;
}


.contact-info {
    max-width: 470px;
}


.contact-eyebrow {
    color: var(--blue-light);

    font-family: Consolas, monospace;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 2.5px;
}


.contact-info h3 {
    margin: 17px 0 22px;

    font-family: "Space Grotesk", sans-serif;

    font-size: clamp(36px, 5vw, 54px);

    line-height: 1.05;

    letter-spacing: -2.5px;
}


.contact-info p {
    color: var(--text-secondary);

    line-height: 1.8;
}


.contact-info-list {
    margin-top: 40px;

    display: grid;

    gap: 13px;
}


.contact-info-item {
    padding: 14px;

    display: flex;

    align-items: center;

    gap: 14px;

    border: 1px solid var(--border);

    border-radius: 11px;

    background: rgba(5, 13, 24, 0.55);

    transition: var(--transition);
}


.contact-info-item:hover {
    transform: translateX(4px);

    border-color: rgba(56, 182, 255, 0.32);
}


.contact-info-icon {
    width: 43px;
    height: 43px;

    flex: 0 0 auto;

    display: grid;

    place-items: center;

    border: 1px solid rgba(56, 182, 255, 0.22);

    border-radius: 9px;

    background: rgba(0, 132, 255, 0.06);

    color: var(--blue-light);

    font-family: Consolas, monospace;

    font-size: 10px;

    font-weight: 700;
}


.status-icon {
    color: var(--success);

    font-size: 12px;
}


.contact-info-item div:last-child {
    min-width: 0;
}


.contact-info-item span {
    display: block;

    margin-bottom: 3px;

    color: #52667d;

    font-size: 9px;

    text-transform: uppercase;

    letter-spacing: 1.2px;
}


.contact-info-item a,
.contact-info-item strong {
    display: block;

    color: #c2d4e5;

    font-size: 12px;

    font-weight: 500;

    overflow-wrap: anywhere;
}


.contact-info-item a:hover {
    color: var(--blue-light);
}


.available-text {
    color: #8de5b8 !important;
}


/* =========================================================
   CONTACT FORM CARD
========================================================= */

.contact-form-card {
    position: relative;

    overflow: hidden;

    padding: 34px;

    border: 1px solid rgba(56, 182, 255, 0.18);

    border-radius: 18px;

    background:
        linear-gradient(
            145deg,
            rgba(7, 17, 31, 0.94),
            rgba(2, 7, 14, 0.95)
        );

    box-shadow:
        0 35px 90px rgba(0, 0, 0, 0.3),
        0 0 60px rgba(0, 117, 255, 0.05);
}


.contact-form-card::before {
    content: "";

    position: absolute;

    inset: 0;

    background-image:
        linear-gradient(
            rgba(0, 132, 255, 0.025) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(0, 132, 255, 0.025) 1px,
            transparent 1px
        );

    background-size: 32px 32px;

    pointer-events: none;
}


.contact-form-glow {
    position: absolute;

    width: 260px;
    height: 260px;

    top: -150px;
    right: -100px;

    border-radius: 50%;

    background: rgba(0, 133, 255, 0.17);

    filter: blur(75px);

    pointer-events: none;
}


.contact-form-header {
    position: relative;

    z-index: 2;

    display: flex;

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

    gap: 20px;

    margin-bottom: 30px;

    padding-bottom: 23px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}


.contact-form-label {
    color: var(--blue-light);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 2px;
}


.contact-form-header h3 {
    margin-top: 4px;

    font-family: "Space Grotesk", sans-serif;

    font-size: 24px;
}


.contact-form-status-dot {
    display: flex;

    align-items: center;

    gap: 7px;

    padding: 5px 9px;

    border: 1px solid rgba(53, 212, 138, 0.18);

    border-radius: 30px;

    color: #6fcca0;

    font-size: 8px;

    font-weight: 700;

    letter-spacing: 1px;
}


.contact-form-status-dot span {
    width: 6px;
    height: 6px;

    border-radius: 50%;

    background: var(--success);

    box-shadow: 0 0 8px rgba(53, 212, 138, 0.7);
}


.contact-form {
    position: relative;

    z-index: 2;
}


.form-row {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 16px;
}


.form-group {
    position: relative;

    margin-bottom: 17px;
}


.form-group label {
    display: block;

    margin-bottom: 8px;

    color: #8195ac;

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 0.7px;

    text-transform: uppercase;
}


.form-group input,
.form-group textarea {
    width: 100%;

    border: 1px solid rgba(255, 255, 255, 0.08);

    outline: none;

    border-radius: 9px;

    background: rgba(1, 6, 13, 0.74);

    color: #edf7ff;

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


.form-group input {
    height: 50px;

    padding: 0 15px;
}


.form-group textarea {
    min-height: 155px;

    padding: 14px 15px 32px;

    line-height: 1.65;

    resize: vertical;
}


.form-group input::placeholder,
.form-group textarea::placeholder {
    color: #405167;
}


.form-group input:focus,
.form-group textarea:focus {
    border-color: rgba(56, 182, 255, 0.5);

    background: rgba(2, 10, 20, 0.86);

    box-shadow:
        0 0 0 3px rgba(0, 139, 255, 0.055),
        0 0 25px rgba(0, 123, 255, 0.04);
}


.form-group input:user-invalid,
.form-group textarea:user-invalid {
    border-color: rgba(255, 102, 122, 0.4);
}


.message-counter {
    position: absolute;

    right: 12px;
    bottom: 9px;

    color: #40536a;

    font-family: Consolas, monospace;

    font-size: 8px;
}


.form-honeypot {
    position: absolute !important;

    width: 1px !important;
    height: 1px !important;

    overflow: hidden !important;

    clip: rect(0, 0, 0, 0) !important;

    white-space: nowrap !important;
}


.form-response {
    display: none;

    margin-bottom: 16px;

    padding: 12px 14px;

    border-radius: 8px;

    font-size: 12px;

    line-height: 1.6;
}


.form-response.visible {
    display: block;
}


.form-response.success {
    color: #9ce4be;

    border: 1px solid rgba(53, 212, 138, 0.2);

    background: rgba(53, 212, 138, 0.055);
}


.form-response.error {
    color: #ff9ba8;

    border: 1px solid rgba(255, 102, 122, 0.2);

    background: rgba(255, 102, 122, 0.055);
}


.contact-submit {
    width: 100%;

    min-height: 53px;
}


.submit-spinner {
    width: 16px;
    height: 16px;

    display: none;

    border: 2px solid rgba(255, 255, 255, 0.32);

    border-top-color: #ffffff;

    border-radius: 50%;

    animation: formSpin 0.7s linear infinite;
}


.contact-submit.sending .submit-spinner {
    display: block;
}


.contact-submit.sending .submit-arrow {
    display: none;
}


.contact-privacy {
    margin-top: 13px;

    text-align: center;

    color: #3e5065;

    font-size: 9px;
}


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

.footer {
    border-top: 1px solid rgba(255, 255, 255, 0.055);
}


.footer-container {
    min-height: 95px;

    display: flex;

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

    gap: 20px;
}


.footer-logo {
    color: var(--blue-light);
}


.footer p {
    color: #536176;

    font-size: 11px;
}


.footer p span {
    color: #278eff;
}


.back-top {
    width: 39px;
    height: 39px;

    border: 1px solid var(--border);

    border-radius: 8px;

    background: rgba(7, 14, 26, 0.8);

    color: var(--text-secondary);

    cursor: pointer;
}


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

.reveal {
    opacity: 0;

    transform: translateY(35px);

    transition:
        opacity 0.8s ease,
        transform 0.8s ease;
}


.reveal.visible {
    opacity: 1;

    transform: translateY(0);
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes loaderGrid {
    from {
        background-position:
            0 0,
            0 0;
    }

    to {
        background-position:
            45px 45px,
            45px 45px;
    }
}


@keyframes loaderOrb {
    0%,
    100% {
        opacity: 0.5;
        transform: scale(0.9);
    }

    50% {
        opacity: 1;
        transform: scale(1.1);
    }
}


@keyframes loaderBracket {
    0%,
    100% {
        opacity: 0.55;
    }

    50% {
        opacity: 1;
        text-shadow: 0 0 20px #00a8ff;
    }
}


@keyframes loaderScan {
    from {
        top: -100px;
    }

    to {
        top: calc(100% + 100px);
    }
}


@keyframes pulse {
    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.45;
    }
}


@keyframes blink {
    0%,
    45% {
        opacity: 1;
    }

    46%,
    100% {
        opacity: 0;
    }
}


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

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


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

    to {
        transform: translateX(calc(-50% - 9px));
    }
}


@keyframes gridMove {
    from {
        background-position:
            0 0,
            0 0;
    }

    to {
        background-position:
            55px 55px,
            55px 55px;
    }
}


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

    50% {
        transform: translateY(35px);
    }
}


@keyframes gradientMove {
    from {
        background-position: 0% center;
    }

    to {
        background-position: 200% center;
    }
}


@keyframes formSpin {
    to {
        transform: rotate(360deg);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 980px) {

    .hero-container,
    .about-grid,
    .contact-layout {
        grid-template-columns: 1fr;
    }


    .contact-info {
        max-width: 650px;
    }


    .skills-grid {
        grid-template-columns: repeat(2, 1fr);
    }


    .project-card {
        grid-template-columns: 1fr;
    }

}


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

@media (max-width: 760px) {

    .section {
        padding: 90px 0;
    }


    .navbar {
        min-height: 70px;
    }


    .github-nav {
        display: none;
    }


    .menu-button {
        display: flex;

        margin-left: auto;
    }


    .nav-links {
        position: fixed;

        top: 70px;
        left: 15px;
        right: 15px;

        margin: 0;

        padding: 22px;

        flex-direction: column;

        align-items: stretch;

        background: rgba(3, 8, 16, 0.97);

        border: 1px solid var(--border);

        border-radius: 13px;

        opacity: 0;

        visibility: hidden;

        transform: translateY(-10px);

        transition: var(--transition);
    }


    .nav-links.open {
        opacity: 1;

        visibility: visible;

        transform: translateY(0);
    }


    .nav-link {
        padding: 10px;
    }


    .nav-link::after {
        display: none;
    }


    .hero {
        padding-top: 120px;
    }


    .hero-title {
        font-size: clamp(60px, 20vw, 82px);
    }


    .scroll-indicator {
        display: none;
    }


    .about-stats,
    .skills-grid {
        grid-template-columns: 1fr;
    }


    .activity-profile-row {
        align-items: flex-start;

        flex-direction: column;

        justify-content: center;

        padding: 15px 20px;
    }


    .activity-item {
        grid-template-columns: 1fr;

        gap: 10px;
    }


    .form-row {
        grid-template-columns: 1fr;

        gap: 0;
    }


    .contact-layout {
        gap: 45px;
    }


    .contact-form-card {
        padding: 25px;
    }


    .footer-container {
        padding: 25px 0;

        flex-direction: column;
    }

}


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

@media (max-width: 450px) {

    .container {
        width: calc(100% - 28px);
    }


    .hero-title {
        font-size: 57px;
    }


    .hero-buttons {
        flex-direction: column;
    }


    .button {
        width: 100%;
    }


    .github-profile-stats {
        grid-template-columns: 1fr;
    }


    .loader-logo {
        font-size: 55px;
    }


    .contact-form-header {
        align-items: flex-start;

        flex-direction: column;
    }


    .tech-marquee-fade {
        width: 50px;
    }

}


/* =========================================================
   MOBILE POLISH + TOUCH OPTIMIZATION
========================================================= */

@media (max-width: 760px) {

    html {
        scroll-padding-top: 70px;
    }


    .container {
        width: min(
            calc(100% - 32px),
            var(--container)
        );
    }


    .section {
        padding: 74px 0;
    }


    .header {
        background: rgba(2, 6, 12, 0.94);

        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);

        border-bottom-color: rgba(56, 182, 255, 0.07);
    }


    .navbar {
        min-height: 70px;

        gap: 16px;
    }


    .logo {
        font-size: 22px;
    }


    .menu-button {
        width: 46px;
        height: 46px;

        border-radius: 10px;
    }


    .menu-button span {
        width: 20px;
    }


    .nav-links {
        top: 82px;

        left: 16px;
        right: 16px;

        max-height: calc(100dvh - 100px);

        overflow-y: auto;

        padding: 16px;

        border-radius: 14px;

        box-shadow:
            0 25px 70px rgba(0, 0, 0, 0.45);
    }


    .nav-link {
        min-height: 46px;

        display: flex;

        align-items: center;

        padding: 0 13px;

        border-radius: 8px;
    }


    .nav-link:hover,
    .nav-link.active {
        background: rgba(56, 182, 255, 0.055);
    }


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

    .hero {
        min-height: auto;

        padding-top: 125px;
        padding-bottom: 72px;

        align-items: flex-start;
    }


    .hero-container {
        gap: 42px;
    }


    .availability {
        margin-bottom: 34px;

        padding: 9px 13px;

        font-size: 10.5px;

        letter-spacing: 1.1px;
    }


    .hero-intro {
        margin-bottom: 4px;

        font-size: 16px;
    }


    .hero-title {
        margin-bottom: 28px;

        font-size: clamp(52px, 16vw, 68px);

        line-height: 0.96;

        letter-spacing: -4px;
    }


    .typing-row {
        min-height: 34px;

        margin-bottom: 22px;

        gap: 7px;

        flex-wrap: wrap;

        font-size: 20px;

        line-height: 1.4;
    }


    .typing-cursor {
        height: 22px;
    }


    .hero-description {
        max-width: 100%;

        font-size: 15.5px;

        line-height: 1.75;
    }


    .hero-buttons {
        margin-top: 30px;

        gap: 10px;
    }


    .button {
        min-height: 54px;
    }


    .hero-socials {
        margin-top: 36px;
    }


    /*
       Hide the decorative desktop code editor on phones.
       This greatly reduces hero height and improves speed.
    */

    .hero-visual {
        display: none;
    }


    /* =====================================================
       TECH MARQUEE
    ====================================================== */

    .tech-stack-section {
        padding: 28px 0 34px;
    }


    .tech-stack-label {
        margin-bottom: 22px;

        gap: 10px;

        padding: 0 16px;

        text-align: center;

        letter-spacing: 1.8px;
    }


    .tech-label-line {
        width: 34px;

        flex: 0 0 34px;
    }


    .tech-marquee-track {
        gap: 12px;

        animation-duration: 38s;
    }


    .tech-item {
        min-width: 148px;
        height: 60px;

        gap: 10px;

        padding: 0 15px;
    }


    .tech-icon {
        width: 34px;
        height: 34px;
    }


    .tech-marquee-fade {
        width: 42px;
    }


    /* =====================================================
       SECTION HEADERS
    ====================================================== */

    .section-heading {
        gap: 10px;

        margin-bottom: 18px;
    }


    .section-number {
        flex: 0 0 auto;

        font-size: 14px;
    }


    .section-heading h2 {
        flex: 0 1 auto;

        font-size: clamp(30px, 9vw, 36px);

        line-height: 1.12;

        white-space: nowrap;
    }


    .heading-line {
        min-width: 20px;

        max-width: 100px;
    }


    .section-description {
        margin-bottom: 38px;

        font-size: 15px;

        line-height: 1.7;
    }


    /* =====================================================
       ABOUT
    ====================================================== */

    .about-grid {
        margin-top: 34px;

        gap: 42px;
    }


    .about-large {
        margin-bottom: 24px;

        font-size: 29px;

        line-height: 1.35;
    }


    .about-text > p:not(.about-large) {
        margin-bottom: 17px;

        font-size: 15px;

        line-height: 1.75;
    }


    /*
       Instead of huge stacked stat cards,
       keep the three stats compact in one row.
    */

    .about-stats {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));

        gap: 8px;

        margin-top: 32px;
    }


    .stat-card {
        min-width: 0;

        padding: 14px 9px;

        text-align: center;
    }


    .stat-card strong {
        font-size: 22px;
    }


    .stat-card span {
        display: block;

        font-size: 8px;

        line-height: 1.35;
    }


    /* =====================================================
       GITHUB PROFILE
    ====================================================== */

    .about-card {
        padding: 22px;

        border-radius: 14px;
    }


    .github-profile-top {
        gap: 13px;

        padding-bottom: 18px;
    }


    .github-avatar-wrapper,
    .github-avatar {
        width: 64px;
        height: 64px;
    }


    .github-avatar {
        border-radius: 14px;
    }


    .github-profile-identity {
        min-width: 0;
    }


    .github-profile-identity h3 {
        font-size: 21px;
    }


    .github-username {
        display: block;

        max-width: 100%;

        overflow: hidden;

        text-overflow: ellipsis;

        white-space: nowrap;
    }


    .github-bio {
        margin-top: 19px;

        line-height: 1.7;
    }


    .github-profile-stats {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));

        gap: 7px;

        margin-top: 19px;
    }


    .github-stat {
        min-width: 0;

        padding: 11px 5px;
    }


    .github-stat strong {
        font-size: 19px;
    }


    .github-stat span {
        display: block;

        overflow: hidden;

        font-size: 7px;

        text-overflow: ellipsis;
    }


    .github-profile-button {
        margin-top: 19px;
    }


    /* =====================================================
       SKILLS
    ====================================================== */

    .skills-grid {
        gap: 14px;
    }


    .skill-card {
        padding: 22px;

        border-radius: 13px;
    }


    .skill-icon {
        width: 46px;
        height: 46px;

        margin-bottom: 17px;
    }


    .skill-card h3 {
        font-size: 21px;
    }


    .skill-card p {
        margin-top: 4px;

        font-size: 14.5px;

        line-height: 1.65;
    }


    .skill-level {
        margin-top: 18px;
    }


    /* =====================================================
       GITHUB ACTIVITY
    ====================================================== */

    .activity-terminal {
        border-radius: 14px;
    }


    .activity-terminal-header,
    .activity-profile-row,
    .activity-terminal-footer {
        min-height: 0;

        padding: 14px 16px;

        gap: 12px;
    }


    .activity-terminal-header {
        min-height: 62px;
    }


    .activity-live-badge {
        flex: 0 0 auto;

        margin-left: auto;
    }


    .activity-profile-row {
        gap: 8px;
    }


    .activity-item {
        grid-template-columns: 1fr;

        gap: 10px;

        padding: 18px 16px;
    }


    .activity-type {
        width: fit-content;

        min-width: 70px;

        justify-self: start;

        padding-inline: 10px;
    }


    .activity-title {
        font-size: 14px;

        line-height: 1.45;
    }


    .activity-detail,
    .activity-time,
    .activity-sync-time {
        font-size: 9px;

        line-height: 1.55;

        overflow-wrap: anywhere;
    }


    .activity-terminal-footer {
        align-items: flex-start;

        flex-direction: column;
    }


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

    .projects-grid {
        gap: 20px;
    }


    .project-card {
        min-height: 0;

        border-radius: 14px;
    }


    .project-image {
        min-height: 220px;

        padding: 24px 20px;
    }


    .project-screen {
        max-width: 260px;
    }


    .project-content {
        padding: 24px;
    }


    .project-content h3 {
        margin: 10px 0;

        font-size: 23px;

        line-height: 1.2;

        overflow-wrap: anywhere;
    }


    .project-content p {
        font-size: 14.5px;

        line-height: 1.7;
    }


    .project-tech {
        margin-top: 18px;
    }


    .project-links {
        margin-top: 20px;
    }


    .projects-view-all {
        margin-top: 30px;
    }


    /* =====================================================
       CONTACT
    ====================================================== */

    .contact-section {
        padding-bottom: 90px;
    }


    .contact-layout {
        gap: 42px;
    }


    .contact-info {
        max-width: none;
    }


    .contact-eyebrow {
        font-size: 9px;

        letter-spacing: 2.2px;
    }


    .contact-info h3 {
        margin: 16px 0 20px;

        font-size:
            clamp(36px, 10.5vw, 42px);

        line-height: 1.05;

        letter-spacing: -1.8px;
    }


    .contact-info p {
        font-size: 15px;

        line-height: 1.75;
    }


    .contact-info-list {
        margin-top: 30px;

        gap: 10px;
    }


    .contact-info-item {
        padding: 12px;

        gap: 12px;
    }


    .contact-info-icon {
        width: 42px;
        height: 42px;
    }


    .contact-form-card {
        padding: 22px;

        border-radius: 14px;
    }


    .contact-form-header {
        margin-bottom: 24px;

        padding-bottom: 18px;
    }


    .contact-form-header h3 {
        font-size: 21px;
    }


    .form-group input {
        height: 52px;
    }


    .form-group textarea {
        min-height: 145px;
    }


    .contact-submit {
        min-height: 55px;
    }


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

    .footer-container {
        gap: 14px;

        padding: 28px 0;

        text-align: center;
    }


    .back-top {
        width: 44px;
        height: 44px;
    }

}


/* =========================================================
   EXTRA SMALL MOBILE
========================================================= */

@media (max-width: 450px) {

    .container {
        width: calc(100% - 30px);
    }


    .hero {
        padding-top: 116px;

        padding-bottom: 64px;
    }


    .hero-title {
        font-size:
            clamp(52px, 15.5vw, 60px);

        letter-spacing: -3.5px;
    }


    .availability {
        max-width: 100%;

        white-space: nowrap;
    }


    .section {
        padding: 68px 0;
    }


    .section-heading {
        gap: 9px;
    }


    .section-heading h2 {
        font-size:
            clamp(29px, 8.6vw, 33px);
    }


    .heading-line {
        min-width: 14px;

        max-width: 70px;
    }


    .about-large {
        font-size: 27px;
    }


    /*
       Override the old mobile rule that stacked these.
    */

    .about-stats,
    .github-profile-stats {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }


    .stat-card strong {
        font-size: 20px;
    }


    .activity-terminal-title {
        display: none;
    }


    .activity-window-buttons {
        gap: 6px;
    }


    .activity-live-badge {
        padding: 5px 9px;

        font-size: 9px;
    }


    .project-image {
        min-height: 200px;

        padding: 20px 16px;
    }


    .project-content {
        padding: 21px;
    }


    .contact-info h3 {
        font-size: 38px;
    }


    .contact-form-card {
        padding: 20px;
    }


    .contact-form-header {
        gap: 12px;
    }


    .tech-marquee-fade {
        width: 30px;
    }

}


/* =========================================================
   TOUCH DEVICE PERFORMANCE
========================================================= */

@media (hover: none) and (pointer: coarse) {

    #cursorGlow {
        display: none;
    }


    .grid,
    .orb {
        animation: none;
    }


    .orb {
        opacity: 0.18;

        filter: blur(90px);
    }


    .skill-card:hover,
    .project-card:hover,
    .button-primary:hover:not(:disabled),
    .button-secondary:hover:not(:disabled),
    .contact-info-item:hover,
    .github-nav:hover {
        transform: none;
    }

}


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

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

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;

        animation-iteration-count: 1 !important;

        transition-duration: 0.01ms !important;
    }

}