.three-d-scene-container{width:100%;height:100vh;position:relative;overflow:hidden}.canvas-container{width:100%;height:100vh;position:relative}.control-panel{color:#fff;backdrop-filter:blur(5px);z-index:1000;background:#1e1e1e66;border-radius:10px;width:280px;padding:15px;font-family:Helvetica Neue,Arial,sans-serif;transition:all .3s;position:fixed;bottom:20px;right:20px;box-shadow:0 5px 15px #0000004d}.control-panel:hover{background:#2828288c}.control-section{border-bottom:1px solid #ffffff1a;margin-bottom:15px;padding-bottom:10px}.control-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.control-section h3{color:#ccc;text-transform:uppercase;letter-spacing:1px;margin:0 0 10px;font-size:14px;font-weight:500}.control-section button{color:#fff;cursor:pointer;background:#3c3c3ccc;border:none;border-radius:5px;margin-bottom:5px;margin-right:5px;padding:8px 12px;font-size:12px;transition:all .2s}.control-section button:hover{background:#505050e6;transform:translateY(-2px)}.control-section button.active{background:linear-gradient(135deg,#6e8efb,#a777e3);box-shadow:0 2px 8px #6e8efb66}.effect-buttons,.normal-map-buttons{flex-wrap:wrap;display:flex}.angle-controls{align-items:center;margin-top:10px;display:flex}.angle-controls button{justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;font-weight:700;display:flex}.angle-controls span{text-align:center;min-width:60px;margin:0 10px;font-size:14px}.gradient-controls{gap:10px;margin-top:5px;display:flex}.gradient-controls input[type=color]{cursor:pointer;border:none;border-radius:5px;width:100%;height:30px}.texture-selectors-container{z-index:1000;position:fixed;bottom:20px;left:20px}.texture-selectors{flex-direction:column;gap:10px;display:flex}.texture-selector{color:#fff;backdrop-filter:blur(5px);z-index:1000;scrollbar-width:thin;scrollbar-color:#ffffff4d #0003;background:#1e1e1e66;border-radius:10px;width:280px;max-height:300px;padding:15px;transition:all .3s;position:relative;overflow-y:auto;box-shadow:0 5px 15px #0000004d}.texture-selector::-webkit-scrollbar{width:8px}.texture-selector::-webkit-scrollbar-track{background:#0003;border-radius:4px}.texture-selector::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}.texture-selector::-webkit-scrollbar-thumb:hover{background:#ffffff80}.texture-selector__header{z-index:2;background:#1e1e1e33;justify-content:space-between;align-items:center;margin-bottom:10px;padding:5px 0;display:flex;position:sticky;top:0}.texture-selector__header h3{color:#ccc;text-transform:uppercase;letter-spacing:1px;margin:0;font-size:14px;font-weight:500}.texture-selector__multi-button{color:#fff;cursor:pointer;background-color:#3498db;border:none;border-radius:4px;padding:4px 8px;font-size:12px;transition:background-color .3s}.texture-selector__multi-button:hover{background-color:#2980b9}.texture-selector__multi-button.active{background-color:#e74c3c}.texture-selector__multi-button.active:hover{background-color:#c0392b}.texture-button.multi-selected{border:2px solid #e74c3c;position:relative}.texture-button .selection-order{color:#fff;background-color:#e74c3c;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-8px;right:-8px}.multi-selection-info{background-color:#0003;border-radius:4px;justify-content:space-between;align-items:center;margin-top:10px;padding:5px;display:flex}.multi-selection-info p{margin:0;font-size:12px}.clear-selection-button{color:#fff;cursor:pointer;background-color:#7f8c8d;border:none;border-radius:3px;padding:3px 6px;font-size:10px}.clear-selection-button:hover{background-color:#95a5a6}.texture-grid{grid-template-columns:repeat(4,1fr);gap:8px;max-height:220px;margin-top:10px;display:grid;overflow-y:auto}.texture-button{cursor:pointer;aspect-ratio:1;background:#32323280;border:2px solid #0000;border-radius:5px;justify-content:center;align-items:center;padding:2px;transition:all .2s;display:flex}.texture-button:hover{background:#464646b3;transform:scale(1.05)}.texture-button.selected{box-shadow:0 0 8px #ffffff80}.texture-button img{-o-object-fit:cover;object-fit:cover;border-radius:3px;width:100%;height:100%}.decoration-selector{color:#fff;backdrop-filter:blur(10px);z-index:1000;background:#1e1e1ecc;border-radius:10px;width:280px;padding:15px;position:fixed;top:80px;right:20px;box-shadow:0 5px 15px #0000004d}.decoration-selector h3{color:#ccc;text-transform:uppercase;letter-spacing:1px;margin:0 0 10px;font-size:14px;font-weight:500}.decoration-buttons{flex-wrap:wrap;gap:8px;display:flex}.decoration-buttons button{cursor:pointer;border:2px solid #0000;border-radius:50%;width:40px;height:40px;transition:all .2s}.decoration-buttons button:hover{transform:scale(1.1)}.decoration-buttons button.active{border:2px solid #fff;box-shadow:0 0 10px #ffffff80}.json-download-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#4a90e2,#6773e3);border:none;border-radius:5px;padding:10px 15px;font-size:14px;transition:all .2s;box-shadow:0 3px 10px #0003}.json-download-button:hover{background:linear-gradient(135deg,#5a9ff2,#7783f3);transform:translateY(-2px)}.grades{color:#fff;z-index:1000;background-color:#f5f5f533;border-radius:10px;margin:20px;padding:20px;transition:max-width .3s;position:fixed;top:0;left:0;box-shadow:0 0 10px #0000001a}.grades-open{max-width:300px}.grades-closed{max-width:150px}.grades-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.grades h2{color:#fff;margin:0 0 10px;font-size:16px;font-weight:500}.grades ul{margin:0;padding:0;list-style:none}.grades li{color:#ccc;margin-bottom:5px;font-size:14px}.grades button{color:#fff;cursor:pointer;background:0 0;border:none;font-size:20px;transition:transform .3s}.loading-container{z-index:2000;background:#000000b3;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.loading-container p{color:#fff;background:#00000080;border-radius:10px;padding:20px 40px;font-size:24px;box-shadow:0 5px 15px #0000004d}.camera-button{cursor:pointer;z-index:1000;background:#3c3c3ccc;border:none;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;transition:all .2s;display:flex;position:fixed;bottom:20px;left:20px;box-shadow:0 3px 10px #0003}.camera-button:hover{background:#505050e6;transform:scale(1.1)}.camera-button img{width:30px;height:30px}@media (width<=768px){.control-panel,.texture-selector{width:220px}.texture-grid{grid-template-columns:repeat(3,1fr)}.decoration-selector{width:220px}}@media (width<=480px){.control-panel,.texture-selector{width:180px;padding:10px}.texture-grid{grid-template-columns:repeat(2,1fr)}.decoration-selector{width:180px;padding:10px}}.toggle-button{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:5px;padding:5px 10px;transition:background-color .3s}.toggle-button:hover{background-color:#ffffff1a}@keyframes exc-model-loading-spin{to{transform:rotate(360deg)}}
