/* =========================================================
   CAT GANG INDEX / HOME
   Kitty × Hacker × Underground Network
========================================================= */


/* =========================================================
   MATRIX
========================================================= */

.matrix-container {
    opacity: .12;
}


/* =========================================================
   HOME PAGE CONTAINER
========================================================= */

.container {
    position: relative;
    z-index: 2;

    width: min(1150px, 100%);

    margin: 0 auto;

    padding:
        35px
        clamp(16px, 4vw, 35px)
        70px;

    box-sizing: border-box;
}


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

.banner {
    position: relative;

    min-height: 500px;

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

    overflow: hidden;

    border:
        1px solid rgba(0, 255, 102, .20);

    border-radius: 20px;

    background:
        rgba(7, 10, 16, .82);

    box-shadow:
        0 30px 80px rgba(0, 0, 0, .55),
        0 0 45px rgba(0, 255, 102, .05);

    backdrop-filter: blur(16px);
}


/* HERO IMAGE */

.banner-image {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;

    opacity: .32;

    filter:
        saturate(.75)
        contrast(1.15);

    transition:
        transform 8s ease;
}

.banner:hover .banner-image {
    transform: scale(1.04);
}


/* HERO OVERLAY */

.banner-overlay {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(3, 7, 12, .96),
            rgba(3, 7, 12, .78),
            rgba(3, 7, 12, .55)
        );

    z-index: 1;
}


/* SCANLINES */

.banner::after {
    content: "";

    position: absolute;

    inset: 0;

    pointer-events: none;

    background:
        repeating-linear-gradient(
            0deg,
            transparent,
            transparent 3px,
            rgba(255, 255, 255, .012) 4px
        );

    z-index: 3;
}


/* HERO CONTENT */

.banner-content {
    position: relative;

    z-index: 4;

    width: min(800px, 100%);

    padding: 60px 30px;

    text-align: center;
}


/* TERMINAL LABEL */

.banner-content::before {
    content: "CAT GANG NETWORK // ACCESS NODE";

    display: inline-block;

    margin-bottom: 22px;

    padding: 7px 13px;

    border:
        1px solid rgba(0, 255, 102, .18);

    border-radius: 5px;

    background:
        rgba(0, 255, 102, .035);

    color:
        rgba(199, 249, 204, .65);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 9px;

    font-weight: 600;

    letter-spacing: 2px;
}


/* HERO TITLE */

.banner h1 {
    margin: 0;

    color: white;

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size:
        clamp(58px, 10vw, 105px);

    font-weight: 700;

    line-height: .85;

    letter-spacing: 7px;

    text-shadow:
        0 0 25px rgba(0, 255, 102, .12);
}


/* HERO SUBTITLE */

.banner h2 {
    margin:
        22px 0 0;

    color:
        var(--neon);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size:
        clamp(20px, 3vw, 30px);

    font-weight: 500;

    letter-spacing: 2px;

    text-shadow:
        0 0 18px rgba(0, 255, 102, .22);
}


/* HERO DESCRIPTION */

.banner p {
    margin:
        18px auto 30px;

    color:
        rgba(255, 255, 255, .55);

    font-size: 14px;

    letter-spacing: 1px;
}


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

.banner-buttons {
    display: flex;

    justify-content: center;

    gap: 12px;

    flex-wrap: wrap;
}

.banner-btn {
    position: relative;

    min-width: 145px;

    padding: 13px 22px;

    box-sizing: border-box;

    border:
        1px solid rgba(102, 204, 255, .25);

    border-radius: 7px;

    background:
        rgba(102, 204, 255, .035);

    color:
        var(--neon-blue);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 1.5px;

    text-decoration: none;

    transition:
        .2s ease;
}

.banner-btn:hover {
    transform:
        translateY(-2px);

    border-color:
        var(--neon-blue);

    background:
        rgba(102, 204, 255, .08);

    box-shadow:
        0 0 20px rgba(102, 204, 255, .10);
}


.banner-btn.primary {
    border-color:
        rgba(0, 255, 102, .50);

    background:
        rgba(0, 255, 102, .10);

    color:
        var(--neon);
}

.banner-btn.primary:hover {
    border-color:
        var(--neon);

    background:
        rgba(0, 255, 102, .16);

    box-shadow:
        0 0 25px rgba(0, 255, 102, .13);
}


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

.features {
    display: grid;

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

    gap: 15px;

    margin-top: 65px;
}

.section-label {
    grid-column: 1 / -1;

    margin-bottom: 0;

    color:
        rgba(199, 249, 204, .45);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 2px;
}

/* =========================================================
   FEATURE CARDS
========================================================= */

.features {
    display: grid;

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

    gap: 15px;
}

.feature-card {
    position: relative;

    min-height: 190px;

    padding: 28px;

    box-sizing: border-box;

    border:
        1px solid rgba(0, 255, 102, .14);

    border-radius: 12px;

    background:
        rgba(7, 10, 16, .78);

    overflow: hidden;

    transition:
        transform .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}

.feature-card::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 55px;
    height: 1px;

    background:
        var(--neon);

    box-shadow:
        0 0 12px rgba(0, 255, 102, .7);
}

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

    border-color:
        rgba(0, 255, 102, .32);

    box-shadow:
        0 15px 35px rgba(0, 0, 0, .30),
        0 0 20px rgba(0, 255, 102, .04);
}

.feature-icon {
    font-size: 27px;

    margin-bottom: 15px;

    filter:
        drop-shadow(
            0 0 8px
            rgba(0, 255, 102, .15)
        );
}

.feature-card h3 {
    margin: 0 0 10px;

    color: white;

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 17px;

    letter-spacing: 1px;
}

.feature-card p {
    margin: 0;

    color:
        rgba(255, 255, 255, .48);

    font-size: 12px;

    line-height: 1.7;
}


/* =========================================================
   ABOUT / WHO WE ARE
========================================================= */

.about-home {
    position: relative;

    margin-top: 65px;

    padding: clamp(28px, 5vw, 50px);

    border:
        1px solid rgba(102, 204, 255, .14);

    border-radius: 16px;

    background:
        linear-gradient(
            135deg,
            rgba(0, 255, 102, .045),
            rgba(102, 204, 255, .025),
            rgba(255, 46, 136, .025)
        );

    overflow: hidden;
}

.about-home::after {
    content: "";

    position: absolute;

    inset: 0;

    pointer-events: none;

    background:
        repeating-linear-gradient(
            0deg,
            transparent,
            transparent 3px,
            rgba(255, 255, 255, .012) 4px
        );
}

.about-label {
    position: relative;

    z-index: 2;

    margin-bottom: 10px;

    color:
        var(--neon);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 2px;
}

.about-home h2 {
    position: relative;

    z-index: 2;

    margin: 0;

    color: white;

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size:
        clamp(28px, 4vw, 42px);

    letter-spacing: 2px;
}

.about-home h2 span {
    color:
        var(--neon-blue);
}

.about-home p {
    position: relative;

    z-index: 2;

    max-width: 780px;

    margin:
        20px 0 0;

    color:
        rgba(255, 255, 255, .58);

    font-size: 14px;

    line-height: 1.8;
}

.about-pillars {
    position: relative;

    z-index: 2;

    display: grid;

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

    gap: 12px;

    margin-top: 30px;
}

.about-pillar {
    padding: 18px;

    border:
        1px solid rgba(255, 255, 255, .07);

    border-radius: 9px;

    background:
        rgba(0, 0, 0, .18);
}

.about-pillar strong {
    display: block;

    margin-bottom: 7px;

    color:
        rgba(255, 255, 255, .82);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 11px;

    letter-spacing: 1px;
}

.about-pillar span {
    color:
        rgba(255, 255, 255, .38);

    font-size: 10px;

    line-height: 1.6;
}


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

.status h1 {
    margin: 0 0 25px;

    color: white;

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size:
        clamp(30px, 5vw, 45px);

    letter-spacing: 2px;
}

.status h1::before {
    content: "SYSTEM // ";

    color:
        var(--neon);

    font-size: .45em;

    letter-spacing: 2px;
}


/* =========================================================
   SYSTEM HEALTH
========================================================= */

.system-health {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    margin-bottom: 15px;

    padding: 18px 22px;

    border:
        1px solid rgba(0, 255, 102, .15);

    border-radius: 10px;

    background:
        rgba(7, 10, 16, .82);
}

.health-label {
    color:
        rgba(255, 255, 255, .45);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 1.5px;
}

.health-value {
    display: flex;

    align-items: center;

    gap: 9px;

    color:
        var(--neon);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 1px;
}


/* =========================================================
   STATUS GRID
========================================================= */

.status-grid {
    display: grid;

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

    gap: 12px;
}


/* STATUS CARDS */

.status-card {
    position: relative;

    min-height: 90px;

    padding: 20px;

    box-sizing: border-box;

    border:
        1px solid rgba(0, 255, 102, .12);

    border-radius: 10px;

    background:
        rgba(7, 10, 16, .78);

    overflow: hidden;
}

.status-card::before {
    content: "";

    position: absolute;

    left: 0;
    top: 0;

    width: 3px;
    height: 100%;

    background:
        rgba(0, 255, 102, .20);
}

.status-card.wide {
    grid-column: span 2;
}

.status-card .label {
    margin-bottom: 12px;

    color:
        rgba(255, 255, 255, .38);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 9px;

    font-weight: 600;

    letter-spacing: 1.5px;

    text-transform: uppercase;
}

.status-card .value {
    display: flex;

    align-items: center;

    gap: 8px;

    color:
        rgba(255, 255, 255, .78);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 13px;

    font-weight: 600;
}

.status-card .value.small {
    display: block;

    margin-top: 7px;

    color:
        rgba(0, 255, 102, .75);

    font-size: 10px;
}


/* =========================================================
   STATUS DOTS
========================================================= */

.dot {
    display: inline-block;

    width: 7px;
    height: 7px;

    flex-shrink: 0;

    border-radius: 50%;

    background:
        var(--neon);

    box-shadow:
        0 0 9px rgba(0, 255, 102, .75);
}

.dot.green {
    background:
        var(--neon);

    box-shadow:
        0 0 10px rgba(0, 255, 102, .75);
}

.dot.yellow {
    background:
        #ffd166;

    box-shadow:
        0 0 10px rgba(255, 209, 102, .65);
}

.dot.red {
    background:
        #ff4d6d;

    box-shadow:
        0 0 10px rgba(255, 77, 109, .65);
}

.pulse-green {
    animation:
        statusPulseGreen 1.5s infinite;
}

.pulse-yellow {
    animation:
        statusPulseYellow 1.1s infinite;
}

.pulse-red {
    animation:
        statusPulseRed .8s infinite;
}


/* =========================================================
   USAGE BARS
========================================================= */

.bar {
    width: 100%;

    height: 6px;

    overflow: hidden;

    border-radius: 99px;

    background:
        rgba(255, 255, 255, .055);
}

.fill {
    width: 0%;

    height: 100%;

    border-radius: inherit;

    background:
        linear-gradient(
            90deg,
            var(--neon),
            var(--neon-blue)
        );

    box-shadow:
        0 0 10px rgba(0, 255, 102, .25);

    transition:
        width .7s ease;
}


/* =========================================================
   NETWORK
========================================================= */

.net-row {
    display: flex;

    align-items: center;

    gap: 10px;

    margin-top: 9px;

    color:
        rgba(255, 255, 255, .35);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 9px;
}

.net-row > span {
    width: 22px;
}

.net-bar {
    flex: 1;

    height: 5px;

    overflow: hidden;

    border-radius: 99px;

    background:
        rgba(255, 255, 255, .05);
}

.net-fill {
    width: 0%;

    height: 100%;

    border-radius: inherit;

    transition:
        width .7s ease;
}

.net-fill.rx {
    background:
        var(--neon-blue);

    box-shadow:
        0 0 8px rgba(102, 204, 255, .35);
}

.net-fill.tx {
    background:
        var(--neon);

    box-shadow:
        0 0 8px rgba(0, 255, 102, .35);
}


/* =========================================================
   CAT GANG CORE
========================================================= */

.core-section {
    display: flex;

    justify-content: center;
}

.core-card {
    position: relative;

    width: min(650px, 100%);

    padding:
        45px 30px;

    box-sizing: border-box;

    text-align: center;

    border:
        1px solid rgba(0, 255, 102, .20);

    border-radius: 18px;

    background:
        radial-gradient(
            circle at center,
            rgba(0, 255, 102, .045),
            rgba(7, 10, 16, .92) 65%
        );

    overflow: hidden;

    box-shadow:
        0 25px 60px rgba(0, 0, 0, .40),
        0 0 35px rgba(0, 255, 102, .04);
}

.core-card::before,
.core-card::after {
    content: "";

    position: absolute;

    width: 100px;
    height: 1px;

    background:
        var(--neon);

    box-shadow:
        0 0 12px rgba(0, 255, 102, .55);
}

.core-card::before {
    top: 0;
    left: 35px;
}

.core-card::after {
    bottom: 0;
    right: 35px;
}

.core-card h2 {
    margin: 0;

    color:
        rgba(255, 255, 255, .85);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 18px;

    letter-spacing: 4px;
}

#core-logo {
    width: 130px;

    margin:
        28px auto 15px;

    filter:
        drop-shadow(
            0 0 25px
            rgba(0, 255, 102, .25)
        );

    animation:
        coreFloat 4s ease-in-out infinite;
}

.core-description {
    margin: 0;

    color:
        rgba(255, 255, 255, .35);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 10px;

    letter-spacing: 2px;

    text-transform: uppercase;
}

.core-divider {
    width: 70%;

    height: 1px;

    margin:
        22px auto;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(0, 255, 102, .25),
            transparent
        );
}

.core-status {
    display: flex;

    justify-content: center;

    align-items: center;

    gap: 9px;

    color:
        var(--neon);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 2px;
}

.core-details {
    display: flex;

    justify-content: center;
}

.core-tagline {
    color:
        rgba(255, 255, 255, .45);

    font-size: 12px;

    line-height: 1.7;
}

.core-motto {
    color:
        rgba(102, 204, 255, .65);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 11px;

    letter-spacing: 1px;
}


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

.site-footer {
    margin-top: 70px;

    border-top:
        1px solid rgba(0, 255, 102, .10);

    padding-top: 30px;
}

.footer-inner {
    display: flex;

    justify-content: center;

    text-align: center;
}

.donation-title {
    margin-bottom: 10px;

    color:
        rgba(255, 255, 255, .45);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 9px;

    letter-spacing: 2px;

    text-transform: uppercase;
}

.btc-address {
    max-width: 100%;

    margin-bottom: 12px;

    color:
        rgba(0, 255, 102, .55);

    font-family:
        Consolas,
        monospace;

    font-size: 10px;

    overflow-wrap: anywhere;
}

.copy-btn {
    padding:
        8px 13px;

    border:
        1px solid rgba(0, 255, 102, .18);

    border-radius: 5px;

    background:
        rgba(0, 255, 102, .035);

    color:
        rgba(0, 255, 102, .65);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 8px;

    letter-spacing: 1px;

    cursor: pointer;

    transition:
        .2s ease;
}

.copy-btn:hover {
    border-color:
        var(--neon);

    color:
        var(--neon);

    background:
        rgba(0, 255, 102, .08);
}

.copy-btn:disabled {
    opacity: .7;

    cursor: default;
}

.footer-bottom {
    margin-top: 25px;

    padding-top: 15px;

    border-top:
        1px solid rgba(255, 255, 255, .04);

    text-align: center;

    color:
        rgba(255, 255, 255, .20);

    font-family:
        "Chakra Petch",
        sans-serif;

    font-size: 8px;

    letter-spacing: 1px;
}


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

@keyframes statusPulseGreen {
    0%,
    100% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: .45;
        transform: scale(.72);
    }
}

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

    50% {
        opacity: .35;
    }
}

@keyframes statusPulseRed {
    0%,
    100% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: .25;
        transform: scale(.65);
    }
}

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

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


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

@media (max-width: 800px) {

    .container {
        padding-top: 25px;
    }

    .banner {
        min-height: 450px;
    }

    .features {
        grid-template-columns: 1fr;
    }

    .about-pillars {
        grid-template-columns: 1fr;
    }

    .status-grid {
        grid-template-columns: 1fr;
    }

    .status-card.wide {
        grid-column: span 1;
    }
}


@media (max-width: 600px) {

    .container {
        padding:
            18px 12px 50px;
    }

    .banner {
        min-height: 420px;

        border-radius: 14px;
    }

    .banner-content {
        padding:
            40px 18px;
    }

    .banner h1 {
        font-size: 48px;

        letter-spacing: 4px;
    }

    .banner h2 {
        font-size: 19px;
    }

    .banner p {
        font-size: 12px;
    }

    .banner-buttons {
        flex-direction: column;

        align-items: center;
    }

    .banner-btn {
        width: min(280px, 100%);
    }

    .about-home {
        padding:
            28px 20px;
    }

    .about-home h2 {
        font-size: 28px;
    }

    .system-health {
        align-items: flex-start;

        flex-direction: column;

        gap: 10px;
    }

    .core-card {
        padding:
            38px 20px;
    }

    #core-logo {
        width: 110px;
    }

    .btc-address {
        font-size: 8px;
    }
}


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

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

    .banner-image,
    #core-logo,
    .pulse-green,
    .pulse-yellow,
    .pulse-red {

        animation: none !important;

        transition: none !important;
    }
}
