/** @type {import('tailwindcss').Config} */ export default { content: ['./index.html', './src/**/*.{ts,tsx}'], theme: { extend: { colors: { // Velvet table palette (design handoff: "01 — Sametový stôl") table: '#090e0b', header: '#070c09', circle: '#0c1a0f', 'circle-active': '#0e2015', gold: '#c9a84c', 'gold-bright': '#f0d060', 'gold-dim': '#e8c14a', // Secondary text is warm cream (not green) for legibility on the dark // table — the green is reserved for structure (felt, opponent cards). 'green-dim': '#9c906c', 'green-score': '#d8cba6', 'green-circle': '#c2b58c', }, fontFamily: { serif: ['"Playfair Display"', 'Georgia', 'serif'], sans: ['"DM Sans"', 'system-ui', 'sans-serif'], }, keyframes: { // turn-pulse — blinking dot / placeholder slot tp: { '0%,100%': { opacity: '1' }, '50%': { opacity: '.5' } }, // card-in — card lands on the table ci: { from: { opacity: '0', transform: 'translateY(-6px) scale(.9)' }, to: { opacity: '1', transform: 'none' }, }, // active-ring — glowing gold ring around the active player circle ar: { '0%,100%': { boxShadow: '0 0 0 3px rgba(201,168,76,.18),0 0 18px rgba(201,168,76,.5),0 0 42px rgba(201,168,76,.2)', }, '50%': { boxShadow: '0 0 0 5px rgba(201,168,76,.34),0 0 32px rgba(201,168,76,.85),0 0 56px rgba(201,168,76,.3)', }, }, // glow-1 — gold glow border on a playable card g1: { '0%,100%': { boxShadow: '0 0 18px rgba(201,168,76,.55),0 6px 18px rgba(0,0,0,.55)', }, '50%': { boxShadow: '0 0 34px rgba(201,168,76,.85),0 6px 18px rgba(0,0,0,.55)', }, }, }, animation: { tp: 'tp 1.8s ease-in-out infinite', ci: 'ci .3s ease both', ar: 'ar 2.2s ease-in-out infinite', g1: 'g1 2.2s ease-in-out infinite', }, }, }, plugins: [], };