* {
    padding: 0;
    margin: 0;
    font-family: 'Red Hat Mono', monospace;
    cursor: default;
}

/* Centered terminal title inside header */
.terminal-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #fff;
    font-weight: 600;
    margin: 0 auto;
    width: 450px
}

.terminal-title .shell {
    opacity: 0.85;
}

.terminal-title .window-size {
    opacity: 0.6;
}

body {
    background: #000;
    color: #fff;
}

:root {
    --header-h: 5rem;
}

.green {
    color: #01FF00;
}

.mg-4 {
    margin: 4vw;
}

.mg-t1 {
    margin-top: 1rem;
}

.mg-t3 {
    margin-top: 3rem;
}

.mg-t5 {
    margin-top: 5rem;
}

.mg-lr5 {
    margin: 0 5vw;
}

/* Fluid typography utilities using clamp() */
.font-2 { font-size: clamp(0.95rem, 0.85rem + 0.40vw, 1.20rem); }
.font-3 { font-size: clamp(1.10rem, 0.95rem + 0.70vw, 1.50rem); }
.font-4 { font-size: clamp(1.25rem, 1.05rem + 1.00vw, 1.90rem); }
.font-5 { font-size: clamp(1.50rem, 1.20rem + 1.40vw, 2.40rem); }
.font-6 { font-size: clamp(1.75rem, 1.35rem + 1.90vw, 3.00rem); }
.font-7 { font-size: clamp(2.00rem, 1.50rem + 2.40vw, 3.60rem); }
.font-8 { font-size: clamp(2.40rem, 1.80rem + 3.00vw, 4.40rem); }
.font-10 { font-size: clamp(3.00rem, 2.20rem + 4.20vw, 5.50rem); }

/* Semantic heading defaults (overridable by .font-* classes) */
h1 { font-size: clamp(2.00rem, 1.60rem + 2.50vw, 4.00rem); line-height: 1.15; }
h2 { font-size: clamp(1.60rem, 1.30rem + 1.80vw, 3.00rem); line-height: 1.2; }
h3 { font-size: clamp(1.30rem, 1.10rem + 1.20vw, 2.20rem); line-height: 1.25; }
h4 { font-size: clamp(1.10rem, 0.95rem + 0.80vw, 1.60rem); line-height: 1.3; }

.flex {
    display: flex;
    gap: 1rem;
}

/* Overwrite the default to keep the scrollbar always visible */
::-webkit-scrollbar {
    -webkit-appearance: none;
    width: 0.7vw;
}

::-webkit-scrollbar-thumb {
    border-radius: 4px;
    background-color: #fff;
    -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);
}

.container {
    overflow: auto;
    scroll-snap-type: y mandatory;
    height: calc(100vh - var(--header-h));
    margin-top: var(--header-h);
    overflow-x: hidden;
    /* ensure scrollToView accounts for sticky terminal-nav */
    scroll-padding-top: var(--nav-h, 3rem);
}

section {
    scroll-snap-align: start;
    height: calc(100vh - var(--header-h));
}

a {
    text-decoration: none;
    cursor: pointer;
}

a:hover {
    color: #01FF00 !important;
}

a:link,
a:visited,
a:active {
    color: #fff;
}

ul.horizontal-list {
    list-style: none;
}

ul.horizontal-list li {
    display: inline-block;
    padding: 0 0.5rem;
    text-align: center;
}

ul.horizontal-list li:not(:last-child) {
    border-right: 1px solid #fff;
}

.card {
    transition: 0.3s;
    border-radius: 0.5rem;
    padding: 0.5rem;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 10px;
    border: 1px solid #fff;
}

.card:hover {
    transform: scale(1.1);
    cursor: pointer;
}

.card-1 {
    padding: 1rem;
    /* background: rgba(255, 255, 255, 0.2); */
    border: 1px solid #01FF00;
    border-radius: 1rem;
}

[data-inviewport="salutation-typing"].is-inViewport {
    width: 13ch;
    animation: typing 2s steps(13), blink .9s step-end infinite;
    white-space: nowrap;
    overflow: hidden;
    border-right: 3px solid;
}

[data-inviewport="intro-typing"].is-inViewport {
    width: 28ch;
    animation: typing 2s steps(28), blink .9s step-end infinite;
    white-space: nowrap;
    overflow: hidden;
    border-right: 3px solid;
}

[data-inviewport="project-typing"].is-inViewport {
    width: 35ch;
    animation: typing 3s steps(35), blink .9s step-end infinite;
    white-space: nowrap;
    overflow: hidden;
    border-right: 3px solid;
}

[data-inviewport="from-typing"].is-inViewport {
    width: 26ch;
    animation: typing 2s steps(26), blink .9s step-end infinite;
    white-space: nowrap;
    overflow: hidden;
    border-right: 3px solid;
}

@keyframes typing {
    from {
        width: 0%
    }
}

@keyframes blink {
    50% {
        border-color: transparent
    }
}

.header {
    display: flex;
    justify-content: space-between;
    width: 100%;
    position: fixed;
    top: 0;
    z-index: 999;
    backdrop-filter: blur(10px);
    box-shadow: 0 -6px 10px 5px rgba(0, 0, 0, 0.5);
    background: #36454f;
    position: fixed;
}

.navBtns {
    display: flex;
    flex-direction: row;
    align-items: center;
    margin: 1vw;
}

.mac-btn {
    width: 2.4vw;
    height: 2.4vw;
    border-radius: 50%;
    margin: 0.5vw;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s ease;
}

.mac-btn i {
    font-size: 0.8vw;
    color: rgba(0, 0, 0, 0.6);
    opacity: 0;
    transition: opacity 0.2s ease;
    cursor: pointer;
}

.mac-btn:hover i {
    opacity: 1;
}

.close-btn {
    background: #FF5D5B;
}

.min-btn {
    background: #FFBB39;
}

.max-btn {
    background: #00CD4E;
}

/* Sticky terminal navbar under fixed header */
.terminal-nav {
    position: sticky;
    top: 0;
    z-index: 1000; /* below header (1001), above content */
    background: #000; /* solid to avoid content showing through */
    font-size: clamp(0.90rem, 0.80rem + 0.30vw, 1.05rem);
    display: flex;
    flex-direction: column; /* stack prompt and ls row */
}

.terminal-nav .command-line {
    margin: 0; /* avoid extra spacing in the bar */
    position: static;   /* do NOT inherit global sticky */
    top: auto;
    z-index: auto;
}

.terminal-nav .ls-output {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.75rem 2rem;
    /* terminal-like columns */
    align-items: center;
    padding: 0.25rem 1rem 0.5rem;
    font-size: inherit;
    overflow-x: auto;
    white-space: nowrap; /* keep items on one line; allow horizontal scroll */
}

.ls-item {
    cursor: pointer;
}

.ls-item.dir {
    color: #4ea1ff;
    font-weight: 600;
}

/* directory look */
.ls-item.file {
    color: #e5e5e5;
}

.ls-item:hover {
    color: #01ff00;
}

/* Active directory highlight in ls-output */
.ls-item.active {
    color: #01FF00;
    font-weight: 700;
}

/* Safety: prevent horizontal overflow */
.container {
    overflow-x: hidden;
}

img,
video,
canvas {
    max-width: 100%;
    height: auto;
    display: block;
}

.salutationContainer {
    display: grid;
    place-items: center;
}

.salutationText {
    display: flex;
    flex-direction: row;
    align-items: center;
}

.command-line {
    position: sticky;
    top: var(--nav-h, 3rem);
    z-index: 900;
    padding: 0.9rem 1rem;
    background: #000;
    /* border-bottom: 1px solid rgba(255, 255, 255, 0.08); */
    font-size: clamp(0.1rem, 0.85rem + 0.35vw, 1.10rem);
}

/* Avoid initial overlap flash: hide until nav height is measured */
#section-command { visibility: hidden; }
#section-command.is-ready { visibility: visible; }

.prompt {
    color: #01FF00;
    font-weight: 600;
    font-size: inherit;
}

.command {
    color: #ffffff;
    font-size: inherit;
}

.command.clickable {
    cursor: pointer;
}

.command.clickable:hover {
    color: #01FF00;
}

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

/* Let headings control size; avoid container font scaling */

.profilePic {
    height: 20vw;
    width: 20vw;
    border-radius: 50%;
    border: 1px solid #01FF00;
    display: inline-block;
}

img.grayscale {
    filter: gray;
    /* IE6-9 */
    -webkit-filter: grayscale(100%);
    /* Chrome 19+ & Safari 6+ */
}

img.grayscale:hover {
    filter: none;
    -webkit-filter: grayscale(0%);
}

.jobDescriptionContainer {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10rem;
}

.jobTitleContainer {
    text-align: center;
}

.skillsContainer {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2vw;
    margin-bottom: 1.5rem;
}

.skills {
    display: grid;
    gap: 1vw;
    grid-template-columns: repeat(5, 1fr);
}

.skill-img {
    height: 9vw;
    width: 9vw;
    cursor: pointer;
}

.projectDetails {
    /* height: 100vh; */
    display: flex;
    flex-direction: column;
    /* align-items: center; */
    justify-content: center;
}

.project {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 5vw;
}

.projectPreview {
    position: relative;
    width: 60%;
}

.laptop-mockup {
    width: 40vw;
}

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

.contactUs {
    width: 50%;
    margin: 3vw;
}

.contactUsForm {
    font-size: 1.2rem;
}

input,
textarea {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    box-sizing: border-box;
    margin-top: 0.5rem;
    margin-bottom: 1rem;
    resize: vertical;
    outline: none;
}

input:focus {
    border: 1px solid #36454f;
}

textarea:focus {
    border: 1px solid #36454f;
}

input[type=submit] {
    background-color: rgba(255, 255, 255, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
    letter-spacing: 2px;
    cursor: pointer;
    padding: 1rem;
    width: 40%;
}

input[type=submit]:hover {
    background-color: #01FF00;
    color: #000;
}

.cursor-pointer {
    cursor: pointer;
}

/* For Desktop View */
@media screen and (min-width: 1024px) {
    .jobTitleContainer {
        margin-top: 12vh;
    }

    .heading-text {
        margin-top: 20vh;
    }
}

/* For Tablet View */
@media screen and (min-width: 768px) and (max-width: 1024px) {
    .profileContainer {
        flex-direction: column;
    }
}

@media screen and (max-width: 768px) {

    .profileContainer,
    .project {
        flex-direction: column;
        margin: 5vh;
    }

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

    /* Adjust button size and font size for smaller screens */
    input[type="submit"] {
        padding: 0.5rem 1rem;
        /* Adjust padding for smaller screens */
        font-size: 0.875rem;
        /* Adjust font size for smaller screens */
    }

    .continuation-prompt {
        margin-left: 0;
    }

    .mac-btn i {
        font-size: 0.6rem;
    }

    .header {
        padding: 0.3rem 0;
    }

    .navBtns {
        margin: 0.5rem;
    }

    .mac-btn {
        width: 1.25rem;
        height: 1.25rem;
        margin: 0.25rem;
    }

    .container {
        height: calc(100vh - var(--header-h));
        margin-top: var(--header-h);
    }
}

/* For Mobile Portrait View */
@media screen and (max-width: 480px) and (orientation: portrait) {}

/* For Mobile Landscape View */
@media screen and (max-width: 640px) and (orientation: landscape) {}

/* For Mobile Phones Portrait or Landscape View */
@media screen and (max-width: 640px) {
    /* Fluid clamp() already handles small screens; no overrides needed */

    .profilePic {
        height: 30vw;
        width: 30vw;
    }

    .skillsContainer {
        gap: 5vw;
        margin: 2rem;
    }

    .laptop-mockup {
        width: 50vw;
    }

    .contactUs {
        width: 70%;
    }

    .contactUsForm {
        font-size: 1rem;
    }
}

/* Default styles for the submit button */