body {
    display: flex;
    align-items: center;
    justify-content: center;
}

.container {
    display: flex;
    gap: 5vw;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    padding: 2rem;
}

.card {
    width: 40vw;
    max-width: 500px;
    aspect-ratio: 4 / 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: var(--text-primary);
    border-radius: 16px;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    position: relative;
    overflow: hidden;
    padding: 1.5rem;
    gap: 0.3rem;
}

.card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 16px;
    padding: 2px;
    background: linear-gradient(135deg, rgba(255,255,255,0.15), transparent 50%, rgba(255,255,255,0.05));
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

.card:hover {
    transform: scale(1.03);
}

.card-doom {
    background: linear-gradient(145deg, #1f0808, #120303);
}
.card-doom:hover {
    box-shadow: 0 0 40px rgba(180, 30, 30, 0.4);
}

.card-j2me {
    background: linear-gradient(145deg, #08121f, #030a12);
}
.card-j2me:hover {
    box-shadow: 0 0 40px rgba(30, 100, 180, 0.4);
}

.card-umk3 {
    background: linear-gradient(145deg, #1a1a08, #0d0d00);
}
.card-umk3:hover {
    box-shadow: 0 0 40px rgba(201, 168, 76, 0.4);
}

.card-astral {
    background: linear-gradient(145deg, #140a20, #080012);
}
.card-astral:hover {
    box-shadow: 0 0 40px rgba(123, 47, 247, 0.4);
}

.card-articles {
    background: linear-gradient(145deg, #1a0a2e, #0d001a);
}
.card-articles:hover {
    box-shadow: 0 0 40px rgba(189, 147, 249, 0.4);
}

.card-visual {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    width: 100%;
}

.card-visual img {
    width: 60%;
    height: auto;
    max-height: 100%;
    object-fit: contain;
}

.card-j2me .card-visual img {
    width: 28%;
}

.card-umk3 .card-visual img {
    width: 40%;
}

.card-astral .card-visual img {
    width: 55%;
}

.card-label {
    font-size: 1.8rem;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.card-sub {
    font-size: 0.8rem;
    opacity: 0.45;
    letter-spacing: 0.05em;
}

@media (max-width: 768px) {
    .card { width: 80vw; }
}
