:root{--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Code", "Fira Code", monospace;--accent: #10b981;--accent-dim: rgba(16, 185, 129, .12);--accent-glow: rgba(16, 185, 129, .25);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-pill: 999px;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-sans)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow-x:hidden}.dot-grid{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:radial-gradient(circle,var(--dot-color) 1px,transparent 1px);background-size:32px 32px;opacity:.4;mask-image:radial-gradient(ellipse 80% 60% at 50% 40%,black 20%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 40%,black 20%,transparent 70%)}::selection{background:var(--accent);color:#0a0e1a}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#10b9814d;border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:#10b98180}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes subtlePulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.font-mono{font-family:var(--font-mono)}.cursor-blink:after{content:"_";animation:blink 1s step-end infinite;color:var(--accent);font-weight:400}.animate-fade-in-up{animation:fadeInUp .6s ease-out both}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 8px #10b98180;animation:subtlePulse 2s ease-in-out infinite}
