/* ============================================================
   BLOCKZILLAS — PROOF OF WORK
   COMPLETE STYLE
   ============================================================ */


/* ============================================================
   VARIABLES / PAGE
   ============================================================ */

body {
    margin: 0;
    background: #100b1e;
}

.pow-page {
    --bz-bg: #100b1e;
    --bz-bg-2: #170f29;
    --bz-bg-3: #211638;

    --bz-card: #191329;
    --bz-card-2: #241a38;

    --bz-cyan: #a08be0;
    --bz-blue: #8065ce;
    --bz-purple: #6840a0;
    --bz-magenta: #c078d4;

    --bz-white: #ffffff;
    --bz-text: #f3f5ff;
    --bz-muted: #c0b7d1;

    --bz-border: rgba(160, 139, 224, 0.18);
    --bz-border-hover: rgba(160, 139, 224, 0.55);

    position: relative;

    min-height: 100vh;

    background: var(--bz-bg);

    color: var(--bz-white);

    font-family: "Space Grotesk", sans-serif;

    overflow: hidden;
}


.pow-page *,
.pow-page *::before,
.pow-page *::after {
    box-sizing: border-box;
}


.navbar .nav-logo {
    flex: 0 0 138px;
}


.navbar .nav-logo a {
    text-decoration: none;
}

.navbar .nav-logo img {
    display: block;
    width: 105px;
    height: 45px;
    object-fit: contain;
}


/* ============================================================
   CONTAINER
   ============================================================ */

.pow-container {
    position: relative;

    z-index: 5;

    width: min(1240px, calc(100% - 70px));

    margin: 0 auto;
}


/* ============================================================
   MAIN SECTION
   ============================================================ */

.pow-tools-section {
    position: relative;

    min-height: 100vh;

    padding: 100px 0 95px;

    overflow: hidden;

    background:

        radial-gradient(
            circle at 10% 18%,
            rgba(160, 139, 224, 0.14),
            transparent 25%
        ),

        radial-gradient(
            circle at 90% 18%,
            rgba(192, 120, 212, 0.12),
            transparent 27%
        ),

        radial-gradient(
            circle at 50% 55%,
            rgba(128, 101, 206, 0.08),
            transparent 40%
        ),

        radial-gradient(
            circle at 12% 90%,
            rgba(104, 64, 160, 0.12),
            transparent 25%
        ),

        linear-gradient(
            180deg,
            #100b1e 0%,
            #170f29 52%,
            #100b1e 100%
        );
}


/* ============================================================
   BACKGROUND GRID
   ============================================================ */

.pow-tools-section::before {
    content: "";

    position: absolute;

    inset: 0;

    z-index: 0;

    pointer-events: none;

    background-image:

        linear-gradient(
            rgba(160, 139, 224, 0.025) 1px,
            transparent 1px
        ),

        linear-gradient(
            90deg,
            rgba(160, 139, 224, 0.025) 1px,
            transparent 1px
        );

    background-size: 65px 65px;

    mask-image:
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 1),
            rgba(0, 0, 0, .6) 65%,
            transparent 100%
        );

    -webkit-mask-image:
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 1),
            rgba(0, 0, 0, .6) 65%,
            transparent 100%
        );
}


/* ============================================================
   TOP GRADIENT LINE
   ============================================================ */

.pow-tools-section::after {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    z-index: 2;

    width: 100%;
    height: 3px;

    background:
        linear-gradient(
            90deg,
            #a08be0 0%,
            #8065ce 32%,
            #6840a0 67%,
            #c078d4 100%
        );

    box-shadow:
        0 0 28px rgba(160, 139, 224, 0.25);
}


/* ============================================================
   BACKGROUND LARGE TEXT
   ============================================================ */

.pow-bg-word {
    position: absolute;

    z-index: 1;

    top: 22px;
    left: 50%;

    transform: translateX(-50%);

    width: 100%;

    text-align: center;

    white-space: nowrap;

    font-family: "Koulen", sans-serif;

    font-size: clamp(110px, 14vw, 215px);

    font-weight: 400;

    line-height: 1;

    color: transparent;

    -webkit-text-stroke:
        1px rgba(160, 139, 224, 0.07);

    pointer-events: none;

    user-select: none;
}


/* ============================================================
   BACKGROUND ORBS
   ============================================================ */

.pow-orb {
    position: absolute;

    z-index: 1;

    border-radius: 50%;

    filter: blur(110px);

    pointer-events: none;
}


.pow-orb-one {
    width: 400px;
    height: 400px;

    top: 250px;
    left: -260px;

    background:
        rgba(160, 139, 224, 0.15);
}


.pow-orb-two {
    width: 430px;
    height: 430px;

    right: -280px;
    bottom: 80px;

    background:
        rgba(192, 120, 212, 0.13);
}


/* ============================================================
   HERO
   ============================================================ */

.pow-heading {
    position: relative;

    z-index: 5;

    max-width: 960px;

    margin: 0 auto 48px;

    text-align: center;
}


/* ============================================================
   HERO KICKER
   ============================================================ */

.pow-kicker {
    display: inline-block;

    margin: 0 0 22px;

    padding: 9px 14px;

    border: 1px solid rgba(104, 228, 255, .22);

    border-radius: 100px;

    background: rgba(104, 228, 255, .055);

    font-family: "DM Mono", monospace;

    font-size: 10px;

    font-weight: 500;

    line-height: 1.4;

    letter-spacing: .27em;

    text-transform: uppercase;

    color: #d2c5ff;
}


/* ============================================================
   HERO TITLE
   ============================================================ */

.pow-heading h1 {
    margin: 0;

    font-family: "Koulen", sans-serif;

    font-size: clamp(64px, 7vw, 100px);

    font-weight: 400;

    line-height: .92;

    letter-spacing: .01em;

    text-transform: uppercase;

    color: #ffffff;
}

.pow-heading h1 .pow-title-accent {
    color: #8cff43;
}


/* Gradient underline */

.pow-heading h1::after {
    content: "";

    display: block;

    width: 110px;
    height: 4px;

    margin: 22px auto 0;

    border-radius: 20px;

    background:
        linear-gradient(
            90deg,
            #a08be0,
            #8065ce,
            #6840a0,
            #c078d4
        );

    box-shadow:
        0 0 20px rgba(160, 139, 224, .24);
}


/* ============================================================
   HERO DESCRIPTION
   ============================================================ */

.pow-description {
    max-width: 680px;

    margin: 23px auto 0;

    font-size: 15px;

    font-weight: 400;

    line-height: 1.75;

    color: #ffffff;
}


/* ============================================================
   FILTERS
   ============================================================ */

.pow-filters {
    position: relative;

    z-index: 5;

    display: flex;

    justify-content: center;

    align-items: center;

    flex-wrap: wrap;

    gap: 11px;

    margin: 42px 0 48px;
}


.pow-filter {
    appearance: none;

    padding: 10px 20px;

    border:
        1px solid
        rgba(160, 139, 224, 0.20);

    border-radius: 100px;

    outline: none;

    background:
        rgba(255, 255, 255, 0.045);

    color: #ffffff;

    font-family: "Space Grotesk", sans-serif;

    font-size: 11px;

    font-weight: 600;

    line-height: 1;

    cursor: pointer;

    transition:
        color .25s ease,
        background .25s ease,
        border-color .25s ease,
        transform .25s ease,
        box-shadow .25s ease;
}


.pow-filter:hover {
    transform: translateY(-2px);

    color: var(--bz-cyan);

    border-color:
        rgba(160, 139, 224, .58);

    background:
        rgba(160, 139, 224, .09);
}


.pow-filter.active {
    color: #170f29;

    border-color: var(--bz-cyan);

    background: var(--bz-cyan);

    box-shadow:
        0 7px 25px
        rgba(160, 139, 224, .27);
}


/* ============================================================
   GRID
   EXACTLY MAXIMUM 3 CARDS PER ROW
   ============================================================ */

.pow-grid {
    position: relative;

    z-index: 5;

    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 24px;
}


/* ============================================================
   CARD
   ============================================================ */

.pow-card {
    position: relative;

    min-height: 390px;

    padding: 30px 28px 24px;

    display: flex;

    flex-direction: column;

    overflow: hidden;

    text-decoration: none;

    color: var(--bz-white);

    background:

        linear-gradient(
            145deg,
            rgba(35, 25, 56, .97) 0%,
            rgba(20, 14, 34, .99) 100%
        );

    border:
        1px solid
        var(--bz-border);

    border-radius: 20px;

    box-shadow:
        0 14px 40px
        0 18px 48px rgba(0, 0, 0, .22),
        inset 0 1px 0 rgba(255, 255, 255, .035);

    transition:
        transform .32s ease,
        border-color .32s ease,
        box-shadow .32s ease,
        background .32s ease;
}


/* ============================================================
   CARD GLOW
   ============================================================ */

.pow-card::before {
    content: "";

    position: absolute;

    z-index: 0;

    width: 220px;
    height: 220px;

    top: -145px;
    right: -125px;

    border-radius: 50%;

    background:
        rgba(160, 139, 224, .7);

    filter: blur(100px);

    opacity: .055;

    pointer-events: none;

    transition:
        opacity .35s ease,
        transform .35s ease;
}


/* ============================================================
   CARD BOTTOM GRADIENT
   ============================================================ */

.pow-card::after {
    content: "";

    position: absolute;

    z-index: 3;

    left: 0;
    bottom: 0;

    width: 0;
    height: 3px;

    background:
        linear-gradient(
            90deg,
            #a08be0,
            #8065ce,
            #6840a0,
            #c078d4
        );

    box-shadow:
        0 0 20px
        rgba(160, 139, 224, .24);

    transition:
        width .38s ease;
}


/* ============================================================
   CARD HOVER
   ============================================================ */

.pow-card:hover {
    transform: translateY(-8px);

    border-color:
        var(--bz-border-hover);

    background:

        linear-gradient(
            145deg,
            rgba(43, 31, 68, .99),
            rgba(24, 17, 42, .99)
        );

    box-shadow:
        0 25px 60px
        rgba(0, 0, 0, .30),

        0 0 35px
        rgba(160, 139, 224, .06);
}


.pow-card:hover::before {
    opacity: .16;

    transform: scale(1.15);
}


.pow-card:hover::after {
    width: 100%;
}


/* ============================================================
   CARD NUMBER
   ============================================================ */

.pow-number {
    position: absolute;

    z-index: 4;

    top: 24px;
    right: 25px;

    font-family: "DM Mono", monospace;

    font-size: 9px;

    font-weight: 500;

    letter-spacing: .20em;

    color:
        rgba(160, 139, 224, .52);

    transition:
        color .25s ease;
}


.pow-card:hover .pow-number {
    color: var(--bz-cyan);
}


/* ============================================================
   CARD ICON
   ============================================================ */

.pow-card-icon {
    position: relative;

    z-index: 2;

    width: 82px;
    height: 82px;

    margin-bottom: 23px;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;

    border-radius: 19px;

    border:
        1px solid
        rgba(255, 255, 255, .12);

    background:

        linear-gradient(
            135deg,
            #a08be0 0%,
            #8065ce 45%,
            #6840a0 100%
        );

    box-shadow:
        0 10px 28px
        rgba(128, 101, 206, .26);

    transition:
        transform .3s ease,
        box-shadow .3s ease;
}


.pow-card-icon img {
    position: relative;
    z-index: 1;

    display: block;
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: transform .3s ease;
}


/* Inner shine */

.pow-card-icon::before {
    content: "";

    position: absolute;

    inset: 2px;

    border-radius: 16px;

    border:
        1px solid
        rgba(255, 255, 255, .16);

    pointer-events: none;
}


.pow-card-icon span {
    position: relative;

    z-index: 2;

    font-family: "Space Mono", monospace;

    font-size: 10px;

    font-weight: 700;

    color: #ffffff;
}


.pow-play-icon span {
    font-size: 14px;
}


.pow-card:hover .pow-card-icon {
    transform:
        translateY(-4px)
        rotate(-3deg);

    box-shadow:
        0 14px 35px
        rgba(128, 101, 206, .32);
}


.pow-card:hover .pow-card-icon img {
    transform: scale(1.04);
}


/* ============================================================
   CATEGORY / META
   ============================================================ */

.pow-card-meta {
    position: relative;

    z-index: 2;

    margin-bottom: 10px;

    font-family: "DM Mono", monospace;

    font-size: 8px;

    font-weight: 500;

    line-height: 1.4;

    letter-spacing: .19em;

    text-transform: uppercase;

    color: var(--bz-cyan);
}


/* ============================================================
   CARD TITLE
   ============================================================ */

.pow-card h2 {
    position: relative;

    z-index: 2;

    margin: 0 0 15px;

    font-family: "Koulen", sans-serif;

    font-size: 31px;

    font-weight: 400;

    line-height: 1;

    letter-spacing: .015em;

    text-transform: uppercase;

    color: #ffffff;

    transition:
        color .25s ease;
}


.pow-card:hover h2 {
    color: #63edf4;
}


/* ============================================================
   CARD DESCRIPTION
   ============================================================ */

.pow-card p {
    position: relative;

    z-index: 2;

    max-width: 320px;

    margin: 0;

    font-size: 13px;

    font-weight: 400;

    line-height: 1.7;

    color: #ffffff;
}


/* ============================================================
   CARD FOOTER
   ============================================================ */

.pow-card-footer {
    position: relative;

    z-index: 2;

    margin-top: auto;

    padding-top: 28px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    border-top:
        1px solid
        rgba(160, 139, 224, .14);

    font-family: "DM Mono", monospace;

    font-size: 8px;

    font-weight: 500;

    letter-spacing: .18em;

    color:
        rgba(155, 177, 199, .62);

    transition:
        color .25s ease;
}


.pow-card:hover .pow-card-footer {
    color:
        rgba(237, 250, 255, .80);
}


/* ============================================================
   ARROW
   ============================================================ */

.pow-arrow {
    width: 37px;
    height: 37px;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-shrink: 0;

    border:
        1px solid
        rgba(160, 139, 224, .24);

    border-radius: 50%;

    background:
        rgba(160, 139, 224, .08);

    color: var(--bz-cyan);

    font-family: "Space Grotesk", sans-serif;

    font-size: 16px;

    line-height: 1;

    letter-spacing: 0;

    transition:
        transform .25s ease,
        background .25s ease,
        border-color .25s ease,
        color .25s ease,
        box-shadow .25s ease;
}


.pow-card:hover .pow-arrow {
    transform: rotate(45deg);

    background: var(--bz-cyan);

    border-color: var(--bz-cyan);

    color: #170f29;

    box-shadow:
        0 0 20px
        rgba(160, 139, 224, .22);
}


/* ============================================================
   FILTER HIDDEN STATE
   ============================================================ */

.pow-card.pow-hidden {
    display: none;
}


/* ============================================================
   BOTTOM MICRO MESSAGE
   ============================================================ */

.pow-end {
    position: relative;

    z-index: 5;

    width: min(620px, 100%);

    margin: 72px auto 0;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 22px;
}


.pow-end p {
    flex-shrink: 0;

    margin: 0;

    font-family: "DM Mono", monospace;

    font-size: 8px;

    font-weight: 500;

    line-height: 1;

    letter-spacing: .28em;

    color: var(--bz-cyan);
}


.pow-end-line {
    width: 100%;

    height: 1px;

    background:

        linear-gradient(
            90deg,
            transparent,
            rgba(160, 139, 224, .38)
        );
}


.pow-end-line:last-child {
    transform: rotate(180deg);
}


/* ============================================================
   ACCESSIBILITY / FOCUS
   ============================================================ */

.pow-card:focus-visible,
.pow-filter:focus-visible {
    outline:
        2px solid
        var(--bz-cyan);

    outline-offset: 4px;
}


/* ============================================================
   LARGE TABLET
   2 CARDS PER ROW
   ============================================================ */

@media (max-width: 980px) {

    .pow-container {
        width: min(850px, calc(100% - 45px));
    }


    .pow-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 24px;
    }


    .pow-card {
        min-height: 370px;
    }

}


/* ============================================================
   SMALL TABLET
   ============================================================ */

@media (max-width: 720px) {

    .pow-tools-section {
        padding:
            75px
            0
            70px;
    }


    .pow-heading {
        margin-bottom: 35px;
    }


    .pow-heading h1 {
        font-size: 58px;
    }


    .pow-description {
        max-width: 540px;

        font-size: 14px;
    }


    .pow-filters {
        justify-content: flex-start;

        flex-wrap: nowrap;

        overflow-x: auto;

        margin-bottom: 42px;

        padding-bottom: 7px;

        scrollbar-width: none;
    }


    .pow-filters::-webkit-scrollbar {
        display: none;
    }


    .pow-filter {
        flex-shrink: 0;
    }

}


/* ============================================================
   MOBILE
   1 CARD PER ROW
   ============================================================ */

@media (max-width: 600px) {

    .pow-container {
        width: calc(100% - 28px);
    }


    .pow-tools-section {
        padding:
            65px
            0
            60px;
    }


    .pow-bg-word {
        top: 30px;

        font-size: 95px;
    }


    .pow-heading h1 {
        font-size: 50px;

        line-height: .95;
    }


    .pow-heading h1::after {
        width: 85px;

        margin-top: 17px;
    }


    .pow-kicker {
        font-size: 8px;

        letter-spacing: .22em;
    }


    .pow-description {
        margin-top: 19px;

        font-size: 13px;

        line-height: 1.65;
    }


    .pow-filters {
        margin:
            34px
            0
            35px;
    }


    .pow-filter {
        padding:
            9px
            17px;

        font-size: 10px;
    }


    .pow-grid {
        grid-template-columns: 1fr;

        gap: 20px;
    }


    .pow-card {
        min-height: 340px;

        padding:
            29px
            25px
            23px;

        border-radius: 16px;
    }


    .pow-card-icon {
        width: 76px;
        height: 76px;

        margin-bottom: 21px;
    }


    .pow-card h2 {
        font-size: 29px;
    }


    .pow-card p {
        max-width: 100%;

        font-size: 12px;
    }


    .pow-card-footer {
        padding-top: 24px;
    }


    .pow-end {
        margin-top: 50px;

        gap: 14px;
    }


    .pow-end p {
        font-size: 7px;

        letter-spacing: .20em;
    }

}


/* ============================================================
   VERY SMALL MOBILE
   ============================================================ */

@media (max-width: 380px) {

    .pow-heading h1 {
        font-size: 44px;
    }


    .pow-card {
        padding:
            26px
            21px
            21px;
    }


    .pow-card h2 {
        font-size: 27px;
    }

}


/* ============================================================
   REDUCED MOTION
   ============================================================ */

@media (prefers-reduced-motion: reduce) {

    .pow-card,
    .pow-card::before,
    .pow-card::after,
    .pow-card-icon,
    .pow-card-icon img,
    .pow-arrow,
    .pow-filter,
    .pow-card h2 {
        transition: none;
    }


    .pow-card:hover,
    .pow-filter:hover {
        transform: none;
    }

}