*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } :root { --bg: #090909; --surface: #111111; --surface2: #181818; --border: #1e1e1e; --border2: #2a2a2a; --text: #e8e4dc; --muted: #555; --accent: #c8f060; --accent2: #60d0f0; --danger: #f06060; --ai-ring: #60d0f0; --user-ring: #c8f060; --mono: 'DM Mono', monospace; --sans: 'Syne', sans-serif; } html, body, #root { height: 100%; background: var(--bg); color: var(--text); font-family: var(--sans); } audio { display: none; } /* scrollbar */ ::-webkit-scrollbar { width: 4px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 4px; } /* ── Animations ── */ @keyframes blink { 50% { opacity: 0; } } @keyframes pulse-ring { 0% { transform: scale(1); opacity: inherit; } 70% { transform: scale(1.12); } 100% { transform: scale(1.2); opacity: 0; } } @keyframes wave-bounce { 0%, 100% { height: 4px; } 50% { height: var(--h); } } @keyframes fade-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } @keyframes slide-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes shimmer { 0% { background-position: -200% center; } 100% { background-position: 200% center; } }