/*
Theme Name: CodeCraftPro
Author: Sabbir Dewan
Description: Custom WordPress Theme for CodeCraftPro
Version: 1.0
*/

* {
    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: relative;

    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;
}

}
/* =================================
   PROJECT SYSTEM UPDATE
================================= */

.project-filter {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 9px;
    margin: 0 auto 30px;
}

.project-filter-button {
    padding: 9px 14px;
    color: #91a6bb;
    background: #0d1d2e;
    border: 1px solid #29445f;
    border-radius: 7px;
    font-family: "Courier New", monospace;
    font-size: 11px;
    cursor: pointer;
    transition: 0.25s ease;
}

.project-filter-button::before {
    content: "> ";
    color: #62d9a3;
}

.project-filter-button:hover,
.project-filter-button.active {
    color: #ffffff;
    border-color: #3b9cff;
    background: #12304a;
    box-shadow: 0 0 18px rgba(59, 156, 255, 0.12);
}

.project-card {
    transition: transform 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease;
}

.project-card:hover {
    transform: translateY(-6px);
    border-color: #3a83bd;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.28);
}

.project-image {
    position: relative;
    overflow: hidden;
}

.project-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, transparent 30%, rgba(75, 171, 255, 0.08));
    pointer-events: none;
}

.project-number {
    position: relative;
    z-index: 1;
}

.project-code-mark {
    position: absolute;
    right: 22px;
    bottom: 14px;
    color: rgba(126, 192, 255, 0.16);
    font-family: "Courier New", monospace;
    font-size: 40px;
    font-weight: 700;
}

.project-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 18px;
}

.project-actions a,
.project-actions button {
    margin-top: 0;
}

.project-link,
.case-study-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 11px;
    border-radius: 6px;
    font-family: inherit;
    font-size: 11px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: 0.25s ease;
}

.project-link {
    color: #b9d9f3;
    background: #10283e;
    border: 1px solid #2b4e6d;
}

.project-link:hover {
    color: #ffffff;
    border-color: #55adff;
    transform: translateY(-2px);
}

.project-code-link {
    color: #70d9b0;
}

.case-study-button {
    color: #ffffff;
    background: #197fd2;
    border: 1px solid #258fe7;
}

.case-study-button:hover {
    background: #2491e8;
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(37, 141, 226, 0.2);
}

.project-system-note {
    max-width: 760px;
    margin: 35px auto 0;
    padding: 15px 18px;
    display: flex;
    align-items: center;
    gap: 13px;
    color: #8099ad;
    background: rgba(13, 31, 48, 0.62);
    border: 1px solid rgba(59, 156, 255, 0.16);
    border-radius: 8px;
    font-family: "Courier New", monospace;
    font-size: 10px;
    line-height: 1.6;
}

.project-system-note span {
    color: #58aef5;
    font-size: 18px;
}

.project-system-note p {
    margin: 0;
}

.project-system-note strong {
    color: #b9d9f3;
}

.case-actions a.disabled {
    opacity: 0.45;
    pointer-events: none;
    cursor: default;
}

@media (max-width: 700px) {
    .project-filter {
        justify-content: flex-start;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 4px;
        scrollbar-width: thin;
    }

    .project-filter-button {
        flex: 0 0 auto;
    }

    .project-actions {
        align-items: stretch;
    }

    .project-link,
    .case-study-button {
        flex: 1 1 auto;
        justify-content: center;
    }

    .project-system-note {
        align-items: flex-start;
    }
}
