/* css/projects.css */
@layer components {

/* PROJECTS */
#projects {
    background: transparent;
}

.project-feature {
    background: var(--charcoal);

    border: 1px solid var(--line);
    border-top: 4px solid var(--purple);
}

.project-topline {
    min-height: 54px;

    padding: 0 20px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;

    border-bottom: 1px solid var(--line);
}

.project-topline > p {
    color: var(--purple-light);

    font-size: 0.82rem;
    font-weight: 900;
}

.live-status {
    display: flex;

    align-items: center;

    gap: 8px;

    color: var(--white);

    font-size: 0.8rem;
    font-weight: 900;
}

.live-status span {
    width: 8px;
    height: 8px;

    background: var(--lime);

    border-radius: 50%;
}

.project-layout {
    display: grid;

    grid-template-columns: 1.3fr 0.7fr;
}

.project-main {
    padding: 44px;

    border-right: 1px solid var(--line);
}

.project-main h3 {
    margin-bottom: 12px;

    color: var(--white);

    font-size: clamp(3.2rem, 7vw, 5.6rem);

    line-height: 0.9;

    letter-spacing: -4px;
}

.project-summary {
    max-width: 720px;

    margin-bottom: 21px;

    color: var(--lime);

    font-size: 1.25rem;
    font-weight: 800;

    line-height: 1.4;
}

.project-description {
    max-width: 730px;

    margin-bottom: 27px;

    color: var(--gray);

    font-size: 1.08rem;

    line-height: 1.7;
}

.stack-row {
    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    margin-bottom: 31px;
}

.stack-row span {
    padding: 8px 11px;

    color: var(--lime);

    background: var(--purple-dark);

    border: 1px solid var(--purple-light);

    font-size: 0.82rem;
    font-weight: 900;
}

.project-launch {
    display: inline-flex;

    align-items: center;
    justify-content: space-between;

    gap: 55px;

    min-width: 230px;

    padding: 14px 17px;

    background: var(--purple);

    color: var(--lime);

    text-decoration: none;

    font-size: 0.9rem;
    font-weight: 900;

    transition:
        background 0.2s ease,
        transform 0.2s ease;
}

.project-launch span {
    font-size: 1.2rem;
    line-height: 1;
}

.project-launch:hover {
    background: var(--purple-light);

    transform: translateY(-2px);
}

/* PROJECT FEATURE GRID */
.project-spec-panel {
    display: grid;

    grid-template-columns: 1fr 1fr;

    background: var(--black);
}

.project-spec {
    position: relative;

    isolation: isolate;

    overflow: hidden;

    min-height: 115px;

    padding: 20px;

    background: var(--black);

    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);

    transition:
        background 0.25s ease,
        border-color 0.25s ease;
}

.project-spec::before {
    content: "";

    position: absolute;
    inset: 0;

    z-index: -1;

    background-image:
        radial-gradient(
            circle,
            rgba(113, 76, 255, 0.58) 1.4px,
            transparent 1.4px
        ),
        radial-gradient(
            circle,
            rgba(211, 240, 10, 0.25) 1px,
            transparent 1px
        );

    background-size:
        18px 18px,
        54px 54px;

    background-position:
        0 0,
        9px 9px;

    opacity: 0.14;

    animation:
        project-grid-drift 10s linear infinite;

    transition:
        opacity 0.25s ease;
}

.project-spec:hover {
    background: #0d0f14;

    border-color: var(--purple);
}

.project-spec:hover::before {
    opacity: 0.46;
}

.project-spec span {
    display: block;

    margin-bottom: 14px;

    color: var(--purple-light);

    font-size: 0.8rem;
    font-weight: 900;

    transition:
        color 0.25s ease,
        transform 0.25s ease;
}

.project-spec:hover span {
    color: var(--lime);

    transform: translateX(3px);
}

.project-spec p {
    color: var(--white);

    font-size: 0.96rem;
    font-weight: 800;

    line-height: 1.4;
}

@keyframes project-grid-drift {

    0% {
        background-position:
            0 0,
            9px 9px;
    }

    100% {
        background-position:
            36px 36px,
            63px 63px;
    }
}

/* PROJECT LIST */
.project-feature + .project-feature {
    margin-top: 28px;
}

}
