.modelColorSection{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;padding:var(--pad-block) var(--pad-inline);background:var(--white);height:100dvh}@media(orientation:portrait){.modelColorSection{height:auto;min-height:60vw;padding:4rem var(--pad-inline)}}.modelColorSection .colorImageSquare{position:relative;flex:1 1;min-height:0;width:auto;aspect-ratio:1/1;max-height:100%;max-width:min(50rem,80%)}@media(orientation:portrait){.modelColorSection .colorImageSquare{flex:none;width:100%;max-width:100%;max-height:none}}.modelColorSection .colorPickerRow{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}.modelColorSection .colorPickerRow .colorDot{width:2rem;height:2rem;border-radius:50%;border:2px solid rgba(0,0,0,.15);cursor:pointer;transition:all .3s ease}.modelColorSection .colorPickerRow .colorDot:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(0,0,0,.2)}.modelColorSection .colorPickerRow .colorDot:focus{outline:2px solid var(--blue);outline-offset:2px}.modelColorSection .colorPickerRow .colorDot.selected{outline:2px solid var(--black);outline-offset:4px}.modelColorSection .colorPickerRow .colorDot:active{transform:scale(.95)}.hotspot{position:relative;width:2rem;height:2rem;border-radius:50%;background:hsla(0,0%,100%,.9);border:2px solid var(--blue-light);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;z-index:10}.hotspot:hover{transform:scale(1.2);background:var(--blue-light)}.hotspot:hover .icon{color:var(--white)}.hotspot:hover .pulse{animation-play-state:paused}.hotspot .icon{font-size:1.5rem;font-weight:700;color:var(--blue-light);transition:color .3s ease;line-height:1}.hotspot .pulse{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;border-radius:50%;border:2px solid var(--brand,#2fb8cd);animation:pulse 2s ease-out infinite;pointer-events:none}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(2);opacity:0}}.modalOverlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:100;padding:2rem;animation:fadeIn .3s ease}.modalContent{position:relative;background:var(--white);border-radius:1.5rem;max-width:40rem;width:100%;max-height:90vh;overflow:auto;animation:slideUp .3s ease}.modalClose{position:absolute;top:1rem;right:1rem;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .3s ease;z-index:1}.modalClose svg{width:1.5rem;height:1.5rem;stroke:var(--black)}.modalClose:hover{transform:scale(1.05)}.modalImage{width:100%;height:20rem;overflow:hidden;border-radius:1rem 1rem 0 0}.modalImage img{width:100%;height:100%;object-fit:cover}.modalBody{padding:2rem}.modalBody h3{margin:0 0 1rem;font-size:1.5rem;color:var(--black)}.modalBody p{margin:0;line-height:1.6;color:var(--gray-dark,#333)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(2rem);opacity:0}to{transform:translateY(0);opacity:1}}.modelInsideViewer{position:relative;width:100vw;height:100vh;overflow:hidden;background:var(--black);padding:0}.modelInsideViewer canvas{display:block;cursor:-webkit-grab;cursor:grab}.modelInsideViewer canvas:active{cursor:-webkit-grabbing;cursor:grabbing}.modelInsideViewer__fallback,.modelInsideViewer__loading,.modelInsideViewer__placeholder{position:relative;display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:var(--beige,#fff)}.modelOutsideViewer{width:100vw;height:100vh;position:relative;overflow:hidden;padding:0}.modelOutsideViewer canvas{width:100%!important;height:100%!important;display:block}.colorsContainer{position:absolute;left:0;right:0;bottom:4rem;display:flex;gap:2rem;justify-content:center}.colorsContainer .colorSelector{width:2rem;height:2rem;border-radius:50%;border:2px solid hsla(0,0%,100%,.3);cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.colorsContainer .colorSelector:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(0,0,0,.3);border-color:hsla(0,0%,100%,.6)}.colorsContainer .colorSelector:focus{outline:2px solid #fff;outline-offset:2px}.colorsContainer .colorSelector:active{transform:scale(.95)}