/* === Global Styles === */ * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; } body { font-family: 'Vazirmatn', sans-serif; user-select: none; -webkit-user-select: none; overflow-x: hidden; } /* === Dice Dots === */ .dice-dots { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-template-rows: 1fr 1fr 1fr; gap: 2px; width: 80%; height: 80%; padding: 8%; } .dot { width: 10px; height: 10px; background: #1a1a1a; border-radius: 50%; margin: auto; box-shadow: inset 0 1px 2px rgba(0,0,0,0.5); } .dot.center { grid-column: 2; grid-row: 2; } .dot.top-left { grid-column: 1; grid-row: 1; } .dot.top-right { grid-column: 3; grid-row: 1; } .dot.bottom-left { grid-column: 1; grid-row: 3; } .dot.bottom-right { grid-column: 3; grid-row: 3; } .dot.mid-left { grid-column: 1; grid-row: 2; } .dot.mid-right { grid-column: 3; grid-row: 2; } /* === Animations === */ @keyframes roll-dice { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(90deg) scale(1.1); } 50% { transform: rotate(180deg) scale(0.95); } 75% { transform: rotate(270deg) scale(1.05); } 100% { transform: rotate(360deg) scale(1); } } .dice-rolling { animation: roll-dice 0.5s ease-in-out; } @keyframes shake { 0%, 100% { transform: translateX(0); } 20% { transform: translateX(-4px); } 40% { transform: translateX(4px); } 60% { transform: translateX(-3px); } 80% { transform: translateX(3px); } } .shake { animation: shake 0.5s ease-in-out; } /* === Win Modal === */ #win-modal-content.show { transform: scale(1); } /* === Button Disabled === */ button:disabled { opacity: 0.5; cursor: not-allowed; transform: none !important; } button:disabled:hover { transform: none !important; } /* === Canvas pointer === */ canvas#mensch-board { cursor: pointer; max-width: 100%; height: auto; touch-action: manipulation; }