body { font-family: 'Montserrat', ui-sans-serif, system-ui, sans-serif; overscroll-behavior-y: none; }
    img { -webkit-user-drag: none; user-select: none; }

    @keyframes king-shake {
      0%, 100% { transform: translateX(0) rotate(0deg); }
      25% { transform: translateX(-4px) rotate(-5deg); }
      75% { transform: translateX(4px) rotate(5deg); }
    }
    @keyframes mc-confetti {
      0% { transform: translate(0, 0) rotate(0deg) scale(1); opacity: 1; }
      70% { opacity: 1; }
      100% { transform: translate(var(--tx), calc(var(--ty) + 200px)) rotate(var(--rot)) scale(0.2); opacity: 0; }
    }
    @keyframes pp-pop { 0%, 100% { transform: scale(1); } 40% { transform: scale(1.15); } }
    @keyframes slide-up { 0% { opacity: 0; transform: translateY(20px); } 100% { opacity: 1; transform: translateY(0); } }
    @keyframes float-up { 0% { opacity: 1; transform: translate(-50%, 0) scale(1); } 100% { opacity: 0; transform: translate(-50%, -80px) scale(1.4); } }

    .shake-piece { animation: king-shake 0.4s ease-in-out; }
    .pp-pop { animation: pp-pop 0.3s ease-out; }
    .slide-up { animation: slide-up 0.4s ease-out; }
    .float-up { animation: float-up 1.2s forwards; }

    ::-webkit-scrollbar { width: 8px; }
    ::-webkit-scrollbar-track { background: transparent; }
    ::-webkit-scrollbar-thumb { background: #94a3b8; border-radius: 4px; }
    .dark ::-webkit-scrollbar-thumb { background: #374151; }

    .board-wrapper { max-width: min(100%, calc(100dvh - 280px)); transition: max-width 0.3s ease; position: relative; }
    @media (min-width: 1024px) { .board-wrapper { max-width: min(100%, calc(100vh - 120px)); } }

    input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
    #board-surface { touch-action: none; overflow: hidden; }
    .hint-highlight { box-shadow: inset 0 0 0 4px #fbbf24; }

    @keyframes streak-fire-glow {
      0%, 100% { box-shadow: 0 0 15px 5px rgba(249, 115, 22, 0.5), inset 0 0 10px 2px rgba(249, 115, 22, 0.3); border-color: #f97316; }
      50% { box-shadow: 0 0 25px 8px rgba(234, 179, 8, 0.6), inset 0 0 15px 5px rgba(234, 179, 8, 0.4); border-color: #eab308; }
    }
    .streak-fire {
      animation: streak-fire-glow 1.5s infinite ease-in-out;
      border-color: #f97316 !important;
    }

    /* --- Zen Mode --- */
    body.zen-mode header {
        display: none !important;
    }
    body.zen-mode #game-picker-btn {
        display: none !important;
    }
    body.zen-mode #move-history {
        display: none !important;
    }
    body.zen-mode main {
        max-width: 100vw !important;
        padding: 1rem !important;
    }
    body.zen-mode .lg\\:w-\\[420px\\] {
        border: none !important;
        box-shadow: none !important;
        background: transparent !important;
    }
    body.zen-mode .board-wrapper {
        max-width: min(100%, calc(100dvh - 30px)) !important;
    }