:root{--color-brand-cyan: #00f3ff;--color-brand-violet: #bd00ff;--color-brand-dark: #030304;--color-brand-surface: #0a0a12;--color-status-success: #10b981;--color-status-warning: #f59e0b;--color-status-danger: #ef4444;--color-vendor-okta: #00297A;--color-vendor-entra: #0078D4;--color-vendor-ping: #D71E2B;--color-text-main: #e2e8f0;--color-text-muted: #94a3b8}body{background-color:var(--color-brand-dark);color:var(--color-text-main);overflow-x:hidden}body.custom-cursor{cursor:none}::-moz-selection{background:#00f3ff;color:#030304}::selection{background:#00f3ff;color:#030304}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:#030304}::-webkit-scrollbar-thumb{background:#333;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#00f3ff}.grain{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:40;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")}.cursor-dot{width:4px;height:4px;background-color:#00f3ff;position:fixed;top:0;left:0;border-radius:50%;z-index:9999;pointer-events:none;mix-blend-mode:difference}.cursor-outline{width:40px;height:40px;border:1px solid rgba(0,243,255,.3);position:fixed;top:0;left:0;border-radius:50%;z-index:9999;pointer-events:none;transition:width .2s,height .2s,background-color .2s}nav{transition:transform .3s ease-in-out,background-color .3s}.nav-hidden{transform:translateY(-100%)}.text-gradient{background:linear-gradient(to right,#00f3ff,#bd00ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.clip-text-line{clip-path:polygon(0 0,100% 0,100% 100%,0% 100%);overflow:visible}.scramble-text{display:inline-block;white-space:pre}.holo-card{position:relative;z-index:10;transition:all .4s cubic-bezier(.175,.885,.32,1.275);will-change:transform;transform-style:preserve-3d;border:1px solid rgba(255,255,255,.05);background:linear-gradient(145deg,#0a0a12cc,#0f0f1999);backdrop-filter:blur(10px);overflow:hidden}.holo-card.status-200:hover{border-color:#10b98180;box-shadow:0 0 30px #10b98133}.holo-card.status-300:hover{border-color:#f59e0b80;box-shadow:0 0 30px #f59e0b33}.holo-card.status-500:hover{border-color:#ef444480;box-shadow:0 0 30px #ef444433}.holo-glare{position:absolute;inset:0;opacity:0;transition:opacity .3s;background:radial-gradient(circle at var(--mx, 50%) var(--my, 50%),rgba(255,255,255,.1) 0%,transparent 60%);pointer-events:none;mix-blend-mode:overlay;z-index:2}.infra-module{border:1px solid rgba(255,255,255,.1);background:#ffffff05;padding:12px 20px;display:flex;flex-direction:column;gap:4px;transition:all .3s;cursor:none;border-left:3px solid transparent}.infra-module.mod-active{border-left-color:#10b981}.infra-module.mod-hybrid{border-left-color:#f59e0b}.infra-module.mod-legacy{border-left-color:#ef4444}.infra-module:hover{background:#ffffff0d;transform:translate(5px)}.badge{display:flex;align-items:center;gap:10px;padding:8px 16px;border:1px solid rgba(255,255,255,.1);background:#ffffff08;border-radius:4px;font-family:JetBrains Mono,monospace;font-size:.7rem;transition:all .3s;cursor:none}.badge:hover{background:#ffffff14;border-color:var(--badge-color, #fff);box-shadow:0 0 15px var(--badge-glow, rgba(255, 255, 255, .1));transform:translateY(-2px)}.terminal-window{background-color:#0a0a12f2;border:1px solid #334155;border-radius:8px;box-shadow:0 20px 50px #00000080;overflow:hidden}.terminal-header{background:#1e293b;padding:8px 12px;display:flex;gap:6px}.dot{width:10px;height:10px;border-radius:50%}.terminal-input:focus{outline:none}#login-modal{backdrop-filter:blur(10px)}.login-box{box-shadow:0 0 40px #00f3ff1a;animation:modalIn .3s cubic-bezier(.16,1,.3,1)}@keyframes modalIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}#back-to-top{opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;transform:translateY(20px)}#back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}#preloader{clip-path:polygon(0 0,100% 0,100% 100%,0% 100%)}.scan-line{width:100%;height:2px;background:#00f3ff;opacity:.5;position:absolute;top:0;left:0;box-shadow:0 0 15px #00f3ff;animation:scan 2s linear infinite}@keyframes scan{0%{top:0%;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}.blinking-cursor:after{content:"_";animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}
