/* Режим заражения использует общую HUD-систему, меняя только тематические токены. */
.theme-zombie {
    --zombie-panel: rgba(25, 14, 19, 0.78);
    --zombie-deep: rgba(11, 8, 11, 0.86);
    --zombie-warning: #ff9f43;
}

body.theme-zombie {
    background: #060608 !important;
}

main.zombie-main {
    padding-top: 90px !important;
}

.theme-zombie .zombie-hero {
    width: 100%;
    max-width: none;
    min-height: min(680px, 82vh);
    padding-inline: max(28px, calc((100vw - 1160px) / 2));
    border-bottom: 1px solid color-mix(in srgb, var(--accent-color) 48%, transparent);
    background: radial-gradient(circle at 50% 50%, rgba(35, 10, 15, 0.85) 0%, rgba(10, 14, 18, 0.98) 85%), url('../images/hero-bg.webp') center/cover no-repeat !important;
}

.theme-zombie .zombie-hero .hero-grid-mark { display: none; }
.theme-zombie .zombie-hero::after { border-color: var(--hud-outline); }
.theme-zombie .zombie-hero .hero-copy { width: min(100%, 1160px); max-width: 1160px; }
.theme-zombie .zombie-hero .hero-kicker { color: var(--accent-color); }

.theme-zombie .zombie-hero h1 {
    background: linear-gradient(110deg, #fff 5%, #ff9eae 62%, var(--accent-color) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    text-shadow: 2px 2px rgba(255, 51, 85, 0.24);
}

.theme-zombie .zombie-hero .status-badge {
    color: var(--accent-color);
    border-color: var(--hud-outline);
    background: rgba(255, 51, 85, 0.08);
}

.theme-zombie .zombie-btn {
    color: #fff;
    border-color: var(--accent-color);
    background: var(--accent-color);
    box-shadow: 0 0 28px var(--accent-glow);
}

.theme-zombie .zombie-btn:hover {
    color: #fff;
    background: #ff5570;
    box-shadow: 0 0 42px color-mix(in srgb, var(--accent-color) 55%, transparent);
}

body.theme-zombie .zombie-classes {
    width: min(1160px, 100%);
    max-width: none;
    padding: 104px 28px 92px;
}

.zombie-classes .section-intro { margin-bottom: 24px; }
.theme-zombie .zombie-classes .eyebrow,
.theme-zombie .zombie-req h2 { color: var(--accent-color); }

.class-columns {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.theme-zombie .tactical-card.class-box {
    --class-accent: var(--accent-color);
    min-height: 330px;
    padding: 34px 26px 28px;
    border-color: color-mix(in srgb, var(--class-accent) 42%, transparent) !important;
    background:
        radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--class-accent) 10%, transparent), transparent 35%),
        linear-gradient(145deg, var(--zombie-panel), var(--zombie-deep)) !important;
}

.theme-zombie .class-box.border-green { --class-accent: var(--zombie-warning); }
.theme-zombie .class-box.border-red { --class-accent: var(--accent-color); }
.theme-zombie .class-box.border-toxic { --class-accent: #ff7a45; }

.theme-zombie .class-box::before {
    background: var(--class-accent) !important;
    box-shadow: 0 0 14px var(--class-accent) !important;
}

.theme-zombie .class-box::after {
    content: 'BIO // CLASS';
    color: color-mix(in srgb, var(--class-accent) 68%, var(--text-muted));
}

.theme-zombie .class-box h3 { color: var(--text-primary); }
.theme-zombie .class-box p { color: var(--text-secondary); }
.theme-zombie .class-box p b { color: var(--text-primary); }

.theme-zombie .class-badge {
    color: #fff;
    border: 0;
    border-radius: 0;
    background: var(--class-accent);
    font-family: var(--font-hud);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.theme-zombie .class-box .roster-stat i {
    background: linear-gradient(90deg, var(--class-accent) var(--stat), rgba(255, 255, 255, 0.12) var(--stat));
}

@media (hover: hover) {
    .theme-zombie .tactical-card.class-box:hover {
        border-color: var(--class-accent) !important;
        box-shadow: 0 26px 58px rgba(0, 0, 0, 0.42), 0 0 26px color-mix(in srgb, var(--class-accent) 24%, transparent);
    }
}

.zombie-preview-block {
    width: 100%;
    max-width: 1160px;
    box-sizing: border-box;
    margin: 64px auto 0;
    padding: 34px 0 0;
    border-top: 1px solid var(--hud-outline);
}

.zombie-preview-block .preview-container { max-width: 1160px; margin: 0 auto; }

.zombie-screenshot {
    display: block;
    width: 100%;
    max-width: 800px;
    height: auto;
    margin: 0 auto;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 15%, black 85%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, black 15%, black 85%, transparent 100%);
}

.zombie-preview .sub-text {
    max-width: 680px;
    margin: 20px auto 0;
    text-align: center;
}

body.theme-zombie .zombie-req {
    width: min(1160px, 100%);
    max-width: none;
    margin: 0 auto 104px;
    padding: 0 28px;
    background: transparent;
    border: 0;
}

.theme-zombie .zombie-req .req-box {
    border-color: var(--hud-outline) !important;
    border-left: 3px solid var(--accent-color) !important;
    background: linear-gradient(145deg, var(--zombie-panel), var(--zombie-deep)) !important;
}

.theme-zombie .zombie-req .req-box::before {
    background: var(--accent-color);
    box-shadow: 0 0 16px var(--accent-glow);
}

.theme-zombie .zombie-req h3,
.theme-zombie .zombie-req .module-icon { color: var(--accent-color) !important; }

.theme-zombie .zombie-req .module-icon { border-color: var(--hud-outline); }
.theme-zombie .zombie-req .stat-bar { background: linear-gradient(90deg, var(--accent-color), var(--zombie-warning)); }

@media (max-width: 760px) {
    main.zombie-main { padding-top: 118px !important; }
    .theme-zombie .zombie-hero { min-height: 640px; padding-inline: 20px; }
    body.theme-zombie .zombie-classes { padding: 78px 20px 76px; }
    .class-columns { grid-template-columns: 1fr; }
    .theme-zombie .tactical-card.class-box { min-height: 0; }
    .zombie-preview-block { margin-top: 52px; }
    body.theme-zombie .zombie-req { margin-bottom: 78px; padding: 0 20px; }
}
