.language-picker-button,
.language-picker-popup button {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--light2);
    background: var(--dark2);
    font: inherit;
    cursor: pointer;
    border: 0;
}
.language-picker-button {
    min-height: 2rem;
    padding: 0.25rem;
    border-radius: 0.25rem;
    white-space: nowrap;
}
.language-picker-button::after { content: '⌄'; margin-left: 0.25rem; }
.language-flag {
    width: 1.5rem;
    height: 1rem;
    flex: 0 0 1.5rem;
    border-radius: 2px;
    box-shadow: 0 0 0 1px #ffffff35;
}
.language-picker-popup {
    position: fixed;
    z-index: 10000;
    padding: 0.25rem;
    border: 1px solid var(--light1);
    border-radius: 0.5rem;
    background: var(--dark2);
    box-shadow: 0 4px 16px #0008;
    max-height: calc(100dvh - 16px);
    overflow-y: auto;
}
.language-picker-popup[hidden] { display: none; }
.language-picker-popup button {
    width: 100%;
    min-height: 2.75rem;
    padding: 0.5rem;
    border-radius: 0.25rem;
    text-align: left;
}
.language-picker-popup button[aria-checked="true"] { box-shadow: inset 3px 0 var(--accent, var(--light2)); }
.language-picker-popup button[aria-checked="true"]::after { content: '✓'; margin-left: auto; }
.language-picker-button:focus-visible,
.language-picker-popup button:focus-visible { outline: 2px solid var(--light2); outline-offset: -2px; }
.language-picker-popup button:hover { background: var(--vanta-raised, var(--dark3)); }
#language-select[hidden], #desktop-language-select[hidden] { display: none; }
@media (max-width: 400px) {
    .language-picker-button { font-size: 0.875rem; gap: 0.375rem; }
}
