.app-header {
    width: min(1440px, calc(100% - 48px));
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 28px 0 22px;
}

.app-logo {
    margin: 0;
    font: 700 clamp(2rem, 5vw, 4.5rem)/.9 'Trebuchet MS', sans-serif;
    letter-spacing: 0;
}

.app-logo-initial {
    width: 1em;
    height: 1em;
    margin-right: .03em;
    object-fit: contain;
    vertical-align: -.12em;
}

.app-logo span {
    color: var(--accent);
}

.app-menu-button {
    display: grid;
    gap: 5px;
    width: 48px;
    height: 48px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
}

.app-menu-button span {
    height: 2px;
    background: var(--ink);
}

.app-menu {
    position: absolute;
    top: 82px;
    right: max(24px, calc((100vw - 1440px) / 2));
    z-index: 20;
    display: grid;
    min-width: 240px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 16px 40px #17202a22;
}

.app-menu[hidden] {
    display: none;
}

.app-menu a {
    padding: 10px 12px;
    color: inherit;
    text-decoration: none;
}

.app-menu .app-menu-legal-link {
    font-size: .875rem;
}

.app-menu a:hover,
.app-menu a:focus-visible {
    background: var(--mint);
    outline: none;
}

@media (max-width: 620px) {
    .app-header {
        width: min(100% - 24px, 1440px);
    }

    .app-menu {
        right: 12px;
    }
}
