:root {
    --omen-font-display: "Omen Display", Georgia, "Times New Roman", serif;
    --omen-font-body: "Omen Body", Georgia, "Times New Roman", serif;
    --omen-font-ui: "Omen Display", Georgia, "Times New Roman", serif;
    --omen-font-cjk: "Noto Serif SC", "SimSun";
    --omen-font-canvas: "Omen Body", Georgia, "Times New Roman", serif;
}

html,
body,
button,
input,
select,
textarea,
#uiContainer,
#uiContainer * {
    font-family: var(--omen-font-body) !important;
}

#uiContainer :is(
    h1,
    h2,
    h3,
    button,
    .omen-ui-button,
    .menu-button,
    .menu-button-text,
    .menu-button-subtitle,
    .main-menu-action-copy strong,
    .main-menu-title,
    .main-menu-subtitle,
    .modes-clean-header h2,
    .run-setup-clean-header h2,
    .hero-upgrades-clean-header h2,
    .skins-clean-header h2,
    .bestiary-title,
    .achievements-title,
    .leaderboard-title,
    .settings-title,
    .pause-title,
    .death-title,
    .victory-title,
    .result-title,
    .card-choice-title,
    .card-option-title,
    .run-option-title,
    .hero-card-title,
    .skin-option-title,
    .hero-upgrade-node-title,
    .hero-upgrade-tab,
    .location-title,
    .difficulty-title
) {
    font-family: var(--omen-font-display) !important;
    font-weight: 800;
    letter-spacing: .055em;
    text-rendering: geometricPrecision;
}

#uiContainer :is(
    .main-menu-action-copy strong,
    .modes-clean-header h2,
    .run-setup-clean-header h2,
    .hero-upgrades-clean-header h2,
    .skins-clean-header h2,
    .bestiary-title,
    .achievements-title,
    .leaderboard-title,
    .settings-title,
    .pause-title,
    .death-title,
    .victory-title,
    .result-title,
    .card-choice-title
) {
    color: #f4dfb2;
    text-shadow:
        0 2px 0 rgba(48, 15, 12, .95),
        0 0 14px rgba(87, 208, 208, .24),
        0 0 24px rgba(187, 35, 31, .2);
}

#uiContainer :is(button, .omen-ui-button, .menu-button, .run-setup-primary, .run-setup-secondary) {
    font-weight: 850;
    text-transform: uppercase;
}

html:lang(zh-CN) body,
body.omen-lang-zh,
body.omen-lang-zh button,
body.omen-lang-zh input,
body.omen-lang-zh select,
body.omen-lang-zh textarea,
body.omen-lang-zh #uiContainer,
body.omen-lang-zh #uiContainer * {
    font-family: var(--omen-font-cjk), var(--omen-font-body) !important;
}

body.omen-lang-zh #uiContainer :is(
    h1,
    h2,
    h3,
    button,
    .omen-ui-button,
    .menu-button,
    .main-menu-action-copy strong,
    .modes-clean-header h2,
    .run-setup-clean-header h2,
    .hero-upgrades-clean-header h2,
    .skins-clean-header h2,
    .card-choice-title,
    .run-option-title,
    .hero-card-title,
    .skin-option-title
) {
    font-family: var(--omen-font-cjk), var(--omen-font-display) !important;
    letter-spacing: .045em;
    text-transform: none;
}
