:root{color:#1e1b18;font-synthesis:none;text-rendering:optimizelegibility;background:#f3efe9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#f3efe9;min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}.app-shell{place-items:center;min-height:100vh;padding:20px;display:grid}.workspace{background:#fbfaf7;border:1px solid #28221d1a;border-radius:28px;width:min(1460px,100%);margin:0 auto;overflow:hidden;box-shadow:0 24px 70px #2f27201a}.topbar{border-bottom:1px solid #e8e1d8;justify-content:space-between;align-items:center;gap:24px;padding:28px 34px;display:flex}.brand-kicker,.stage-label{letter-spacing:.18em;text-transform:uppercase;color:#8a7160;margin:0 0 7px;font-size:11px;font-weight:750}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(27px,3vw,40px);font-weight:500}h2{margin-bottom:14px;font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,4vw,50px);font-weight:500;line-height:1.04}h3{margin-bottom:0;font-family:Georgia,Times New Roman,serif;font-size:26px;font-weight:500}.step-dots{gap:8px;display:flex}.step-dots span{background:#ded5ca;border-radius:999px;width:34px;height:4px}.step-dots span.active{background:#1f1b18}.capture-workspace{max-height:calc(100vh - 40px)}.capture-layout{grid-template-columns:minmax(0,1.55fr) minmax(320px,.65fr);height:min(720px,100vh - 137px);min-height:520px;display:grid}.camera-card{background:#e9e3da;flex-direction:column;min-width:0;min-height:0;padding:24px;display:flex}.camera-frame{background:#1d1b1a;border-radius:22px;flex:auto;min-height:0;position:relative;overflow:hidden}.camera-frame video{object-fit:cover;width:100%;height:100%;display:block}.mirror-video{transform:scaleX(-1)}.pose-guide{pointer-events:none;opacity:.76;position:absolute;inset:0}.head-outline{border:2px solid #ffffffd1;border-radius:50% 50% 46% 46%;width:32%;height:46%;position:absolute;top:15%;left:34%}.shoulder-outline{border:2px solid #ffffffa3;border-bottom:0;border-radius:50% 50% 0 0;width:62%;height:25%;position:absolute;bottom:8%;left:19%}.pose-guide-side .head-outline{left:39%;transform:rotate(-6deg)}.pose-guide-back .head-outline{width:38%;left:31%}.camera-state{color:#fff;text-align:center;background:#141211b8;place-items:center;padding:30px;display:grid;position:absolute;inset:0}.camera-state p{max-width:560px;margin:0 auto 16px;line-height:1.55}.error-state{color:#ffe8e8}.retry-button{color:#fff;background:#ffffff1f;border:1px solid #ffffffb8;border-radius:999px;min-height:42px;padding:0 20px;font-weight:750}.retry-button:hover{background:#ffffff38}.camera-actions{flex:none;grid-template-columns:1fr 1.2fr 1fr;gap:12px;margin-top:14px;display:grid}.primary-button,.secondary-button,.capture-button,.tool-button,.preset-button{border:0;border-radius:999px;min-height:48px;padding:0 20px;font-weight:700}.primary-button,.capture-button{color:#fff;background:#211d1a}.primary-button:hover,.capture-button:hover{background:#3b332d}.primary-button.compact{white-space:nowrap;min-height:44px}.secondary-button{color:#2a241f;background:#fbfaf7;border:1px solid #d9cec2;justify-content:center;align-items:center;display:inline-flex}.capture-button{justify-content:center;align-items:center;gap:10px;display:flex}.capture-button span{background:#fff;border-radius:50%;width:14px;height:14px}.capture-button:disabled{opacity:.5;cursor:not-allowed}.upload-button input{display:none}.instruction-card{background:#fbfaf7;min-height:0;padding:38px 34px;overflow-y:auto}.instruction-copy,.supporting-text{color:#6f6258;font-size:16px;line-height:1.7}.instruction-divider{background:#e7dfd6;height:1px;margin:34px 0}.tip-block{grid-template-columns:38px 1fr;gap:14px;margin-bottom:26px;display:grid}.tip-number{color:#a08673;font-size:12px;font-weight:800}.tip-block strong{margin-bottom:6px;display:block}.tip-block p{color:#71655b;margin:0;line-height:1.55}.back-button{margin-top:16px}.text-button{color:#6e5848;text-underline-offset:4px;background:0 0;border:0;padding:0;font-weight:750;text-decoration:underline}.results-workspace{padding-bottom:32px}.results-intro{grid-template-columns:.8fr 1.2fr;gap:38px;padding:38px 34px 28px;display:grid}.colour-panel{background:#eee7de;border-radius:20px;padding:24px}.colour-panel>label{margin-bottom:10px;font-size:13px;font-weight:800;display:block}.colour-input-row{grid-template-columns:38px 1fr auto;align-items:center;gap:10px;display:grid}.colour-swatch{border:3px solid #fff;border-radius:50%;width:38px;height:38px;box-shadow:0 0 0 1px #0000001f}.colour-input-row input{background:#fff;border:1px solid #d5c9bd;border-radius:999px;outline:none;width:100%;min-height:44px;padding:0 16px}.colour-input-row input:focus{border-color:#6c5848;box-shadow:0 0 0 3px #6c58481f}.preset-row{flex-wrap:wrap;gap:8px;margin:16px 0 22px;display:flex}.preset-button{background:#fbfaf7;border:1px solid #ddd2c6;align-items:center;gap:8px;min-height:38px;padding:0 13px;font-size:12px;display:flex}.preset-button span{border-radius:50%;width:16px;height:16px}.range-label{justify-content:space-between;display:flex!important}.range-input{accent-color:#2c2622;width:100%}.preview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:0 34px;display:grid}.preview-card{background:#fff;border:1px solid #e2d9cf;border-radius:22px;overflow:hidden}.preview-card-header{justify-content:space-between;align-items:flex-start;gap:14px;padding:20px;display:flex}.preview-canvas-wrap{aspect-ratio:4/5;background:#292522;position:relative;overflow:hidden}.preview-canvas-wrap canvas{object-fit:cover;touch-action:none;cursor:crosshair;width:100%;height:100%;display:block}.preview-placeholder{text-align:center;color:#fff;background:#18151380;place-items:center;padding:28px;display:grid;position:absolute;inset:0}.mask-tools{flex-wrap:wrap;align-items:center;gap:8px;padding:14px;display:flex}.tool-button{background:#f0ebe5;min-height:36px;padding:0 13px;font-size:12px}.tool-button.active{color:#fff;background:#2d2824}.mask-tools label{color:#76685d;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.mask-tools input{accent-color:#2d2824;width:72px}.notice-card{color:#66594f;background:#f0ebe5;border-radius:16px;margin:22px 34px 0;padding:18px 20px}.notice-card strong{color:#2b2622}.notice-card p{margin:5px 0 0;line-height:1.55}@media (width<=1050px){.capture-workspace{max-height:none}.capture-layout,.results-intro{grid-template-columns:1fr}.capture-layout{height:auto;min-height:auto}.camera-frame{min-height:520px}.preview-grid{grid-template-columns:1fr}}@media (width<=680px){.app-shell{padding:0;display:block}.workspace{border-radius:0;min-height:100vh}.topbar,.camera-card,.instruction-card,.results-intro{padding-left:20px;padding-right:20px}.camera-frame{border-radius:18px;min-height:460px}.camera-actions{grid-template-columns:1fr}.colour-input-row{grid-template-columns:34px 1fr}.colour-input-row .primary-button{grid-column:1/-1}.preview-grid{padding:0 20px}.notice-card{margin-left:20px;margin-right:20px}.step-dots span{width:20px}}.analysis-overlay{z-index:4;text-align:center;color:#2d2824;background:#f6f2ece6;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:absolute;inset:0}.analysis-spinner{border:3px solid #2d28242e;border-top-color:#2d2824;border-radius:50%;width:28px;height:28px;animation:.8s linear infinite hairSpin}@keyframes hairSpin{to{transform:rotate(360deg)}}.ai-status-row{justify-content:flex-start;gap:8px;font-size:12px;font-weight:700}.ai-dot{background:#b8afa7;border-radius:50%;width:8px;height:8px}.ai-dot.ready{background:#2f7a4f}
