:root{--ink: #07070a;--ink-1: #0a0a10;--ink-2: #0e0e16;--ink-3: #14141e;--ink-4: #1b1b28;--line: #1f1f2e;--line-2: #2a2a3e;--fg: #ece9f5;--fg-dim: #9a97ad;--fg-faint: #5e5b74;--fg-ghost: #3d3b4e;--accent: #ff2d4a;--accent-2: #e9b654;--accent-rgb: 255, 45, 74;--sans: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--serif: "Fraunces", ui-serif, Georgia, serif;--display: var(--sans)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--ink);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased}html,body,#root{height:100%}body{overflow:hidden}button{font-family:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}input,textarea{font-family:inherit;color:inherit}::selection{background:var(--accent);color:#000}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#1a1a28;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#262636}.grain:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background-image:radial-gradient(1200px 600px at 10% -10%,rgba(var(--accent-rgb),.08),transparent 60%),radial-gradient(1000px 500px at 90% 110%,rgba(var(--accent-rgb),.05),transparent 60%)}.grain:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.12 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");opacity:.28;mix-blend-mode:overlay}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes slide-r{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}@keyframes slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes neon-pulse{0%,to{opacity:.25;transform:scaleX(.4)}50%{opacity:1;transform:scaleX(1)}}@keyframes neon-breathe{0%,to{box-shadow:0 0 rgba(var(--accent-rgb),.35)}50%{box-shadow:0 0 24px 2px rgba(var(--accent-rgb),.35)}}@keyframes thread-flow{0%{background-position:0% 50%}to{background-position:200% 50%}}@keyframes dot-breathe{0%,to{opacity:.6}50%{opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes port-ripple{0%{transform:scale(.4);opacity:.8}to{transform:scale(1.2);opacity:0}}@keyframes bubble-breathe{0%,to{box-shadow:0 0 0 1px rgba(var(--accent-rgb),.22),0 0 24px -6px rgba(var(--accent-rgb),.25)}50%{box-shadow:0 0 0 1px rgba(var(--accent-rgb),.42),0 0 32px -4px rgba(var(--accent-rgb),.45)}}@keyframes ping-out{0%{transform:translate(0);opacity:0}10%{opacity:1}to{transform:translate(var(--ping-d, 80px));opacity:0}}@keyframes ping-in{0%{transform:translate(var(--ping-d, 80px));opacity:0}10%{opacity:1}to{transform:translate(0);opacity:0}}@keyframes orbit{0%{transform:rotate(0) translate(14px) rotate(0)}to{transform:rotate(360deg) translate(14px) rotate(-360deg)}}@keyframes thread-glow{0%,to{box-shadow:inset 2px 0 0 var(--accent),0 0 20px -6px rgba(var(--accent-rgb),.4)}50%{box-shadow:inset 2px 0 0 var(--accent),0 0 30px -4px rgba(var(--accent-rgb),.7)}}@keyframes j2j-packet-out{0%{left:0%;opacity:0}10%{opacity:1}90%{opacity:1}to{left:100%;opacity:0}}@keyframes j2j-packet-in{0%{left:100%;opacity:0}10%{opacity:1}90%{opacity:1}to{left:0%;opacity:0}}@keyframes spin-slow{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes joan-ring{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.9;transform:scale(1.03)}}@keyframes header-packet-in{0%{transform:translate(0);opacity:0}10%{opacity:1}85%{opacity:1}to{transform:translate(-220px);opacity:0}}@keyframes orb-breathe{0%,to{filter:brightness(1) drop-shadow(0 0 6px rgba(var(--accent-rgb),.35))}50%{filter:brightness(1.12) drop-shadow(0 0 18px rgba(var(--accent-rgb),.75))}}@keyframes j2j-line{0%,to{opacity:.3;transform:scaleX(.6)}50%{opacity:1;transform:scaleX(1)}}@keyframes pulse-ring{0%{transform:scale(.8);opacity:.8}to{transform:scale(1.8);opacity:0}}@keyframes glyph-flicker{0%,to{opacity:1;filter:brightness(1)}45%{opacity:.85;filter:brightness(1.1)}50%{opacity:1;filter:brightness(1.4)}55%{opacity:.85;filter:brightness(1.1)}}@keyframes joan-orbit{0%{offset-distance:0%}to{offset-distance:100%}}@keyframes thread-inject{0%{background-color:var(--accent);opacity:.22}to{background-color:transparent;opacity:0}}@keyframes bar-pump{0%,to{transform:scaleY(.25);opacity:.6}20%{transform:scaleY(1);opacity:1}55%{transform:scaleY(.45);opacity:.8}80%{transform:scaleY(.8);opacity:.95}}@keyframes card-flash{0%{opacity:0;transform:translate(-40%)}30%{opacity:.9}to{opacity:0;transform:translate(140%)}}@keyframes sub-land{0%{opacity:0;transform:translate(-6px)}60%{opacity:1;transform:translate(0)}to{opacity:1;transform:translate(0)}}@keyframes sub-underline{0%{transform:scaleX(0);opacity:1}70%{transform:scaleX(1);opacity:1}to{transform:scaleX(1);opacity:0}}@keyframes check-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2);opacity:1}to{transform:scale(1);opacity:1}}@keyframes mesh-node-pulse{0%,to{opacity:.35;filter:brightness(1)}50%{opacity:1;filter:brightness(1.6)}}@keyframes mesh-edge{0%{stroke-dashoffset:0;opacity:.9}to{stroke-dashoffset:-14;opacity:.4}}@keyframes mesh-core{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(1.4);opacity:1}}@keyframes rail-pulse{0%,to{background-position:0% 0%;opacity:.55}50%{background-position:0% 100%;opacity:1}}@keyframes card-scan{0%{top:-2px;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}@keyframes trace-edge{0%{opacity:0}10%{opacity:1}25%{opacity:1}40%{opacity:0}to{opacity:0}}@keyframes trace-breathe{0%,to{opacity:.55}50%{opacity:1}}.reduced-motion,.reduced-motion *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
