:root{color:#dbe7f3;font-synthesis:none;text-rendering:optimizelegibility;--panel:#0b111a;--panel-raised:#101925;--line:#94b1cc24;--muted:#718397;--cyan:#58e6c2;--orange:#ff9f5a;--pink:#ff4d8d;background:#05080d;font-family:Manrope,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}button,input,select{font:inherit}.app-shell{background:radial-gradient(circle at 75% 35%,#1c42602b,#0000 34%),#05080d;grid-template-rows:74px minmax(0,1fr);height:100%;display:grid}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:5;background:#070b11d6;justify-content:space-between;align-items:center;padding:0 26px;display:flex;position:relative}.brand{align-items:center;gap:14px;display:flex}.brand-mark{border:1px solid #58e6c27a;border-radius:50%;width:38px;height:38px;display:block;position:relative;box-shadow:inset 0 0 18px #58e6c214}.brand-mark i{border:1px solid var(--cyan);border-radius:50%;position:absolute}.brand-mark i:first-child{inset:7px}.brand-mark i:nth-child(2){width:22px;height:8px;top:14px;left:7px}.brand-mark i:nth-child(3){background:var(--cyan);width:4px;height:4px;box-shadow:0 0 9px var(--cyan);top:16px;left:16px}.eyebrow{color:var(--muted);letter-spacing:.17em;text-transform:uppercase;margin:0 0 3px;font:500 9px/1.2 DM Mono,monospace}h1,h2{margin:0}h1{letter-spacing:-.02em;font-size:18px;font-weight:700}h1 span{color:#718397;font-weight:500}.status-pill{color:#98adbf;text-transform:uppercase;letter-spacing:.08em;background:#58e6c20a;border:1px solid #58e6c233;border-radius:999px;align-items:center;gap:9px;padding:8px 12px;font:500 10px DM Mono,monospace;display:flex}.topbar-actions{align-items:center;gap:10px;display:flex}.help-button{color:#dbe7f3;cursor:pointer;letter-spacing:.1em;text-transform:uppercase;background:#58e6c214;border:1px solid #58e6c252;border-radius:999px;height:32px;padding:0 14px;font:600 11px/1 DM Mono,monospace;transition:all .16s}.help-button:hover,.help-button:focus-visible{color:#0b1514;background:var(--cyan);border-color:#0000;outline:none}.pulse{background:var(--cyan);width:6px;height:6px;box-shadow:0 0 9px var(--cyan);border-radius:50%;animation:2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}.workspace{grid-template-columns:var(--panel-width,322px) 0 minmax(0, 1fr);min-height:0;display:grid}.panel-resizer{z-index:6;cursor:col-resize;touch-action:none;width:9px;margin-left:-5px;position:relative}.panel-resizer:after{content:"";background:0 0;width:1px;transition:background .16s;position:absolute;top:0;bottom:0;left:4px}.panel-resizer:hover:after,.panel-resizer:focus-visible:after,.panel-resizer.is-dragging:after{background:var(--cyan);box-shadow:0 0 8px #58e6c280}.panel-resizer:focus-visible{outline:none}.control-panel{z-index:4;border-right:1px solid var(--line);background:#090e16f2;grid-template-rows:auto auto minmax(0,1fr) auto auto;min-height:0;padding:22px 20px 18px;display:grid;position:relative;overflow:hidden}.tab-strip{border-bottom:1px solid #b0c6d86b;grid-auto-columns:1fr;grid-auto-flow:column;align-items:end;gap:4px;margin:16px 4px 0;padding:0;display:grid}.tab{color:#9eb3c6;cursor:pointer;letter-spacing:.08em;text-transform:uppercase;background:#162230b8;border:1px solid #b0c6d861;border-bottom:0;border-radius:8px 8px 0 0;height:32px;margin-bottom:-1px;font:600 10px DM Mono,monospace;transition:color .16s,background .16s,border-color .16s;position:relative}.tab:hover{color:#e7f0f8;background:#1c2a3ae6;border-color:#d2e2ee9e}.tab:focus-visible{outline-offset:-2px;outline:1px solid #58e6c2b3}.tab.is-active{color:#f4faf8;box-shadow:inset 0 2px 0 var(--cyan);background:#0b111a;border-color:#58e6c2d9}.tab.is-active:after{content:"";background:#0b111a;height:2px;position:absolute;bottom:-1px;left:0;right:0}.tab-panels{scrollbar-color:#27384a transparent;scrollbar-width:thin;min-height:0;overflow-y:auto}.tab-panel[hidden]{display:none}.panel-section{border-top:1px solid var(--line);margin:16px 4px 0;padding-top:14px}.panel-section>.eyebrow{margin-bottom:10px}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:0 4px 16px;display:flex}.panel-heading h2{color:#e7f0f8;letter-spacing:-.01em;font-size:16px;font-weight:600}.icon-button{border:1px solid var(--line);color:#8396a9;cursor:pointer;background:#0c141e;border-radius:7px;width:31px;height:31px;transition:all .16s}.icon-button:hover{color:var(--cyan);border-color:#58e6c259}.tab-panel>:first-child{border-top:0;margin-top:0}.gui-mount{padding-top:8px}.gui-mount .lil-gui{--background-color:transparent;--widget-color:#131e2a;--hover-color:#182635;--focus-color:#1c2c3b;--text-color:#b6c6d5;--number-color:#70e6cd;--string-color:#70e6cd;--font-size:11px;--input-font-size:10px;--font-family:"Manrope", sans-serif;--font-family-mono:"DM Mono", monospace;--padding:4px;--spacing:4px;--widget-height:23px;width:100%!important}.gui-mount>.lil-gui>.lil-title{display:none}.gui-mount .lil-gui.lil-root{border:0}.gui-mount .lil-gui .lil-children{border-left:0}.gui-mount .lil-gui.lil-root .lil-gui>.lil-title{border:0;border-bottom:1px solid var(--line);color:#8fa2b5;letter-spacing:.09em;text-transform:uppercase;pointer-events:none;background:0 0;height:35px;padding-left:4px;font:600 10px/35px DM Mono,monospace}.gui-mount .lil-gui .lil-title:before{display:none}.gui-mount .lil-gui .lil-controller{border-left:0}.gui-mount .lil-gui .lil-controller>.lil-name{color:#889aad}.gui-mount .lil-gui .lil-controller.lil-function.action-row{margin-top:8px}.gui-mount .lil-gui .lil-controller.lil-function button{border:1px solid var(--line);color:#9eb3c4;letter-spacing:.06em;text-transform:uppercase;background:#0c141e;border-radius:7px;height:31px;font:600 10px DM Mono,monospace;transition:all .16s}.gui-mount .lil-gui .lil-controller.lil-function button:hover{color:var(--cyan);border-color:#58e6c259}.gui-mount .lil-gui .lil-controller.lil-boolean .lil-widget{justify-content:flex-end}.gui-mount .lil-gui input{color:#b9f8e9}.gui-mount .lil-gui .lil-slider{background:#1c2b39;border-radius:3px}.gui-mount .lil-gui .lil-fill{background:linear-gradient(90deg, #2f8c80, var(--cyan));border-radius:3px}.gui-mount .lil-gui .lil-controller.lil-color .lil-display{border-radius:3px}.gui-mount .lil-gui .lil-controller.lil-color input{color:#b9f8e9}.hint{border:1px solid var(--line);background:#141f2b6b;border-radius:8px;gap:11px;margin:17px 4px 0;padding:12px;display:flex}.hint>span{color:var(--cyan);font:500 18px DM Mono,monospace}.hint p{color:#617488;margin:0;font-size:9px;line-height:1.65}.hint strong{color:#91a5b7;font-size:10px;font-weight:600}.license-note{color:var(--muted);letter-spacing:.06em;margin:10px 4px 0;font:500 9px/1.4 DM Mono,monospace}.license-note a{color:#91a5b7;text-decoration:none}.license-note a:hover,.license-note a:focus-visible{color:var(--cyan)}.profiles,.source-panel{border-top:1px solid var(--line);margin:16px 4px 0;padding-top:14px}.source-panel>.eyebrow,.profiles>.eyebrow{margin-bottom:10px}.source-actions{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.panel-section .mesh-download{margin-top:10px}.file-button,.source-actions button,.mesh-download{border:1px solid var(--line);color:#9eb3c4;cursor:pointer;letter-spacing:.06em;text-transform:uppercase;background:#0c141e;border-radius:7px;justify-content:center;align-items:center;height:31px;padding:0 12px;font:600 10px DM Mono,monospace;display:inline-flex}.file-button{color:#0b1514;background:var(--cyan);border-color:#0000}.mesh-download{color:#0b1514;background:linear-gradient(90deg, #2f8c80, var(--cyan));border-color:#0000;width:100%}.file-button:hover,.source-actions button:hover,.mesh-download:hover,.profile-save-row button:hover,.profile-actions button:hover{filter:brightness(1.08)}.profile-save-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:12px;display:grid}.profile-save-row input{border:1px solid var(--line);color:#d5e6f3;background:#0c141e;border-radius:7px;outline:none;width:100%;height:31px;padding:0 10px}.profile-save-row input:focus{border-color:#58e6c273}.profile-save-row button,.profile-actions button{border:1px solid var(--line);color:#9eb3c4;cursor:pointer;letter-spacing:.06em;text-transform:uppercase;background:#0c141e;border-radius:7px;height:31px;padding:0 12px;font:600 10px DM Mono,monospace}.profile-save-row button{color:#0b1514;background:var(--cyan);border-color:#0000}.profile-save-row button:hover,.profile-actions button:hover{filter:brightness(1.08)}.profile-status{color:#7d93a6;min-height:16px;margin:8px 0 0;font:500 10px/1.4 DM Mono,monospace}.profile-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.profile-empty{color:#617488;font-size:11px}.profile-item{border:1px solid var(--line);background:#141f2b6b;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.profile-item.is-active{border-color:#58e6c252}.profile-item strong{color:#dbe7f3;font-size:12px;font-weight:600;display:block}.profile-item span{color:#617488;margin-top:2px;font:400 9px DM Mono,monospace;display:block}.profile-actions{flex-shrink:0;gap:6px;display:flex}.profile-actions button[data-action=delete]{color:#f3c2d0}.viewport-wrap{min-width:0;min-height:0;position:relative;overflow:hidden}#viewport,#viewport canvas{width:100%;height:100%;display:block}.analytics-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#090f17cc;border:1px solid #8badc926;border-radius:11px;width:234px;padding:16px;position:absolute;top:20px;right:20px;box-shadow:0 18px 50px #00000038}.view-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#090f17cc;border:1px solid #8badc926;border-radius:11px;width:214px;padding:12px 14px 14px;position:absolute;top:40px;left:20px;box-shadow:0 18px 50px #00000038}.view-card-heading{justify-content:space-between;align-items:center;display:flex}.view-card-heading .eyebrow{margin:0}.view-collapse{border:1px solid var(--line);color:#8396a9;cursor:pointer;background:#0c141eb3;border-radius:5px;width:20px;height:20px;font:500 12px/1 DM Mono,monospace;transition:all .16s}.view-collapse:hover{color:var(--cyan);border-color:#58e6c259}.view-card.is-collapsed{padding-bottom:12px}.view-card.is-collapsed .gui-mount{display:none}.view-card .gui-mount{padding-top:6px}.view-card .gui-mount .lil-gui .lil-gui>.lil-title{border-top:1px solid var(--line);border-bottom:0;height:30px;margin-top:8px;line-height:30px}.metric-primary{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:6px 0 13px;display:flex}.metric-primary strong{color:#effffb;letter-spacing:-.06em;font:500 29px/1.2 DM Mono,monospace;display:block}.metric-primary span{color:#6f8294;margin-top:2px;font-size:10px;display:block}.coverage-ring{width:48px;height:48px;transform:rotate(-90deg)}.coverage-ring circle{fill:none;stroke:#1b2a37;stroke-width:3px}.coverage-ring .ring-value{stroke:var(--cyan);stroke-linecap:round;stroke-dasharray:119.38;stroke-dashoffset:119.38px;filter:drop-shadow(0 0 3px #58e6c266);transition:stroke-dashoffset .22s}.metric-row{border-bottom:1px solid var(--line);color:#6f8294;justify-content:space-between;align-items:center;gap:10px;padding:7px 0;font-size:10px;display:flex}.metric-row strong{color:#c5d4e2;font:500 11px DM Mono,monospace}.metric-status{text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;font:500 9px DM Mono,monospace;display:flex}.metric-status i{border-radius:50%;width:6px;height:6px}.metric-status.clear{color:var(--cyan)}.metric-status.clear i{background:var(--cyan);box-shadow:0 0 7px var(--cyan)}.metric-status.blocked{color:var(--pink)}.metric-status.blocked i{background:var(--pink);box-shadow:0 0 7px var(--pink)}.ray-counts{grid-template-columns:1fr 1fr;gap:7px 9px;padding-top:12px;display:grid}.ray-counts span,.legend span{color:#64788b;text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;font:400 8px DM Mono,monospace;display:flex}.ray-counts b{color:#afbfce;font-weight:500}.ray-counts i,.legend i{border-radius:50%;width:5px;height:5px}i.valid{background:var(--cyan);box-shadow:0 0 5px var(--cyan)}i.missed{background:var(--orange);box-shadow:0 0 5px var(--orange)}i.occluded{background:var(--pink);box-shadow:0 0 5px var(--pink)}.legend{border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#080d14c2;border-radius:7px;gap:16px;padding:9px 12px;display:flex;position:absolute;bottom:18px;left:20px}.axis-label{color:#8199ae75;letter-spacing:.12em;pointer-events:none;font:500 8px DM Mono,monospace;position:absolute}.axis-label.rear{top:18px;left:20px}.axis-label.front{bottom:21px;right:22px}.guide-dialog{border:1px solid var(--line);width:min(720px,100vw - 28px);max-height:min(860px,100vh - 28px);color:inherit;background:0 0;border-radius:14px;margin:auto;padding:0;box-shadow:0 28px 80px #00000073}.guide-dialog::backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#05080db8}.guide-dialog:focus{outline:none}.guide-window{background:#0b111a;border-radius:14px;flex-direction:column;max-height:min(860px,100vh - 28px);display:flex;overflow:hidden}.guide-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px 14px;display:flex}.guide-header h2{color:#e7f0f8;letter-spacing:-.02em;font-size:18px;font-weight:600}.guide-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.guide-header-actions #guide-popout{border:1px solid var(--line);color:#9eb3c4;cursor:pointer;letter-spacing:.06em;text-transform:uppercase;background:#0c141e;border-radius:7px;height:31px;padding:0 12px;font:600 10px DM Mono,monospace}.guide-header-actions #guide-popout:hover{color:var(--cyan);border-color:#58e6c259}.guide-body{min-height:0;padding:8px 22px 28px;overflow:auto}.guide-body>h1:first-child{display:none}.guide-body h2{color:#e7f0f8;margin:22px 0 8px;font-size:16px}.guide-body h3{color:#b6c6d5;margin:16px 0 6px;font-size:13px}.guide-body p,.guide-body li{color:#b6c6d5;line-height:1.55}.guide-body p{margin:0 0 12px}.guide-body ul,.guide-body ol{margin:0 0 14px;padding-left:1.25em}.guide-body li{margin:0 0 6px}.guide-body li p{margin:0}.guide-body li ul{margin:8px 0 0}.guide-body code{color:#70e6cd;background:#131e2a;border-radius:4px;padding:.1em .35em;font-family:DM Mono,monospace;font-size:.92em}.guide-body a{color:var(--cyan)}.guide-body table{border-collapse:collapse;width:100%;margin:0 0 16px;font-size:13px}.guide-body th,.guide-body td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 10px}.guide-body th{color:#8fa2b5;letter-spacing:.08em;text-transform:uppercase;font:600 10px/1.2 DM Mono,monospace}@media (width<=820px){.app-shell{grid-template-rows:62px minmax(0,1fr)}.topbar{padding:0 14px}.brand-mark{width:32px;height:32px}.brand-mark i:nth-child(2){width:16px;top:11px;left:7px}.brand-mark i:nth-child(3){top:13px;left:13px}h1{font-size:15px}.status-pill,.brand .eyebrow{display:none}.workspace{grid-template-rows:minmax(360px,58%) minmax(0,42%);grid-template-columns:1fr}.panel-resizer{display:none}.viewport-wrap{grid-row:1}.control-panel{border-top:1px solid var(--line);border-right:0;grid-row:2;padding:14px}.analytics-card{width:190px;padding:12px;top:12px;right:12px}.metric-primary strong{font-size:23px}.view-card{width:172px;padding:10px 11px 11px;top:12px;left:12px}.guide-header{flex-wrap:wrap}.guide-header-actions #guide-popout,.ray-counts,.legend,.axis-label{display:none}}
