:root{--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-card:#16161f;--bg-card-hover:#1a1a25;--bg-elevated:#1e1e2a;--bg-input:#1a1a24;--text-primary:#e8e6f0;--text-secondary:#9b97a8;--text-muted:#6b6778;--text-accent:#c4b5fd;--border-primary:#2a2a3a;--border-secondary:#1f1f2e;--border-accent:#8b5cf64d;--accent-violet:#8b5cf6;--accent-violet-light:#a78bfa;--accent-violet-dim:#8b5cf626;--accent-violet-glow:#8b5cf614;--object-color:#f59e0b;--object-color-light:#fbbf24;--object-color-dim:#f59e0b1f;--object-color-glow:#f59e0b0f;--object-border:#f59e0b40;--map-color:#06b6d4;--map-color-light:#22d3ee;--map-color-dim:#06b6d41f;--map-color-glow:#06b6d40f;--map-border:#06b6d440;--success:#34d399;--success-dim:#34d3991f;--danger:#f87171;--danger-dim:#f871711f;--warning:#fbbf24;--info:#60a5fa;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow-violet:0 0 20px #8b5cf626;--shadow-glow-object:0 0 20px #f59e0b1a;--shadow-glow-map:0 0 20px #06b6d41a;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Code", monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);min-height:100vh;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");position:fixed;inset:0}#root{z-index:1;max-width:1280px;margin:0 auto;padding:0 24px;position:relative}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{color:#fff;background:#8b5cf64d}.hero-section{text-align:center;padding:80px 0 60px;position:relative}.hero-section:before{content:"";pointer-events:none;background:radial-gradient(circle,#8b5cf614 0%,#0000 70%);width:600px;height:600px;position:absolute;top:0;left:50%;transform:translate(-50%)}.hero-badge{background:var(--accent-violet-dim);border:1px solid var(--border-accent);color:var(--accent-violet-light);letter-spacing:.5px;text-transform:uppercase;border-radius:100px;align-items:center;gap:8px;margin-bottom:24px;padding:6px 16px;font-size:13px;font-weight:500;display:inline-flex}.hero-badge .dot{background:var(--accent-violet);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.5)}}.hero-title{letter-spacing:-1.5px;background:linear-gradient(135deg, var(--text-primary) 0%, var(--accent-violet-light) 50%, var(--text-primary) 100%);-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;margin-bottom:20px;font-size:52px;font-weight:800;line-height:1.1;animation:8s ease-in-out infinite shimmer-text}@keyframes shimmer-text{0%,to{background-position:0%}50%{background-position:200%}}.hero-subtitle{color:var(--text-secondary);max-width:640px;margin:0 auto 40px;font-size:18px;line-height:1.7}.hero-tags{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.hero-tag{font-size:12px;font-weight:600;font-family:var(--font-mono);letter-spacing:.5px;border-radius:6px;padding:4px 12px}.hero-tag.object{background:var(--object-color-dim);color:var(--object-color-light);border:1px solid var(--object-border)}.hero-tag.map{background:var(--map-color-dim);color:var(--map-color-light);border:1px solid var(--map-border)}.hero-tag.perf{background:var(--accent-violet-dim);color:var(--accent-violet-light);border:1px solid var(--border-accent)}.section{margin-bottom:64px}.section-header{margin-bottom:32px}.section-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--accent-violet-light);align-items:center;gap:8px;margin-bottom:12px;font-size:12px;font-weight:600;display:inline-flex}.section-label:before{content:"";background:var(--accent-violet);border-radius:1px;width:20px;height:2px}.section-title{color:var(--text-primary);letter-spacing:-.5px;margin-bottom:8px;font-size:28px;font-weight:700}.section-desc{color:var(--text-secondary);font-size:15px;line-height:1.6}.data-status-bar{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:14px 20px;display:flex}.data-status-info{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.status-chip{font-size:12px;font-weight:500;font-family:var(--font-mono);border-radius:6px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.status-chip.success{background:var(--success-dim);color:var(--success)}.status-chip.loading{background:var(--accent-violet-dim);color:var(--accent-violet-light)}.status-chip.error{background:var(--danger-dim);color:var(--danger)}.status-chip .status-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.status-chip.loading .status-dot{animation:1s ease-in-out infinite pulse-dot}.data-status-actions{gap:8px;display:flex}.btn{border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-size:13px;font-weight:500;font-family:var(--font-sans);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;align-items:center;gap:6px;padding:8px 16px;display:inline-flex}.btn:hover{background:var(--bg-card-hover);border-color:var(--text-muted)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent-violet);border-color:var(--accent-violet);color:#fff}.btn.primary:hover{background:var(--accent-violet-light);border-color:var(--accent-violet-light)}.btn.danger{color:var(--danger);border-color:#f8717133}.btn.danger:hover{background:var(--danger-dim);border-color:#f8717166}.btn.success{color:var(--success);border-color:#34d39933}.btn.success:hover{background:var(--success-dim);border-color:#34d39966}.btn-icon{font-size:14px}.tables-grid{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px;display:grid}@media (width<=1024px){.tables-grid{grid-template-columns:1fr}}.table-panel{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);transition:box-shadow var(--transition-normal);overflow:hidden}.table-panel:hover{box-shadow:var(--shadow-md)}.table-panel.object-panel{border-color:var(--object-border)}.table-panel.object-panel:hover{box-shadow:var(--shadow-glow-object)}.table-panel.map-panel{border-color:var(--map-border)}.table-panel.map-panel:hover{box-shadow:var(--shadow-glow-map)}.table-panel-header{border-bottom:1px solid var(--border-secondary);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.table-panel-title{align-items:center;gap:10px;display:flex}.table-panel-title .icon-badge{border-radius:var(--radius-sm);width:32px;height:32px;font-size:14px;font-weight:700;font-family:var(--font-mono);justify-content:center;align-items:center;display:flex}.object-panel .icon-badge{background:var(--object-color-dim);color:var(--object-color);border:1px solid var(--object-border)}.map-panel .icon-badge{background:var(--map-color-dim);color:var(--map-color);border:1px solid var(--map-border)}.table-panel-title h3{color:var(--text-primary);font-size:15px;font-weight:600}.table-panel-title .type-label{font-size:11px;font-family:var(--font-mono);color:var(--text-muted);font-weight:400}.table-panel-meta{color:var(--text-muted);font-size:12px;font-family:var(--font-mono);align-items:center;gap:12px;display:flex}.table-panel-meta .entries-count{background:var(--bg-elevated);border-radius:4px;padding:2px 8px}.data-table-wrapper{max-height:420px;overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table thead{z-index:2;position:sticky;top:0}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);background:var(--bg-elevated);border-bottom:1px solid var(--border-primary);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:600}.data-table td{border-bottom:1px solid var(--border-secondary);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:180px;padding:10px 14px;overflow:hidden}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--bg-card-hover)}.data-table tbody tr.updated{animation:.8s ease-out row-flash}@keyframes row-flash{0%{background:#8b5cf626}to{background:0 0}}.data-table tbody tr.deleting{animation:.4s ease-out forwards row-delete}@keyframes row-delete{0%{opacity:1;transform:translate(0)}to{opacity:0;height:0;transform:translate(-20px)}}.data-table .key-cell{font-family:var(--font-mono);font-size:12px;font-weight:600}.object-panel .key-cell{color:var(--object-color)}.map-panel .key-cell{color:var(--map-color)}.data-table .name-cell{color:var(--text-primary);font-weight:500}.data-table .actions-cell{gap:4px;display:flex}.row-action-btn{border:1px solid var(--border-primary);width:26px;height:26px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border-radius:4px;justify-content:center;align-items:center;font-size:12px;display:flex}.row-action-btn:hover{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--text-muted)}.row-action-btn.delete:hover{background:var(--danger-dim);color:var(--danger);border-color:#f871714d}.row-action-btn.edit:hover{background:var(--accent-violet-dim);color:var(--accent-violet-light);border-color:var(--border-accent)}.controls-panel{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);margin-bottom:32px;padding:24px}.controls-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.controls-header h3{color:var(--text-primary);font-size:16px;font-weight:600}.controls-grid{flex-wrap:wrap;gap:10px;display:flex}.perf-logs{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden}.perf-logs-header{border-bottom:1px solid var(--border-secondary);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.perf-logs-header h3{color:var(--text-primary);align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex}.perf-logs-header .log-count{font-size:11px;font-family:var(--font-mono);background:var(--accent-violet-dim);color:var(--accent-violet-light);border-radius:10px;padding:2px 8px}.perf-logs-list{max-height:360px;overflow-y:auto}.perf-log-item{border-bottom:1px solid var(--border-secondary);transition:background var(--transition-fast);grid-template-columns:90px 1fr 120px 120px 60px;align-items:center;gap:12px;padding:12px 20px;font-size:13px;animation:.3s ease-out log-enter;display:grid}@keyframes log-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.perf-log-item:hover{background:var(--bg-card-hover)}.perf-log-item .log-operation{font-weight:600;font-family:var(--font-mono);color:var(--accent-violet-light);background:var(--accent-violet-dim);text-align:center;border-radius:4px;padding:3px 8px;font-size:12px}.perf-log-item .log-detail{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.perf-log-item .log-time{font-family:var(--font-mono);text-align:right;font-size:12px;font-weight:500}.perf-log-item .log-time.object-time{color:var(--object-color)}.perf-log-item .log-time.map-time{color:var(--map-color)}.perf-log-item .log-winner{text-align:center;font-size:11px;font-weight:700;font-family:var(--font-mono);border-radius:4px;padding:2px 6px}.perf-log-item .log-winner.object-win{background:var(--object-color-dim);color:var(--object-color)}.perf-log-item .log-winner.map-win{background:var(--map-color-dim);color:var(--map-color)}.perf-log-item .log-winner.tie{background:var(--accent-violet-dim);color:var(--accent-violet-light)}.perf-logs-empty{text-align:center;color:var(--text-muted);padding:48px 20px;font-size:14px}.perf-logs-empty .empty-icon{opacity:.5;margin-bottom:12px;font-size:32px}.benchmark-section{margin-bottom:64px}.benchmark-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:24px;display:grid}.benchmark-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);transition:all var(--transition-normal);padding:20px}.benchmark-card:hover{border-color:var(--border-accent);box-shadow:var(--shadow-glow-violet)}.benchmark-card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.benchmark-card-op{color:var(--text-primary);font-size:14px;font-weight:700;font-family:var(--font-mono)}.benchmark-card-iterations{color:var(--text-muted);font-size:11px;font-family:var(--font-mono)}.benchmark-bars{flex-direction:column;gap:8px;display:flex}.benchmark-bar-row{align-items:center;gap:10px;display:flex}.benchmark-bar-label{width:52px;font-size:11px;font-weight:600;font-family:var(--font-mono);text-align:right}.benchmark-bar-label.object-label{color:var(--object-color)}.benchmark-bar-label.map-label{color:var(--map-color)}.benchmark-bar-track{background:var(--bg-elevated);border-radius:4px;flex:1;height:24px;position:relative;overflow:hidden}.benchmark-bar-fill{border-radius:4px;min-width:2px;height:100%;transition:width .6s cubic-bezier(.4,0,.2,1);position:relative}.benchmark-bar-fill.object-bar{background:linear-gradient(90deg, var(--object-color-dim), var(--object-color))}.benchmark-bar-fill.map-bar{background:linear-gradient(90deg, var(--map-color-dim), var(--map-color))}.benchmark-bar-fill.winner-bar{opacity:1}.benchmark-bar-fill.loser-bar{opacity:.6}.benchmark-bar-value{font-size:11px;font-weight:600;font-family:var(--font-mono);color:#fff;text-shadow:0 1px 2px #00000080;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.benchmark-card-footer{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.benchmark-winner-badge{font-size:11px;font-weight:700;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:3px 10px}.benchmark-winner-badge.object-winner{background:var(--object-color-dim);color:var(--object-color)}.benchmark-winner-badge.map-winner{background:var(--map-color-dim);color:var(--map-color)}.benchmark-winner-badge.tie-winner{background:var(--accent-violet-dim);color:var(--accent-violet-light)}.benchmark-speed-ratio{font-size:12px;font-family:var(--font-mono);color:var(--text-muted)}.benchmark-run-wrapper{text-align:center;margin-bottom:32px}.btn-run-benchmark{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--accent-violet), #7c3aed);color:#fff;cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-glow-violet);border:none;padding:14px 32px;font-size:15px;font-weight:600;position:relative;overflow:hidden}.btn-run-benchmark:before{content:"";background:linear-gradient(135deg,#0000,#ffffff1a,#0000);transition:transform .6s;position:absolute;inset:0;transform:translate(-100%)}.btn-run-benchmark:hover:before{transform:translate(100%)}.btn-run-benchmark:hover{transform:translateY(-2px);box-shadow:0 0 40px #8b5cf64d}.btn-run-benchmark:active{transform:translateY(0)}.btn-run-benchmark:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-run-benchmark .spinner{vertical-align:middle;border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;margin-right:8px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.scoreboard{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px;display:grid}.scoreboard-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);text-align:center;transition:all var(--transition-normal);padding:20px}.scoreboard-card:hover{border-color:var(--border-accent)}.scoreboard-card .score-value{font-size:36px;font-weight:800;font-family:var(--font-mono);margin-bottom:4px}.scoreboard-card .score-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:12px;font-weight:600}.scoreboard-card.object-score .score-value{color:var(--object-color)}.scoreboard-card.map-score .score-value{color:var(--map-color)}.scoreboard-card.tie-score .score-value{color:var(--accent-violet-light)}.theory-section{margin-bottom:64px}.theory-grid{grid-template-columns:1fr 1fr;gap:24px;margin-top:24px;display:grid}@media (width<=768px){.theory-grid{grid-template-columns:1fr}}.theory-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);transition:all var(--transition-normal);padding:24px}.theory-card:hover{border-color:var(--border-accent);box-shadow:var(--shadow-md)}.theory-card.object-card{border-top:3px solid var(--object-color)}.theory-card.map-card{border-top:3px solid var(--map-color)}.theory-card h4{align-items:center;gap:10px;margin-bottom:12px;font-size:18px;font-weight:700;display:flex}.theory-card.object-card h4{color:var(--object-color)}.theory-card.map-card h4{color:var(--map-color)}.theory-card .code-signature{font-family:var(--font-mono);background:var(--bg-primary);border-radius:var(--radius-sm);color:var(--text-muted);margin-bottom:16px;padding:8px 14px;font-size:12px;overflow-x:auto}.theory-card ul{padding:0;list-style:none}.theory-card li{color:var(--text-secondary);align-items:flex-start;gap:8px;padding:6px 0;font-size:14px;line-height:1.5;display:flex}.theory-card li:before{content:"▸";color:var(--text-muted);flex-shrink:0;margin-top:1px}.theory-card.object-card li:before{color:var(--object-color)}.theory-card.map-card li:before{color:var(--map-color)}.blog-footer{border-top:1px solid var(--border-primary);text-align:center;margin-top:40px;margin-bottom:40px;padding:32px 0}.blog-footer p{color:var(--text-muted);font-size:13px}.blog-footer a{color:var(--accent-violet-light);text-decoration:none}.blog-footer a:hover{text-decoration:underline}.loading-state{flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:60px 20px;display:flex}.loading-spinner{border:3px solid var(--border-primary);border-top-color:var(--accent-violet);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}.loading-text{color:var(--text-muted);font-size:14px}.error-state{text-align:center;background:var(--danger-dim);border-radius:var(--radius-md);border:1px solid #f8717133;padding:40px 20px}.error-state .error-icon{margin-bottom:12px;font-size:32px}.error-state p{color:var(--danger);margin-bottom:16px}@media (width<=768px){.hero-title{letter-spacing:-.5px;font-size:32px}.hero-subtitle{font-size:15px}.hero-section{padding:48px 0 36px}.tables-grid,.scoreboard{grid-template-columns:1fr}.perf-log-item{grid-template-columns:80px 1fr 80px 80px 50px;gap:6px;padding:10px 12px;font-size:11px}.data-status-bar{flex-direction:column;align-items:flex-start}.controls-grid{flex-direction:column}.benchmark-grid{grid-template-columns:1fr}}.column-toggles{border-bottom:1px solid var(--border-secondary);background:var(--bg-elevated);flex-wrap:wrap;gap:6px;margin-top:12px;padding:12px 20px;display:flex}.column-toggle{font-size:11px;font-weight:500;font-family:var(--font-mono);cursor:pointer;border:1px solid var(--border-primary);background:var(--bg-card);color:var(--text-secondary);transition:all var(--transition-fast);border-radius:4px;align-items:center;gap:4px;padding:3px 10px;display:inline-flex}.column-toggle:hover{border-color:var(--text-muted)}.column-toggle.active{background:var(--accent-violet-dim);border-color:var(--border-accent);color:var(--accent-violet-light)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0009;justify-content:center;align-items:center;animation:.2s ease-out fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);width:440px;max-width:90vw;box-shadow:var(--shadow-lg);padding:28px;animation:.25s ease-out modal-enter}@keyframes modal-enter{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-title{color:var(--text-primary);margin-bottom:20px;font-size:18px;font-weight:700}.modal-field{margin-bottom:14px}.modal-field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.modal-field input{border:1px solid var(--border-primary);border-radius:var(--radius-sm);background:var(--bg-input);width:100%;color:var(--text-primary);font-size:14px;font-family:var(--font-sans);transition:border-color var(--transition-fast);outline:none;padding:9px 14px}.modal-field input:focus{border-color:var(--accent-violet);box-shadow:0 0 0 2px var(--accent-violet-dim)}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.info-callout{background:var(--accent-violet-dim);border:1px solid var(--border-accent);border-radius:var(--radius-md);align-items:flex-start;gap:12px;margin-bottom:24px;padding:16px 20px;display:flex}.info-callout .callout-icon{flex-shrink:0;margin-top:2px;font-size:18px}.info-callout p{color:var(--text-secondary);font-size:13px;line-height:1.6}.info-callout strong{color:var(--accent-violet-light)}.size-selector{align-items:center;gap:8px;display:flex}.size-selector label{color:var(--text-muted);font-size:12px;font-weight:500}.size-selector select{border:1px solid var(--border-primary);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-size:13px;font-family:var(--font-mono);cursor:pointer;outline:none;padding:6px 12px}.size-selector select:focus{border-color:var(--accent-violet)}
