:root{--paper: #f7f5f0;--ink: #2d2a26;--ink-light: #5a554e;--ink-faint: #6f6a61;--vermillion: #c41e3a;--border: #d4d0c8;--rule: #e3dfd6;--track: #958f85;--serif: "Cormorant Garamond", Georgia, serif;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--sans);background:var(--paper);background-image:radial-gradient(circle at 20% 80%,rgba(196,30,58,.03) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(45,42,38,.02) 0%,transparent 50%);color:var(--ink);min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased}#app{max-width:1400px;margin:0 auto;padding:40px 32px}:focus-visible{outline:2px solid var(--vermillion);outline-offset:2px}.header{text-align:center;margin-bottom:36px}.header__title{font-family:var(--serif);font-size:3.5rem;font-weight:400;font-style:italic;letter-spacing:.15em;line-height:1.1;margin-bottom:10px;position:relative;display:inline-block}.header__title:after{content:"";position:absolute;bottom:6px;right:-20px;width:10px;height:10px;background:var(--vermillion);border-radius:2px;transform:rotate(3deg)}.header__subtitle{font-size:.75rem;color:var(--ink-light);font-weight:500;letter-spacing:.28em;text-transform:uppercase}.btn{font-family:var(--sans);font-size:.8125rem;font-weight:500;letter-spacing:.08em;border:none;padding:12px 26px;cursor:pointer;transition:background .18s ease,color .18s ease}.btn--ink{background:var(--ink);color:var(--paper)}.btn--ink:hover{background:var(--vermillion)}.btn--accent{background:var(--vermillion);color:#fff}.btn--accent:hover:not(:disabled){background:var(--ink)}.btn--quiet{background:transparent;color:var(--ink-light);box-shadow:inset 0 0 0 1px var(--border)}.btn--quiet:hover{background:var(--ink);color:var(--paper);box-shadow:none}.btn--small{padding:8px 18px}.btn:disabled{opacity:.4;cursor:not-allowed}.toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--rule)}.toolbar__actions{display:flex;gap:10px}.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input[type=checkbox]{width:15px;height:15px;accent-color:var(--vermillion);cursor:pointer;flex-shrink:0}.toggle__text{font-size:.8125rem;color:var(--ink-light)}.steps{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.steps:has(>:not([hidden])){padding-top:16px}.steps__desc{font-size:.8125rem;color:var(--ink-light)}.panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px 36px;margin:20px 0 36px;padding:22px 26px;background:#ffffff8c;border:1px solid var(--border)}.group{max-width:380px}.group__title{font-size:.6875rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--rule);padding-bottom:8px;margin-bottom:12px}.field+.field{margin-top:16px}.field{display:grid;grid-template-columns:62px minmax(0,1fr) 30px;align-items:center;gap:4px 12px;min-height:28px}.field__label{font-size:.8125rem;color:var(--ink-light)}.field__value{font-size:.8125rem;font-weight:600;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}.field__hint{grid-column:2 / -1;grid-row:2;font-size:.75rem;line-height:1.45;color:var(--ink-faint)}.field__select,.field .toggle,.swatches{grid-column:2 / -1}.field__select{font-family:var(--sans);font-size:.8125rem;padding:6px 8px;border:1px solid var(--track);background:#fff;color:var(--ink);cursor:pointer;width:100%;max-width:190px}.field__range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:18px;background:transparent;cursor:pointer}.field__range::-webkit-slider-runnable-track{height:2px;background:var(--track)}.field__range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;margin-top:-6px;border-radius:2px;background:var(--ink);transition:background .18s ease}.field__range:hover::-webkit-slider-thumb{background:var(--vermillion)}.field__range::-moz-range-track{height:2px;background:var(--track)}.field__range::-moz-range-thumb{width:14px;height:14px;border:none;border-radius:2px;background:var(--ink)}.field__range:hover::-moz-range-thumb{background:var(--vermillion)}.swatches{display:flex;gap:18px}.swatch{display:inline-flex;align-items:center;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.swatch input[type=radio]{position:absolute;opacity:0;pointer-events:none}.swatch__chip{width:17px;height:17px;border-radius:3px;flex-shrink:0}.swatch__chip--bw{background:var(--ink)}.swatch__chip--color{background:linear-gradient(135deg,#f4a0a0,#f4d4a0,#a0f4a0,#a0d4f4,#c4a0f4)}.swatch input[type=radio]:checked~.swatch__chip{outline:2px solid var(--ink);outline-offset:2px}.swatch__text{font-size:.8125rem;color:var(--ink-light)}.swatch input[type=radio]:checked~.swatch__text{color:var(--ink);font-weight:600}.swatch input[type=radio]:focus-visible~.swatch__chip{outline:2px solid var(--vermillion);outline-offset:2px}.camera{margin-bottom:32px;text-align:center}.camera__video{width:100%;max-width:640px;background:#000}.camera__actions{display:flex;justify-content:center;gap:12px;margin-top:12px}.workspace{width:100%}.workspace__grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.workspace__frame{position:relative;background:#fff;padding:22px;box-shadow:0 4px 20px #0000000f}.workspace__frame:before{content:"";position:absolute;top:8px;left:8px;right:8px;bottom:8px;border:1px solid var(--border);pointer-events:none}.workspace__label{position:absolute;top:-9px;left:28px;background:var(--paper);padding:0 12px;font-size:.6875rem;font-weight:600;color:var(--ink-faint);letter-spacing:.18em;text-transform:uppercase}.workspace__frame img{width:100%;height:auto;display:block;max-height:70vh;object-fit:contain}.workspace__result{min-height:200px;display:flex;align-items:center;justify-content:center}.workspace__result svg{width:100%;height:auto;max-height:70vh}.status{margin-top:24px;font-size:.8125rem;color:var(--ink-light);min-height:28px;text-align:center}.status--error{color:var(--vermillion);font-weight:500}@media (max-width: 900px){.workspace__grid{grid-template-columns:1fr}}@media (max-width: 700px){#app{padding:24px 16px}.header__title{font-size:2.5rem}.toolbar__actions{flex:1}.toolbar__actions .btn{flex:1;padding:12px 14px}.panel{gap:0 24px;padding:18px}}
