/* ============================================================
   Mobile navigation — full-screen cocoa overlay
   (checkbox-driven, works without JS)
   ============================================================ */

.menu-toggle {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.hamburger { display: none; }

/* Lock page scroll while the menu is open */
html:has(.menu-toggle:checked) { overflow: hidden; }

@media (max-width: 880px) {

    /* ---------- Trigger ---------- */

    .hamburger {
        position: relative;
        z-index: 220;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        margin-right: -8px;
        cursor: pointer;
    }

    .hamburger span,
    .hamburger span::before,
    .hamburger span::after {
        display: block;
        width: 26px;
        height: 2px;
        border-radius: 2px;
        background: var(--ink);
        transition: transform 0.35s var(--ease), top 0.35s var(--ease),
                    background 0.35s ease;
    }

    .hamburger span { position: relative; }

    .hamburger span::before,
    .hamburger span::after {
        content: '';
        position: absolute;
        left: 0;
    }

    .hamburger span::before { top: -8px; }
    .hamburger span::after  { top: 8px; }

    .menu-toggle:checked ~ .hamburger span { background: transparent; }

    .menu-toggle:checked ~ .hamburger span::before {
        top: 0;
        transform: rotate(45deg);
        background: var(--cream);
    }

    .menu-toggle:checked ~ .hamburger span::after {
        top: 0;
        transform: rotate(-45deg);
        background: var(--cream);
    }

    /* ---------- Overlay panel ---------- */

    .main-nav {
        position: fixed;
        inset: 0;
        z-index: 210;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2.5rem;
        padding: 4rem 2rem;
        background: var(--ink);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.45s ease, visibility 0.45s;
    }

    .menu-toggle:checked ~ .main-nav {
        opacity: 1;
        visibility: visible;
    }

    .main-nav ul {
        flex-direction: column;
        align-items: center;
        gap: 0.4rem;
        text-align: center;
    }

    .main-nav ul li {
        opacity: 0;
        transform: translateY(18px);
        transition: opacity 0.5s ease, transform 0.5s var(--ease);
    }

    .menu-toggle:checked ~ .main-nav ul li {
        opacity: 1;
        transform: none;
        transition-delay: calc(0.08s + 0.06s * var(--i, 0));
    }

    .main-nav ul li a {
        font-family: var(--serif);
        font-size: clamp(1.6rem, 6.5vw, 2.1rem);
        font-weight: 400;
        letter-spacing: 0.01em;
        text-transform: none;
        color: var(--cream);
        padding: 0.35rem 0;
    }

    .main-nav ul li a::after { bottom: 2px; }

    .main-nav ul li a:hover,
    .main-nav ul li a.is-active { color: var(--clay); }

    /* ---------- Overlay footer note ---------- */

    .main-nav-meta {
        display: block;
        text-align: center;
        opacity: 0;
        transform: translateY(18px);
        transition: opacity 0.5s ease 0.5s, transform 0.5s var(--ease) 0.5s;
    }

    .menu-toggle:checked ~ .main-nav .main-nav-meta {
        opacity: 1;
        transform: none;
    }

    .main-nav-meta .tune { margin-bottom: 0.75rem; }
    .main-nav-meta .tune i { background: var(--clay); }

    .main-nav-meta p {
        font-family: var(--serif);
        font-style: italic;
        font-size: 1rem;
        color: rgba(255, 255, 255, 0.45);
        margin: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .main-nav,
    .main-nav ul li,
    .main-nav-meta,
    .hamburger span,
    .hamburger span::before,
    .hamburger span::after {
        transition: none;
    }
}
