:root{color:#f4f5f3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;--surface:#181b1a;--surface-raised:#202422;--surface-soft:#252a27;--border:#343a36;--border-strong:#4a534d;--muted:#a8b0aa;--accent:#c7f36b;--accent-ink:#172007;--danger:#ff9186;--warning:#ffd47a;--radius-lg:1.35rem;--radius-md:.85rem;background:#0f1111;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*,:before,:after{box-sizing:border-box}body{background:radial-gradient(circle at 16% 0,#c7f36b14,#0000 30rem),#0f1111;min-width:20rem;min-height:100vh;margin:0}button,input,select{font:inherit}button,select,input[type=file]{min-height:2.75rem}button,select,input{accent-color:var(--accent)}button:focus-visible,select:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #c7f36bbf}label:has(input:focus-visible){outline-offset:3px;outline:3px solid #c7f36bbf}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.48}.app-shell{width:min(100%,76rem);margin:0 auto;padding:1.4rem clamp(1rem,3vw,2rem) 3rem}.hero{justify-content:space-between;align-items:end;gap:2rem;padding:1.2rem 0 1.5rem;display:flex}.eyebrow,.section-kicker{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .35rem;font-size:.7rem;font-weight:750}h1,h2,p{margin-top:0}h1{letter-spacing:-.055em;margin-bottom:.35rem;font-size:clamp(2.25rem,6vw,4.25rem);font-weight:620;line-height:.95}h2{margin-bottom:0;font-size:1.15rem;font-weight:650}.hero-copy{max-width:34rem;color:var(--muted);margin-bottom:0;font-size:clamp(.95rem,2vw,1.08rem)}.privacy-note{color:#c5cbc7;align-items:flex-start;gap:.55rem;max-width:27rem;margin-bottom:0;font-size:.8rem;line-height:1.55;display:flex}.privacy-note span{color:var(--accent);font-size:.55rem;line-height:2.25}.workspace{grid-template-columns:minmax(0,1.16fr) minmax(20rem,.84fr);align-items:start;gap:clamp(1rem,2.5vw,1.8rem);display:grid}.preview-card,.control-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:#181b1aeb;box-shadow:0 1.5rem 4rem #0000002e}.preview-card{padding:clamp(.75rem,2vw,1.15rem)}.control-panel{overflow:hidden}.section-heading{justify-content:space-between;align-items:center;gap:1rem;min-height:3.5rem;padding:.15rem .25rem .9rem;display:flex}.section-kicker{color:var(--muted);margin-bottom:.2rem;font-size:.62rem}.local-badge{color:var(--accent);background:#c7f36b12;border:1px solid #c7f36b52;border-radius:999px;padding:.32rem .62rem;font-size:.68rem;font-weight:700}#camera-stage{aspect-ratio:3/4;border-radius:calc(var(--radius-lg) - .4rem);isolation:isolate;background:linear-gradient(#ffffff05,#fff0),#232725;border:1px solid #3e4541;width:100%;max-width:36rem;margin:0 auto;position:relative;overflow:hidden}#camera-stage:before{z-index:0;content:"";border:1px dashed #ffffff21;border-radius:45% 45% 30% 30%;position:absolute;inset:12% 18%}#camera-stage>video,#camera-stage>canvas{width:100%;height:100%;position:absolute;inset:0}#camera-video{z-index:1;object-fit:cover;transform-origin:50%;background:0 0}#camera-video.is-mirrored{transform:scaleX(-1)}#garment-canvas{z-index:2}#occlusion-canvas{z-index:3}#debug-canvas{z-index:4}#garment-canvas,#occlusion-canvas,#debug-canvas{pointer-events:none}.status-pill{z-index:5;color:#f2f4f2;text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0c0e0dc7;border:1px solid #ffffff21;border-radius:999px;width:max-content;max-width:calc(100% - 1.7rem);margin:0;padding:.48rem .78rem;font-size:clamp(.7rem,2vw,.78rem);line-height:1.35;position:absolute;top:.85rem;left:50%;transform:translate(-50%);box-shadow:0 .5rem 1.25rem #00000038}.status-pill[data-tone=success]{border-color:#c7f36b73}.status-pill[data-tone=warning]{color:#ffe6ae;border-color:#ffd47a8c}.status-pill[data-tone=error]{color:#ffc1bb;border-color:#ff91868c}.framing-guidance{min-height:2.8rem;color:var(--muted);margin:.85rem 0 0;padding:0 .2rem;font-size:.8rem;line-height:1.55}.control-heading{border-bottom:1px solid var(--border);padding:1.1rem 1.2rem .9rem}fieldset{border:0;border-bottom:1px solid var(--border);gap:.8rem;min-width:0;margin:0;padding:1.15rem 1.2rem 1.25rem;display:grid}fieldset:last-child{border-bottom:0}legend{float:left;color:#edf0ee;width:100%;margin-bottom:.1rem;padding:0;font-size:.86rem;font-weight:700}legend+*{clear:both}legend span{color:var(--accent);margin-right:.4rem;font-size:.68rem}.field-help,.upload-zone p{color:var(--muted);margin:0;font-size:.74rem;line-height:1.55}.button-row,.toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.button{cursor:pointer;border:1px solid #0000;border-radius:.7rem;padding:.62rem .85rem;font-weight:680;transition:border-color .15s,background .15s,transform .15s}.button:not(:disabled):active{transform:translateY(1px)}.button.primary,.capture-button{color:var(--accent-ink);background:var(--accent)}.button.primary:hover:not(:disabled),.capture-button:hover:not(:disabled){background:#d4ff7f}.button.secondary{border-color:var(--border-strong);color:#eef1ef;background:var(--surface-soft)}.button.secondary:hover:not(:disabled){border-color:#657169}.text-button{min-height:2.3rem;color:var(--accent);background:0 0;justify-self:start;padding:.4rem 0}.capture-button{width:100%}.field-stack{gap:.4rem;display:grid}.sample-picker{gap:.48rem;display:grid}.field-label{color:#dfe3e0;margin:0;font-size:.78rem;font-weight:620}.sample-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.42rem;display:grid}.sample-button{--sample-color:var(--accent);border-color:var(--border-strong);color:#eef1ef;background:var(--surface-soft);justify-content:center;align-items:center;gap:.35rem;min-width:0;padding-inline:.45rem;font-size:.72rem;display:inline-flex}.sample-button:before{background:var(--sample-color);content:"";border-radius:50%;flex:none;width:.48rem;height:.48rem;box-shadow:0 0 0 2px #ffffff14}.sample-button:hover{border-color:#657169}.sample-button[data-sample=top]{--sample-color:#f06479}.sample-button[data-sample=pants]{--sample-color:#4f8df7}.sample-button[data-sample=skirt]{--sample-color:#e0a72f}.sample-button[data-sample=dress]{--sample-color:#a56be8}.field-stack label,.upload-zone>label,.range-label label{color:#dfe3e0;font-size:.78rem;font-weight:620}select,input[type=file]{border:1px solid var(--border-strong);color:#f4f5f3;background:#151817;border-radius:.65rem;width:100%}select{padding:.55rem 2.3rem .55rem .72rem}.upload-zone{border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:#ffffff04;gap:.48rem;padding:.8rem;transition:border-color .15s,background .15s;display:grid}.upload-zone.is-dragging{border-color:var(--accent);background:#c7f36b12}input[type=file]{min-height:auto;padding:.35rem;font-size:.75rem}input[type=file]::file-selector-button{color:#e9ecea;background:var(--surface-soft);cursor:pointer;border:0;border-radius:.45rem;min-height:2rem;margin-right:.55rem;padding:.35rem .65rem}.range-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1rem;display:grid}.range-control{gap:.42rem;min-width:0;display:grid}.range-label{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}output{color:var(--accent);font-variant-numeric:tabular-nums;font-size:.68rem}input[type=range]{cursor:pointer;width:100%;min-height:1.4rem;margin:0}.toggle{border:1px solid var(--border);color:#dfe3e0;cursor:pointer;background:#ffffff04;border-radius:.65rem;align-items:center;gap:.55rem;min-height:2.8rem;padding:.55rem .65rem;font-size:.78rem;display:flex}.toggle input{width:1rem;height:1rem;margin:0}@media (width<=800px){.app-shell{padding-top:.75rem}.hero{align-items:start;gap:1rem;display:grid}.workspace{grid-template-columns:minmax(0,1fr)}.privacy-note{max-width:38rem}#camera-stage{max-width:min(100%,31rem)}}@media (width<=460px){.app-shell{padding-inline:.65rem}.preview-card,.control-panel{border-radius:1rem}.range-grid,.button-row,.toggle-grid,.sample-grid{grid-template-columns:minmax(0,1fr)}fieldset,.control-heading{padding-inline:1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
