.qp{background:var(--dark);color:#fff;min-height:100svh;position:relative;overflow-x:hidden}.qp-bg{z-index:0;pointer-events:none;background:radial-gradient(80% 60% at 20% 30%,#16b6d60f,#0000 60%),radial-gradient(70% 50% at 80% 70%,#e0359e0a,#0000 60%),radial-gradient(50% 40%,#f4c02008,#0000 50%);position:fixed;inset:0}.qp-grid-bg{z-index:0;pointer-events:none;opacity:.3;background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:60px 60px;position:fixed;inset:0}.qp-topbar{z-index:100;-webkit-backdrop-filter:blur(20px)saturate(160%);border-bottom:1px solid var(--dark-line-soft);background:#0a0b0db3;justify-content:space-between;align-items:center;padding:16px 32px;display:flex;position:fixed;top:0;left:0;right:0}.qp-brand{align-items:center;gap:12px;text-decoration:none;display:flex}.qp-brand-mark{flex:none;width:24px;height:24px}.qp-brand-name{font-family:var(--sans);letter-spacing:.16em;color:#fff;font-size:.82rem;font-weight:600}.qp-topbar-right{align-items:center;gap:20px;display:flex}.qp-topbar-label{font-family:var(--mono);letter-spacing:.18em;color:var(--muted-d-2);text-transform:uppercase;font-size:.64rem}.qp-new-btn{font-family:var(--sans);color:#fff;border:1px solid var(--dark-line);cursor:pointer;transition:all .3s var(--ease);background:#ffffff0f;border-radius:8px;align-items:center;gap:7px;padding:8px 14px;font-size:.82rem;font-weight:500;display:inline-flex}.qp-new-btn svg{width:14px;height:14px}.qp-new-btn:hover{background:#ffffff1a;border-color:#fff3}.qp-upload-wrap{z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:48px;min-height:100svh;padding:120px 32px 60px;display:flex;position:relative}.qp-upload-content{text-align:center;max-width:640px}.qp-upload-eyebrow{font-family:var(--mono);letter-spacing:.22em;color:var(--accent);justify-content:center;align-items:center;gap:11px;margin-bottom:20px;font-size:.68rem;display:flex}.qp-upload-eyebrow:before,.qp-upload-eyebrow:after{content:"";background:var(--accent);width:26px;height:1px}.qp-upload-title{font-family:var(--serif);letter-spacing:-.01em;color:#fff;margin:0;font-size:clamp(2.2rem,5vw,3.6rem);font-weight:400;line-height:1.06}.qp-upload-title em{color:var(--accent);font-style:italic}.qp-upload-sub{color:var(--muted-d);max-width:48ch;margin:20px auto 0;font-size:clamp(.95rem,1.4vw,1.12rem);line-height:1.55}.qp-upload-alt{color:var(--muted-d-2);font-size:.85rem}.qp-upload-alt a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklab, var(--accent), transparent 60%);text-decoration-color:color-mix(in oklab, var(--accent), transparent 60%)}.qp-upload-alt a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.qp-dropzone{text-align:center;cursor:pointer;width:100%;max-width:580px;transition:all .4s var(--ease);background:#ffffff05;border:1.5px dashed #ffffff2e;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:56px 40px;display:flex;position:relative;overflow:hidden}.qp-dropzone:before{content:"";background:linear-gradient(135deg, color-mix(in oklab, var(--c), transparent 92%), color-mix(in oklab, var(--m), transparent 95%), color-mix(in oklab, var(--y), transparent 95%));opacity:0;border-radius:20px;transition:opacity .4s;position:absolute;inset:0}.qp-dropzone:hover{background:#ffffff08;border-color:#ffffff52;transform:translateY(-2px)}.qp-dropzone:hover:before{opacity:1}.qp-dropzone.drag{border-color:var(--accent);background:color-mix(in oklab, var(--accent), transparent 92%);transform:scale(1.01)}.qp-dropzone.drag:before{opacity:1}.qp-dz-icon-wrap{z-index:1;position:relative}.qp-dz-icon{width:64px;height:64px;color:var(--accent);transition:transform .4s var(--ease)}.qp-dropzone:hover .qp-dz-icon{transform:translateY(-4px)}.qp-dz-pulse{border:1px solid color-mix(in oklab, var(--accent), transparent 60%);border-radius:50%;animation:2.5s ease-in-out infinite dzPulse;position:absolute;inset:-8px}@keyframes dzPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:0;transform:scale(1.2)}}.qp-dz-title{z-index:1;color:#fff;font-size:1.1rem;font-weight:500;position:relative}.qp-dz-sub{z-index:1;font-family:var(--mono);color:var(--muted-d-2);letter-spacing:.04em;font-size:.72rem;position:relative}.qp-dz-formats{z-index:1;gap:8px;display:flex;position:relative}.qp-fmt-chip{font-family:var(--mono);letter-spacing:.08em;border:1px solid var(--dark-line);color:var(--muted-d);border-radius:7px;padding:5px 12px;font-size:.66rem}.qp-dz-nda{z-index:1;color:var(--muted-d);align-items:center;gap:8px;margin-top:6px;font-size:.76rem;display:flex;position:relative}.qp-dz-nda svg{width:15px;height:15px;color:var(--accent);flex:none}.qp-parsing-wrap{z-index:1;justify-content:center;align-items:center;min-height:100svh;padding:120px 32px 60px;display:flex;position:relative}.qp-parsing-card{border:1px solid var(--dark-line);-webkit-backdrop-filter:blur(12px);background:#ffffff08;border-radius:20px;flex-direction:column;align-items:center;gap:24px;padding:56px 64px;display:flex}.qp-parsing-cube{width:54px;height:54px;animation:1.8s ease-in-out infinite cubeSpin}@keyframes cubeSpin{0%,to{transform:rotate(0)scale(1)}25%{transform:rotate(5deg)scale(1.05)}50%{transform:rotate(0)scale(1)}75%{transform:rotate(-5deg)scale(1.05)}}.qp-parsing-file{font-family:var(--mono);color:#fff;font-size:.88rem}.qp-parsing-bar{background:#ffffff1a;border-radius:3px;width:240px;height:3px;overflow:hidden}.qp-parsing-fill{background:linear-gradient(90deg, var(--c), var(--m));height:100%;transition:width .4s var(--ease);border-radius:3px}.qp-parsing-status{font-family:var(--mono);color:var(--muted-d);letter-spacing:.04em;font-size:.72rem}.qp-error-wrap{z-index:1;justify-content:center;align-items:center;min-height:100svh;padding:120px 32px 60px;display:flex;position:relative}.qp-error-card{text-align:center;background:#ffffff08;border:1px solid #ff505033;border-radius:20px;flex-direction:column;align-items:center;gap:16px;max-width:480px;padding:52px 56px;display:flex}.qp-error-icon{color:#ff6b6b;width:44px;height:44px}.qp-error-title{font-family:var(--serif);color:#fff;font-size:1.6rem;font-weight:400}.qp-error-msg{color:var(--muted-d);margin:0;font-size:.92rem;line-height:1.55}.qp-error-retry{font-family:var(--sans);color:#04242b;background:var(--accent);cursor:pointer;transition:all .3s var(--ease);border:none;border-radius:10px;align-items:center;gap:8px;margin-top:8px;padding:12px 24px;font-size:.9rem;font-weight:500;display:inline-flex}.qp-error-retry:hover{box-shadow:0 8px 24px -8px color-mix(in oklab, var(--accent), transparent 40%);transform:translateY(-2px)}.qp-main{z-index:1;grid-template-columns:1.15fr 420px;min-height:100svh;padding-top:64px;display:grid;position:relative}.qp-viewer-panel{justify-content:stretch;align-items:stretch;display:flex;position:relative}.qp-config-panel{border-left:1px solid var(--dark-line-soft);-webkit-backdrop-filter:blur(24px);background:#0f1115d9;padding:32px 28px 40px;overflow-y:auto}.mv-container{width:100%;height:100%;min-height:calc(100svh - 64px);position:relative}.mv-container canvas{display:block}.mv-hud{gap:12px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.mv-hud-item{font-family:var(--mono);letter-spacing:.16em;color:var(--muted-d-2);-webkit-backdrop-filter:blur(8px);border:1px solid var(--dark-line-soft);background:#0006;border-radius:6px;padding:6px 14px;font-size:.6rem}.mv-loading{color:var(--muted-d);font-family:var(--mono);flex-direction:column;align-items:center;gap:14px;font-size:.76rem;display:flex}.mv-cube-spin{width:46px;height:46px;animation:1.8s ease-in-out infinite cubeSpin}.qc{flex-direction:column;gap:24px;display:flex}.qc-file-info{border:1px solid var(--dark-line-soft);background:#ffffff08;border-radius:12px;padding:16px 18px}.qc-file-row{align-items:center;gap:14px;display:flex}.qc-file-icon{width:28px;height:28px;color:var(--accent);flex:none}.qc-file-name{color:#fff;word-break:break-all;font-size:.92rem;font-weight:500}.qc-file-meta{font-family:var(--mono);color:var(--muted-d-2);letter-spacing:.03em;margin-top:2px;font-size:.66rem}.qc-specs{background:var(--dark-line-soft);border:1px solid var(--dark-line-soft);border-radius:12px;grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.qc-spec{background:var(--dark-3);padding:14px 16px}.qc-spec-label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted-d-2);margin-bottom:4px;font-size:.6rem}.qc-spec-value{font-family:var(--mono);color:#fff;font-variant-numeric:tabular-nums;font-size:.92rem;font-weight:500}.qc-section{flex-direction:column;gap:10px;display:flex}.qc-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted-d);font-size:.66rem}.qc-colour-name{color:#fff;text-transform:none;letter-spacing:0;font-family:var(--sans)}.qc-tech-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.qc-tech-btn{border:1px solid var(--dark-line);cursor:pointer;transition:all .3s var(--ease);color:#fff;background:#ffffff05;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;display:flex}.qc-tech-btn:hover{background:#ffffff0a;border-color:#fff3}.qc-tech-btn.active{border-color:var(--accent);background:color-mix(in oklab, var(--accent), transparent 88%);box-shadow:0 0 0 1px var(--accent)}.qc-tech-name{font-family:var(--mono);letter-spacing:.08em;font-size:.82rem;font-weight:600}.qc-tech-sub{color:var(--muted-d-2);text-align:center;font-size:.62rem;line-height:1.3}.qc-select{appearance:none;width:100%;font-family:var(--sans);color:#fff;border:1px solid var(--dark-line);cursor:pointer;background:#ffffff0a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='rgba(255,255,255,0.4)' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M3 4.5l3 3 3-3'/%3E%3C/svg%3E") right 14px center no-repeat;border-radius:10px;padding:12px 36px 12px 16px;font-size:.88rem;transition:border-color .3s,background .3s}.qc-select:hover{border-color:#fff3}.qc-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in oklab, var(--accent), transparent 80%);outline:none}.qc-select option{background:var(--dark-2);color:#fff}.qc-colour-grid{flex-wrap:wrap;gap:8px;display:flex}.qc-colour-swatch{background:var(--swatch);cursor:pointer;width:36px;height:36px;transition:all .25s var(--ease);border:2px solid #0000;border-radius:10px;position:relative;box-shadow:inset 0 1px 3px #0000004d}.qc-colour-swatch:hover{border-color:#ffffff4d;transform:scale(1.1)}.qc-colour-swatch.active{box-shadow:0 0 0 2px var(--dark), 0 0 0 4px #fff, inset 0 1px 3px #0000004d;border-color:#fff;transform:scale(1.12)}.qc-qty-row{border:1px solid var(--dark-line);background:#ffffff05;border-radius:10px;align-items:center;gap:0;display:flex;overflow:hidden}.qc-qty-btn{color:#fff;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.2rem;transition:background .2s;display:flex}.qc-qty-btn:hover{background:#ffffff0f}.qc-qty-btn:disabled{opacity:.3;cursor:not-allowed}.qc-qty-input{text-align:center;border:none;border-left:1px solid var(--dark-line-soft);border-right:1px solid var(--dark-line-soft);color:#fff;font-family:var(--mono);font-variant-numeric:tabular-nums;background:0 0;flex:1;padding:12px 8px;font-size:.95rem}.qc-qty-input:focus{outline:none}.qc-qty-input::-webkit-outer-spin-button{-webkit-appearance:none}.qc-qty-input::-webkit-inner-spin-button{-webkit-appearance:none}.qc-qty-input[type=number]{-moz-appearance:textfield}.qc-price-card{border:1px solid var(--dark-line);background:linear-gradient(135deg,#16b6d60f,#e0359e0a,#f4c02008);border-radius:14px;flex-direction:column;gap:14px;padding:22px 20px;display:flex}.qc-price-minimum{color:var(--y);font-size:.74rem;font-family:var(--mono);letter-spacing:.02em;align-items:center;gap:8px;display:flex}.qc-price-minimum svg{width:14px;height:14px;color:var(--y);flex:none}.qc-price-row{justify-content:space-between;align-items:baseline;display:flex}.qc-price-label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-d);font-size:.72rem}.qc-price-value{font-family:var(--serif);color:#fff;letter-spacing:-.01em;font-size:1.8rem;font-weight:400}.qc-price-sub .qc-price-value{color:var(--accent);font-size:1.3rem}.qc-discount-badge{font-family:var(--mono);color:#4cd964;letter-spacing:.03em;background:#4cd96414;border:1px solid #4cd96426;border-radius:7px;align-items:center;gap:7px;width:fit-content;padding:6px 12px;font-size:.68rem;display:inline-flex}.qc-discount-badge svg{color:#4cd964;width:13px;height:13px}.qc-discount-hint{font-family:var(--mono);color:var(--muted-d-2);letter-spacing:.03em;font-size:.68rem}.qc-lead-row{color:var(--muted-d);border-top:1px solid var(--dark-line-soft);align-items:center;gap:9px;padding-top:4px;font-size:.82rem;display:flex}.qc-lead-row svg{width:15px;height:15px;color:var(--accent);flex:none}.qc-lead-row strong{color:#fff}.qc-price-note{color:var(--muted-d-2);align-items:center;gap:7px;font-size:.7rem;display:flex}.qc-price-note svg{width:12px;height:12px;color:var(--muted-d-2);flex:none}.qc-proceed{width:100%;font-family:var(--sans);color:#04242b;background:var(--accent);cursor:pointer;transition:all .3s var(--ease);border:none;border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:16px 24px;font-size:1rem;font-weight:600;display:flex;box-shadow:inset 0 2px #ffffff26}.qc-proceed:hover{box-shadow:0 2px 0 #ffffff26 inset, 0 12px 32px -8px color-mix(in oklab, var(--accent), transparent 40%);transform:translateY(-2px)}.qc-proceed-arr{transition:transform .4s var(--ease)}.qc-proceed:hover .qc-proceed-arr{transform:translate(4px)}@media (max-width:960px){.qp-main{grid-template-rows:50svh auto;grid-template-columns:1fr}.qp-config-panel{border-left:none;border-top:1px solid var(--dark-line-soft)}.mv-container{min-height:auto}}@media (max-width:600px){.qp-topbar{padding:14px 20px}.qp-topbar-label{display:none}.qp-upload-wrap{gap:36px;padding:100px 20px 40px}.qp-dropzone{padding:40px 24px}.qp-dz-icon{width:48px;height:48px}.qc-tech-grid{grid-template-columns:1fr}.qp-main{grid-template-rows:40svh auto}}
