/*
Theme Name: CodeCraftPro by Dewan
Theme URI: https://sabbirdewan.online/
Author: Sabbir Dewan
Description: A custom-coded developer portfolio theme built with HTML, CSS, JavaScript, and WordPress.
Version: 1.0
Text Domain: codecraftpro-by-dewan
*/

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    background: #07111f;
    color: #edf5ff;
    font-family: Arial, sans-serif;
    line-height: 1.7;
}

a {
    color: inherit;
    text-decoration: none;
}


/* =========================
   HEADER
========================= */

.header {
    position: sticky;
    top: 0;
    z-index: 1000;

    background: rgba(7, 17, 31, 0.96);

    border-bottom: 1px solid #1c3148;
}

.navbar {
    width: 92%;
    max-width: 1200px;

    min-height: 76px;

    margin: auto;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.logo {
    color: white;

    font-size: 24px;

    font-weight: 800;
}

.logo span {
    color: #3b9cff;
}

.logo small {
    display: block;

    color: #8da3ba;

    font-size: 9px;

    letter-spacing: 2px;
}

.nav-links {
    display: flex;

    align-items: center;

    gap: 24px;

    list-style: none;
}

.nav-links a {
    color: #b6c7d9;

    font-size: 14px;
}

.nav-links a:hover {
    color: white;
}

.nav-button {
    padding: 10px 18px;

    color: white !important;

    background: #1976d2;

    border-radius: 7px;
}

.menu-button {
    display: none;

    border: none;

    background: transparent;

    color: white;

    font-size: 28px;

    cursor: pointer;
}


/* =========================
   GENERAL SECTIONS
========================= */

.section {
    width: 92%;

    max-width: 1150px;

    margin: auto;

    padding: 105px 0;
}

.section-dark {
    width: 100%;

    max-width: none;

    padding-left: 8%;

    padding-right: 8%;

    background: #0b1728;
}

.section-title {
    margin-bottom: 50px;
}

.section-title>p,
.section-label,
.eyebrow {
    color: #3b9cff;

    font-size: 12px;

    font-weight: bold;

    letter-spacing: 2px;
}

.section-title h2 {
    margin-top: 10px;

    font-size: clamp(34px, 5vw, 55px);

    line-height: 1.2;
}


/* =========================
   HERO
========================= */

.hero {
    width: 92%;

    max-width: 1200px;

    min-height: calc(100vh - 76px);

    margin: auto;

    display: grid;

    grid-template-columns: 1.1fr 0.9fr;

    align-items: center;

    gap: 70px;
}

.hero h1 {
    margin: 18px 0;

    font-size: clamp(45px, 6vw, 76px);

    line-height: 1.08;
}

.hero h1 span {
    display: block;

    color: #3b9cff;
}

.hero-description {
    max-width: 650px;

    color: #a7b9cc;

    font-size: 18px;
}

.hero-buttons,
.contact-buttons {
    display: flex;

    flex-wrap: wrap;

    gap: 14px;

    margin-top: 30px;
}

.button {
    padding: 14px 22px;

    border-radius: 7px;

    font-weight: bold;

    transition: 0.3s;
}

.primary-button {
    color: white;

    background: #1976d2;
}

.primary-button:hover {
    background: #2c8ded;

    transform: translateY(-3px);
}

.secondary-button {
    color: white;

    border: 1px solid #314a64;
}

.secondary-button:hover {
    border-color: #3b9cff;
}


/* =========================
   CODE WINDOW
========================= */

.code-window {
    overflow: hidden;

    background: #0c192a;

    border: 1px solid #263f5a;

    border-radius: 15px;

    box-shadow: 0 25px 70px rgba(0, 0, 0, 0.35);
}

.code-header {
    padding: 16px;

    background: #101f33;

    border-bottom: 1px solid #263f5a;
}

.code-header span {
    display: inline-block;

    width: 10px;

    height: 10px;

    margin-right: 6px;

    background: #526b84;

    border-radius: 50%;
}

.code-window pre {
    padding: 25px;

    overflow-x: auto;

    font-size: 14px;

    color: #dbe8f5;
}

.blue {
    color: #4aa8ff;
}

.green {
    color: #62d9a3;
}


/* =========================
   ABOUT
========================= */

.about-grid {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 65px;
}

.about-text h3 {
    margin-bottom: 18px;

    font-size: 29px;

    line-height: 1.3;
}

.about-text p {
    margin-bottom: 17px;

    color: #a8bbcf;
}

.about-boxes {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 15px;
}

.about-box {
    padding: 25px;

    background: #0c192a;

    border: 1px solid #233d59;

    border-radius: 11px;
}

.about-box strong {
    display: block;

    color: #3b9cff;

    font-size: 27px;
}

.about-box span {
    color: #9fb2c5;

    font-size: 13px;
}


/* =========================
   SERVICES
========================= */

.service-grid {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 20px;
}

.service-card {
    padding: 30px;

    background: #0e1d30;

    border: 1px solid #253f5b;

    border-radius: 12px;

    transition: 0.3s;
}

.service-card:hover {
    transform: translateY(-6px);

    border-color: #3b9cff;
}

.icon {
    margin-bottom: 18px;

    font-size: 30px;
}

.service-card h3 {
    margin-bottom: 10px;
}

.service-card p {
    color: #9fb1c4;

    font-size: 14px;
}


/* =========================
   EXPERIENCE
========================= */

.experience-card {
    display: grid;

    grid-template-columns:
        230px 1fr;

    gap: 45px;

    padding: 40px;

    background: #0c192a;

    border: 1px solid #243e59;

    border-radius: 13px;
}

.experience-date,
.company,
.education-label {
    color: #3b9cff;

    font-size: 12px;

    font-weight: bold;

    letter-spacing: 1.5px;
}

.experience-details h3 {
    margin: 8px 0;

    font-size: 28px;
}

.experience-details>p {
    color: #9eb1c5;
}

.experience-details ul {
    margin-top: 20px;

    padding-left: 20px;

    color: #b8c8d8;
}

.experience-details li {
    margin-bottom: 10px;
}


/* =========================
   EDUCATION
========================= */

.education-card {
    max-width: 900px;

    padding: 40px;

    background: #0e1d30;

    border: 1px solid #253f5b;

    border-radius: 13px;
}

.education-card h3 {
    margin: 10px 0;

    font-size: 30px;
}

.education-card h4 {
    color: #b6c7d8;

    font-size: 17px;
}

.education-info {
    display: flex;

    flex-wrap: wrap;

    gap: 15px;

    margin: 20px 0;
}

.education-info span {
    padding: 8px 14px;

    color: #b8d8ff;

    background: #102a45;

    border-radius: 30px;
}

.education-card>p:last-child {
    color: #9fb1c4;
}


/* =========================
   SKILLS
========================= */

.skills-list {
    display: grid;

    gap: 20px;
}

.skill-group {
    padding: 27px;

    background: #0c192a;

    border: 1px solid #243e59;

    border-radius: 12px;
}

.skill-group h3 {
    margin-bottom: 18px;
}

.tags {
    display: flex;

    flex-wrap: wrap;

    gap: 10px;
}

.tags span {
    padding: 8px 13px;

    color: #b8d8ff;

    background: #102a45;

    border: 1px solid #234e78;

    border-radius: 30px;

    font-size: 13px;
}


/* =========================
   PORTFOLIO
========================= */

.project-grid {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 20px;
}

.project-card {
    overflow: hidden;

    background: #0e1d30;

    border: 1px solid #253f5b;

    border-radius: 12px;
}

.project-image {
    min-height: 210px;

    display: grid;

    place-items: center;

    color: #7ec0ff;

    background:
        linear-gradient(135deg,
            #123a60,
            #0a1626);

    font-size: 21px;

    font-weight: bold;
}

.project-content {
    padding: 25px;
}

.project-content>p {
    color: #3b9cff;

    font-size: 11px;

    font-weight: bold;

    letter-spacing: 1px;
}

.project-content h3 {
    margin: 8px 0;
}

.project-content span {
    display: block;

    color: #91a6bb;

    font-size: 13px;
}

.project-content a {
    display: inline-block;

    margin-top: 18px;

    color: #55adff;

    font-weight: bold;
}


/* =========================
   CONTACT
========================= */

.contact {
    text-align: center;
}

.contact h2 {
    margin: 12px 0;

    font-size:
        clamp(38px, 5vw, 62px);
}

.contact>p {
    max-width: 650px;

    margin: auto;

    color: #a8bacd;
}

.contact-buttons {
    justify-content: center;
}

.social-links {
    display: flex;

    justify-content: center;

    flex-wrap: wrap;

    gap: 22px;

    margin-top: 35px;
}

.social-links a {
    color: #78baff;

    font-weight: bold;
}


/* =========================
   FOOTER
========================= */

.footer {
    width: 92%;

    max-width: 1150px;

    margin: auto;

    padding: 35px 0;

    display: flex;

    justify-content: space-between;

    align-items: center;

    border-top:
        1px solid #1c3148;
}

.footer strong {
    color: white;

    font-size: 20px;
}

.footer strong::first-letter {
    color: #3b9cff;
}

.footer span,
.footer p {
    color: #7e93a8;

    font-size: 13px;
}


/* =========================
   TABLET
========================= */

@media (max-width: 900px) {

    .hero {
        grid-template-columns: 1fr;

        padding: 80px 0;
    }

    .hero-card {
        max-width: 650px;
    }

    .about-grid {
        grid-template-columns: 1fr;
    }

    .service-grid,
    .project-grid {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .experience-card {
        grid-template-columns: 1fr;

        gap: 15px;
    }

}


/* =========================
   MOBILE
========================= */

@media (max-width: 700px) {

    .menu-button {
        display: block;
    }

    .nav-links {
        position: absolute;

        top: 76px;

        left: 0;

        width: 100%;

        display: none;

        flex-direction: column;

        padding: 25px;

        background: #091524;

        border-bottom:
            1px solid #263f5a;
    }

    .nav-links.active {
        display: flex;
    }

    .section {
        padding: 75px 0;
    }

    .section-dark {
        padding-left: 5%;

        padding-right: 5%;
    }

    .hero h1 {
        font-size: 46px;
    }

    .hero-description {
        font-size: 16px;
    }

    .service-grid,
    .project-grid,
    .about-boxes {
        grid-template-columns: 1fr;
    }

    .experience-card,
    .education-card {
        padding: 25px;
    }

    .footer {
        flex-direction: column;

        align-items: flex-start;

        gap: 18px;
    }

}


/* =================================
   CODECRAFTPRO PREMIUM ANIMATIONS
================================= */

/* Animated blue background glow */

body {
    overflow-x: hidden;
}

body::before {
    content: "";

    position: fixed;

    width: 450px;
    height: 450px;

    top: 15%;
    right: -180px;

    background:
        radial-gradient(circle,
            rgba(59, 156, 255, 0.14),
            transparent 70%);

    filter: blur(20px);

    pointer-events: none;

    z-index: -1;

    animation:
        backgroundFloat 10s ease-in-out infinite;
}


/* Moving background glow */

@keyframes backgroundFloat {

    0%,
    100% {

        transform:
            translate(0, 0) scale(1);

    }

    50% {

        transform:
            translate(-80px, 70px) scale(1.15);

    }

}


/* Hero code card floating */

.hero-card {

    animation:
        cardFloat 5s ease-in-out infinite;

}


@keyframes cardFloat {

    0%,
    100% {

        transform:
            translateY(0);

    }

    50% {

        transform:
            translateY(-15px);

    }

}


/* Code card blue glow */

.code-window {

    animation:
        codeGlow 4s ease-in-out infinite;

}


@keyframes codeGlow {

    0%,
    100% {

        box-shadow:
            0 25px 70px rgba(0, 0, 0, 0.35);

    }

    50% {

        box-shadow:
            0 25px 80px rgba(34, 139, 255, 0.20);

    }

}


/* Blinking coding cursor */

.code-window::after {

    content: "|";

    position: absolute;

    right: 28px;
    bottom: 22px;

    color: #3b9cff;

    font-size: 22px;

    animation:
        blinkCursor 1s infinite;

}


@keyframes blinkCursor {

    0%,
    45% {

        opacity: 1;

    }

    50%,
    100% {

        opacity: 0;

    }

}


/* Hero content entrance */

.hero-content {

    animation:
        slideUp 1s ease forwards;

}


@keyframes slideUp {

    from {

        opacity: 0;

        transform:
            translateY(35px);

    }

    to {

        opacity: 1;

        transform:
            translateY(0);

    }

}


/* Smooth card hover */

.service-card,
.project-card,
.about-box {

    transition:
        transform 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease;

}


.service-card:hover,
.project-card:hover,
.about-box:hover {

    transform:
        translateY(-9px);

    border-color:
        #3b9cff;

    box-shadow:
        0 15px 40px rgba(32, 139, 255, 0.15);

}


/* Button glow */

.primary-button {

    box-shadow:
        0 0 0 rgba(59, 156, 255, 0);

}


.primary-button:hover {

    box-shadow:
        0 8px 28px rgba(59, 156, 255, 0.35);

}


/* Smooth logo glow */

.logo {

    transition:
        0.3s;

}


.logo:hover {

    text-shadow:
        0 0 15px rgba(59, 156, 255, 0.55);

}


/* Reduce animation for users
   who prefer less motion */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {

        animation:
            none !important;

        transition:
            none !important;

    }

}

/* ==================================
   CODECRAFTPRO CODING BACKGROUND
================================== */

.hero {
    position: relative;
    overflow: hidden;
}


/* Background code container */

.code-background {

    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    pointer-events: none;

    overflow: hidden;

}


/* Floating coding symbols */

.code-symbol {

    position: absolute;

    color:
        rgba(59,
            156,
            255,
            0.13);

    font-family:
        "Courier New",
        monospace;

    font-weight: bold;

    user-select: none;

    animation:
        codeFloat 8s ease-in-out infinite;

}


/* Individual positions */

.symbol-one {

    top: 12%;

    left: 2%;

    font-size: 55px;

    animation-delay: 0s;

}


.symbol-two {

    top: 72%;

    left: 8%;

    font-size: 70px;

    animation-delay: 1s;

}


.symbol-three {

    top: 15%;

    right: 5%;

    font-size: 25px;

    animation-delay: 2s;

}


.symbol-four {

    bottom: 8%;

    right: 5%;

    font-size: 50px;

    animation-delay: 3s;

}


.symbol-five {

    top: 45%;

    left: 45%;

    font-size: 34px;

    animation-delay: 1.5s;

}


.symbol-six {

    bottom: 20%;

    left: 38%;

    font-size: 45px;

    animation-delay: 2.5s;

}


.symbol-seven {

    top: 55%;

    right: 20%;

    font-size: 27px;

    animation-delay: 4s;

}


/* Floating movement */

@keyframes codeFloat {

    0%,
    100% {

        transform:
            translateY(0) rotate(0deg);

        opacity: 0.35;

    }


    50% {

        transform:
            translateY(-25px) rotate(5deg);

        opacity: 0.8;

    }

}


/* Keep main content above symbols */

.hero-content,
.hero-card {

    position: relative;

    z-index: 2;

}


/* Developer-style labels */

.section-title>p::before {

    content:
        "/* ";

}


.section-title>p::after {

    content:
        " */";

}


/* Developer status badge */

.logo::after {

    content:
        "● AVAILABLE";

    display: block;

    margin-top: 4px;

    color: #62d9a3;

    font-size: 8px;

    letter-spacing: 1.5px;

}


/* Terminal-style code window */

.code-header::after {

    content:
        "developer@codecraftpro:~";

    margin-left: 12px;

    color: #71869b;

    font-family:
        "Courier New",
        monospace;

    font-size: 11px;

}


/* Project technology badges */

.project-content span {

    width: fit-content;

    padding: 6px 10px;

    color: #7ec0ff;

    background:
        rgba(59,
            156,
            255,
            0.08);

    border:
        1px solid rgba(59,
            156,
            255,
            0.25);

    border-radius: 4px;

}


/* Developer-style section line */

.section-title {

    position: relative;

}


.section-title::after {

    content: "";

    display: block;

    width: 80px;

    height: 3px;

    margin-top: 18px;

    background:
        linear-gradient(90deg,
            #3b9cff,
            transparent);

}


/* Mobile optimization */

@media (max-width: 700px) {

    .symbol-five,
    .symbol-six,
    .symbol-seven {

        display: none;

    }


    .code-symbol {

        opacity: 0.08;

    }


    .symbol-one {

        font-size: 42px;

    }


    .symbol-two {

        font-size: 50px;

    }

}

/* ==================================
   TERMINAL TYPING ANIMATION
================================== */

.terminal-typing {

    min-height: 55px;

    margin-top: 25px;

    padding: 14px 18px;

    display: flex;

    align-items: center;

    color: #dcecff;

    background:
        rgba(7,
            20,
            35,
            0.85);

    border:
        1px solid rgba(59,
            156,
            255,
            0.30);

    border-left:
        3px solid #3b9cff;

    border-radius: 7px;

    box-shadow:
        0 10px 35px rgba(0,
            0,
            0,
            0.18);

    font-family:
        "Courier New",
        monospace;

    font-size: 14px;

}


.terminal-sign {

    margin-right: 9px;

    color: #62d9a3;

    font-weight: bold;

}


#typingText {

    color: #bcd6ef;

}


.typing-cursor {

    margin-left: 3px;

    color: #3b9cff;

    font-weight: bold;

    animation:
        terminalCursor 0.8s infinite;

}


@keyframes terminalCursor {

    0%,
    45% {

        opacity: 1;

    }


    50%,
    100% {

        opacity: 0;

    }

}


/* Mobile */

@media (max-width: 700px) {

    .terminal-typing {

        min-height: 62px;

        font-size: 12px;

        line-height: 1.6;

    }

}

/* =================================
   HOW I BUILD - PROCESS SECTION
================================= */

.build-process {
    position: relative;
}


/* Intro text */

.process-intro {
    max-width: 720px;

    margin-bottom: 45px;
}

.process-intro p {
    color: #9fb3c7;

    font-size: 17px;
}


/* Five-step grid */

.process-grid {
    display: grid;

    grid-template-columns:
        repeat(5, 1fr);

    gap: 14px;

    position: relative;
}


/* Process card */

.process-card {
    position: relative;

    min-height: 280px;

    padding: 25px 20px;

    overflow: hidden;

    background:
        linear-gradient(145deg,
            #0d1d30,
            #091523);

    border:
        1px solid #243e59;

    border-radius: 12px;

    transition:
        transform 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease;
}


/* Card hover */

.process-card:hover {
    transform:
        translateY(-10px);

    border-color:
        #3b9cff;

    box-shadow:
        0 18px 45px rgba(32,
            139,
            255,
            0.16);
}


/* Step number */

.process-number {
    position: absolute;

    top: 15px;
    right: 17px;

    color:
        rgba(59,
            156,
            255,
            0.22);

    font-family:
        "Courier New",
        monospace;

    font-size: 34px;

    font-weight: bold;
}


/* Icon */

.process-icon {
    width: 55px;
    height: 55px;

    margin-bottom: 25px;

    display: grid;

    place-items: center;

    color:
        #65b5ff;

    background:
        rgba(59,
            156,
            255,
            0.08);

    border:
        1px solid rgba(59,
            156,
            255,
            0.22);

    border-radius: 10px;

    font-family:
        "Courier New",
        monospace;

    font-size: 23px;
}


/* Title */

.process-card h3 {
    margin-bottom: 12px;

    font-size: 21px;
}


/* Description */

.process-card p {
    color:
        #94aabd;

    font-size: 13px;

    line-height: 1.7;
}


/* Developer badge */

.developer-badge {
    width: fit-content;

    max-width: 100%;

    margin: 50px auto 0;

    padding: 16px 23px;

    display: flex;

    align-items: center;

    gap: 13px;

    background:
        rgba(10,
            28,
            47,
            0.8);

    border:
        1px solid rgba(59,
            156,
            255,
            0.3);

    border-radius: 9px;

    box-shadow:
        0 10px 35px rgba(0,
            0,
            0,
            0.2);
}


/* Green status light */

.status-dot {
    width: 10px;
    height: 10px;

    flex-shrink: 0;

    background:
        #62d9a3;

    border-radius: 50%;

    box-shadow:
        0 0 12px rgba(98,
            217,
            163,
            0.8);

    animation:
        statusPulse 2s infinite;
}


@keyframes statusPulse {

    0%,
    100% {

        transform:
            scale(1);

        opacity: 1;

    }

    50% {

        transform:
            scale(1.4);

        opacity: 0.65;

    }

}


/* Badge text */

.developer-badge strong {
    display: block;

    color:
        #dcecff;

    font-family:
        "Courier New",
        monospace;

    font-size: 13px;

    letter-spacing: 1px;
}


.developer-badge small {
    display: block;

    margin-top: 3px;

    color:
        #6f8da8;

    font-size: 10px;

    letter-spacing: 1px;
}


/* Tablet */

@media (max-width: 1050px) {

    .process-grid {

        grid-template-columns:
            repeat(3, 1fr);

    }

}


/* Mobile */

@media (max-width: 700px) {

    .process-grid {

        grid-template-columns:
            1fr;

    }


    .process-card {

        min-height:
            auto;

    }


    .developer-badge {

        width: 100%;

        padding:
            15px;

    }


    .developer-badge strong {

        font-size:
            11px;

    }


    .developer-badge small {

        font-size:
            8px;

    }

}

/* =================================
   INTERACTIVE DEVELOPER TERMINAL
================================= */

.terminal-section {
    position: relative;
}


/* Main terminal */

.terminal-container {

    max-width: 950px;

    margin: auto;

    overflow: hidden;

    background:
        #07111c;

    border:
        1px solid #294762;

    border-radius:
        14px;

    box-shadow:
        0 25px 70px rgba(0,
            0,
            0,
            0.40);

}


/* Terminal top */

.terminal-top {

    min-height:
        52px;

    padding:
        0 18px;

    display:
        flex;

    align-items:
        center;

    gap:
        16px;

    background:
        #101f2f;

    border-bottom:
        1px solid #263f59;

}


.terminal-dots {

    display:
        flex;

    gap:
        7px;

}


.terminal-dots span {

    width:
        11px;

    height:
        11px;

    background:
        #526b81;

    border-radius:
        50%;

}


.terminal-top p {

    color:
        #7e96ac;

    font-family:
        "Courier New",
        monospace;

    font-size:
        12px;

}


/* Terminal screen */

.terminal-screen {

    min-height:
        290px;

    padding:
        35px;

    font-family:
        "Courier New",
        monospace;

    background:

        radial-gradient(circle at top right,

            rgba(39,
                126,
                205,
                0.08),

            transparent 45%);

}


/* Command */

.terminal-command,
.terminal-prompt {

    color:
        #d9e8f5;

    font-size:
        14px;

}


.terminal-command span,
.terminal-prompt span:first-child {

    color:
        #62d9a3;

    font-weight:
        bold;

}


/* Output */

.terminal-output {

    min-height:
        150px;

    margin:
        22px 0;

    padding-left:
        20px;

    color:
        #9db5ca;

    line-height:
        1.9;

    animation:
        terminalOutput 0.35s ease;

}


.terminal-output strong {

    color:
        #55adff;

    font-size:
        17px;

}


.terminal-success {

    margin-top:
        12px;

    color:
        #62d9a3;

}


/* Blinking terminal cursor */

.terminal-blink {

    color:
        #55adff;

    font-size:
        20px;

    animation:
        terminalBlink 0.9s infinite;

}


@keyframes terminalBlink {

    0%,
    45% {

        opacity:
            1;

    }


    50%,
    100% {

        opacity:
            0;

    }

}


/* Output animation */

@keyframes terminalOutput {

    from {

        opacity:
            0;

        transform:
            translateY(10px);

    }


    to {

        opacity:
            1;

        transform:
            translateY(0);

    }

}


/* Command buttons */

.terminal-buttons {

    padding:
        20px;

    display:
        flex;

    flex-wrap:
        wrap;

    gap:
        10px;

    background:
        #0b1928;

    border-top:
        1px solid #263f59;

}


.terminal-button {

    padding:
        10px 16px;

    color:
        #8da7bc;

    background:
        #10253a;

    border:
        1px solid #294963;

    border-radius:
        6px;

    font-family:
        "Courier New",
        monospace;

    cursor:
        pointer;

    transition:
        0.25s;

}


.terminal-button::before {

    content:
        "> ";

    color:
        #62d9a3;

}


.terminal-button:hover,
.terminal-button.active {

    color:
        white;

    background:
        #163a5a;

    border-color:
        #3b9cff;

    box-shadow:
        0 0 18px rgba(59,
            156,
            255,
            0.16);

}


/* Mobile */

@media (max-width: 700px) {

    .terminal-screen {

        min-height:
            330px;

        padding:
            22px;

    }


    .terminal-command,
    .terminal-prompt {

        font-size:
            11px;

    }


    .terminal-output {

        padding-left:
            8px;

        font-size:
            12px;

    }


    .terminal-buttons {

        padding:
            14px;

    }


    .terminal-button {

        font-size:
            11px;

        padding:
            9px 11px;

    }

}

/* =================================
CODE TO WEBSITE SHOWCASE
================================= */

.code-showcase {
    position: relative;
}

/* Intro */

.showcase-intro {
    max-width: 720px;

    margin-bottom: 45px;

}

.showcase-intro p {
    color: #9cb1c5;

    font-size: 17px;
    line-height: 1.8;

}

/* Main two-column layout */

.code-preview-grid {

    display: grid;
    grid-template-columns:
        1.15fr 0.85fr;
    gap: 25px;
    align-items: center;

}

/* =========================
CODE EDITOR
========================= */

.showcase-editor {

    overflow: hidden;
    background:
        #07111c;
    border:
        1px solid #29465f;
    border-radius:
        13px;
    box-shadow:
        0 25px 70px rgba(0,
            0,
            0,
            0.35);

}

/* Editor header */

.editor-header {

    min-height:
        52px;
    display:
        flex;
    justify-content:
        space-between;
    align-items:
        center;
    padding:
        0 16px;
    background:
        #0e1c2b;
    border-bottom:
        1px solid #243e57;

}

.editor-tabs {

    display:
        flex;
    gap:
        6px;

}

.editor-tab {

    padding:
        8px 10px;
    color:
        #6e879e;
    font-family:
        "Courier New",
        monospace;
    font-size:
        11px;

}

.editor-tab.active {

    color:
        #d8e9f7;
    background:
        #13263a;
    border-radius:
        5px;

}

.editor-status {

    color:
        #62d9a3;
    font-family:
        "Courier New",
        monospace;
    font-size:
        10px;

}

/* Editor body */

.editor-body {

    min-height:
        370px;
    display:
        flex;
    padding:
        25px 0;
    overflow:
        auto;

}

/* Line numbers */

.line-numbers {

    min-width:
        48px;
    padding:
        0 14px;
    display:
        flex;
    flex-direction:
        column;
    gap:
        7px;
    color:
        #42576b;
    text-align:
        right;
    font-family:
        "Courier New",
        monospace;
    font-size:
        12px;
    line-height:
        1.55;
    border-right:
        1px solid #1d3348;

}

.showcase-code {

    margin:
        0;
    padding:
        0 24px;
    color:
        #a9bfd1;
    font-family:
        "Courier New",
        monospace;
    font-size:
        12px;
    line-height:
        1.55;

}

/* Code colors */

.tag {

    color:
        #58aef5;

}

.attribute {

    color:
        #d6a6ff;

}

.value {

    color:
        #62d9a3;

}

.text {

    color:
        #d4dee7;

}

/* Editor footer */

.editor-footer {

    min-height:
        34px;
    padding:
        0 15px;
    display:
        flex;
    align-items:
        center;
    gap:
        20px;
    color:
        #7b95ab;
    background:
        #0d1c2b;
    border-top:
        1px solid #213a51;
    font-family:
        "Courier New",
        monospace;
    font-size:
        9px;

}

/* =========================
WEBSITE PREVIEW
========================= */

.website-preview {

    position:
        relative;

}

.preview-browser {

    overflow:
        hidden;
    background:
        #eaf4ff;
    border:
        8px solid #14283c;
    border-radius:
        15px;
    box-shadow:
        0 25px 65px rgba(0,
            0,
            0,
            0.35);
    transform:
        perspective(1000px) rotateY(-4deg);
    transition:
        transform 0.4s ease;

}

.website-preview:hover .preview-browser {

    transform:
        perspective(1000px) rotateY(0deg) translateY(-8px);

}

/* Browser top */

.browser-top {

    height:
        42px;
    padding:
        0 12px;
    display:
        flex;
    align-items:
        center;
    gap:
        12px;
    background:
        #dbe8f4;

}

.browser-dots {

    display:
        flex;
    gap:
        5px;

}

.browser-dots span {

    width:
        8px;
    height:
        8px;
    background:
        #7d96aa;
    border-radius:
        50%;

}

.browser-address {

    flex:
        1;
    padding:
        7px 10px;
    color:
        #60788c;
    background:
        white;
    border-radius:
        5px;
    font-size:
        9px;

}

/* Preview content */

.preview-content {

    min-height:
        390px;
    padding:
        55px 40px;
    color:
        #102235;
    background:
        radial-gradient(circle at 80% 15%,
            rgba(59,
                156,
                255,
                0.28),
            transparent 35%),
        linear-gradient(135deg,
            #ffffff,
            #e5f1fc);

}

.preview-label {

    color:
        #247ec7;
    font-size:
        9px;
    font-weight:
        bold;
    letter-spacing:
        2px;

}

.preview-content h3 {

    margin:
        20px 0;
    font-size:
        clamp(36px,
            5vw,
            60px);
    line-height:
        0.95;

}

.preview-content h3 span {

    color:
        #268fe8;

}

.preview-content p {

    max-width:
        330px;
    color:
        #536c81;
    line-height:
        1.7;

}

/* Preview button */

.preview-button {

    display:
        inline-block;
    margin-top:
        22px;
    padding:
        12px 17px;
    color:
        white;
    background:
        #197fd2;
    border-radius:
        6px;
    font-size:
        12px;
    text-decoration:
        none;
    transition:
        0.3s;

}

.preview-button:hover {

    transform:
        translateY(-3px);
    box-shadow:
        0 10px 20px rgba(25,
            127,
            210,
            0.25);

}

/* Technology labels */

.preview-tech {

    margin-top:
        50px;
    display:
        flex;
    gap:
        8px;

}

.preview-tech span {

    padding:
        6px 9px;
    color:
        #39779e;
    background:
        rgba(40,
            137,
            220,
            0.08);
    border:
        1px solid rgba(40,
            137,
            220,
            0.16);
    border-radius:
        4px;
    font-size:
        9px;

}

/* Caption */

.preview-caption {

    margin-top:
        15px;
    color:
        #6d8aa1;
    text-align:
        center;
    font-family:
        "Courier New",
        monospace;
    font-size:
        11px;

}

.preview-caption span {

    color:
        #62d9a3;

}

/* Final developer message */

.showcase-message {

    max-width:
        750px;
    margin:
        55px auto 0;
    padding:
        20px 25px;
    display:
        flex;
    align-items:
        center;
    gap:
        18px;
    background:
        rgba(13,
            31,
            48,
            0.7);
    border:
        1px solid rgba(59,
            156,
            255,
            0.2);
    border-radius:
        9px;

}

.showcase-message>span {

    color:
        #58aef5;
    font-family:
        "Courier New",
        monospace;
    font-size:
        27px;

}

.showcase-message p {

    margin:
        0;
    color:
        #a7bdce;
    line-height:
        1.7;

}

/* =========================
RESPONSIVE
========================= */

@media (max-width: 900px) {

    .code-preview-grid {
        grid-template-columns:
            1fr;
    }

    .website-preview {
        max-width:
            600px;
        margin:
            auto;
    }

}

@media (max-width: 600px) {

    .editor-tab {
        padding:
            7px 5px;
        font-size:
            8px;
    }

    .editor-body {
        min-height:
            330px;
    }

    .showcase-code {
        padding:
            0 15px;
        font-size:
            9px;
    }

    .line-numbers {
        min-width:
            35px;
        padding:
            0 8px;
        font-size:
            9px;
    }

    .preview-content {
        min-height:
            340px;
        padding:
            45px 25px;
    }

    .preview-content h3 {
        font-size:
            43px;
    }

    .showcase-message {
        padding:
            17px;
        gap:
            12px;
    }

    .showcase-message p {
        font-size:
            12px;
    }

}

/* =================================
PROJECT CASE STUDY MODAL
================================= */

/* Modal container */

.case-modal {

    position:
        fixed;
    inset:
        0;
    display:
        none;
    align-items:
        center;
    justify-content:
        center;
    padding:
        25px;
    z-index:
        9999;

}

/* Open state */

.case-modal.open {

    display:
        flex;

}

/* Dark overlay */

.case-modal-overlay {

    position:
        absolute;
    inset:
        0;
    background:
        rgba(2,
            8,
            14,
            0.82);
    backdrop-filter:
        blur(8px);

}

/* Modal box */

.case-modal-box {

    position:
        relative;
    width:
        min(850px,
            100%);
    max-height:
        90vh;
    overflow-y:
        auto;
    padding:
        45px;
    color:
        #dcecff;
    background:
        linear-gradient(145deg,
            #0d1d2d,
            #07121e);
    border:
        1px solid rgba(59,
            156,
            255,
            0.35);
    border-radius:
        15px;
    box-shadow:
        0 30px 100px rgba(0,
            0,
            0,
            0.65);
    animation:
        modalEnter 0.35s ease;

}

/* Modal animation */

@keyframes modalEnter {

    from {
        opacity:
            0;
        transform:
            translateY(25px) scale(0.97);
    }

    to {
        opacity:
            1;
        transform:
            translateY(0) scale(1);
    }

}

/* Close button */

.case-close {

    position:
        absolute;
    top:
        18px;
    right:
        20px;
    width:
        38px;
    height:
        38px;
    display:
        grid;
    place-items:
        center;
    color:
        #a9c0d2;
    background:
        #11263a;
    border:
        1px solid #294a65;
    border-radius:
        8px;
    font-size:
        25px;
    cursor:
        pointer;
    transition:
        0.25s;

}

.case-close:hover {

    color:
        white;
    border-color:
        #55adff;
    transform:
        rotate(90deg);

}

/* Header */

.case-header {

    max-width:
        680px;
    margin-bottom:
        40px;

}

.case-label {

    color:
        #58aef5;
    font-family:
        "Courier New",
        monospace;
    font-size:
        11px;
    letter-spacing:
        2px;

}

.case-header h2 {

    margin:
        12px 0;
    font-size:
        clamp(30px,
            5vw,
            48px);

}

.case-header p {

    color:
        #91a9bd;
    line-height:
        1.8;

}

/* Details grid */

.case-grid {

    display:
        grid;
    grid-template-columns:
        repeat(2,
            1fr);
    gap:
        18px;

}

/* Detail card */

.case-item {

    min-height:
        180px;
    padding:
        24px;
    display:
        flex;
    gap:
        18px;
    background:
        rgba(18,
            39,
            58,
            0.65);
    border:
        1px solid #213e56;
    border-radius:
        10px;

}

.case-item>span {

    color:
        rgba(85,
            173,
            255,
            0.35);
    font-family:
        "Courier New",
        monospace;
    font-size:
        26px;
    font-weight:
        bold;

}

.case-item h3 {

    margin:
        0 0 9px;
    color:
        #dcecff;
    font-size:
        17px;

}

.case-item p,
.case-item li {

    color:
        #8fa7ba;
    font-size:
        13px;
    line-height:
        1.7;

}

.case-item ul {

    margin:
        0;
    padding-left:
        17px;

}

/* Technology badges */

.case-tech {

    display:
        flex;
    flex-wrap:
        wrap;
    gap:
        7px;

}

.case-tech span {

    padding:
        6px 9px;
    color:
        #70baff;
    background:
        rgba(59,
            156,
            255,
            0.08);
    border:
        1px solid rgba(59,
            156,
            255,
            0.22);
    border-radius:
        4px;
    font-size:
        10px;

}

/* Action buttons */

.case-actions {

    margin-top:
        30px;
    display:
        flex;
    flex-wrap:
        wrap;
    gap:
        12px;

}

.case-actions a {

    padding:
        13px 18px;
    border-radius:
        7px;
    font-size:
        13px;
    font-weight:
        600;
    text-decoration:
        none;
    transition:
        0.25s;

}

.case-live {

    color:
        white;
    background:
        #258de2;

}

.case-live:hover {

    transform:
        translateY(-3px);
    box-shadow:
        0 10px 25px rgba(37,
            141,
            226,
            0.25);

}

.case-code {

    color:
        #a9c2d5;
    background:
        #102438;
    border:
        1px solid #2a4a65;

}

.case-code:hover {

    color:
        white;
    border-color:
        #55adff;

}

/* Footer */

.case-footer {

    margin-top:
        35px;
    padding-top:
        18px;
    display:
        flex;
    justify-content:
        space-between;
    color:
        #668198;
    border-top:
        1px solid #1f3a51;
    font-family:
        "Courier New",
        monospace;
    font-size:
        10px;

}

.case-footer strong {

    color:
        #62d9a3;

}

/* Prevent background scroll */

body.modal-open {

    overflow:
        hidden;

}

/* Mobile */

@media (max-width: 700px) {

    .case-modal {
        padding:
            12px;
    }

    .case-modal-box {
        max-height:
            94vh;
        padding:
            28px 18px;
    }

    .case-grid {
        grid-template-columns:
            1fr;
    }

    .case-item {
        min-height:
            auto;
        padding:
            18px;
    }

    .case-actions {
        flex-direction:
            column;
    }

    .case-actions a {
        text-align:
            center;
    }

}