@import "tailwindcss"; @theme inline { --font-mono: 'Geist Mono', 'Courier New', Courier, monospace; } * { box-sizing: border-box; scroll-behavior: smooth; } html { background: #09090b; } html, body, #root { min-height: 100%; background: #09090b; color: #e5e5e5; font-family: var(--font-mono); line-height: 1.55; overflow-x: hidden; } body { margin: 0; } @layer base { button, input, textarea, select { font: inherit; } } a { color: inherit; text-decoration: none; } ::selection { background: #dc2626; color: #fff; } /* Scrollbar */ ::-webkit-scrollbar { width: 5px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #2a2a2a; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #444; } /* Custom checkbox */ input[type="checkbox"] { appearance: none; -webkit-appearance: none; width: 15px; height: 15px; border: 1px solid #333; background: #111; cursor: pointer; position: relative; flex-shrink: 0; transition: all 150ms; } input[type="checkbox"]:hover { border-color: #555; } input[type="checkbox"]:checked { border-color: #dc2626; background: #dc2626; } input[type="checkbox"]:checked::after { content: ''; position: absolute; left: 4px; top: 1px; width: 4px; height: 8px; border: solid white; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); } input[type="checkbox"]:focus-visible { outline: 1px solid #dc2626; outline-offset: 2px; } /* Select options for dark bg */ select option { background: #111; color: #e5e5e5; } /* Focus ring */ input:focus-visible, textarea:focus-visible, select:focus-visible { outline: none; } /* Film grain */ @keyframes grain { 0%, 100% { transform: translate(0, 0); } 10% { transform: translate(-2%, -2%); } 20% { transform: translate(2%, 2%); } 30% { transform: translate(-1%, 3%); } 40% { transform: translate(3%, -1%); } 50% { transform: translate(-3%, 1%); } 60% { transform: translate(1%, -3%); } 70% { transform: translate(-2%, 2%); } 80% { transform: translate(2%, -2%); } 90% { transform: translate(-1%, 1%); } } body::before { content: ''; position: fixed; inset: -50%; width: 200%; height: 200%; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); opacity: 0.025; pointer-events: none; z-index: 0; animation: grain 8s steps(10) infinite; }