.reynard-checkbox{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;gap:var(--space-sm)}.reynard-checkbox--disabled{cursor:not-allowed;opacity:.6}.reynard-checkbox__input{position:absolute;opacity:0;width:0;height:0;margin:0;padding:0;border:none;outline:none}.reynard-checkbox__box{position:relative;display:flex;align-items:center;justify-content:center;border:2px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);transition:all var(--duration-base) var(--easing-standard);overflow:hidden}.reynard-checkbox--sm .reynard-checkbox__box{width:16px;height:16px;border-radius:var(--radius-xs)}.reynard-checkbox--md .reynard-checkbox__box{width:20px;height:20px;border-radius:var(--radius-sm)}.reynard-checkbox--lg .reynard-checkbox__box{width:24px;height:24px;border-radius:var(--radius-sm)}.reynard-checkbox:not(.reynard-checkbox--disabled):hover .reynard-checkbox__box{border-color:var(--color-accent);background-color:var(--color-surface-hover);transform:translateY(-1px);box-shadow:var(--elevation-1)}.reynard-checkbox__input:focus-visible+.reynard-checkbox__box{outline:2px solid var(--color-accent);outline-offset:2px}.reynard-checkbox--checked .reynard-checkbox__box{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-inverse)}.reynard-checkbox--checked:not(.reynard-checkbox--disabled):hover .reynard-checkbox__box{background-color:var(--color-accent-hover);border-color:var(--color-accent-hover);transform:translateY(-1px) scale(1.05);box-shadow:var(--elevation-2)}.reynard-checkbox--indeterminate .reynard-checkbox__box{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-inverse)}.reynard-checkbox--indeterminate:not(.reynard-checkbox--disabled):hover .reynard-checkbox__box{background-color:var(--color-accent-hover);border-color:var(--color-accent-hover);transform:translateY(-1px) scale(1.05);box-shadow:var(--elevation-2)}.reynard-checkbox__checkmark{width:100%;height:100%;color:inherit;transform-origin:center;transform:scale(0);opacity:0;transition:all var(--duration-base) var(--easing-standard)}.reynard-checkbox--checked .reynard-checkbox__checkmark{transform:scale(1);opacity:1;transition:all var(--duration-base) cubic-bezier(.68,-.55,.265,1.55)}.reynard-checkbox__indeterminate{width:60%;height:2px;background-color:currentColor;border-radius:1px;transform-origin:center;transform:scaleX(0);transition:all var(--duration-base) var(--easing-standard)}.reynard-checkbox--indeterminate .reynard-checkbox__indeterminate{transform:scaleX(1);transition:all var(--duration-base) cubic-bezier(.68,-.55,.265,1.55)}.reynard-checkbox--animating .reynard-checkbox__box,.reynard-checkbox--animating .reynard-checkbox__checkmark,.reynard-checkbox--animating .reynard-checkbox__indeterminate{transition:none}.reynard-checkbox--primary.reynard-checkbox--checked .reynard-checkbox__box,.reynard-checkbox--primary.reynard-checkbox--indeterminate .reynard-checkbox__box{background-color:var(--color-primary);border-color:var(--color-primary)}.reynard-checkbox--primary:not(.reynard-checkbox--disabled):hover .reynard-checkbox__box{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.reynard-checkbox--success.reynard-checkbox--checked .reynard-checkbox__box,.reynard-checkbox--success.reynard-checkbox--indeterminate .reynard-checkbox__box{background-color:var(--color-success);border-color:var(--color-success)}.reynard-checkbox--success:not(.reynard-checkbox--disabled):hover .reynard-checkbox__box{background-color:var(--color-success);border-color:var(--color-success);filter:brightness(1.1)}.reynard-checkbox--warning.reynard-checkbox--checked .reynard-checkbox__box,.reynard-checkbox--warning.reynard-checkbox--indeterminate .reynard-checkbox__box{background-color:var(--color-warning);border-color:var(--color-warning)}.reynard-checkbox--warning:not(.reynard-checkbox--disabled):hover .reynard-checkbox__box{background-color:var(--color-warning);border-color:var(--color-warning);filter:brightness(1.1)}.reynard-checkbox--danger.reynard-checkbox--checked .reynard-checkbox__box,.reynard-checkbox--danger.reynard-checkbox--indeterminate .reynard-checkbox__box{background-color:var(--color-error);border-color:var(--color-error)}.reynard-checkbox--danger:not(.reynard-checkbox--disabled):hover .reynard-checkbox__box{background-color:var(--color-error);border-color:var(--color-error);filter:brightness(1.1)}.reynard-checkbox--disabled .reynard-checkbox__box{background-color:var(--color-surface-disabled);border-color:var(--color-border-disabled);color:var(--color-text-disabled)}.reynard-checkbox--disabled.reynard-checkbox--checked .reynard-checkbox__box,.reynard-checkbox--disabled.reynard-checkbox--indeterminate .reynard-checkbox__box{background-color:var(--color-accent-disabled);border-color:var(--color-accent-disabled);color:var(--color-text-disabled)}.reynard-checkbox__box:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background-color:currentColor;opacity:0;transform:translate(-50%,-50%);transition:all var(--duration-fast) var(--easing-standard);pointer-events:none}.reynard-checkbox:not(.reynard-checkbox--disabled):active .reynard-checkbox__box:before{width:100%;height:100%;opacity:.1;transition:all var(--duration-fast) var(--easing-standard)}@media(prefers-contrast:high){.reynard-checkbox__box{border-width:3px}.reynard-checkbox--sm .reynard-checkbox__box{border-width:2px}}@media(prefers-reduced-motion:reduce){.reynard-checkbox__box,.reynard-checkbox__checkmark,.reynard-checkbox__indeterminate,.reynard-checkbox__box:before{transition:none}.reynard-checkbox:not(.reynard-checkbox--disabled):hover .reynard-checkbox__box{transform:none}.reynard-checkbox--checked:not(.reynard-checkbox--disabled):hover .reynard-checkbox__box{transform:none}}.slider{position:relative;width:100%;height:2rem;touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer}.slider.disabled{opacity:.5;cursor:not-allowed}.slider:focus{outline:none}.slider:focus .slider-thumb{box-shadow:0 0 0 3px #596400;box-shadow:0 0 0 3px oklch(47.8% .219 116.9)}.slider-track{position:absolute;top:50%;left:0;right:0;height:.375rem;background:var(--slider-track-bg, oklch(90.5% .007 175.6));border-radius:var(--border-radius, .375rem);transform:translateY(-50%)}.slider-track-fill{position:absolute;height:100%;background:var(--slider-fill-bg, oklch(47.8% .219 172.8));border-radius:var(--border-radius, .375rem);transform-origin:left;transition:width .1s ease}.slider-thumb{position:absolute;top:50%;width:1.25rem;height:1.25rem;background:var(--slider-thumb-bg, oklch(47.8% .219 172.8));border:2px solid var(--slider-thumb-border, oklch(100% 0 45));border-radius:50%;transform:translate(-50%,-50%);box-shadow:var(--slider-thumb-shadow, 0 1px 3px oklch(0% 0 0));transition:box-shadow .2s ease,transform .1s ease}.slider:hover .slider-thumb{box-shadow:var(--slider-thumb-hover-shadow, 0 4px 8px oklch(0% 0 0));transform:translate(-50%,-50%) scale(1.1)}.slider:active .slider-thumb{box-shadow:var(--slider-thumb-active-shadow, 0 2px 4px oklch(0% 0 0));cursor:grabbing;transform:translate(-50%,-50%) scale(1.05)}@media(prefers-color-scheme:dark){.slider-track{background:var(--slider-track-bg-dark, oklch(25% .03 172.5))}.slider-track-fill{background:var(--slider-fill-bg-dark, oklch(60.4% .177 169.3))}.slider-thumb{background:var(--slider-thumb-bg-dark, oklch(60.4% .177 169.3));border-color:var(--slider-thumb-border-dark, oklch(15.5% .028 170.8))}}:root[dir=rtl] .slider-track-fill{transform-origin:right}:root[dir=rtl] .slider-thumb{transform:translate(50%,-50%)}:root[dir=rtl] .slider:hover .slider-thumb{transform:translate(50%,-50%) scale(1.1)}:root[dir=rtl] .slider:active .slider-thumb{transform:translate(50%,-50%) scale(1.05)}.slider.slider-sm{height:1.5rem}.slider.slider-sm .slider-track{height:.25rem}.slider.slider-sm .slider-thumb{width:1rem;height:1rem}.slider.slider-lg{height:2.5rem}.slider.slider-lg .slider-track{height:.5rem}.slider.slider-lg .slider-thumb{width:1.5rem;height:1.5rem}.reynard-password-field{position:relative}.password-toggle-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:4px;background:transparent;border:none;color:var(--color-text-secondary, oklch(50% .01 0));cursor:pointer;border-radius:4px;transition:color .2s ease,background-color .2s ease;z-index:10}.password-toggle-btn:hover{color:var(--color-text, oklch(15% .01 0));background:var(--color-surface-hover, oklch(90% .02 0))}.password-strength{margin-top:8px}.password-strength__bar{width:100%;height:4px;background:var(--color-border, oklch(85% .02 0));border-radius:2px;overflow:hidden;margin-bottom:4px}.password-strength__fill{height:100%;border-radius:2px;transition:width .3s ease,background-color .3s ease}.password-strength__label{font-size:.75rem;font-weight:500;text-align:right}[data-theme=dark] .password-toggle-btn{color:var(--color-text-secondary, oklch(70% .01 0))}[data-theme=dark] .password-toggle-btn:hover{color:var(--color-text, oklch(90% .01 0));background:var(--color-surface-hover, oklch(30% .02 0))}[data-theme=dark] .password-strength__bar{background:var(--color-border, oklch(35% .02 0))}[data-theme=high-contrast-black] .password-toggle-btn,[data-theme=high-contrast-inverse] .password-toggle-btn{border:1px solid var(--color-border, oklch(30% .02 0))}[data-theme=high-contrast-black] .password-toggle-btn:hover,[data-theme=high-contrast-inverse] .password-toggle-btn:hover{border-color:var(--color-border-active, oklch(80% .3 240))}@media(prefers-reduced-motion:reduce){.password-strength__fill,.password-toggle-btn{transition:none}}.password-toggle-btn:focus-visible{outline:2px solid var(--color-primary, oklch(60% .25 240));outline-offset:2px}@media(prefers-contrast:high){.password-strength__bar,.password-toggle-btn{border:1px solid var(--color-border, oklch(85% .02 0))}}.toggle{position:relative;display:inline-block;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle.disabled{cursor:not-allowed;opacity:.6}.toggle__input{position:absolute;opacity:0;width:0;height:0;margin:0;padding:0;border:none;outline:none}.toggle__slider{position:relative;display:block;background:var(--toggle-bg-default, oklch(90.5% .007 175.6));border-radius:1.5em;transition:background-color .2s ease;border:2px solid oklch(0% 0 0 / 0)}.toggle__slider:before{content:"";position:absolute;top:50%;left:.1em;transform:translateY(-50%);background:var(--toggle-knob-default, oklch(100% 0 45));border-radius:50%;transition:all .2s ease;box-shadow:0 1px 3px #000}.toggle.sm .toggle__slider{width:2.5em;height:1.25em}.toggle.sm .toggle__slider:before{width:.9em;height:.9em}.toggle.md .toggle__slider{width:3em;height:1.5em}.toggle.md .toggle__slider:before{width:1.1em;height:1.1em}.toggle.lg .toggle__slider{width:3.5em;height:1.75em}.toggle.lg .toggle__slider:before{width:1.3em;height:1.3em}.toggle__input:checked+.toggle__slider{background:var(--toggle-bg-checked, oklch(47.8% .219 172.8))}.toggle__input:checked+.toggle__slider:before{transform:translate(1.6em) translateY(-50%);background:var(--toggle-knob-checked, oklch(100% 0 45))}.toggle.sm .toggle__input:checked+.toggle__slider:before{transform:translate(1.2em) translateY(-50%)}.toggle.lg .toggle__input:checked+.toggle__slider:before{transform:translate(1.8em) translateY(-50%)}.toggle:not(.disabled):hover .toggle__slider{background:var(--toggle-bg-hover, oklch(83.3% .012 171.6))}.toggle:not(.disabled):hover .toggle__input:checked+.toggle__slider{background:var(--toggle-bg-checked-hover, oklch(37.6% .237 177.1))}.toggle:not(.disabled):hover .toggle__slider:before{background:var(--toggle-knob-hover, oklch(98% .002 167.2))}.toggle:not(.disabled):hover .toggle__input:checked+.toggle__slider:before{background:var(--toggle-knob-checked-hover, oklch(100% 0 45))}.toggle__input:focus+.toggle__slider{outline:2px solid var(--toggle-focus-ring, oklch(47.8% .219 172.8));outline-offset:2px}.toggle__input:focus:checked+.toggle__slider{background:var(--toggle-bg-checked, oklch(47.8% .219 172.8))}.toggle:not(.disabled):active .toggle__slider:before{transform:translateY(-50%) scale(.95)}.toggle:not(.disabled):active .toggle__input:checked+.toggle__slider:before{transform:translate(1.6em) translateY(-50%) scale(.95)}.toggle.sm:not(.disabled):active .toggle__input:checked+.toggle__slider:before{transform:translate(1.2em) translateY(-50%) scale(.95)}.toggle.lg:not(.disabled):active .toggle__input:checked+.toggle__slider:before{transform:translate(1.8em) translateY(-50%) scale(.95)}.toggle.disabled .toggle__slider{background:var(--toggle-bg-disabled, oklch(95.7% .004 175.6));cursor:not-allowed}.toggle.disabled .toggle__slider:before{background:var(--toggle-knob-disabled, oklch(83.3% .012 171.6))}.toggle.disabled .toggle__input:checked+.toggle__slider{background:var(--toggle-bg-checked-disabled, oklch(63.6% .022 173.4))}.toggle.disabled .toggle__input:checked+.toggle__slider:before{background:var(--toggle-knob-checked-disabled, oklch(90.5% .007 175.6))}@media(prefers-color-scheme:dark){.toggle__slider{background:var(--toggle-bg-default-dark, oklch(25% .03 172.5))}.toggle__slider:before{background:var(--toggle-knob-default-dark, oklch(98% .002 167.2))}.toggle__input:checked+.toggle__slider{background:var(--toggle-bg-checked-dark, oklch(60.4% .177 169.3))}.toggle__input:checked+.toggle__slider:before{background:var(--toggle-knob-checked-dark, oklch(100% 0 45))}.toggle:not(.disabled):hover .toggle__slider{background:var(--toggle-bg-hover-dark, oklch(32.8% .028 170.8))}.toggle:not(.disabled):hover .toggle__input:checked+.toggle__slider{background:var(--toggle-bg-checked-hover-dark, oklch(47.8% .219 172.8))}}:root[dir=rtl] .toggle__slider:before{left:auto;right:.1em}:root[dir=rtl] .toggle__input:checked+.toggle__slider:before{transform:translate(-1.6em) translateY(-50%)}:root[dir=rtl] .toggle.sm .toggle__input:checked+.toggle__slider:before{transform:translate(-1.2em) translateY(-50%)}:root[dir=rtl] .toggle.lg .toggle__input:checked+.toggle__slider:before{transform:translate(-1.8em) translateY(-50%)}:root[dir=rtl] .toggle:not(.disabled):active .toggle__input:checked+.toggle__slider:before{transform:translate(-1.6em) translateY(-50%) scale(.95)}:root[dir=rtl] .toggle.sm:not(.disabled):active .toggle__input:checked+.toggle__slider:before{transform:translate(-1.2em) translateY(-50%) scale(.95)}:root[dir=rtl] .toggle.lg:not(.disabled):active .toggle__input:checked+.toggle__slider:before{transform:translate(-1.8em) translateY(-50%) scale(.95)}.error-boundary-fallback{padding:2rem;border:1px solid oklch(90.6% .016 170.2);border-radius:8px;background:#f5f9f7;margin:1rem 0}.error-boundary-fallback h3{color:#9a0083;color:oklch(46.7% .22 -23.1);margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.error-boundary-fallback p{color:#3a5c51;margin:0 0 1rem}.error-boundary-actions{display:flex;gap:1rem;margin-top:1rem}.error-boundary-button{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s}.error-boundary-button-primary{background:#006d58;background:oklch(47.8% .219 172.8);color:#fff}.error-boundary-button-primary:hover{background:#004d41;background:oklch(37.6% .237 177.1)}.error-boundary-button-secondary{background:#d6e4de;color:#112620}.error-boundary-button-secondary:hover{background:#c1cbc7}.threejs-visualization{position:relative;background:#030303;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px #000}.threejs-container{width:100%;height:100%;min-height:400px;position:relative;overflow:hidden}.threejs-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:16px;color:#fff;z-index:10}.loading-spinner{width:40px;height:40px;border:3px solid oklch(100% 0 45);border-top:3px solid oklch(37.2% .231 164);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.threejs-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:16px;color:#c046a7;z-index:10;text-align:center;padding:20px;background:#000;border-radius:8px;border:1px solid oklch(59.3% .19 -23.1)}.threejs-error button{padding:8px 16px;background:#c046a7;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s ease}.threejs-error button:hover{background:#b11297}.threejs-error button:active{background:#860071;background:oklch(42.3% .223 -22.8)}.threejs-visualization canvas{display:block;width:100%;height:100%;border-radius:8px}@media(max-width:768px){.threejs-visualization{border-radius:4px}.threejs-loading,.threejs-error{font-size:14px}.loading-spinner{width:32px;height:32px}}@media(prefers-color-scheme:dark){.threejs-visualization{background:#000}}@media(prefers-contrast:high){.threejs-visualization{border:2px solid oklch(100% 0 45)}.threejs-error{border:2px solid oklch(59.3% .19 -23.1)}}.point-cloud-visualization{display:flex;flex-direction:column;gap:16px;width:100%;height:100%}.point-tooltip-positioned{position:fixed;z-index:1000;transform:translate(10px,-50%)}.point-cloud-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#fff;padding:40px}.point-cloud-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#c046a7;padding:40px;text-align:center;background:#000;border-radius:8px;border:1px solid oklch(59.3% .19 -23.1)}.point-cloud-error button{padding:8px 16px;background:#c046a7;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s ease}.point-cloud-error button:hover{background:#b11297}.point-cloud-error button:active{background:#860071;background:oklch(42.3% .223 -22.8)}.point-cloud-canvas{flex:1;min-height:400px}.point-cloud-stats{display:flex;flex-wrap:wrap;gap:16px;padding:12px;background:#000;border-radius:6px;border:1px solid oklch(100% 0 45)}.stat-item{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:80px}.stat-label{font-size:12px;color:#6c6c6c;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:16px;font-weight:600;color:#fff}.point-cloud-controls{display:flex;flex-wrap:wrap;gap:16px;padding:16px;background:#000;border-radius:6px;border:1px solid oklch(100% 0 45)}.control-group{display:flex;flex-direction:column;gap:8px;min-width:150px}.control-label{font-size:12px;color:#6c6c6c;text-transform:uppercase;letter-spacing:.5px}.control-select{padding:8px 12px;background:#fff;border:1px solid oklch(100% 0 45);border-radius:4px;color:#fff;font-size:14px;cursor:pointer;transition:all .2s ease}.control-select:hover{background:#fff;border-color:#fff}.control-select:focus{outline:none;border-color:#004d35;border-color:oklch(37.2% .231 164);box-shadow:0 0 0 2px #2c4a00;box-shadow:0 0 0 2px oklch(37.2% .231 131)}.control-item{display:flex;align-items:center;gap:8px;cursor:pointer;color:#fff;font-size:14px}.control-item input[type=checkbox]{width:16px;height:16px;accent-color:oklch(37.2% .231 164);cursor:pointer}.selection-groups{background:#000;border-radius:6px;border:1px solid oklch(100% 0 45);overflow:hidden}.selection-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#2c4a00;background:oklch(37.2% .231 131);border-bottom:1px solid oklch(100% 0 45);color:#fff;font-size:14px}.clear-selection{background:none;border:none;color:#c046a7;font-size:18px;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s ease}.clear-selection:hover{background:#c046a7}.selection-list{max-height:200px;overflow-y:auto;padding:8px}.selection-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:4px;transition:background-color .2s ease}.selection-item:hover{background:#fff}.selection-index{font-size:12px;color:#6c6c6c;min-width:20px}.selection-id{flex:1;color:#fff;font-size:14px;font-family:monospace}.selection-thumbnail{width:32px;height:32px;object-fit:cover;border-radius:4px;border:1px solid oklch(100% 0 45)}.remove-selection{background:none;border:none;color:#c046a7;font-size:16px;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s ease}.remove-selection:hover{background:#c046a7}.point-tooltip{position:fixed;z-index:1000;background:#000;border:1px solid oklch(100% 0 45);border-radius:6px;padding:12px;color:#fff;font-size:12px;max-width:300px;box-shadow:0 4px 12px #000;pointer-events:none}.tooltip-header{font-weight:600;margin-bottom:8px;color:#004d35;color:oklch(37.2% .231 164)}.tooltip-image{margin-bottom:8px}.tooltip-thumbnail{width:64px;height:64px;object-fit:cover;border-radius:4px;border:1px solid oklch(100% 0 45)}.tooltip-content{display:flex;flex-direction:column;gap:4px}.tooltip-item{display:flex;justify-content:space-between;gap:8px}.tooltip-item span:first-child{color:#6c6c6c;min-width:80px}.tooltip-item span:last-child{color:#fff;font-family:monospace}.tooltip-metadata{margin-top:8px;padding-top:8px;border-top:1px solid oklch(100% 0 45)}.tooltip-section-title{font-weight:600;color:#004d35;color:oklch(37.2% .231 164);margin-bottom:4px}@media(max-width:768px){.point-cloud-stats{flex-direction:column;gap:8px}.stat-item{flex-direction:row;justify-content:space-between;min-width:auto}.point-cloud-controls{flex-direction:column;gap:12px}.control-group{min-width:auto}.selection-list{max-height:150px}.point-tooltip{max-width:250px;font-size:11px}}@media(prefers-color-scheme:dark){.point-cloud-stats,.point-cloud-controls,.selection-groups{background:#000}}@media(prefers-contrast:high){.point-cloud-stats,.point-cloud-controls,.selection-groups,.point-tooltip{border:2px solid oklch(100% 0 45)}}.threejs-demo{display:flex;flex-direction:column;gap:20px;padding:20px;background:#030303;border-radius:12px;color:#fff}.demo-header{text-align:center}.demo-header h3{margin:0 0 8px;font-size:24px;font-weight:600;color:#fff}.demo-header p{margin:0;color:#6c6c6c;font-size:14px}.demo-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;padding:16px;background:#000;border-radius:8px;border:1px solid oklch(100% 0 45)}.control-group{display:flex;flex-direction:column;gap:8px}.control-group label{font-size:14px;font-weight:600;color:#004d35;color:oklch(37.2% .231 164);margin-bottom:4px}.control-info{display:flex;flex-direction:column;gap:4px}.control-info span{font-size:12px;color:#bebebe;padding:4px 8px;background:#fff;border-radius:4px;border-left:3px solid oklch(37.2% .231 164)}.visualization-container{position:relative;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px #000}.demo-visualization{width:100%;height:100%}.demo-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.info-panel{padding:16px;background:#000;border-radius:8px;border:1px solid oklch(100% 0 45)}.info-panel h4{margin:0 0 12px;font-size:16px;font-weight:600;color:#004d35;color:oklch(37.2% .231 164)}.camera-info{font-family:monospace;font-size:12px;color:#bebebe;background:#000;padding:8px;border-radius:4px;border:1px solid oklch(100% 0 45);word-break:break-all}.info-panel ul{margin:0;padding:0;list-style:none}.info-panel li{padding:4px 0;font-size:14px;color:#bebebe;border-bottom:1px solid oklch(100% 0 45)}.info-panel li:last-child{border-bottom:none}@media(max-width:768px){.threejs-demo{padding:16px;gap:16px}.demo-header h3{font-size:20px}.demo-controls,.demo-info{grid-template-columns:1fr;gap:16px}.control-info span,.camera-info{font-size:11px}}@media(max-width:480px){.threejs-demo{padding:12px;gap:12px}.demo-header h3{font-size:18px}.demo-header p{font-size:12px}.demo-controls,.info-panel{padding:12px}}@media(prefers-color-scheme:dark){.threejs-demo,.demo-controls,.info-panel{background:#000}}@media(prefers-contrast:high){.threejs-demo,.demo-controls,.info-panel{border:2px solid oklch(100% 0 45)}.control-info span{border-left:4px solid oklch(37.2% .231 164)}}.cluster-visualization{position:absolute;top:20px;right:20px;background:#000;border-radius:8px;padding:16px;color:#fff;font-family:Arial,sans-serif;max-width:300px;z-index:1000}.cluster-stats h3{margin:0 0 12px;font-size:16px;font-weight:700}.stats-grid{display:flex;flex-direction:column;gap:8px}.stat-item{background:#fff;border-radius:6px;padding:12px;cursor:pointer;transition:all .2s ease;border:2px solid oklch(0% 0 0 / 0)}.stat-item:hover{background:#fff;border-color:#fff}.stat-item.hovered,.stat-item.selected{background:#6bb230;border-color:#6bb230}.stat-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.cluster-name{font-weight:700;font-size:14px}.cluster-size{font-size:12px;opacity:.8}.stat-details{display:flex;flex-direction:column;gap:4px}.stat-row{display:flex;justify-content:space-between;font-size:12px}.stat-row span:first-child{opacity:.8}.cluster-controls{margin-top:12px;display:flex;justify-content:center}.toggle-stats{background:#fff;border:1px solid oklch(100% 0 45);color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s ease}.toggle-stats:hover{background:#fff;border-color:#fff}.vector-visualization{display:flex;flex-direction:column;gap:12px;padding:16px;background:#f6f7f7;border-radius:8px;border:1px solid oklch(92.3% .007 167.2)}.visualization-title{margin:0;font-size:18px;font-weight:600;color:#060b09}.visualization-container{position:relative;display:flex;gap:16px;align-items:flex-start}.visualization-canvas{border:1px solid oklch(88.3% .009 167.2);border-radius:4px;cursor:crosshair;background:#fff}.visualization-canvas:hover{border-color:#00543e;border-color:oklch(39.7% .291 167.9)}.color-legend{display:flex;flex-direction:column;gap:8px;min-width:120px}.legend-title{font-size:12px;font-weight:600;color:#4c5953;text-align:center}.legend-gradient{width:100%;height:200px;background:linear-gradient(to top,#0b0400,#1a0a00,#241800 12.5%,#343600 25%,#2e4200,#1c4e0d 37.5%,#095418,#005926 43.75%,#00613c 50%,#0093b4 75%,#0099d1 78.12%,#009be1 79.69%,#009cea,#169df1 81.25%,#339efc,#4fa0ff 84.38%,#76a6ff 87.5%,#c3c7ff);background:linear-gradient(to top,color(xyz 0.005 0.001 -0.001),color(xyz 0.008 0.004 -0.002),color(xyz 0.013 0.01 -0.004) 12.5%,color(xyz 0.027 0.034 -0.002) 25%,color(xyz 0.03 0.045 0.004),#1c4e0d 37.5%,#095418,color(xyz 0.037 0.073 0.027) 43.75%,color(xyz 0.041 0.091 0.046) 50%,color(xyz 0.18 0.243 0.559) 75%,color(xyz 0.228 0.273 0.705) 78.12%,color(xyz 0.254 0.289 0.786) 79.69%,color(xyz 0.268 0.298 0.829),#169df1 81.25%,#339efc,color(xyz 0.344 0.341 1.066) 84.38%,color(xyz 0.414 0.378 1.285) 87.5%,color(xyz 0.785 0.553 2.453));border-radius:4px;border:1px solid oklch(88.3% .009 167.2)}.legend-labels{display:flex;justify-content:space-between;font-size:10px;color:#4c5953}.tooltip{position:fixed;left:var(--tooltip-x, 0);top:var(--tooltip-y, 0);background:#000;color:#fff;padding:8px 12px;border-radius:4px;font-size:12px;pointer-events:none;box-shadow:0 2px 8px #000;z-index:1000;opacity:0;transform:translateY(-10px);transition:opacity .2s ease,transform .2s ease}.tooltip.tooltip-visible{opacity:1;transform:translateY(0)}.tooltip-content{display:flex;flex-direction:column;gap:2px}.visualization-controls{display:flex;justify-content:space-between;align-items:center;padding-top:8px;border-top:1px solid oklch(92.3% .007 167.2)}.expand-button{background:#00543e;background:oklch(39.7% .291 167.9);color:#fff;border:none;border-radius:4px;padding:6px 12px;font-size:12px;cursor:pointer;transition:background-color .2s ease}.expand-button:hover{background:#003123;background:oklch(27.8% .204 168)}.interaction-info{display:flex;gap:12px;font-size:11px;color:#4c5953}.interaction-info span{padding:2px 6px;background:#e1e7e4;border-radius:3px}@media(max-width:768px){.visualization-container{flex-direction:column}.color-legend{flex-direction:row;align-items:center;min-width:auto}.legend-gradient{width:200px;height:20px}.interaction-info{flex-direction:column;gap:4px}}.vector-visualization{transition:all .3s ease}.visualization-canvas{transition:border-color .2s ease}@media(prefers-contrast:high){.vector-visualization,.visualization-canvas{border-color:#000}.tooltip{background:#000;border:1px solid oklch(100% 0 45)}}@media(prefers-reduced-motion:reduce){.vector-visualization,.visualization-canvas,.expand-button{transition:none}}.base-point-cloud-renderer{display:flex;flex-direction:column;gap:16px;padding:16px;background:#f6f7f7;border-radius:8px;border:1px solid oklch(92.3% .007 167.2)}.renderer-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;padding:12px;background:#fff;border-radius:6px;border:1px solid oklch(88.3% .009 167.2)}.info-item{display:flex;justify-content:space-between;align-items:center;font-size:14px}.info-item .label{font-weight:500;color:#4c5953}.info-item .value{font-weight:600;color:#060b09}.renderer-controls{display:flex;gap:8px;flex-wrap:wrap}.control-button{background:#e1e7e4;color:#29332e;border:1px solid oklch(82.7% .014 167.2);border-radius:4px;padding:6px 12px;font-size:12px;cursor:pointer;transition:all .2s ease}.control-button:hover{background:#d3dad7;border-color:#96a39d}.control-button.active{background:#00543e;background:oklch(39.7% .291 167.9);color:#fff;border-color:#00543e;border-color:oklch(39.7% .291 167.9)}.control-button.active:hover{background:#003123;background:oklch(27.8% .204 168);border-color:#003123;border-color:oklch(27.8% .204 168)}.renderer-stats{display:flex;gap:16px;padding:12px;background:#fff;border-radius:6px;border:1px solid oklch(88.3% .009 167.2)}.stats-item{display:flex;gap:8px;align-items:center;font-size:12px}.stats-item .label{color:#4c5953}.stats-item .value{font-weight:600;color:#060b09}@media(max-width:768px){.renderer-info{grid-template-columns:1fr}.renderer-controls{flex-direction:column}.renderer-stats{flex-direction:column;gap:8px}}@media(prefers-contrast:high){.base-point-cloud-renderer,.renderer-info,.renderer-stats,.control-button{border-color:#000}.control-button.active{background:#000;border-color:#000}}@media(prefers-reduced-motion:reduce){.control-button{transition:none}}
