@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";@import"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block";:root{--bg-page: #0b1326;--bg-lowest: #060e20;--bg-surface-low: #131b2e;--bg-surface: #171f33;--bg-elevated: #222a3d;--bg-card: #171f33;--bg-surface-variant: #2d3449;--bg-surface-bright: #31394d;--bg-overlay: rgba(30, 41, 59, .65);--bg-glass-border: rgba(255, 255, 255, .08);--dot-color: rgba(255, 255, 255, .08);--bg-input: rgba(15, 23, 42, .6);--text-primary: #dae2fd;--text-secondary: #bcc9cd;--text-tertiary: #869397;--text-inverse: #283044;--text-on-accent: #003640;--accent: #4cd7f6;--accent-dim: rgba(76, 215, 246, .15);--accent-border: rgba(76, 215, 246, .4);--accent-hover: #06b6d4;--accent-container: #06b6d4;--secondary: #d0bcff;--secondary-dim: rgba(208, 188, 255, .15);--secondary-container: #571bc1;--tertiary: #4ae176;--tertiary-container: #14bf59;--success: #4ae176;--success-dim: rgba(74, 225, 118, .12);--warning: #f59e0b;--warning-dim: rgba(245, 158, 11, .12);--error: #ffb4ab;--error-dim: rgba(255, 180, 171, .12);--error-solid: #f87171;--online: #4ae176;--offline: #869397;--border: rgba(61, 73, 76, .5);--border-strong: rgba(134, 147, 151, .4);--shadow-sm: 0 1px 3px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);--shadow-md: 0 4px 20px -2px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.05);--shadow-lg: 0 12px 32px -4px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.1);--shadow-glow: 0 0 24px -4px rgba(76, 215, 246, .25), 0 0 8px 0 rgba(76, 215, 246, .15);--shadow-glow-violet: 0 0 24px -4px rgba(139, 92, 246, .25), 0 0 8px 0 rgba(139, 92, 246, .15);--gradient-brand: linear-gradient(135deg, #4cd7f6 0%, #d0bcff 100%);--gradient-page: linear-gradient(180deg, #0b1326 0%, #060e20 100%);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Courier New", Courier, monospace;--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){--bg-page: #f0f4f8;--bg-lowest: #ffffff;--bg-surface-low: #f8fafc;--bg-surface: #ffffff;--bg-elevated: #f1f5f9;--bg-card: #ffffff;--bg-surface-variant: #e2e8f0;--bg-surface-bright: #ffffff;--bg-overlay: rgba(255, 255, 255, .65);--bg-glass-border: rgba(0, 0, 0, .08);--dot-color: rgba(0, 0, 0, .07);--bg-input: #f1f5f9;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #5f6e82;--text-inverse: #ffffff;--text-on-accent: #ffffff;--accent: #0e7490;--accent-dim: rgba(14, 116, 144, .12);--accent-border: rgba(14, 116, 144, .35);--accent-hover: #155e75;--success: #15803d;--success-dim: rgba(21, 128, 61, .12);--warning: #b45309;--warning-dim: rgba(180, 83, 9, .12);--error: #b91c1c;--error-dim: rgba(185, 28, 28, .1);--error-solid: #dc2626;--online: #15803d;--offline: #5f6e82;--border: rgba(0, 0, 0, .08);--border-strong: rgba(0, 0, 0, .15);--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 12px rgba(0,0,0,.1), 0 2px 4px rgba(0,0,0,.06);--shadow-lg: 0 10px 30px rgba(0,0,0,.12), 0 4px 8px rgba(0,0,0,.06);--shadow-glow: 0 0 20px rgba(6,182,212,.25);--gradient-brand: linear-gradient(135deg, #06b6d4 0%, #8b5cf6 100%);--gradient-page: linear-gradient(180deg, #f0f4f8 0%, #e8edf5 100%)}}:root[data-theme=light]{--bg-page: #f0f4f8;--bg-lowest: #ffffff;--bg-surface-low: #f8fafc;--bg-surface: #ffffff;--bg-elevated: #f1f5f9;--bg-card: #ffffff;--bg-surface-variant: #e2e8f0;--bg-surface-bright: #ffffff;--bg-overlay: rgba(255, 255, 255, .65);--bg-glass-border: rgba(0, 0, 0, .08);--dot-color: rgba(0, 0, 0, .07);--bg-input: #f1f5f9;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #5f6e82;--text-inverse: #ffffff;--text-on-accent: #ffffff;--accent: #0e7490;--accent-dim: rgba(14, 116, 144, .12);--accent-border: rgba(14, 116, 144, .35);--accent-hover: #155e75;--success: #15803d;--success-dim: rgba(21, 128, 61, .12);--warning: #b45309;--warning-dim: rgba(180, 83, 9, .12);--error: #b91c1c;--error-dim: rgba(185, 28, 28, .1);--error-solid: #dc2626;--online: #15803d;--offline: #5f6e82;--border: rgba(0, 0, 0, .08);--border-strong: rgba(0, 0, 0, .15);--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 12px rgba(0,0,0,.1), 0 2px 4px rgba(0,0,0,.06);--shadow-lg: 0 10px 30px rgba(0,0,0,.12), 0 4px 8px rgba(0,0,0,.06);--shadow-glow: 0 0 20px rgba(6,182,212,.25);--gradient-brand: linear-gradient(135deg, #06b6d4 0%, #8b5cf6 100%);--gradient-page: linear-gradient(180deg, #f0f4f8 0%, #e8edf5 100%)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-sans);background:var(--bg-page);color:var(--text-primary);line-height:1.5;min-height:100vh}.material-symbols-outlined{font-family:Material Symbols Outlined,-apple-system,sans-serif;font-weight:400;font-style:normal;font-size:20px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga";-webkit-font-feature-settings:"liga";vertical-align:middle;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 20}.material-symbols-outlined.filled{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 20}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}.glass{background:var(--bg-overlay);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--bg-glass-border)}@supports not (backdrop-filter: blur(1px)){.glass{background:var(--bg-surface)}}.glass-card{background:var(--bg-overlay);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--bg-glass-border);border-radius:var(--radius-lg)}@supports not (backdrop-filter: blur(1px)){.glass-card{background:var(--bg-surface)}}.grid-dot-pattern{background-image:radial-gradient(var(--dot-color) 1px,transparent 1px);background-size:24px 24px}.gradient-text{background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.font-mono{font-family:var(--font-mono)}@keyframes spin-fan{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fan-spin{animation:spin-fan .6s linear infinite;transform-origin:center}@keyframes pulse-lumens{0%,to{opacity:.85;filter:drop-shadow(0 0 25px rgba(245,158,11,.65))}50%{opacity:1;filter:drop-shadow(0 0 45px rgba(245,158,11,.95))}}.bulb-glow{animation:pulse-lumens 3s ease-in-out infinite}@keyframes status-ping{75%,to{transform:scale(2);opacity:0}}.status-ping{animation:status-ping 1.5s cubic-bezier(0,0,.2,1) infinite}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}[data-tilt]{transform:perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateZ(0);transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-base) var(--ease-out);will-change:transform}[data-tilt]:hover{box-shadow:var(--shadow-lg),var(--shadow-glow)}button:not(:disabled),[role=button]{transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),background-color var(--duration-fast),border-color var(--duration-fast),color var(--duration-fast)}button:not(:disabled):active,[role=button]:active{transform:scale(.96)}.lumo-fab{box-shadow:var(--shadow-lg),var(--shadow-glow)}.lumo-fab:hover{transform:translateY(-2px) scale(1.04)}:root[data-reduce-motion=true] *,:root[data-reduce-motion=true] *:before,:root[data-reduce-motion=true] *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}:root[data-reduce-motion=true] [data-tilt]{transform:none}@media (prefers-reduced-motion: reduce){[data-tilt]{transform:none}}@media (max-width: 480px){[data-tilt]{transform:none}button{min-height:36px}}
