.font-select{position:relative;margin-top:.5rem;width:100%}.font-select-display{padding:.5rem 1rem;font-size:1rem;border-radius:4px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 12'%3E%3Cpath d='M2 2l8 8 8-8' stroke='%23666' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:.65rem;border:1px solid #ccc;cursor:pointer}.font-options{position:absolute;top:calc(100% + 2px);left:0;right:0;max-height:200px;overflow-y:auto;border:1px solid #ccc;border-radius:4px;list-style:none;padding:0;margin:0;z-index:10}:root[data-theme=dark] .font-options{background:#242424;color:hsla(0,0%,100%,.87)}:root[data-theme=light] .font-options{background:#fff;color:#213547}.font-options li{padding:.5rem 1rem;cursor:pointer}:root[data-theme=dark] .font-options li:hover{background:#444}:root[data-theme=light] .font-options li:hover{background:#eee}.position-buttons{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);grid-gap:.2rem;gap:.2rem}.position-buttons button{width:50px;height:50px;padding:0;font-size:1.2rem;margin:6px}.arrow-label,.position-buttons button{display:flex;align-items:center;justify-content:center}.arrow-label{height:100%;text-align:center;font-size:1rem;font-weight:700}.product-layout-container{background:var(--background-color)}.product-main-content{display:flex;flex-direction:row;height:calc(100vh - 70px);overflow:hidden}.product-inputs-panel{width:400px;padding:2rem;overflow-y:auto;background:var(--panel-background)}.product-viewer-panel{flex:1 1;display:flex;flex-direction:column;background:var(--viewer-background)}@media (max-width:768px){.product-main-content{flex-direction:column;height:auto;overflow:visible}.product-inputs-panel{width:100%;padding:1rem;box-sizing:border-box;order:2;overflow-y:visible}.product-viewer-panel{order:1;height:50vh;min-height:50vh;position:-webkit-sticky;position:sticky;top:70px;z-index:10;background:var(--viewer-background);padding:0;margin:0}}:root{--background-color:#fff;--panel-background:#f8f9fa;--viewer-background:#fff;--border-color:#e0e0e0}[data-theme=dark]{--background-color:#1a1a1a;--panel-background:#2a2a2a;--viewer-background:#1a1a1a;--border-color:#404040}.input-group{display:flex;flex-direction:column}.input-with-counter{position:relative;display:flex;align-items:center}.input-with-counter .text-input{padding-right:50px;width:100%;box-sizing:border-box}.char-counter{position:absolute;right:10px;font-size:.8rem;color:#888}.text-box{border:2px solid #ddd;border-radius:8px;box-shadow:0 4px 16px 0 rgba(0,0,0,.12),0 1.5px 4px 0 rgba(0,0,0,.1);padding:1rem;gap:.5rem;margin-bottom:1.5rem}.box-label{font-weight:700;margin-bottom:.5rem}.control-label{font-size:.8rem;margin-top:.5rem}.checkbox-label{display:flex;align-items:center;font-size:.8rem;margin-bottom:.5rem;gap:.5rem}.text-input{padding:.5rem 1rem;font-size:1rem}.continue-button{padding:1rem;font-size:1.2rem;font-weight:700;background-color:#ff5722;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease}.continue-button:hover{background-color:#e64a19}.continue-button:disabled{background-color:#a23a1a;cursor:not-allowed;opacity:.8}.back-button{align-self:center;padding:.5rem 1rem;font-size:1rem;border:1px solid;border-radius:4px;cursor:pointer;transition:all .3s ease}:root[data-theme=dark] .back-button{background-color:#2a2a2a;color:#fff;border-color:#555}:root[data-theme=light] .back-button{background-color:#e0e0e0;color:#111;border-color:#ccc}@keyframes shake{0%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-6px)}80%{transform:translateX(6px)}to{transform:translateX(0)}}.email-error-input{border:2px solid #851810!important;animation:shake .3s}.final-title{font-weight:700;font-size:1.2rem;margin-bottom:.25rem}.final-subtitle{font-size:.9rem;margin-bottom:.5rem}.privacy-note{font-size:.8rem;margin-bottom:.5rem;color:#555}.price-display{display:flex;justify-content:space-between;align-items:center;font-size:1.2rem;font-weight:700;padding:.5rem 0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:.5rem 0}.price-amount{color:#ff5722}.reassurance-notes{font-size:.8rem;margin:.5rem 0;color:#4caf50}.note{font-style:italic;color:#555;font-size:.9rem}.reassurance-notes .note{color:inherit;font-style:normal;font-size:1em}.note a{color:inherit;text-decoration:underline}.dimensions-display{font-size:.9rem;color:#555;margin-top:.75rem;padding:.5rem;border-radius:4px;text-align:center}.position-buttons-wrapper{display:flex;justify-content:center}.viewer-canvas-row{display:flex;flex-direction:row;align-items:center;gap:1rem;width:100%;height:100%}.canvas-wrapper{position:relative;display:inline-block;width:100%;height:100%}.camera-controls{position:absolute;bottom:1rem;right:1rem;z-index:1}.delivery-options{display:flex;flex-direction:column;gap:.5rem;margin:.5rem 0}.delivery-options label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;cursor:pointer}.delivery-options input[type=radio]{margin:0}@media (max-width:768px){.text-box{margin-bottom:1rem}.continue-button{font-size:1rem;padding:.75rem}.photo3d-customizer.has-canvas .product-viewer-panel,.text3d-customizer.has-canvas .product-viewer-panel{height:20vh;min-height:20vh;max-height:20vh;position:-webkit-sticky;position:sticky;top:70px;z-index:10;background:var(--viewer-background)}.text3d-customizer .product-viewer-panel{display:flex;flex-direction:column}.text3d-customizer .canvas-wrapper,.text3d-customizer .canvas-wrapper>div,.text3d-customizer .viewer-canvas-row{flex:1 1;display:flex;flex-direction:column}.text3d-customizer .canvas-wrapper>div{margin:0!important}.text3d-customizer .canvas-wrapper>div>div{flex:1 1}.photo3d-customizer .canvas-wrapper,.photo3d-customizer .viewer-canvas-row{flex:1 1;display:flex;flex-direction:column}}.product-layout-container.hide-left-panel .product-viewer-panel{width:100%;flex:none}.product-layout-container.hide-left-panel .product-main-content{grid-template-columns:1fr}[data-theme=dark] .text-input{background-color:#333;color:#fff;border:1px solid #555}[data-theme=dark] .text-box{background-color:var(--panel-background);border-color:#555}[data-theme=dark] .note{color:#ccc}[data-theme=dark] .reassurance-notes .note{color:#4caf50}[data-theme=dark] .dimensions-display,[data-theme=dark] .privacy-note{color:#ccc}[data-theme=dark] .price-display{border-top-color:#555;border-bottom-color:#555}.inputs-loading-container{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;position:relative}.inputs-cubes-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.inputs-loading-text{position:relative;z-index:2;color:#fff;font-size:1.2rem;font-family:Helvetica,Arial,sans-serif;text-shadow:0 0 10px hsla(0,0%,100%,.5);background-color:rgba(0,0,0,.6);padding:1rem 2rem;border-radius:8px;text-align:center}.spinner{border-radius:50%;border:4px solid hsla(0,0%,100%,.3);border-top-color:#fff;width:40px;height:40px;animation:spin 1s linear infinite;margin-bottom:1rem;position:relative;z-index:2}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.zoom-controls{display:flex;flex-direction:row;gap:.5rem}.zoom-controls button{background-color:hsla(0,0%,100%,.8);border:1px solid #ccc;border-radius:4px;padding:.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.zoom-controls button:hover{background-color:#fff}@media (max-width:768px){.zoom-controls{display:none}}.crop-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000;touch-action:none;overscroll-behavior:contain}.crop-modal{background:#fff;border-radius:12px;width:90%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.3)}.crop-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 30px;border-bottom:1px solid #e0e0e0;flex-shrink:0}.crop-modal-header h2{margin:0;font-size:1.5rem;color:#333}.close-button{background:none;border:none;font-size:2rem;cursor:pointer;color:#333;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-button:hover{color:#007bff}.crop-modal-content{padding:20px 30px;flex:1 1;overflow-y:auto;display:flex;flex-direction:column}.orientation-selector{display:flex;gap:20px;margin-bottom:15px;justify-content:center;flex-shrink:0}.orientation-selector label{display:flex;align-items:center;gap:8px;font-weight:500;cursor:pointer;padding:8px 16px;border:2px solid #e0e0e0;border-radius:8px;transition:all .2s}.orientation-selector label:hover{border-color:#007bff}.orientation-selector input[type=radio]:checked+label,.orientation-selector label:has(input[type=radio]:checked){border-color:#007bff;background-color:#f0f8ff}.crop-container{display:flex;justify-content:center;margin:15px 0;flex-shrink:0}.crop-box{position:relative;border:2px solid #007bff;border-radius:8px;overflow:hidden;background:#f5f5f5;box-shadow:0 4px 12px rgba(0,0,0,.15);touch-action:none}.crop-image{display:block;position:absolute;top:50%;left:50%;transform-origin:center center;user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:none;transition:transform .1s ease-out}.crop-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;border:2px dashed hsla(0,0%,100%,.8);border-radius:4px}.crop-controls{margin:15px 0;flex-shrink:0}.scale-control{display:flex;align-items:center;gap:15px;justify-content:center}.scale-control label{font-weight:500;color:#333}.scale-control input[type=range]{width:200px;height:6px;background:#e0e0e0;border-radius:3px;outline:none;-webkit-appearance:none}.scale-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;background:#007bff;border-radius:50%;cursor:pointer}.scale-control input[type=range]::-moz-range-thumb{width:20px;height:20px;background:#007bff;border-radius:50%;cursor:pointer;border:none}.scale-control span{min-width:40px;font-weight:500;color:#666}.crop-modal-footer{display:flex;justify-content:flex-end;gap:15px;padding:20px 30px;border-top:1px solid #e0e0e0;flex-shrink:0}.cancel-button{padding:12px 24px;border:2px solid #e0e0e0;background:#fff;color:#333;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.cancel-button:hover{border-color:#007bff;color:#007bff;background:#f8f9fa}.crop-button{padding:12px 24px;border:none;background:#007bff!important;color:#fff!important;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.crop-button:hover{background:#0056b3!important}.crop-modal.dark-theme{background:#1a202c;color:#e2e8f0}.crop-modal.dark-theme .crop-modal-header{border-bottom-color:#4a5568}.crop-modal.dark-theme .crop-modal-header h2{color:#e2e8f0}.crop-modal.dark-theme .close-button{color:#a0aec0}.crop-modal.dark-theme .close-button:hover{color:#007bff}.crop-modal.dark-theme .orientation-selector label{border-color:#4a5568;background:#2d3748;color:#e2e8f0}.crop-modal.dark-theme .orientation-selector label:hover{border-color:#007bff}.crop-modal.dark-theme .orientation-selector label:has(input[type=radio]:checked){background-color:rgba(0,123,255,.2);border-color:#007bff}.crop-modal.dark-theme .crop-box{background:#2d3748}.crop-modal.dark-theme .scale-control label{color:#e2e8f0}.crop-modal.dark-theme .scale-control span{color:#a0aec0}.crop-modal.dark-theme .crop-modal-footer{border-top-color:#4a5568}.crop-modal.dark-theme .cancel-button{background:#2d3748;border-color:#4a5568;color:#e2e8f0}.crop-modal.dark-theme .cancel-button:hover{border-color:#007bff;color:#007bff;background:#1a202c}.crop-modal.dark-theme .crop-button{background:#007bff!important;color:#fff!important}.crop-modal.dark-theme .crop-button:hover{background:#0056b3!important}:root{--col-gap:5%;--row-gap:5%;--cube-perspective:99999999px;--cube-face-border:1px solid #fff;--cube-face-bg:#060010}.default-animation{position:relative;width:100%;height:100%}.default-animation--scene{display:grid;width:100%;height:100%;grid-column-gap:var(--col-gap);column-gap:var(--col-gap);grid-row-gap:var(--row-gap);row-gap:var(--row-gap);perspective:var(--cube-perspective);grid-auto-rows:1fr}.cube{position:relative;width:100%;height:100%;aspect-ratio:1/1;transform-style:preserve-3d}.cube:before{content:"";position:absolute;top:-36px;right:-36px;bottom:-36px;left:-36px}.default-animation .cube-face{position:absolute;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--cube-face-bg);border:var(--cube-face-border);opacity:1}.default-animation .cube-face--top{transform:translateY(-50%) rotateX(90deg)}.default-animation .cube-face--bottom{transform:translateY(50%) rotateX(-90deg)}.default-animation .cube-face--left{transform:translateX(-50%) rotateY(-90deg)}.default-animation .cube-face--right{transform:translateX(50%) rotateY(90deg)}.default-animation .cube-face--back,.default-animation .cube-face--front{transform:rotateY(-90deg) translateX(50%) rotateY(90deg)}@media (max-width:768px){.default-animation{width:90%}}.info-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.7);display:flex;justify-content:center;align-items:center;z-index:1000}.info-modal-content{background-color:var(--background-color);padding:20px;border-radius:8px;max-width:500px;text-align:center;position:relative}.info-modal-content img{max-width:100%;border-radius:4px}.info-modal-content p{background-color:rgba(0,0,0,.1);padding:1rem;border-radius:4px;color:#fff}.power-user-note{margin-top:1rem;font-size:.8rem}.power-user-note a{color:#aaa;text-decoration:underline}.info-modal-close{position:absolute;top:10px;right:10px;background:none;border:none;font-size:24px;cursor:pointer;color:#fff}.collapsible-section{border:1px solid #ccc;border-radius:8px;margin-bottom:1rem}.collapsible-header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:1rem;border:none;cursor:pointer;font-size:1.2rem;font-weight:700;background-color:transparent;color:inherit}.collapsible-title{flex-grow:1;text-align:left}.collapsible-icon{font-size:1.5rem}.collapsible-content{padding:1rem}.carousel-container{overflow-x:auto;white-space:nowrap;padding-bottom:1rem}.carousel-track{display:inline-flex;gap:1rem}.carousel-item{flex:0 0 auto;width:150px;height:150px;overflow:hidden;border-radius:8px}.carousel-item img{width:100%;height:100%;object-fit:cover}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.8);display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{position:relative}.modal-content img{max-width:90vw;max-height:90vh;display:block}.modal-arrow{position:fixed;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff;font-size:4rem;cursor:pointer;z-index:1001;padding:1rem}.modal-arrow.prev{left:1rem}.modal-arrow.next{right:1rem}.modal-close{position:absolute;top:-2rem;right:-2rem;background:none;border:none;color:#fff;font-size:3rem;cursor:pointer}.photo3d-customizer .file-input-hidden{display:none}.photo3d-customizer .upload-button-wrapper{margin:12px 0;width:100%;box-sizing:border-box}.photo3d-customizer .upload-button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 20px;background:linear-gradient(135deg,#007bff,#0056b3);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px rgba(0,123,255,.3);text-decoration:none;gap:12px;box-sizing:border-box}.photo3d-customizer .upload-button:hover{background:linear-gradient(135deg,#0056b3,#004085);transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,123,255,.4)}.photo3d-customizer .upload-arrow{display:flex;align-items:center;justify-content:center;transition:transform .2s ease}.photo3d-customizer .upload-button:hover .upload-arrow{transform:translateY(-1px)}.photo3d-customizer .upload-success-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;color:#fff}.photo3d-customizer .upload-success-icon svg{width:30px;height:30px}.photo3d-customizer .image-thumbnail-preview{margin-top:12px;display:flex;justify-content:center}.photo3d-customizer .thumbnail-image{width:80px;height:80px;object-fit:cover;border-radius:8px;border:2px solid #e0e0e0;box-shadow:0 2px 8px rgba(0,0,0,.1)}.photo3d-customizer .continue-button.disabled{opacity:.5;cursor:not-allowed;background:#ccc}.photo3d-customizer .continue-button.disabled:hover{background:#ccc;transform:none}.photo3d-customizer .radio-group{display:flex;flex-direction:column;gap:8px;margin:12px 0}.photo3d-customizer .radio-option{display:flex;align-items:center;padding:12px 16px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid #dee2e6;border-radius:8px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px rgba(0,0,0,.1)}.photo3d-customizer .radio-option:hover{background:linear-gradient(135deg,#e9ecef,#dee2e6);transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,.15)}.photo3d-customizer .radio-option.selected{background:linear-gradient(135deg,#007bff,#0056b3);border-color:#0056b3;color:#fff;box-shadow:0 4px 12px rgba(0,123,255,.3)}.photo3d-customizer .radio-option.selected:hover{background:linear-gradient(135deg,#0056b3,#004085);box-shadow:0 6px 16px rgba(0,123,255,.4)}.photo3d-customizer .radio-option input[type=radio]{margin:0 12px 0 0;width:16px;height:16px;accent-color:#007bff}.photo3d-customizer .radio-option.selected input[type=radio]{accent-color:#fff}.photo3d-customizer .radio-text{font-size:14px;font-weight:500}.photo3d-customizer .gradient-group{display:flex;flex-direction:column;gap:8px;margin:12px 0}.photo3d-customizer .gradient-option{display:flex;align-items:center;padding:12px 16px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid #dee2e6;border-radius:8px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px rgba(0,0,0,.1)}.photo3d-customizer .gradient-option:hover{background:linear-gradient(135deg,#e9ecef,#dee2e6);transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,.15)}.photo3d-customizer .gradient-option.selected{background:linear-gradient(135deg,#007bff,#0056b3);border-color:#0056b3;color:#fff;box-shadow:0 4px 12px rgba(0,123,255,.3)}.photo3d-customizer .gradient-option.selected:hover{background:linear-gradient(135deg,#0056b3,#004085);box-shadow:0 6px 16px rgba(0,123,255,.4)}.photo3d-customizer .gradient-option input[type=radio]{margin:0 12px 0 0;width:16px;height:16px;accent-color:#007bff}.photo3d-customizer .gradient-option.selected input[type=radio]{accent-color:#fff}.photo3d-customizer .gradient-preview{display:flex;align-items:center;gap:12px}.photo3d-customizer .gradient-bar{width:80px;height:20px;border-radius:4px;border:1px solid rgba(0,0,0,.2);overflow:hidden;position:relative;background:transparent}.photo3d-customizer .grayscale-gradient{background:linear-gradient(90deg,#000,#404040 25%,grey 75%,#fff);background-size:100% 100%;background-repeat:no-repeat}.photo3d-customizer .warm-gradient{background:linear-gradient(90deg,#000,#9e0308 25%,#f60 75%,#ffea00);background-size:100% 100%;background-repeat:no-repeat}.photo3d-customizer .gradient-text{font-size:14px;font-weight:500}.photo3d-customizer .individual-colors{display:flex;flex-direction:column;gap:16px;margin:12px 0}.photo3d-customizer .layer-section{display:flex;flex-direction:column;gap:8px}.photo3d-customizer .layer-title{font-size:14px;font-weight:500;color:#333;margin-left:4px}.photo3d-customizer .layer-color-section{display:flex;align-items:center;justify-content:center;padding:12px 16px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid #dee2e6;border-radius:8px}.photo3d-customizer .individual-colors .color-buttons{gap:6px;margin-top:0}.photo3d-customizer .individual-colors .color-button{width:1.5rem;height:1.5rem}[data-theme=dark] .photo3d-customizer .file-input{background:#333;border-color:#555;color:#fff}[data-theme=dark] .photo3d-customizer .file-input:hover{background:#404040;border-color:#296ce2}[data-theme=dark] .photo3d-customizer .radio-option{background:linear-gradient(135deg,#2d3748,#1a202c);border-color:#4a5568;color:#e2e8f0}[data-theme=dark] .photo3d-customizer .radio-option:hover{background:linear-gradient(135deg,#1a202c,#171923)}[data-theme=dark] .photo3d-customizer .radio-option.selected{background:linear-gradient(135deg,#007bff,#0056b3);border-color:#0056b3;color:#fff}[data-theme=dark] .photo3d-customizer .gradient-option{background:linear-gradient(135deg,#2d3748,#1a202c);border-color:#4a5568;color:#e2e8f0}[data-theme=dark] .photo3d-customizer .gradient-option:hover{background:linear-gradient(135deg,#1a202c,#171923)}[data-theme=dark] .photo3d-customizer .gradient-option.selected{background:linear-gradient(135deg,#007bff,#0056b3);border-color:#0056b3;color:#fff}[data-theme=dark] .photo3d-customizer .layer-color-section{background:linear-gradient(135deg,#2d3748,#1a202c);border-color:#4a5568}[data-theme=dark] .photo3d-customizer .layer-title{color:#e2e8f0}