:root{--ds-ground:#0d0705;--ds-paper:#15100c;--ds-sunken:#0b0605;--ds-veil:#ffffff05;--ds-capture-safe:#f8f8ff;--ds-capture-ink:#16161f;--ds-ink:#f5ede3;--ds-ink-2:#c6bcb0;--ds-muted:#9c9289;--ds-line:#2a2119;--ds-line-strong:#3d3227;--ds-gold:#c4a882;--ds-gold-hover:#d8be9a;--ds-gold-soft:#c4a8821a;--ds-on-gold:#0d0705;--ds-plum:var(--ds-gold);--ds-plum-hover:var(--ds-gold-hover);--ds-plum-soft:var(--ds-gold-soft);--ds-on-plum:var(--ds-on-gold);--ds-good:#5fbf8b;--ds-good-soft:#5fbf8b1f;--ds-warn:#e0a94a;--ds-warn-soft:#e0a94a1f;--ds-bad:#e8756f;--ds-bad-soft:#e8756f1f;--ds-tier-high:var(--ds-good);--ds-tier-medium:var(--ds-warn);--ds-tier-low:var(--ds-bad);--mst-1:#f6ede4;--mst-2:#f3e7db;--mst-3:#f7ead0;--mst-4:#eadaba;--mst-5:#d7bd96;--mst-6:#a07e56;--mst-7:#825c43;--mst-8:#604134;--mst-9:#3a312a;--mst-10:#292420;--ds-swatch-well:#f4f4f4;--ds-glass-fill:#ffffff08;--ds-glass-fill-2:#ffffff0f;--ds-glass-border:#c4a88224;--ds-glass-sheen:#ffffff38;--ds-glass-blur:20px;--ds-font-display:"Italiana", ui-serif, Georgia, serif;--ds-font-body:"Roboto Condensed", ui-sans-serif, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--ds-font-mono:ui-monospace, "SF Mono", SFMono-Regular, "Cascadia Mono", Menlo, Consolas, monospace;--ds-text-xs:.75rem;--ds-text-sm:.875rem;--ds-text-base:1rem;--ds-text-lg:1.125rem;--ds-text-xl:1.375rem;--ds-text-2xl:1.75rem;--ds-text-3xl:2.25rem;--ds-weight-normal:400;--ds-weight-medium:500;--ds-weight-semi:650;--ds-weight-bold:700;--ds-tracking-tight:-.02em;--ds-tracking-wide:.02em;--ds-tracking-label:.12em;--ds-space-1:.25rem;--ds-space-2:.5rem;--ds-space-3:.75rem;--ds-space-4:1rem;--ds-space-5:1.5rem;--ds-space-6:2rem;--ds-space-7:3rem;--ds-space-8:4rem;--ds-radius-sm:4px;--ds-radius-md:8px;--ds-radius-lg:14px;--ds-radius-full:999px;--ds-shadow-sm:0 1px 2px #0000004d;--ds-shadow-md:0 2px 6px #00000052, 0 12px 28px -14px #00000080;--ds-shadow-lg:0 6px 14px #0000005c, 0 28px 56px -20px #0009;--ds-ease:cubic-bezier(.2, 0, .2, 1);--ds-ease-out:cubic-bezier(.16, 1, .3, 1);--ds-fast:.12s;--ds-normal:.22s;--ds-slow:.42s;--ds-touch-min:44px;--ds-measure:66ch;--ds-container:1200px;--ds-focus-ring:0 0 0 3px #c4a8825c}@media (prefers-reduced-motion:reduce){:root{--ds-fast:1ms;--ds-normal:1ms;--ds-slow:1ms}}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--ds-gold);outline-offset:2px;border-radius:var(--ds-radius-sm)}@font-face{font-family:Italiana;src:url(/market-research/fonts/italiana-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Libre Baskerville;src:url(/market-research/fonts/libre-baskerville-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Libre Baskerville;src:url(/market-research/fonts/libre-baskerville-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Libre Baskerville;src:url(/market-research/fonts/libre-baskerville-400-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}:root{--ds-ground:#f7f3ee;--ds-paper:#fffcf8;--ds-sunken:#efe8df;--ds-veil:#1a131008;--ds-ink:#1a1310;--ds-ink-2:#4a3b33;--ds-muted:#7a6a5e;--ds-line:#e4dbd0;--ds-line-strong:#c9bcae;--ds-accent:#630811;--ds-accent-hover:#7d0a16;--ds-accent-soft:#63081112;--ds-on-accent:#f7f3ee;--ds-gold:var(--ds-accent);--ds-gold-hover:var(--ds-accent-hover);--ds-gold-soft:var(--ds-accent-soft);--ds-on-gold:var(--ds-on-accent);--ds-plum:var(--ds-accent);--ds-plum-hover:var(--ds-accent-hover);--ds-plum-soft:var(--ds-accent-soft);--ds-on-plum:var(--ds-on-accent);--ds-good:#2e6b4f;--ds-good-soft:#2e6b4f1a;--ds-warn:#8a5a0f;--ds-warn-soft:#8a5a0f1a;--ds-bad:#a3231c;--ds-bad-soft:#a3231c1a;--ds-font-display:"Italiana", "Times New Roman", serif;--ds-font-body:"Libre Baskerville", Baskerville, Georgia, serif;--ds-font-mono:ui-monospace, "SF Mono", Menlo, monospace;--ds-shadow-sm:0 1px 2px #1a13100a;--ds-shadow-md:0 2px 8px #1a13100f;--ds-shadow-lg:0 8px 28px #1a131014;--ds-focus-ring:2px solid var(--ds-accent)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--ds-ground);color:var(--ds-ink);font-family:var(--ds-font-body);font-size:var(--ds-text-base);-webkit-font-smoothing:antialiased;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);margin:0;line-height:1.6}:focus-visible{outline:var(--ds-focus-ring);outline-offset:2px}.app__main:focus,.app__main:focus-visible{outline:none}.app{flex-direction:column;min-height:100dvh;display:flex}.app__bar{justify-content:space-between;align-items:center;gap:var(--ds-space-3);padding:var(--ds-space-3) var(--ds-space-4);border-bottom:1px solid var(--ds-line);background:var(--ds-ground);z-index:10;display:flex;position:sticky;top:0}.app__mark{font-family:var(--ds-font-display);letter-spacing:.22em;color:var(--ds-ink);font-size:1.35rem;line-height:1}.app__progress{background:var(--ds-line);flex:1;max-width:180px;height:2px;overflow:hidden}.app__progress-fill{background:var(--ds-accent);height:100%;transition:width var(--ds-normal) var(--ds-ease-out)}.app__main{width:100%;max-width:30rem;padding:var(--ds-space-6) var(--ds-space-4) var(--ds-space-7);text-align:center;flex:1;margin:0 auto}.step__eyebrow{font-size:var(--ds-text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--ds-muted);margin:0 0 var(--ds-space-2)}.step__title{font-family:var(--ds-font-body);color:var(--ds-ink);margin:0 0 var(--ds-space-3);text-wrap:balance;font-size:1.6rem;font-weight:400;line-height:1.25}.step__title em{color:var(--ds-accent);font-style:italic}.step__help{color:var(--ds-ink-2);font-size:var(--ds-text-sm);margin:0 auto var(--ds-space-4);max-width:30rem}.step__body{margin-bottom:var(--ds-space-5)}.choices{gap:var(--ds-space-2);display:grid}.choice{justify-content:center;align-items:center;gap:var(--ds-space-3);width:100%;min-height:56px;padding:var(--ds-space-3);text-align:center;background:var(--ds-paper);color:var(--ds-ink);border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);font:inherit;cursor:pointer;transition:border-color var(--ds-fast) var(--ds-ease), background var(--ds-fast) var(--ds-ease);display:flex}.choice:hover{border-color:var(--ds-line-strong)}.choice[aria-pressed=true],.choice[aria-checked=true]{border-color:var(--ds-accent);background:var(--ds-accent-soft)}.choice__dot{border:1px solid var(--ds-line-strong);background:var(--ds-ground);border-radius:50%;flex:none;width:18px;height:18px}.choice[aria-checked=true] .choice__dot{border-color:var(--ds-accent);box-shadow:inset 0 0 0 4px var(--ds-accent)}.swatches{gap:var(--ds-space-2);grid-template-columns:repeat(5,1fr);display:grid}.swatch{aspect-ratio:1;border-radius:var(--ds-radius-md);border:2px solid var(--ds-line);cursor:pointer;transition:transform var(--ds-fast) var(--ds-ease), border-color var(--ds-fast) var(--ds-ease);padding:0;position:relative;overflow:hidden}.swatch[aria-checked=true]{border-color:var(--ds-accent);transform:scale(1.05)}.swatch__label{inset-inline:0;text-align:center;color:#fff;background:#1a13108c;padding:3px 2px;font-size:10px;position:absolute;bottom:0}.input,.textarea{text-align:center;width:100%;min-height:52px;padding:var(--ds-space-3);background:var(--ds-paper);color:var(--ds-ink);border:1px solid var(--ds-line-strong);border-radius:var(--ds-radius-md);font:inherit;font-size:16px}.textarea{resize:vertical;min-height:120px;line-height:1.6}.input::placeholder,.textarea::placeholder{color:var(--ds-muted)}.input:focus-visible,.textarea:focus-visible{border-color:var(--ds-accent)}.btn{justify-content:center;align-items:center;gap:var(--ds-space-2);min-height:52px;padding:0 var(--ds-space-5);border-radius:var(--ds-radius-full);font:inherit;font-size:var(--ds-text-sm);letter-spacing:.06em;cursor:pointer;transition:background var(--ds-fast) var(--ds-ease), border-color var(--ds-fast) var(--ds-ease), opacity var(--ds-fast) var(--ds-ease);border:1px solid #0000;display:inline-flex}.btn--primary{background:var(--ds-accent);color:var(--ds-on-accent)}.btn--primary:hover:not(:disabled){background:var(--ds-accent-hover)}.btn--ghost{color:var(--ds-ink-2);border-color:var(--ds-line-strong);background:0 0}.btn--ghost:hover:not(:disabled){border-color:var(--ds-ink-2)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn--block{width:100%}.actions{justify-content:center;gap:var(--ds-space-2);margin-top:var(--ds-space-6);display:flex}.actions .btn--primary{flex:1}.back{padding:var(--ds-space-2) 0;margin-bottom:var(--ds-space-2);color:var(--ds-muted);font:inherit;font-size:var(--ds-text-sm);cursor:pointer;background:0 0;border:0}.back:hover{color:var(--ds-ink-2)}.result-tone{align-items:center;gap:var(--ds-space-3);padding:var(--ds-space-5) var(--ds-space-4);background:var(--ds-paper);border:1px solid var(--ds-line);border-radius:var(--ds-radius-lg);flex-direction:column;display:flex}.result-tone__swatch{border-radius:var(--ds-radius-md);border:1px solid var(--ds-line-strong);flex:none;width:88px;height:88px}.result-tone__level{font-family:var(--ds-font-body);color:var(--ds-accent);font-size:1.5rem;line-height:1.1}.result-tone__name{color:var(--ds-ink-2);font-size:var(--ds-text-sm)}.result__photo{width:100%;margin-top:var(--ds-space-4);border-radius:var(--ds-radius-lg);border:1px solid var(--ds-line);display:block}.meta{gap:var(--ds-space-2);margin-top:var(--ds-space-3);grid-template-columns:repeat(2,1fr);display:grid}.meta__item{padding:var(--ds-space-2) var(--ds-space-3);background:var(--ds-sunken);border-radius:var(--ds-radius-sm)}.meta__label{font-size:var(--ds-text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--ds-muted);display:block}.meta__value{color:var(--ds-ink);text-transform:capitalize}.capture{gap:var(--ds-space-3);justify-items:center;display:grid}.capture>.btn,.capture>label.btn{width:100%;max-width:22rem}.capture__stage{aspect-ratio:3/4;background:var(--ds-sunken);border:1px solid var(--ds-line);border-radius:var(--ds-radius-lg);justify-self:center;width:auto;max-width:100%;max-height:46vh;position:relative;overflow:hidden}.capture__video,.capture__preview{object-fit:cover;width:100%;height:100%;display:block}.capture__video{transform:scaleX(-1)}.capture__hint{inset-inline:var(--ds-space-3);bottom:var(--ds-space-3);padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius-full);color:#fff;font-size:var(--ds-text-sm);text-align:center;background:#1a1310b8;margin:0;position:absolute}.capture__hud-top{top:var(--ds-space-3);left:var(--ds-space-3);right:var(--ds-space-3);z-index:10;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute}.capture__badge{border-radius:var(--ds-radius-full);-webkit-backdrop-filter:blur(8px);color:#fff;letter-spacing:.02em;text-transform:uppercase;background:#1a1310bf;border:1px solid #ffffff1f;align-items:center;gap:.45rem;padding:.3rem .65rem;font-size:.72rem;font-weight:500;display:inline-flex}.capture__badge-dot{background:#c59b6d;border-radius:50%;width:7px;height:7px;transition:background .25s,box-shadow .25s;box-shadow:0 0 6px}.capture__badge--optimal .capture__badge-dot{background:#10b981;box-shadow:0 0 8px #10b981}.capture__badge--dim .capture__badge-dot,.capture__badge--shadow .capture__badge-dot,.capture__badge--backlit .capture__badge-dot,.capture__badge--glare .capture__badge-dot{background:#f59e0b;box-shadow:0 0 8px #f59e0b}.capture__badge--fair .capture__badge-dot{background:#dfa874;box-shadow:0 0 8px #dfa874}.capture__score{border-radius:var(--ds-radius-full);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;background:#1a1310bf;border:1px solid #ffffff1f;align-items:center;gap:.4rem;padding:.28rem .6rem;font-size:.72rem;font-weight:600;display:flex}.capture__score-bar{background:#fff3;border-radius:2px;width:32px;height:4px;overflow:hidden}.capture__score-fill{background:#dfa874;border-radius:2px;height:100%;transition:width .3s,background .3s}.capture__stage--optimal .capture__score-fill{background:#10b981}.capture__guide{pointer-events:none;z-index:5;justify-content:center;align-items:center;transition:border-color .3s,box-shadow .3s;display:flex;position:absolute;inset:12% 14%}.capture__guide-oval{border:1.5px dashed #dfa87473;border-radius:50%/45%;width:100%;height:100%;transition:border-color .3s,box-shadow .3s;box-shadow:0 0 0 9999px #120e0c40}.capture__guide--optimal .capture__guide-oval{border-style:solid;border-color:#10b981d9;box-shadow:0 0 16px #10b9814d,0 0 0 9999px #120e0c33}.capture__guide--dim .capture__guide-oval,.capture__guide--shadow .capture__guide-oval,.capture__guide--backlit .capture__guide-oval,.capture__guide--glare .capture__guide-oval{border-color:#f59e0bb3;box-shadow:0 0 12px #f59e0b33,0 0 0 9999px #120e0c4d}.capture__guide-corner{opacity:.85;border-style:solid;border-color:#dfa874;width:14px;height:14px;position:absolute}.capture__guide-corner--tl{border-width:2px 0 0 2px;top:-4px;left:-4px}.capture__guide-corner--tr{border-width:2px 2px 0 0;top:-4px;right:-4px}.capture__guide-corner--bl{border-width:0 0 2px 2px;bottom:-4px;left:-4px}.capture__guide-corner--br{border-width:0 2px 2px 0;bottom:-4px;right:-4px}.capture__guide--optimal .capture__guide-corner{border-color:#10b981}.capture__hud-bottom{bottom:var(--ds-space-3);left:var(--ds-space-3);right:var(--ds-space-3);z-index:10;pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute}.capture__guidance-pill{border-radius:var(--ds-radius-full);-webkit-backdrop-filter:blur(10px);color:#fff;font-size:var(--ds-text-sm);text-align:center;background:#1a1310d1;border:1px solid #ffffff26;margin:0;padding:.45rem .9rem;font-weight:500;animation:.25s captureHintFade;box-shadow:0 4px 12px #00000040}@keyframes captureHintFade{0%{opacity:.7;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.capture__shutter--ready{animation:2s ease-in-out infinite shutterPulse;position:relative;color:#fff!important;background:linear-gradient(135deg,#10b981 0%,#059669 100%)!important;box-shadow:0 4px 20px #10b98159!important}@keyframes shutterPulse{0%,to{box-shadow:0 4px 14px #10b98159}50%{transform:scale(1.01);box-shadow:0 4px 24px #10b98199}}.step--capture .step__title{margin-bottom:var(--ds-space-2);font-size:1.4rem}.step--capture .step__help{margin-bottom:var(--ds-space-3);font-size:var(--ds-text-sm)}.notice{padding:var(--ds-space-3) var(--ds-space-4);border-radius:var(--ds-radius-md);border:1px solid var(--ds-line-strong);background:var(--ds-paper);font-size:var(--ds-text-sm);color:var(--ds-ink-2)}.notice--warn{border-color:var(--ds-warn);background:var(--ds-warn-soft);color:var(--ds-ink)}.notice--bad{border-color:var(--ds-bad);background:var(--ds-bad-soft);color:var(--ds-ink)}.spinner{border:2px solid var(--ds-line-strong);border-top-color:var(--ds-accent);width:28px;height:28px;margin:var(--ds-space-5) auto;border-radius:50%;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}@media (width>=700px){.app__bar{padding:var(--ds-space-4) var(--ds-space-6)}.app__mark{font-size:1.6rem}.app__main{max-width:34rem;padding:var(--ds-space-8) var(--ds-space-5)}.step__title{font-size:2.1rem}.step__help{font-size:var(--ds-text-base)}.swatches{grid-template-columns:repeat(10,1fr)}.actions .btn--primary{flex:0 auto;min-width:14rem}.btn--block,.actions .btn--block{width:auto}}@media (width>=1100px){.app__main{max-width:36rem}.step__title{font-size:2.3rem}}.app__foot{padding:var(--ds-space-5) var(--ds-space-4) var(--ds-space-6);text-align:center;color:var(--ds-muted);font-size:var(--ds-text-xs);line-height:1.7}.app__foot strong{color:var(--ds-ink-2);letter-spacing:.04em;font-weight:400;display:block}.results{gap:var(--ds-space-4);text-align:left;display:grid}.results__category{margin:var(--ds-space-5) 0 0}.results__category:first-child{margin-top:0}.results__category-name{font-size:var(--ds-text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--ds-muted);text-align:center;margin:0 0 var(--ds-space-3)}.product{background:var(--ds-paper);border:1px solid var(--ds-line);border-radius:var(--ds-radius-lg);padding:var(--ds-space-4);margin-bottom:var(--ds-space-3);box-shadow:var(--ds-shadow-sm)}.product__head{gap:var(--ds-space-4);align-items:flex-start;display:flex}.product__image{border-radius:var(--ds-radius-md);background:var(--ds-sunken);flex:none;justify-content:center;align-items:center;width:76px;height:100px;display:flex;overflow:hidden}.product__image img{object-fit:contain;width:100%;height:100%;padding:6px}.product__swatch-large{width:100%;height:100%;display:block}.product__meta{flex:1;min-width:0}.product__brand{font-size:var(--ds-text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--ds-accent);margin:0 0 var(--ds-space-1)}.product__name{margin:0 0 var(--ds-space-2);color:var(--ds-ink);font-size:1.05rem;font-weight:400;line-height:1.3}.tier{font-size:var(--ds-text-xs);letter-spacing:.06em;border-radius:var(--ds-radius-full);border:1px solid;padding:3px 10px;display:inline-block}.tier em{opacity:.75;font-style:normal}.tier--high{color:var(--ds-good);background:var(--ds-good-soft)}.tier--medium{color:var(--ds-warn);background:var(--ds-warn-soft)}.tier--low{color:var(--ds-bad);background:var(--ds-bad-soft)}.product__why{margin:var(--ds-space-3) 0 0;font-size:var(--ds-text-sm);color:var(--ds-ink-2);line-height:1.5}.product__shades{gap:var(--ds-space-2);margin-top:var(--ds-space-3);flex-wrap:wrap;display:flex}.shade-dot{outline:1px solid var(--ds-line-strong);outline-offset:1px;cursor:pointer;width:26px;height:26px;transition:transform var(--ds-fast) var(--ds-ease);border:2px solid #0000;border-radius:50%;padding:0}.shade-dot[aria-pressed=true]{border-color:var(--ds-paper);outline-color:var(--ds-accent);outline-width:2px;transform:scale(1.18)}.product__shade-name{align-items:center;gap:var(--ds-space-2);margin:var(--ds-space-3) 0 0;font-size:var(--ds-text-sm);color:var(--ds-ink);display:flex}.product__dot{border:1px solid var(--ds-line-strong);border-radius:50%;flex:none;width:12px;height:12px}.product__reason{margin:var(--ds-space-3) 0 0;font-style:italic;font-size:var(--ds-text-sm);color:var(--ds-ink-2);line-height:1.6}.product__foot{margin-top:var(--ds-space-4);padding-top:var(--ds-space-3);border-top:1px solid var(--ds-line)}.product__price{color:var(--ds-ink);font-size:1.15rem}.app__main:has(.results){max-width:40rem}@media (width>=700px){.product__image{width:92px;height:120px}.product__name{font-size:1.2rem}}
