:root{--nv-emerald-50: #ecfdf5;--nv-emerald-100: #d1fae5;--nv-emerald-200: #a7f3d0;--nv-emerald-300: #6ee7b7;--nv-emerald-400: #34d399;--nv-emerald-500: #10b981;--nv-emerald-600: #059669;--nv-emerald-700: #047857;--nv-emerald-800: #065f46;--nv-emerald-900: #064e3b;--nv-amber-50: #fffbeb;--nv-amber-100: #fef3c7;--nv-amber-200: #fde68a;--nv-amber-300: #fcd34d;--nv-amber-400: #fbbf24;--nv-amber-500: #f59e0b;--nv-amber-600: #d97706;--nv-amber-700: #b45309;--nv-amber-800: #92400e;--nv-amber-900: #78350f;--nv-cyan-400: #22d3ee;--nv-cyan-500: #06b6d4;--nv-cyan-600: #0891b2;--nv-cyan-700: #0e7490;--nv-blue-400: #60a5fa;--nv-blue-500: #3b82f6;--nv-blue-600: #2563eb;--nv-blue-700: #1d4ed8;--nv-coral-400: #f87171;--nv-coral-500: #ef4444;--nv-coral-600: #dc2626;--nv-coral-700: #b91c1c;--nv-purple-400: #c084fc;--nv-purple-500: #a855f7;--nv-purple-600: #9333ea;--nv-purple-700: #7e22ce;--nv-slate-950: #070a13;--nv-slate-900: #0f172a;--nv-slate-850: #141e33;--nv-slate-800: #1e293b;--nv-slate-700: #334155;--nv-slate-600: #475569;--nv-slate-500: #64748b;--nv-slate-400: #94a3b8;--nv-slate-300: #cbd5e1;--nv-slate-200: #e2e8f0;--nv-slate-100: #f1f5f9;--nv-slate-50: #f8fafc;--nv-grade-preschool: var(--nv-amber-500);--nv-grade-preschool-dark: var(--nv-amber-600);--nv-grade-preschool-shadow: var(--nv-amber-700);--nv-grade-primary: var(--nv-emerald-500);--nv-grade-primary-dark: var(--nv-emerald-600);--nv-grade-primary-shadow: var(--nv-emerald-700);--nv-grade-secondary: var(--nv-cyan-500);--nv-grade-secondary-dark: var(--nv-cyan-600);--nv-grade-secondary-shadow: var(--nv-cyan-700);--nv-bg-canvas: var(--nv-slate-950);--nv-bg-surface: var(--nv-slate-900);--nv-bg-surface-elevated: var(--nv-slate-850);--nv-bg-glass: rgba(15, 23, 42, .78);--nv-bg-glass-strong: rgba(15, 23, 42, .9);--nv-border-subtle: rgba(255, 255, 255, .08);--nv-border-glass: rgba(255, 255, 255, .14);--nv-border-active: rgba(16, 185, 129, .4);--nv-text-primary: #ffffff;--nv-text-secondary: var(--nv-slate-300);--nv-text-muted: var(--nv-slate-400);--nv-text-inverse: var(--nv-slate-950);--nv-voxel-push-depth-sm: 3px;--nv-voxel-push-depth-md: 4px;--nv-voxel-push-depth-lg: 6px;--nv-elevation-0: none;--nv-elevation-1: 0 4px 12px rgba(0, 0, 0, .35), 0 1px 2px rgba(0, 0, 0, .2);--nv-elevation-2: 0 8px 24px rgba(0, 0, 0, .45), 0 2px 4px rgba(0, 0, 0, .25);--nv-elevation-3: 0 16px 40px rgba(0, 0, 0, .55), 0 4px 8px rgba(0, 0, 0, .3);--nv-elevation-glass: 0 12px 36px rgba(0, 0, 0, .4), inset 0 1px 0 rgba(255, 255, 255, .15);--nv-font-sans: "Plus Jakarta Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--nv-font-mono: "JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--nv-text-xs: .75rem;--nv-text-sm: .875rem;--nv-text-base: 1rem;--nv-text-lg: 1.125rem;--nv-text-xl: 1.25rem;--nv-text-2xl: 1.5rem;--nv-text-3xl: 1.875rem;--nv-text-4xl: 2.25rem;--nv-text-5xl: 3rem;--nv-weight-normal: 400;--nv-weight-medium: 500;--nv-weight-semibold: 600;--nv-weight-bold: 700;--nv-weight-extrabold: 800;--nv-radius-xs: 4px;--nv-radius-sm: 8px;--nv-radius-md: 12px;--nv-radius-lg: 16px;--nv-radius-xl: 24px;--nv-radius-pill: 9999px;--nv-space-1: 4px;--nv-space-2: 8px;--nv-space-3: 12px;--nv-space-4: 16px;--nv-space-5: 20px;--nv-space-6: 24px;--nv-space-8: 32px;--nv-space-10: 40px;--nv-space-12: 48px;--nv-space-16: 64px;--nv-transition-fast: .12s cubic-bezier(.4, 0, .2, 1);--nv-transition-normal: .22s cubic-bezier(.4, 0, .2, 1);--nv-transition-spring: .25s cubic-bezier(.175, .885, .32, 1.275)}.nv-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--nv-space-2);font-family:var(--nv-font-sans);font-size:var(--nv-text-sm);font-weight:var(--nv-weight-bold);line-height:1;text-decoration:none;cursor:pointer;border:none;border-radius:var(--nv-radius-sm);padding:10px 18px;position:relative;-webkit-user-select:none;user-select:none;touch-action:manipulation;white-space:nowrap;transition:transform var(--nv-transition-fast),box-shadow var(--nv-transition-fast),background-color var(--nv-transition-fast)}.nv-btn-voxel{--nv-btn-bg: var(--nv-emerald-500);--nv-btn-shadow: var(--nv-emerald-700);--nv-btn-text: #ffffff;background-color:var(--nv-btn-bg);color:var(--nv-btn-text);box-shadow:0 4px 0 var(--nv-btn-shadow),0 6px 12px #00000059;transform:translateY(0)}.nv-btn-voxel:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--nv-btn-shadow),0 10px 18px #00000073;filter:brightness(1.06)}.nv-btn-voxel:active{transform:translateY(4px);box-shadow:0 0 0 var(--nv-btn-shadow),0 2px 4px #00000040;filter:brightness(.96)}.nv-btn-voxel:focus-visible{outline:2px solid #ffffff;outline-offset:3px}.nv-btn-emerald{--nv-btn-bg: var(--nv-emerald-500);--nv-btn-shadow: var(--nv-emerald-700);--nv-btn-text: #ffffff}.nv-btn-amber{--nv-btn-bg: var(--nv-amber-500);--nv-btn-shadow: var(--nv-amber-700);--nv-btn-text: #ffffff}.nv-btn-cyan{--nv-btn-bg: var(--nv-cyan-500);--nv-btn-shadow: var(--nv-cyan-700);--nv-btn-text: #ffffff}.nv-btn-coral{--nv-btn-bg: var(--nv-coral-500);--nv-btn-shadow: var(--nv-coral-700);--nv-btn-text: #ffffff}.nv-btn-ghost-voxel{--nv-btn-bg: var(--nv-slate-800);--nv-btn-shadow: var(--nv-slate-950);--nv-btn-text: var(--nv-slate-200);border:1px solid var(--nv-border-glass)}.nv-btn-ghost-voxel:hover{background-color:var(--nv-slate-700);color:#fff}.nv-btn-sm{padding:6px 12px;font-size:var(--nv-text-xs);border-radius:var(--nv-radius-xs);box-shadow:0 3px 0 var(--nv-btn-shadow),0 4px 8px #0000004d}.nv-btn-sm:hover{transform:translateY(-1px);box-shadow:0 4px 0 var(--nv-btn-shadow),0 6px 12px #00000059}.nv-btn-sm:active{transform:translateY(3px);box-shadow:0 0 0 var(--nv-btn-shadow)}.nv-btn-lg{padding:14px 28px;font-size:var(--nv-text-base);border-radius:var(--nv-radius-md);box-shadow:0 6px 0 var(--nv-btn-shadow),0 10px 20px #0006}.nv-btn-lg:hover{transform:translateY(-2px);box-shadow:0 8px 0 var(--nv-btn-shadow),0 14px 26px #00000080}.nv-btn-lg:active{transform:translateY(6px);box-shadow:0 0 0 var(--nv-btn-shadow)}.nv-btn:disabled,.nv-btn.nv-disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important;pointer-events:none;filter:grayscale(.8)}.nv-card-voxel{background:var(--nv-bg-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--nv-border-glass);border-radius:var(--nv-radius-lg);padding:var(--nv-space-6);color:var(--nv-text-secondary);box-shadow:var(--nv-elevation-glass);position:relative;overflow:hidden;transition:transform var(--nv-transition-normal),box-shadow var(--nv-transition-normal),border-color var(--nv-transition-normal)}.nv-card-voxel:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.25) 50%,transparent 100%);pointer-events:none}.nv-card-interactive:hover{transform:translateY(-4px);border-color:#ffffff47;box-shadow:0 16px 40px #0000008c,0 0 20px #10b98126}.nv-elevation-0{box-shadow:none;border-color:var(--nv-border-subtle)}.nv-elevation-1{box-shadow:var(--nv-elevation-1)}.nv-elevation-2{box-shadow:var(--nv-elevation-2)}.nv-elevation-3{box-shadow:var(--nv-elevation-3)}.nv-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--nv-radius-xs);font-family:var(--nv-font-sans);font-size:var(--nv-text-xs);font-weight:var(--nv-weight-bold);line-height:1.2;text-transform:uppercase;letter-spacing:.04em;border:1px solid transparent;-webkit-user-select:none;user-select:none}.nv-badge-preschool{background:#f59e0b26;color:#fbbf24;border-color:#f59e0b59;box-shadow:0 2px #b4530966}.nv-badge-primary{background:#10b98126;color:#34d399;border-color:#10b98159;box-shadow:0 2px #04785766}.nv-badge-secondary{background:#06b6d426;color:#22d3ee;border-color:#06b6d459;box-shadow:0 2px #0e749066}.nv-badge-steam{background:#a855f726;color:#c084fc;border-color:#a855f759;box-shadow:0 2px #7e22ce66}.nv-slider-container{display:flex;flex-direction:column;gap:var(--nv-space-2);width:100%}.nv-slider-header{display:flex;justify-content:space-between;align-items:center;font-size:var(--nv-text-xs);font-weight:var(--nv-weight-semibold);color:var(--nv-slate-300)}.nv-slider-value{font-family:var(--nv-font-mono);font-weight:var(--nv-weight-bold);color:#fff;background:var(--nv-slate-800);padding:2px 8px;border-radius:var(--nv-radius-xs);border:1px solid var(--nv-border-subtle)}.nv-slider-voxel{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:8px;background:var(--nv-slate-800);border-radius:var(--nv-radius-xs);outline:none;border:1px solid var(--nv-border-subtle)}.nv-slider-voxel::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;background:var(--nv-emerald-500);border:2px solid #ffffff;border-radius:var(--nv-radius-xs);cursor:pointer;box-shadow:0 3px 0 var(--nv-emerald-700),0 4px 6px #0006;transition:transform var(--nv-transition-fast),background-color var(--nv-transition-fast)}.nv-slider-voxel::-webkit-slider-thumb:hover{transform:scale(1.15);background:var(--nv-emerald-400)}.nv-slider-voxel::-webkit-slider-thumb:active{transform:scale(.95);box-shadow:0 1px 0 var(--nv-emerald-700)}.nv-toggle-voxel{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;gap:var(--nv-space-3)}.nv-toggle-track{width:52px;height:28px;background:var(--nv-slate-800);border-radius:var(--nv-radius-xs);border:1px solid var(--nv-border-subtle);position:relative;transition:background-color var(--nv-transition-fast),border-color var(--nv-transition-fast);box-shadow:inset 0 2px 4px #00000080}.nv-toggle-thumb{position:absolute;top:2px;left:2px;width:22px;height:22px;background:var(--nv-slate-400);border-radius:3px;box-shadow:0 2px 0 var(--nv-slate-600);transition:transform var(--nv-transition-spring),background-color var(--nv-transition-fast),box-shadow var(--nv-transition-fast)}.nv-toggle-input:checked+.nv-toggle-track{background:#10b98140;border-color:var(--nv-emerald-500)}.nv-toggle-input:checked+.nv-toggle-track .nv-toggle-thumb{transform:translate(24px);background:var(--nv-emerald-500);box-shadow:0 2px 0 var(--nv-emerald-700)}.nv-toggle-input{display:none}.nv-telemetry-card{background:var(--nv-slate-850);border:1px solid var(--nv-border-subtle);border-radius:var(--nv-radius-sm);padding:12px 16px;display:flex;flex-direction:column;gap:4px}.nv-telemetry-label{font-size:var(--nv-text-xs);color:var(--nv-slate-400);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--nv-weight-semibold)}.nv-telemetry-value{font-family:var(--nv-font-mono);font-size:var(--nv-text-xl);font-weight:var(--nv-weight-bold);color:#fff;display:flex;align-items:baseline;gap:4px}.nv-telemetry-unit{font-size:var(--nv-text-xs);color:var(--nv-emerald-400);font-family:var(--nv-font-sans)}.nv-lab-shell{display:grid;grid-template-rows:auto 1fr;background:var(--nv-slate-950);border:1px solid var(--nv-border-glass);border-radius:var(--nv-radius-lg);overflow:hidden;box-shadow:var(--nv-elevation-3);width:100%;min-height:480px}.nv-lab-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:var(--nv-slate-900);border-bottom:1px solid var(--nv-border-subtle)}.nv-lab-title{display:flex;align-items:center;gap:12px;font-weight:var(--nv-weight-bold);color:#fff;font-size:var(--nv-text-base)}.nv-lab-body{display:grid;grid-template-columns:68px 1fr 280px;position:relative;background:radial-gradient(circle at 50% 50%,#151d30,#070a13)}@media(max-width:900px){.nv-lab-body{grid-template-columns:1fr}}.nv-tools-sidebar{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 8px;background:#0f172ad9;border-right:1px solid var(--nv-border-subtle)}.nv-tool-btn{width:44px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--nv-radius-xs);background:var(--nv-slate-800);border:1px solid var(--nv-border-subtle);color:var(--nv-slate-300);cursor:pointer;box-shadow:0 2px 0 var(--nv-slate-950);transition:all var(--nv-transition-fast)}.nv-tool-btn:hover{background:var(--nv-slate-700);color:#fff;transform:translateY(-1px)}.nv-tool-btn.active{background:var(--nv-emerald-500);border-color:var(--nv-emerald-400);color:#fff;box-shadow:0 2px 0 var(--nv-emerald-700)}.nv-control-panel{display:flex;flex-direction:column;gap:16px;padding:20px;background:#0f172ae6;border-left:1px solid var(--nv-border-subtle)}
