*{margin:0;padding:0;font-family:Arial,sans-serif;overscroll-behavior:none;box-sizing:border-box}#container{width:100vw;height:100vh;overflow:hidden}@supports(-webkit-touch-callout: none){#container{height:100vh;height:-webkit-fill-available}body{height:100vh;height:-webkit-fill-available;overflow:hidden}html{height:100vh;height:-webkit-fill-available}}@media screen and (max-width: 768px){#container{position:fixed;top:0;left:0;width:100%;height:100%}canvas{width:100% !important;height:100% !important}}canvas{touch-action:none}.lil-gui{--name-width: 32%}.lil-gui.root{display:none}.lil-gui.root.active{display:flex}#loader{position:fixed;left:0;top:0;bottom:0;right:0;background:#000;z-index:99999;color:#000;display:flex;justify-content:center;align-items:center;background-size:cover;background-position:center}#loader::after{content:"";position:absolute;left:0;right:0;top:0;bottom:0;z-index:-1;background:rgba(0,0,0,.6509803922)}.loader-text{color:#fff;font-size:24px}.loader-ring{position:absolute;width:124px;height:124px;margin:8px;border-radius:50%;border:6px solid #7bdbff;border-color:#7bdbff rgba(0,0,0,0) #7bdbff rgba(0,0,0,0);animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.bottom-panel{position:absolute;transform:translateX(-50%);left:50%;bottom:20px;z-index:9;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;row-gap:10px;column-gap:15px;width:100%;padding:0 15px}#scene-cleanup,#page-reload{display:none}.button--scene-cleanup{font-size:.82em;opacity:.92}.button--page-reload{font-size:.82em;opacity:.92}.page-credit{position:fixed;right:max(10px,env(safe-area-inset-right));bottom:max(6px,env(safe-area-inset-bottom));z-index:10;margin:0;font-size:10px;line-height:1.3;letter-spacing:.02em;color:rgba(255,255,255,.85);text-shadow:0 1px 2px rgba(0,0,0,.45);pointer-events:none;user-select:none}.page-credit__link{color:inherit;text-decoration:none;pointer-events:auto;transition:color .15s ease,border-color .15s ease,opacity .15s ease}.page-credit__link:hover,.page-credit__link:focus-visible{color:#fff;border-bottom-color:rgba(255,255,255,.35);outline:none}.side-panel{position:absolute;top:20px;right:20px;background:rgba(255,255,255,.8196078431);padding:15px;border-radius:5px;user-select:none;-webkit-user-select:none;-moz-user-select:none;width:264px;transition:height .3s ease;overflow:hidden;display:none;z-index:1002}.side-panel.vis{display:block}.side-panel-btn{width:100%;position:absolute;left:0;top:0;right:0;display:none;height:42px;border:none;background:#202a39;font-size:24px;color:#fff;border:1px solid #ff7300;border-radius:10px;cursor:pointer;align-items:center;justify-content:center;gap:10px}.burger-menu{display:flex;flex-direction:column;gap:3px;margin-top:2px}.burger-menu span{width:20px;height:3px;background-color:#fff;transition:all .3s ease;border-radius:2px;transform-origin:center}.side-panel-btn.opened .burger-menu span:nth-child(1){transform:rotate(45deg) translate(2px, 6px);width:24px}.side-panel-btn.opened .burger-menu span:nth-child(2){opacity:0}.side-panel-btn.opened .burger-menu span:nth-child(3){transform:rotate(-45deg) translate(2px, -6px);width:24px}.side-panel.opened{height:390px;padding-top:50px;max-height:calc(100vh - 90px)}.side-panel.opened .side-panel-wrapper{overflow-y:auto;height:100%;scrollbar-width:thin;scrollbar-color:#ff7300 #f0f0f0}.side-panel.opened .side-panel-wrapper::-webkit-scrollbar{width:8px}.side-panel.opened .side-panel-wrapper::-webkit-scrollbar-track{background:#f0f0f0;border-radius:4px}.side-panel.opened .side-panel-wrapper::-webkit-scrollbar-thumb{background:#ff7300;border-radius:4px;border:1px solid #e0e0e0}.side-panel.opened .side-panel-wrapper::-webkit-scrollbar-thumb:hover{background:#e66a00}@media(max-width: 1024px){.side-panel.opened .side-panel-wrapper{-webkit-overflow-scrolling:touch;scrollbar-width:auto}.side-panel.opened .side-panel-wrapper::-webkit-scrollbar{width:10px;-webkit-appearance:none}}.scroll-down-btn{position:absolute;bottom:10px;right:10px;width:40px;height:40px;background:#202a39;border:1px solid #ff7300;border-radius:50%;color:#fff;cursor:pointer;display:none;align-items:center;justify-content:center;transition:all .3s ease;z-index:10;box-shadow:0 2px 8px rgba(32,42,57,.45)}.scroll-down-btn:hover{background:#2d3849;transform:scale(1.1);box-shadow:0 4px 12px rgba(32,42,57,.55)}.scroll-down-btn:active{transform:scale(0.95)}.scroll-down-btn svg{transition:transform .3s ease}.scroll-down-btn:hover svg{transform:translateY(2px)}.scroll-down-btn.hidden{display:none !important}.panel-group__title{font-size:18px;margin-bottom:7px}.light-mode-panel{position:fixed;right:max(12px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));z-index:9;padding:10px 14px;border-radius:5px;pointer-events:auto}.light-mode-radio--vertical{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.light-mode-radio__label{font-size:18px;font-family:Arial,sans-serif;color:#fff;text-shadow:0 1px 3px #000,0 0 8px #000;text-align:center;margin:0 0 4px;opacity:.8;user-select:none}.light-mode-radio--vertical .light-mode-btn{box-sizing:border-box}.light-mode-btn{width:40px;padding:8px 8px;border:1px solid #ff7300;border-radius:5px;background:#202a39;color:#fff;font-size:16px;font-family:Arial,sans-serif;cursor:pointer;text-align:center;transition:background-color .2s ease,box-shadow .2s ease;opacity:.7}.light-mode-btn:hover{background-color:#2d3849}.light-mode-btn.light-mode-btn--active{background-color:#ff7300;color:#202a39;font-weight:bold;box-shadow:0 0 12px rgba(255,115,0,.7)}.instrument-info-tray{font-family:Arial,sans-serif;position:fixed;left:0;right:0;bottom:0;height:0;min-height:0;z-index:12;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;padding:0;overflow:hidden;pointer-events:none;-webkit-overflow-scrolling:touch}.instrument-info-tray:has(.instrument-info-popup--visible){height:clamp(96px,20vh,220px);padding:0;pointer-events:auto}.instrument-info-tray:has(.instrument-info-popup--visible)::before{content:"";position:absolute;inset:0;background:linear-gradient(to top, rgba(32, 42, 57, 0.94) 0%, rgba(32, 42, 57, 0.82) 55%, rgba(32, 42, 57, 0.35) 100%);pointer-events:none;z-index:0}.instrument-info-popup{position:absolute;left:0;right:0;bottom:0;z-index:1;margin:0;padding:0;border:none;border-radius:0;background:rgba(0,0,0,0);color:#f2f4f8;font-family:Arial,Helvetica,sans-serif;box-shadow:none;transform:translateY(calc(100% + 24px));opacity:0;visibility:hidden;max-height:none;overflow:hidden;pointer-events:none;transition:transform .38s cubic-bezier(0.22, 1, 0.36, 1),opacity .28s ease,visibility 0s linear .38s}.instrument-info-popup--visible{position:relative;left:auto;right:auto;bottom:auto;flex:1 1 auto;align-self:stretch;min-height:0;max-height:100%;display:flex;flex-direction:column;gap:10px;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));overflow-x:hidden;overflow-y:auto;pointer-events:auto;transform:translateY(0);opacity:1;visibility:visible;transition:transform .38s cubic-bezier(0.22, 1, 0.36, 1),opacity .28s ease,visibility 0s linear 0s}.instrument-info-popup__item{box-sizing:border-box;width:100%;max-width:1000px;margin-left:auto;margin-right:auto;align-self:center;flex-shrink:0;padding:12px 14px;border-radius:8px;border:1px solid #ff7300;background:rgba(13,17,24,.92);box-shadow:0 2px 10px rgba(0,0,0,.25)}.instrument-info-popup__head{margin:0 0 6px}.instrument-info-popup__pos{display:inline-block;font-size:15px;font-weight:bold;letter-spacing:.03em;color:#ff9a4d}.instrument-info-popup__desc{margin:0;font-size:14px;line-height:1.45;color:#e6eaef}@media(prefers-reduced-motion: reduce){.instrument-info-popup{transition-duration:.01ms}}#color-picker-container{display:none}.color-picker-container__title{margin:0;padding-bottom:10px;font-size:18px}.color-picker-container__item{margin-bottom:10px;display:flex;align-items:center}#color-picker-container.vis{display:block;margin-bottom:30px}.color-select-container{display:none}.color-select-container__title{margin:0;padding-bottom:10px;font-size:18px}.color-select-container.vis{display:flex;flex-wrap:wrap;margin-bottom:30px;gap:5px;align-items:center;justify-content:center}.reset-colors-button{background:#f44336;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;margin-bottom:15px;transition:background-color .2s ease}.reset-colors-button:hover{background:#d32f2f}.reset-colors-button:active{background:#b71c1c}#checkbox-container-config,#checkbox-container-visiability{display:none}.checkbox-container__title{margin:0;padding-bottom:10px;font-size:18px}.checkbox-container__item{margin-bottom:10px}#checkbox-container-config.vis,#checkbox-container-visiability.vis{display:block;margin-bottom:30px}.custom-checkbox{display:none}.custom-checkbox+.custom-checkbox-label{position:relative;padding-left:30px;cursor:pointer;font-size:16px}.custom-checkbox+.custom-checkbox-label::before,.custom-checkbox+.custom-checkbox-label::after{content:"";position:absolute}.custom-checkbox+.custom-checkbox-label::before{left:0;top:0;width:20px;height:20px;background-color:#f0f0f0;border-radius:4px;border:1px solid #ddd;transition:background-color .2s ease}.custom-checkbox:checked+.custom-checkbox-label::before{background-color:#67c23a;border-color:#67c23a}.custom-checkbox+.custom-checkbox-label::after{left:6px;top:1px;width:7px;height:12px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg);opacity:0;transition:opacity .2s ease}.custom-checkbox:checked+.custom-checkbox-label::after{opacity:1}.button{background-color:#202a39;color:#fff;font-size:16px;font-family:Arial,sans-serif;padding:10px 18px;border:1px solid #ff7300;border-radius:5px;text-align:center;display:inline-block;cursor:pointer;transition:all .2s ease;opacity:.85}#sound{display:none}#info-toggle{display:none}.button:hover{background-color:#2d3849}.button.info-btn{width:40px;height:40px;min-width:40px;min-height:40px;max-width:40px;max-height:40px;padding:0;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;font-size:24px;line-height:1;position:relative;font-family:Arial,sans-serif;transition:background-color .2s ease,box-shadow .2s ease,color .2s ease;font-weight:bold}.button.info-btn.info-btn--active{background-color:#ff7300;color:#202a39;font-weight:bold}@media(max-width: 1024px){.side-panel{height:42px}.side-panel .side-panel-btn{display:flex}.button{font-size:13px;padding:8px 8px}.bottom-panel{row-gap:10px;column-gap:10px}#info-toggle{height:32px;min-height:32px;width:32px;min-width:32px;order:-1;opacity:.8}.light-mode-btn{padding:4px 10px;opacity:.7}.light-mode-radio__label{opacity:.8;font-size:16px}.side-panel-btn{font-size:20px}.bottom-panel{bottom:10px}.light-mode-panel{padding:0}}@media(max-width: 600px){.side-panel{transform:translateX(50%);right:50%;width:100%;top:0}.instrument-info-popup__desc{font-size:13px}.page-credit{display:none}.panel-group__title{font-size:14px}.color-select-container.vis{margin-bottom:10px;justify-content:flex-start}.object3d-radio-group-container__item{width:200px}.color-square{width:23px !important;height:20px !important}.disk .color-square{width:20px !important}.side-panel.opened .scroll-down-btn{display:flex}.scroll-down-btn{width:35px;height:35px;bottom:5px;left:50%;right:auto;transform:translateX(-50%);font-size:18px}.scroll-down-btn svg{width:18px;height:18px}.light-mode-panel{padding:0;left:50%;right:auto;transform:translateX(-50%);top:max(10px,env(safe-area-inset-top));width:max-content;max-width:calc(100vw - 24px);box-sizing:border-box;overflow-x:auto;-webkit-overflow-scrolling:touch}.light-mode-panel .light-mode-radio--vertical{flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center;gap:8px}.light-mode-panel .light-mode-radio__label{flex:0 0 auto;margin:0 4px 0 0;text-align:left;white-space:nowrap}.light-mode-panel .light-mode-radio--vertical .light-mode-btn{width:auto}}.color-selector-item{display:flex;align-items:center;padding:8px;border-radius:6px;background:#f5f5f5;border:2px solid #ddd;cursor:pointer;transition:all .2s ease;user-select:none}.color-selector-item:hover{background:#e8e8e8;border-color:#bbb}.color-selector-item.selected{background:#e3f2fd;border:2px solid #2196f3}.color-selector-item.selected:hover{background:#bbdefb;border-color:#1976d2}.color-square{width:34px;height:30px;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:transform .2s ease;clip-path:polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%)}.disk .color-square{clip-path:none;border-radius:50%;height:34px}.color-selector-item:hover .color-square{transform:scale(1.05)}.color-selector-item.selected .color-square{transform:scale(1.1);box-shadow:0 3px 6px rgba(0,0,0,.3)}.color-selector-text{font-size:14px;font-weight:400;color:#666}.color-selector-text.selected{font-weight:600;color:#1976d2}#toggle3d-objects-container{display:none;margin-bottom:30px}#toggle3d-objects-container.vis{display:block}.toggle3d-objects-container__title{margin:0;padding-bottom:10px;font-size:18px;font-weight:bold;color:#333}.toggle3d-objects-container__item{display:flex;align-items:center;margin-bottom:15px;padding:10px;border-radius:8px;background:#f8f9fa;border:2px solid #e9ecef;transition:all .2s ease;cursor:pointer}.toggle3d-objects-container__item:hover{background:#e9ecef;border-color:#6c757d;transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.1)}.toggle3d-objects-container__icon{width:40px;height:40px;margin-right:12px;display:flex;align-items:center;justify-content:center}.toggle3d-objects-container__icon img{width:100%;height:100%;object-fit:contain;border-radius:4px}.toggle3d-objects-container__content{flex:1;display:flex;align-items:center;justify-content:space-between}.toggle3d-objects-container__title-text{font-size:16px;font-weight:500;color:#333;margin-right:10px}.toggle3d-objects-checkbox{display:none}.toggle3d-objects-checkbox-label{position:relative;width:20px;height:20px;background-color:#f0f0f0;border-radius:4px;border:2px solid #ddd;cursor:pointer;transition:all .2s ease;display:inline-block}.toggle3d-objects-checkbox-label::before{content:"";position:absolute;left:6px;top:1px;width:7px;height:12px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg);opacity:0;transition:opacity .2s ease}#object3d-radio-group-container{display:none;margin-bottom:30px}#object3d-radio-group-container.vis{display:block}.object3d-radio-group-container__title{margin:0;padding-bottom:10px;font-size:18px;font-weight:bold;color:#333}.object3d-radio-group-container__item{display:flex;align-items:center;margin-bottom:5px;padding:5px;padding-right:12px;border-radius:8px;background:#f8f9fa;border:2px solid #e9ecef;transition:all .2s ease;cursor:pointer}.object3d-radio-group-container__item:hover{background:#e9ecef;border-color:#6c757d;transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.1)}.object3d-radio-group-container__icon{width:40px;height:40px;margin-right:12px;display:flex;align-items:center;justify-content:center}.object3d-radio-group-container__icon img{width:100%;height:100%;object-fit:contain;border-radius:4px}.object3d-radio-group-container__content{flex:1;display:flex;align-items:center;justify-content:space-between}.object3d-radio-group-container__title-text{font-size:16px;font-weight:500;color:#333;margin-right:10px}.object3d-radio-group-radio{display:none}.object3d-radio-group-radio-label{position:relative;width:20px;height:20px;background-color:#f0f0f0;border-radius:50%;border:2px solid #ddd;cursor:pointer;transition:all .2s ease;display:inline-block}.object3d-radio-group-radio-label::before{content:"";position:absolute;left:4px;top:4px;width:12px;height:12px;background-color:#007bff;border-radius:50%;opacity:0;transition:opacity .2s ease}.object3d-radio-group-radio:checked+.object3d-radio-group-radio-label{background-color:#007bff;border-color:#007bff}.object3d-radio-group-radio:checked+.object3d-radio-group-radio-label::before{opacity:1}.object3d-radio-group-radio-label:hover{border-color:#007bff;background-color:#e3f2fd}.toggle3d-objects-checkbox:checked+.toggle3d-objects-checkbox-label{background-color:#67c23a;border-color:#67c23a}.toggle3d-objects-checkbox:checked+.toggle3d-objects-checkbox-label::before{opacity:1}.toggle3d-objects-checkbox-label:hover{border-color:#67c23a;transform:scale(1.05)}
