:root {
    --menu-icon-filter: none;
}

.menu-item-icon {
    width: 1em;
    height: 1em;
    vertical-align: middle;
    margin-right: 0.5em;
    display: inline-block;
    filter: var(--menu-icon-filter);
}

.menu-item-icon.meteoricon {
    fill: currentColor;
}

.menu a .menu-item-icon {
    transition: all 0.3s ease;
}

.menu a:hover .menu-item-icon {
    transform: scale(1.1);
}

@media (prefers-color-scheme: dark) {
    :root {
        --menu-icon-filter: invert(1) brightness(1.2);
    }
    
    .menu-item-icon {
        filter: var(--menu-icon-filter);
    }
}

body.dark-mode .menu-item-icon,
body.dark .menu-item-icon,
body[data-theme="dark"] .menu-item-icon,
.dark-mode .menu-item-icon,
.dark .menu-item-icon,
[data-theme="dark"] .menu-item-icon,
html.dark .menu-item-icon,
html[data-theme="dark"] .menu-item-icon {
    filter: invert(1) brightness(1.2);
}

body.light-mode .menu-item-icon,
body.light .menu-item-icon,
body[data-theme="light"] .menu-item-icon,
.light-mode .menu-item-icon,
.light .menu-item-icon,
[data-theme="light"] .menu-item-icon,
html.light .menu-item-icon,
html[data-theme="light"] .menu-item-icon {
    filter: none;
}

@media (max-width: 768px) {
    .menu-item-icon {
        width: 1.2em;
        height: 1.2em;
    }
}
