@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.animate-fade-in { animation: fadeIn 0.5s ease-out forwards; }
.pb-safe { padding-bottom: env(safe-area-inset-bottom, 0); }
.grid-tile-active { border-color: #c2652a !important; background-color: rgba(194, 101, 42, 0.1) !important; }

/* Dynamic Grid Support */
#game-grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-cols, 8), 1fr);
    grid-template-rows: repeat(var(--grid-rows, 8), 1fr);
}

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #faf5ee; }
::-webkit-scrollbar-thumb { background: #d8d0c8; border-radius: 10px; }
.dark ::-webkit-scrollbar-track { background: #0c0a09; }
.dark ::-webkit-scrollbar-thumb { background: #292524; }
