| @tailwind base; |
| @tailwind components; |
| @tailwind utilities; |
|
|
| html, body, #root { |
| height: 100%; |
| background-color: #050505; |
| color: #ffffff; |
| font-family: 'Manrope', 'IBM Plex Sans', system-ui, sans-serif; |
| -webkit-font-smoothing: antialiased; |
| -moz-osx-font-smoothing: grayscale; |
| } |
|
|
| body { |
| margin: 0; |
| min-height: 100vh; |
| background: |
| radial-gradient(1200px 700px at 12% -10%, rgba(138, 43, 226, 0.12), transparent 55%), |
| radial-gradient(1000px 600px at 100% 0%, rgba(0, 87, 255, 0.10), transparent 55%), |
| radial-gradient(900px 900px at 50% 120%, rgba(0, 240, 255, 0.08), transparent 55%), |
| #050505; |
| } |
|
|
| |
| body::before { |
| content: ""; |
| position: fixed; inset: 0; |
| pointer-events: none; |
| z-index: 1; |
| opacity: 0.035; |
| background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/></svg>"); |
| animation: grainShift 8s steps(6) infinite; |
| } |
|
|
| ::selection { |
| background: rgba(0, 240, 255, 0.35); |
| color: #fff; |
| } |
|
|
| |
| ::-webkit-scrollbar { width: 10px; height: 10px; } |
| ::-webkit-scrollbar-track { background: #0a0a0a; } |
| ::-webkit-scrollbar-thumb { background: #27272a; border-radius: 4px; } |
| ::-webkit-scrollbar-thumb:hover { background: #3f3f46; } |
|
|
| .tag-eyebrow { |
| font-family: 'JetBrains Mono', monospace; |
| text-transform: uppercase; |
| letter-spacing: 0.2em; |
| font-size: 11px; |
| color: #A1A1AA; |
| } |
|
|
| .chip { |
| display: inline-flex; |
| align-items: center; |
| gap: 6px; |
| padding: 4px 10px; |
| border-radius: 999px; |
| border: 1px solid #27272A; |
| background: rgba(255,255,255,0.02); |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 11px; |
| letter-spacing: 0.1em; |
| text-transform: uppercase; |
| color: #A1A1AA; |
| } |
| .chip.on { color: #00F0FF; border-color: rgba(0,240,255,0.4); box-shadow: 0 0 24px rgba(0,240,255,0.15); } |
| .chip.ok { color: #39FF14; border-color: rgba(57,255,20,0.4); } |
| .chip.err { color: #FF3B30; border-color: rgba(255,59,48,0.4); } |
|
|
| .mesh-text-gradient { |
| background: linear-gradient(45deg, #8A2BE2 0%, #0057FF 35%, #00F0FF 65%, #39FF14 100%); |
| -webkit-background-clip: text; |
| background-clip: text; |
| color: transparent; |
| } |
|
|
| .glass { |
| background: rgba(10,10,10,0.65); |
| backdrop-filter: blur(18px); |
| -webkit-backdrop-filter: blur(18px); |
| border: 1px solid rgba(255,255,255,0.06); |
| } |
|
|
| .btn-cyan { |
| background: linear-gradient(45deg, #0057FF 0%, #00F0FF 100%); |
| color: #050505; |
| font-weight: 700; |
| padding: 12px 22px; |
| border-radius: 6px; |
| transition: transform .15s ease, box-shadow .2s ease, filter .15s ease; |
| letter-spacing: 0.02em; |
| box-shadow: 0 8px 22px -8px rgba(0,240,255,0.5); |
| border: none; |
| cursor: pointer; |
| } |
| .btn-cyan:hover { transform: translateY(-1px); box-shadow: 0 12px 30px -6px rgba(0,240,255,0.6); filter: brightness(1.05); } |
| .btn-cyan:disabled { opacity: 0.4; cursor: not-allowed; transform: none; } |
|
|
| .btn-ghost { |
| background: transparent; |
| color: #fff; |
| border: 1px solid #27272A; |
| padding: 12px 22px; |
| border-radius: 6px; |
| cursor: pointer; |
| transition: border-color .2s, color .2s, background .2s; |
| font-weight: 600; |
| } |
| .btn-ghost:hover { border-color: #00F0FF; color: #00F0FF; background: rgba(0,240,255,0.05); } |
|
|
| .btn-danger { |
| background: rgba(255, 59, 48, 0.12); |
| color: #FF3B30; |
| border: 1px solid rgba(255, 59, 48, 0.4); |
| padding: 8px 14px; |
| border-radius: 6px; |
| cursor: pointer; |
| transition: background .2s; |
| font-size: 12px; |
| font-weight: 600; |
| } |
| .btn-danger:hover { background: rgba(255, 59, 48, 0.2); } |
|
|
| .corner-brackets::before, |
| .corner-brackets::after, |
| .corner-brackets > .cb1, |
| .corner-brackets > .cb2 { |
| content: ""; |
| position: absolute; |
| width: 32px; height: 32px; |
| border-color: #00F0FF; |
| border-style: solid; |
| filter: drop-shadow(0 0 6px rgba(0,240,255,0.6)); |
| pointer-events: none; |
| } |
| .corner-brackets::before { top: 10px; left: 10px; border-width: 2px 0 0 2px; } |
| .corner-brackets::after { top: 10px; right: 10px; border-width: 2px 2px 0 0; } |
| .corner-brackets > .cb1 { bottom: 10px; left: 10px; border-width: 0 0 2px 2px; } |
| .corner-brackets > .cb2 { bottom: 10px; right: 10px; border-width: 0 2px 2px 0; } |
|
|
| .laser-line { |
| position: absolute; |
| left: 0; right: 0; |
| height: 2px; |
| background: linear-gradient(90deg, transparent 0%, #8A2BE2 20%, #0057FF 40%, #00F0FF 60%, #39FF14 80%, transparent 100%); |
| box-shadow: 0 0 24px rgba(0, 240, 255, 0.9), 0 0 60px rgba(138, 43, 226, 0.5); |
| animation: scanY 3.2s ease-in-out infinite; |
| z-index: 10; |
| } |
|
|
| .data-cell { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.02em; } |
|
|
| .table-tech th { |
| font-family: 'JetBrains Mono', monospace; |
| text-transform: uppercase; |
| font-size: 10px; |
| letter-spacing: 0.2em; |
| color: #A1A1AA; |
| border-bottom: 1px solid #27272A; |
| padding: 12px 14px; |
| text-align: left; |
| font-weight: 500; |
| } |
| .table-tech td { |
| padding: 14px; |
| border-bottom: 1px solid rgba(39,39,42,0.6); |
| font-size: 13.5px; |
| } |
|
|
| input[type="text"], input[type="email"], input[type="date"], select, textarea { |
| background: #0a0a0a; |
| border: 1px solid #27272A; |
| color: #fff; |
| padding: 12px 14px; |
| border-radius: 6px; |
| font-size: 14px; |
| width: 100%; |
| transition: border-color .2s, box-shadow .2s; |
| font-family: inherit; |
| } |
| input:focus, select:focus, textarea:focus { |
| outline: none; |
| border-color: #00F0FF; |
| box-shadow: 0 0 0 3px rgba(0, 240, 255, 0.15); |
| } |
|
|
| label { |
| display: block; |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 11px; |
| text-transform: uppercase; |
| letter-spacing: 0.2em; |
| color: #A1A1AA; |
| margin-bottom: 6px; |
| } |
|
|
| .grid-lines { |
| background-image: |
| linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px), |
| linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px); |
| background-size: 40px 40px; |
| } |
|
|
| .status-dot { |
| width: 8px; height: 8px; border-radius: 50%; |
| background: #39FF14; |
| box-shadow: 0 0 8px #39FF14; |
| animation: pulseSoft 2s ease-in-out infinite; |
| } |
| .status-dot.off { background: #52525B; box-shadow: none; animation: none; } |
| .status-dot.warn { background: #FFCC00; box-shadow: 0 0 8px #FFCC00; } |
| .status-dot.err { background: #FF3B30; box-shadow: 0 0 8px #FF3B30; } |
|
|