/* ==========================================================
   Mobile-only controls: hidden on desktop, shown on mobile
   ========================================================== */
.mobile-only {
    display: none;
}

.mobile-actions {
    display: none;
}

/* ==========================================================
   Desktop / tablet landscape (>= 768px)
   ========================================================== */
@media (min-width: 768px) {
    body.is-desktop .mobile-only,
    body.is-desktop .mobile-actions {
        display: none;
        pointer-events: none;
    }

    .levels-grid {
        grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
        gap: 14px;
    }

    .puzzle-card {
        padding: 30px 36px;
    }

    .emoji-item {
        font-size: clamp(3rem, 8vh, 5rem);
    }
}

/* ==========================================================
   Mobile / small screens (< 768px): vertical layout
   ========================================================== */
@media (max-width: 767px) {
    .mobile-only {
        display: inline-flex;
    }

    /* hide the desktop action row on mobile; show mobile-only controls */
    #desktop-actions {
        display: none;
    }

    .mobile-actions {
        display: flex;
        width: 100%;
        gap: 12px;
    }

    .mobile-actions .action-btn {
        flex: 1;
        justify-content: center;
        min-height: 56px;
        font-size: 1.05rem;
    }

    #game-options {
        grid-template-columns: 1fr;
    }

    .answer-btn {
        min-height: 60px;
        font-size: 1.1rem;
    }

    .game-actions .action-btn:nth-child(n) {
        flex: 1;
        justify-content: center;
    }

    .game-shell {
        max-width: 100%;
    }

    .puzzle-card {
        padding: 20px 14px;
    }

    .emoji-area {
        min-height: 90px;
        gap: 8px;
    }

    .emoji-item {
        font-size: clamp(2.6rem, 15vw, 4rem);
    }
}

/* Extra small phones */
@media (max-width: 380px) {
    .menu-title {
        font-size: 1.7rem;
    }

    .game-actions {
        flex-wrap: wrap;
    }

    .game-actions .action-btn {
        font-size: 0.85rem;
        padding: 10px 12px;
    }
}

/* ==========================================================
   Landscape mobile (< 768px tall) - keep it playable
   ========================================================== */
@media (max-height: 520px) and (orientation: landscape) {
    .emoji-area {
        min-height: 60px;
    }
    .emoji-item {
        font-size: 2.4rem;
    }
    .game-options {
        grid-template-columns: 1fr 1fr;
    }
    .screen {
        justify-content: flex-start;
        padding-top: calc(env(safe-area-inset-top, 0px) + 8px);
    }
}

/* ==========================================================
   Desktop large full-screen
   ========================================================== */
@media (min-width: 1024px) and (min-height: 700px) {
    .game-shell {
        max-width: 760px;
    }
}

@media (min-width: 1440px) {
    .levels-grid {
        grid-template-columns: repeat(12, 1fr);
    }
    .game-shell {
        max-width: 800px;
    }
}
