.menu {
    position: fixed;
    inset: 0;
    z-index: 20;
    display: flex;
    justify-content: flex-end;
    padding: 16px;
    background: rgba(7, 29, 65, .35);
    backdrop-filter: blur(4px);
    animation: fade .2s ease both;
}

.menu[hidden] {
    display: none;
}

@keyframes fade {
    from {
        opacity: 0;
    }
}

.menu-sheet {
    width: min(520px, 100%);
    overflow-y: auto;
    padding: 28px;
    border-radius: 32px;
    background: #fff;
    animation: slide .3s var(--ease) both;
}

@keyframes slide {
    from {
        transform: translateX(24px);
        opacity: 0;
    }
}

.menu-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    font-family: var(--serif);
    font-size: 28px;
}

.menu-grid {
    display: grid;
    gap: 6px;
}

.menu-grid button {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 16px;
    border: 0;
    border-radius: 18px;
    background: transparent;
    text-align: left;
    transition: background .15s;
}

.menu-grid button:hover {
    background: #f1f5f9;
}

.menu-grid i {
    display: grid;
    place-items: center;
    flex: none;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: #e9f3ec;
    color: var(--green);
    font-size: 22px;
}

.menu-grid strong {
    display: block;
    font-size: 17px;
}

.menu-grid small {
    color: var(--muted);
    font-size: 14px;
}
