/* Scanning the skin vertically, with no rotating loader. */
.analysis-scan{width:220px;height:280px;position:relative;overflow:hidden;margin:0 0 26px;background:#ddd6cd}.analysis-scan>img{width:100%;height:100%;object-fit:cover;object-position:center 30%}.scan-beam{position:absolute;left:0;right:0;top:4%;height:24px;background:linear-gradient(180deg,transparent,#d8c8ff45 70%,#f6f0ffb0 96%,#d5bdffb0 100%);border-bottom:1px solid #efddff;box-shadow:0 5px 18px #c7b0ff60;animation:skin-scan-down 2.1s linear infinite}.scan-corner{position:absolute;width:15px;height:15px;border-color:#fff9;border-style:solid}.top-left{top:10px;left:10px;border-width:1px 0 0 1px}.top-right{top:10px;right:10px;border-width:1px 1px 0 0}.bottom-left{bottom:10px;left:10px;border-width:0 0 1px 1px}.bottom-right{bottom:10px;right:10px;border-width:0 1px 1px 0}@keyframes skin-scan-down{0%{top:3%;opacity:0}9%{opacity:1}90%{opacity:1}100%{top:94%;opacity:0}}.analysing-screen{padding-top:28px;padding-bottom:28px}.analysing-screen h1{font-size:36px}.analysing-screen .analysis-progress{margin:22px 0 8px}
/* Warm, distinct priority cards and pipette symbols. */
.concern-1{--concern:#ac8062;--concern-light:#e0c8b3;--concern-bg:#f1e7dc}.concern-2{--concern:#9e8178;--concern-light:#d4beb4;--concern-bg:#f4eeea}.concern-3{--concern:#8b8e7e;--concern-light:#c6c8b9;--concern-bg:#eae9e2}.result-card{background:var(--concern-bg,#f2f0ee);border-color:#d7cec3;padding:24px}.result-card-top{align-items:flex-start}.result-priority{font-size:14px;margin-bottom:9px;color:#6d6259}.result-card-top h2{font-size:25px;letter-spacing:-.035em}.result-value-stack{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.result-number{font-size:38px;white-space:nowrap}.result-number small{font-size:17px}.dropper-active{display:inline-flex;align-items:center;gap:6px;color:var(--concern,#8b7664);line-height:1}.pipette-icon{width:23px;height:34px;flex-shrink:0}.dropper-active b{font-size:17px;letter-spacing:-.02em;font-weight:450}.result-track{background:#fff9;box-shadow:inset 0 0 0 1px #d4c8ba66;margin-top:19px}.result-track>span{background:linear-gradient(90deg,var(--concern-light),var(--concern))}.result-card h3{font-size:13px}.result-card p{font-size:12px;line-height:1.75;min-height:62px;margin-bottom:0}.result-card .result-active{display:none}
/* Repeat the priorities, legibly, on the formula page. */
.profile{display:block;padding-top:30px;padding-bottom:26px}.profile-intro{max-width:760px}.profile-intro>p:last-child{max-width:620px;font-size:13px}.scores{padding-top:0;margin-top:23px;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.score{padding:17px 19px;background:var(--concern-bg);border:1px solid #d7cec3}.score>div:first-child{display:flex;align-items:center;justify-content:space-between}.score-label{font-size:19px;font-weight:500;letter-spacing:-.03em}.score-value{font-size:24px;line-height:1}.score-value small{font-size:12px;color:var(--ink);margin-left:2px}.score-track{height:9px;border-radius:6px;background:#ffffffb0;margin:14px 0 10px;overflow:hidden}.score-track>span{display:block;height:100%;background:linear-gradient(90deg,var(--concern-light),var(--concern));border-radius:6px}.score-caption{font-size:11px;color:#6d6259}.score-note{font-size:14px;margin:0;grid-column:1/-1}.formula-copy .base{margin-bottom:0}.base-ingredient-row{display:grid;grid-template-columns:115px 1fr;gap:19px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.base-ingredient-photo{width:115px;aspect-ratio:1;background-image:url('assets/base-ingredients-atlas.webp');background-size:300% 200%;background-position:50% 100%;background-repeat:no-repeat}.base-ingredient-row .micro{font-size:14px;color:var(--muted)}.base-ingredient-row h3{margin-top:7px;font-size:15px;font-weight:500}.base-ingredient-row p{font-size:11px;color:var(--muted);line-height:1.7;margin-top:6px}.active .number{width:49px;height:49px;border:0;color:#fff}.active .number b{font-size:21px}.texture-one{background:#b48e70}.texture-two{background:#ae8f84}.texture-three{background:#929783}.active{padding:10px 0}.active h3{font-size:15px}.active p{font-size:11px}.actives-label{margin-top:20px}.cart-subscription{display:flex;gap:10px;margin-top:22px;padding:15px;background:#f1eddf;border:1px solid #d8cfbd}.subscription-check{font-size:14px}.cart-subscription b{font-size:12px;font-weight:550}.cart-subscription p{font-size:11px;line-height:1.7;margin-top:4px;color:#6c6258}.cart-subscription small{display:block;font-size:14px;margin-top:6px;color:#7c7064}
@media(max-width:760px){.analysis-scan{width:205px;height:260px;margin-bottom:25px}.analysing-screen{min-height:620px}.analysing-screen h1{font-size:31px}.result-card{padding:21px}.result-card-top h2{font-size:25px}.result-number{font-size:37px}.result-value-stack{gap:8px}.dropper-active b{font-size:17px}.result-card p{min-height:0;max-width:100%;font-size:12px}.result-card h3{font-size:13px}.result-track{margin-top:17px;margin-bottom:20px}.profile{padding-top:25px}.profile-intro h1{font-size:32px}.profile-intro>p:last-child{font-size:12px}.scores{grid-template-columns:1fr;gap:10px;margin-top:21px}.score{padding:14px 16px}.score-label{font-size:21px}.score-value{font-size:23px}.score-track{height:9px;margin:11px 0 7px}.score-caption{font-size:10px}.score-note{font-size:14px;margin-top:0}.base-ingredient-row{grid-template-columns:110px 1fr;gap:16px;padding:19px 0}.base-ingredient-photo{width:110px}.base-ingredient-row h3{font-size:15px}.base-ingredient-row p{font-size:11px}.base-ingredient-row .micro{font-size:14px;letter-spacing:.1em}.active h3{font-size:15px}.active p{font-size:11px}.formula-copy{padding-bottom:25px}}
@media(prefers-reduced-motion:reduce){.scan-beam{animation:none;top:45%;opacity:.6}}

/* Compact, three-across priorities at every screen size. */
.result-grid,.scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:760px;margin-left:auto;margin-right:auto}
.result-card,.score{padding:18px 12px 16px;text-align:center;min-width:0;display:flex;flex-direction:column;align-items:center;gap:12px}
.result-card h2,.score-label{font-size:18px;line-height:1.25;margin:0;font-weight:500;letter-spacing:-.025em}
.concern-ring{position:relative;width:88px;aspect-ratio:1;flex-shrink:0}
.concern-ring>svg{width:100%;height:100%;display:block;transform:rotate(-90deg);fill:none;stroke-width:5}
.ring-track{stroke:#fff;opacity:.8}.ring-fill{stroke:var(--concern);stroke-linecap:round}
.concern-ring .score-value{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:2px;font-size:28px;font-weight:400;line-height:1}
.concern-ring .score-value small{font-size:12px;margin:3px 0 0;color:#625a53}
.result-card .dropper-active{gap:3px}.result-card .pipette-icon{width:17px;height:26px}.result-card .dropper-active b{font-size:13px}
.scores .score{gap:12px}.scores .score-note{grid-column:1/-1;text-align:left;font-size:10px}
.base-ingredient-row{border-top:1px solid var(--line);margin-top:24px}
.primary{background:#fff;border:1px solid #bcaaff;color:var(--ink);border-color:#bcaaff;transition:background .2s,border-color .2s}
.primary:hover,.primary:focus-visible{background:#bcaaff;border-color:#bcaaff;color:#292624}
.primary:disabled{background:#f4f1ec;border-color:#d6cfc7;color:#8c8178}
#routine{background:#d9d0c5;padding-top:28px;padding-bottom:32px;padding-left:28px;padding-right:28px;width:min(1200px,calc(100% - 48px));margin-top:10px;margin-bottom:32px}
.routine-heading p:last-child{color:#62584f}.optional-tag{border-color:#8d7d6d;color:#50483f}
.shipping{border:1px solid #b9aa99;background:#f4f0e9;padding:19px 22px;margin-bottom:30px}
.shipping-copy{margin-bottom:14px}.shipping-symbol{display:none}.shipping-copy p{font-size:12px;line-height:1.6}.shipping-threshold{color:#62584f}
.shipping-track{height:10px;background:#ded5ca;border-radius:8px;overflow:hidden}.shipping-track>span{background:#8d7865;border-radius:8px}
@media(max-width:760px){
.result-grid,.scores{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-width:none}
.result-card,.scores .score{padding:13px 5px 11px;gap:10px}
.result-card h2,.scores .score-label{font-size:13px;letter-spacing:-.04em;white-space:nowrap}
.concern-ring{width:68px}.concern-ring .score-value{font-size:23px}.concern-ring .score-value small{font-size:10px}
.result-card .dropper-active b{font-size:12px}.result-card .pipette-icon{width:15px;height:23px}
.scores .score-note{font-size:10px;line-height:1.6;margin-top:2px}
#routine{width:calc(100% - 24px);padding:21px 14px 24px;margin-top:0;margin-bottom:24px}
.shipping{padding:15px 13px;margin-bottom:26px}.shipping-copy{display:block}.shipping-copy p{font-size:12px}.shipping-threshold{display:block;font-size:10px;margin-top:6px}
.routine-heading h2{font-size:27px}.routine-heading p:last-child{font-size:12px;line-height:1.65}
}
@media(max-width:350px){.concern-ring{width:60px}.result-card h2,.scores .score-label{font-size:12px}}
#routine{width:100%;max-width:none;padding-left:0;padding-right:0}
@media(max-width:760px){.shipping-threshold{max-width:none;width:auto;white-space:nowrap;text-align:left;margin-left:0}.shipping-copy p{max-width:none}}

/* Preparation and consent, followed by a clear photo choice. */
.prepare-content .age-label{margin-top:16px}.prepare-content input[type=number]{max-width:150px}
.prepare-content .photo-consent{display:flex;align-items:flex-start;gap:12px;padding:16px;margin:20px 0 12px;border:1px solid #c8bfb5;background:#f1ede7;font-size:12px;line-height:1.7;cursor:pointer}
.prepare-content .photo-consent input{appearance:auto;width:19px;height:19px;flex-shrink:0;margin:2px 0 0;accent-color:#6f6256}
.photo-privacy{font-size:11px;line-height:1.75;color:#73695f}.photo-privacy a{text-decoration:underline;text-underline-offset:3px;color:#39322e}.preview-disclosure-text{font-size:10px;line-height:1.7;color:#847970;margin-top:9px}
.photo-actions{display:flex;flex-direction:column;gap:10px;margin-top:15px}.photo-actions .primary{width:100%;margin:0}.upload-photo{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 18px;min-height:48px;border:1px solid #c8bfb5;background:#fff;font-size:12px}.upload-photo:hover{background:#eee8e0}.sample-photo-button{border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;padding:7px 0;font-size:11px;color:#786b5e}.photo-error{font-size:11px;line-height:1.6;color:#875b49;margin-top:8px}.capture-privacy{max-width:340px;margin:18px auto 0;text-align:left}.capture-controls #capture-hint{font-size:10px;line-height:1.6;margin-top:12px}
@media(max-width:760px){.prepare-content .photo-consent{font-size:12px}.capture-screen .screen-intro{margin-bottom:18px}.capture-screen .viewfinder{height:280px}.prepare-content .photo-privacy,.capture-privacy{font-size:11px}.capture-screen .sample-note{font-size:10px;line-height:1.7}}

/* One-screen preparation with a single-line moving instruction strip. */
.on-prepare{min-height:100svh}.on-prepare .scan-header{height:64px;flex-shrink:0}.on-prepare .journey{padding-top:12px;padding-bottom:12px;flex-shrink:0}.on-prepare .prototype-label,.on-prepare .scan-footer{display:none}.on-prepare #scan-main{display:flex;align-items:center;justify-content:center}
.on-prepare .prepare-screen{width:min(460px,calc(100% - 40px));margin:0 auto;padding:22px 0 16px}
.on-prepare .screen-intro{margin:0 0 19px}.on-prepare .screen-intro h1{font-size:34px;line-height:1.15}
.on-prepare .prepare-grid{display:block;max-width:none}.on-prepare .prepare-content form{margin:0;padding:0;border:0}
.prep-tip-bar{display:flex;align-items:center;gap:8px;border-top:1px solid #d3c8bc;border-bottom:1px solid #d3c8bc;background:#ece6de;padding:7px 10px;margin-bottom:20px;min-height:48px;color:#39332e}
.prep-tip-symbol{font-size:22px;flex-shrink:0}.prep-tip-window{flex:1;min-width:0;overflow:hidden}.prep-tip-window p{white-space:nowrap;font-size:16px;line-height:1.45;margin:0}.tip-slide{animation:tip-enter .55s ease both}
#prep-tip-pause{display:grid;place-items:center;min-width:34px;height:34px;flex-shrink:0;border:0;border-left:1px solid #d0c4b8;background:transparent;color:#5c5146;font-size:17px;padding:0 0 0 5px}
@keyframes tip-enter{from{opacity:1;transform:translateX(22px)}to{opacity:1;transform:translateX(0)}}
.prep-fields{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:14px}.on-prepare .prepare-content label:not(.photo-consent){font-size:14px;line-height:1.4;margin:0 0 6px}.on-prepare .prepare-content input:not([type=checkbox]){font-size:16px;height:46px;width:100%;max-width:none;padding:10px 12px}
.on-prepare .prepare-content .photo-consent{font-size:14px;line-height:1.5;padding:13px 12px;margin:18px 0 12px;gap:10px}.on-prepare .photo-privacy{font-size:13px;line-height:1.55}.on-prepare .preview-disclosure-text{font-size:12px;line-height:1.5;margin-top:9px}.on-prepare .prepare-content .primary{font-size:15px;min-height:48px;margin-top:18px}.on-prepare .scan-back{font-size:13px;min-height:36px;margin-top:5px}
@media(max-width:760px){.on-prepare .scan-header{height:58px}.on-prepare .journey{padding:10px 20px}.on-prepare .journey li{font-size:10px;gap:4px}.on-prepare .journey li span{font-size:14px}.on-prepare .prepare-screen{padding:18px 0 10px}.on-prepare .screen-intro{margin-bottom:17px}.on-prepare .screen-intro h1{font-size:29px}.prep-tip-bar{margin-bottom:17px;padding-left:8px;padding-right:6px}.prep-tip-window p{font-size:15px}.prep-fields{grid-template-columns:minmax(0,1fr) 88px;gap:12px}}
@media(max-height:650px){.on-prepare .prepare-screen{padding-top:12px;padding-bottom:4px}.on-prepare .screen-intro{margin-bottom:12px}.on-prepare .screen-intro h1{font-size:27px}.prep-tip-bar{margin-bottom:13px}.on-prepare .prepare-content .photo-consent{margin-top:13px;margin-bottom:9px;padding:10px 12px}.on-prepare .prepare-content .primary{margin-top:12px}.on-prepare .preview-disclosure-text{margin-top:7px}}
@media(prefers-reduced-motion:reduce){.tip-slide{animation:none}}

/* Larger editorial headings and ABBI's restrained laser accent. */
.laser-dot{display:block;width:7px;height:7px;min-width:7px;margin:0 9px 0 5px;border-radius:50%;background:#aa8de5;box-shadow:0 0 8px 2px #bcaaff60;animation:laser-attention 4s ease-in-out infinite}
@keyframes laser-attention{0%,100%{opacity:.45;box-shadow:0 0 5px 1px #bcaaff30}50%{opacity:1;box-shadow:0 0 10px 3px #bcaaff65}}
.profile-intro h1,.results-intro h1{font-size:48px}.result-card h2,.scores .score-label{font-size:21px;font-weight:500;letter-spacing:-.035em}
#formula-title{font-size:56px}.base-ingredient-row h3{font-size:21px}.active h3{font-size:19px}.addon h3{font-size:19px}.process h2,.routine-heading h2{font-size:35px}.steps h3{font-size:15px}.results-bridge h2{font-size:28px}
.night{background:#3f3948;color:#fff;border:1px solid #655b73;margin-top:25px}.night summary{padding:22px 24px;gap:16px}.night .moon{color:#c6b3ee;font-size:32px}.night summary b{display:block;font-size:20px;font-weight:500;letter-spacing:-.02em}.night summary small{font-size:13px;line-height:1.65;color:#e1d9ea;max-width:none}.night-toggle{color:#cbb8f4;font-size:29px}.night summary:hover{background:#4a4157}.night-content{padding:0 24px 24px}.night-content p{color:#e1d9ea;font-size:14px}.night-content .micro{color:#c8b9dc;font-size:11px}
@media(max-width:760px){
.profile-intro h1,.results-intro h1{font-size:38px;line-height:1.15}.profile-intro>p:last-child,.results-intro p:last-child{font-size:14px;line-height:1.7}
.result-card h2,.scores .score-label{font-size:17px;letter-spacing:-.045em}.result-card,.scores .score{padding-left:3px;padding-right:3px}
#formula-title{font-size:44px}.base-ingredient-row h3{font-size:19px}.base-ingredient-row p{font-size:13px}.base-ingredient-row .micro{font-size:10px}
.active h3{font-size:18px}.active p{font-size:13px;line-height:1.6}.actives-label .micro{font-size:11px}.process h2,.routine-heading h2{font-size:30px}.steps h3{font-size:14px}.steps p{font-size:12px;line-height:1.6;max-width:none}.addon h3{font-size:17px}.addon-info>p{font-size:12px}.results-bridge h2{font-size:27px}
.on-prepare .screen-intro h1{font-size:33px}.night summary{padding:20px 17px;gap:12px}.night summary b{font-size:20px}.night summary small{font-size:13px;max-width:none}.night-content{padding:0 17px 20px}
}
@media(max-width:350px){.result-card h2,.scores .score-label{font-size:15px}.on-prepare .screen-intro h1{font-size:30px}}
@media(prefers-reduced-motion:reduce){.laser-dot{animation:none;opacity:.8}}
/* Purchase actions: graphite with prominent lavender lettering. */
body:not(.scan-app) .primary{background:#29262e;border-color:#29262e;color:#c9b5ff;font-size:16px;font-weight:550;min-height:50px}
body:not(.scan-app) .primary:hover,body:not(.scan-app) .primary:focus-visible{background:#3b3447;border-color:#bcaaff;color:#dfd2ff;box-shadow:0 0 0 1px #bcaaff33}
body:not(.scan-app) .primary:disabled{background:#ddd7d0;border-color:#ddd7d0;color:#776f67;box-shadow:none}
.sticky-action .primary{font-size:16px}.add-button{font-size:14px;min-height:42px}
.journey li,.on-prepare .journey li{font-size:14px;line-height:1.4}.journey li span,.on-prepare .journey li span{font-size:12px}.prototype-label{font-size:11px;letter-spacing:.08em}
.profile-intro>.eyebrow,.screen-intro>.eyebrow,.results-intro .eyebrow,.formula-eyebrow,.routine-heading .eyebrow,.process-heading .eyebrow,.checkout-intro .eyebrow{font-size:13px;line-height:1.5;letter-spacing:.12em}
.app-label,.cart-trigger,.back-abbi span{font-size:12px}.base-ingredient-row .micro,.actives-label .micro{font-size:12px}.actives-label>span:last-child{font-size:11px}.sticky-total span{font-size:12px}.steps h3{font-size:16px}.shipping-threshold,.optional-tag{font-size:11px}
.checkout-steps{font-size:13px}.checkout-page label{font-size:14px}.checkout-item h3{font-size:15px}.section-heading h2{font-size:28px}.subscription-review h3,.payment-method h3{font-size:19px}
@media(max-width:760px){
.journey{padding-left:18px;padding-right:18px}.journey ol{gap:8px;justify-content:space-between}.journey li,.on-prepare .journey li{font-size:12px;gap:4px;white-space:nowrap;line-height:1.4}.journey li span,.on-prepare .journey li span{font-size:10px;flex-shrink:0}.prototype-label{font-size:10px;margin-top:9px;letter-spacing:.06em}
.profile-intro>.eyebrow,.screen-intro>.eyebrow,.results-intro .eyebrow,.formula-eyebrow,.routine-heading .eyebrow,.process-heading .eyebrow,.checkout-intro .eyebrow{font-size:12px;line-height:1.5;letter-spacing:.1em}
.app-label{font-size:10px;letter-spacing:.05em}.cart-trigger{font-size:12px}.sticky-action .primary,.checkout-page .primary{font-size:16px}.sticky-total span{font-size:11px}.add-button{font-size:14px;min-width:82px;gap:10px;padding:8px 10px}
.base-ingredient-row .micro,.actives-label .micro{font-size:11px;letter-spacing:.07em}.actives-label>span:last-child{font-size:11px;line-height:1.5;text-align:right}.actives-label{gap:10px}.optional-tag{font-size:10px}.shipping-threshold{font-size:11px}.steps h3{font-size:15px}
.checkout-steps{font-size:12px;gap:15px}.checkout-page label{font-size:14px}.checkout-item h3{font-size:14px}
}
@media(max-width:350px){.journey li,.on-prepare .journey li{font-size:11px}.journey li span,.on-prepare .journey li span{font-size:14px}.journey ol{gap:5px}}
/* Secondary extras stay light; only the formula and checkout use graphite. */
.add-button{background:#fff;border:1px solid #bcaaff;color:#39333e;font-size:14px;min-height:44px;box-shadow:none}
.add-button:hover,.add-button:focus-visible{background:#f2eef7;border-color:#a68bd8;color:#39333e;box-shadow:0 0 0 1px #bcaaff44}
.add-button[aria-pressed="true"],.add-button[aria-pressed="true"]:hover{background:#e2dedf;border-color:#a899bd;color:#332d3a;box-shadow:inset 0 0 0 1px #bcaaff55}
.add-button:disabled{background:#f5f2ef;border-color:#d4cbc3;color:#897f76;box-shadow:none}
/* Readable secondary copy, including all items highlighted in the review. */
.prototype-label,.eyebrow,.micro,.score-note,.scores .score-note,.example-note,.example-note>span,.results-bridge .eyebrow,.product-step,.optional-tag,.shipping-threshold,.trust,.purchase-option small,.pending-price,.sticky-total span{font-size:14px;line-height:1.5}
.example-note>span{margin-left:8px}.score-note{letter-spacing:0}.results-bridge p,.active p,.routine-heading p:last-child,.shipping-copy p,.formula-description,.base-ingredient-row p,.addon-info>p,.purchase-option b,.steps p{font-size:14px;line-height:1.65}
.journey li,.on-prepare .journey li{font-size:14px}.journey li span,.on-prepare .journey li span{font-size:13px}
.purchase-option small{margin-top:5px}.purchase-option b{font-size:16px}.trust{align-items:flex-start;text-align:center;gap:8px}.trust svg{margin-top:4px}.product-step{font-size:12px;letter-spacing:.04em}.actives-label>span:last-child{font-size:13px}.base-ingredient-row .micro,.actives-label .micro{font-size:13px}
@media(max-width:760px){
.journey ol{gap:5px}.journey li,.on-prepare .journey li{font-size:13px;gap:3px;letter-spacing:-.025em}.journey li span,.on-prepare .journey li span{font-size:12px}
.prototype-label,.profile-intro>.eyebrow,.screen-intro>.eyebrow,.results-intro .eyebrow,.formula-eyebrow,.routine-heading .eyebrow,.process-heading .eyebrow,.checkout-intro .eyebrow,.scores .score-note,.example-note,.example-note>span,.results-bridge .eyebrow,.shipping-threshold,.optional-tag,.trust,.purchase-option small,.pending-price,.sticky-total span{font-size:14px;line-height:1.5;letter-spacing:.04em}
.results-bridge p,.active p,.routine-heading p:last-child,.shipping-copy p,.formula-description,.base-ingredient-row p,.addon-info>p,.steps p{font-size:14px;line-height:1.65}
.routine-heading{align-items:flex-start;flex-wrap:wrap;gap:12px}.routine-heading>div{width:100%}.routine-heading p:last-child{max-width:none}.optional-tag{margin:0;padding:5px 9px}
.product-step{font-size:12px;line-height:1.4;letter-spacing:.02em;top:10px;left:9px;right:5px}.addon-media img{padding-top:38px}.addon{grid-template-columns:115px minmax(0,1fr)}.addon-info{padding:20px 13px}.addon-info>p{max-width:none}.addon-bottom{flex-wrap:wrap;gap:10px}.addon-bottom>span{font-size:15px}.add-button{font-size:14px;min-height:44px}
.actives-label>span:last-child{font-size:13px}.base-ingredient-row .micro,.actives-label .micro{font-size:13px}.purchase-option small{font-size:14px}.trust{font-size:13px;line-height:1.6}.purchase-option{gap:10px}.purchase-option .option-price small{font-size:12px}
}
@media(max-width:350px){.journey{padding-left:12px;padding-right:12px}.journey li,.on-prepare .journey li{font-size:12px}.journey li span,.on-prepare .journey li span{font-size:12px}.journey ol{gap:4px}}

/* Thin vector arrows, consistent across devices and system fonts. */
.cta-arrow{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 22px;color:inherit;line-height:1}
.cta-arrow svg{display:block;width:22px;height:22px;stroke:currentColor;pointer-events:none}
.start-scan>.cta-arrow{right:23px;opacity:1;top:50%;transform:translateY(-50%)}
/* Keep mobile actions clear of the home indicator and browser chrome. */
html{scroll-padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))}
@media(max-width:760px){
.scan-app{min-height:100svh}
.sticky-summary{bottom:0;padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
.sticky-inner{padding-top:12px;padding-bottom:16px}
body:not(.scan-app):not(.checkout-page) footer{padding-bottom:calc(165px + env(safe-area-inset-bottom,0px))}
.cover-copy{padding-bottom:calc(36px + env(safe-area-inset-bottom,0px))}
.scan-footer{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}
.on-cover .scan-footer{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}
.checkout-footer{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
.primary,.upload-photo{scroll-margin-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
.drawer{height:100svh;max-height:100svh;padding-bottom:calc(28px + env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain}
}
/* Active identity hues, softened from ABBI's product color references. */
.concern-1{--concern:#d39a83;--concern-light:#f3d4c5;--concern-bg:#fcf0e9}
.concern-2{--concern:#c59ca4;--concern-light:#efd7dc;--concern-bg:#faeef1}
.concern-3{--concern:#8cb7ce;--concern-light:#d3e7f1;--concern-bg:#edf6fb}
.result-card.concern-1,.score.concern-1{border-color:#e8d7cd}
.result-card.concern-2,.score.concern-2{border-color:#e9d8de}
.result-card.concern-3,.score.concern-3{border-color:#d6e4ec}
.active .number.texture-one{background:#f3d4c5;color:#67493c}
.active .number.texture-two{background:#efd7dc;color:#664951}
.active .number.texture-three{background:#d3e7f1;color:#3c5d70}

/* Show camera guidance at the moment of capture. */
.capture-screen .prep-tip-bar{width:min(340px,100%);margin:0 auto 16px;text-align:left;background:#ede7fa;border-color:#c5b2e5;color:#40344f;min-height:48px}
.capture-screen .prep-tip-window p{font-size:15px;line-height:1.5}
.capture-screen #prep-tip-pause{border-left-color:#ccbee3;color:#67517e}
.capture-screen .screen-intro{margin-bottom:18px}
@media(max-width:760px){.capture-screen .prep-tip-bar{width:min(320px,100%);margin-bottom:14px}.capture-screen .prep-tip-window p{font-size:14px}}

#view-formula{background:#29262e;border-color:#29262e;color:#c9b5ff;font-size:18px;min-height:54px}#view-formula:hover{background:#3b3447;color:#dfd2ff}
.formula-visual{display:flex;flex-direction:column;background:#f4f0ea;min-width:0}.formula-photo-label{font-size:14px;letter-spacing:.16em;text-align:center;padding:16px 12px;margin:0;line-height:1.5}.formula-visual .formula-image{flex:1;min-height:500px}
.step-symbol{position:relative;width:46px;height:51px;flex:0 0 46px;color:#766757}.step-symbol svg{width:38px;height:40px;display:block}.step-symbol>span{position:absolute;bottom:0;right:0;width:20px;height:20px;background:#faf9f7;border:1px solid #ccc0b3;border-radius:50%;display:grid;place-items:center;font-size:13px;line-height:1}
.on-prepare .prepare-content input:not([type=checkbox]){background:#fff;border-color:#cbbdae;transition:border-color .2s,box-shadow .2s}.on-prepare .prepare-content input:not([type=checkbox]):hover{border-color:#b9a58e}.on-prepare .prepare-content input:not([type=checkbox]):focus{border-color:#bcaaff;outline:0;box-shadow:0 0 0 2px #bcaaff33}
@media(max-width:760px){
/* Fit both welcome actions into Safari's actual visible height. */
.on-cover .scan-header{height:60px}.on-cover .scan-shop-nav{height:32px}.on-cover .cover-screen{height:calc(var(--app-height,100svh) - 92px);min-height:0;overflow:visible}.on-cover .cover-copy{height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:18px 24px calc(18px + env(safe-area-inset-bottom,0px))}.on-cover .cover-copy h1{font-size:clamp(38px,6.6svh,48px);line-height:1.02}.on-cover .cover-description{font-size:13px;line-height:1.55;margin-top:12px}.on-cover .cover-time{font-size:12px;margin-top:12px}.on-cover .start-scan{margin-top:16px;min-height:48px;font-size:13px;flex-shrink:0}.on-cover .cover-how{margin-top:9px;min-height:44px;font-size:13px;flex-shrink:0}
/* Bring photo actions upward; the image yields height before the buttons do. */
.on-capture .scan-header{height:54px}.on-capture .journey{padding-top:8px;padding-bottom:8px}.on-capture .prototype-label{display:none}.on-capture .capture-screen{padding-top:12px;padding-bottom:18px}.on-capture .capture-screen .screen-intro{margin-bottom:10px}.on-capture .capture-screen .screen-intro h1{font-size:29px;line-height:1.15}.on-capture .capture-screen .prep-tip-bar{min-height:43px;margin-bottom:12px;padding-top:4px;padding-bottom:4px}.on-capture .capture-screen .viewfinder{height:clamp(100px,calc(var(--app-height,100svh) - 470px),230px)}.on-capture .capture-controls{padding:10px 16px}.on-capture .capture-state{display:none}.on-capture .photo-actions{margin-top:0;gap:8px}.on-capture .photo-actions .primary,.on-capture .upload-photo{min-height:44px;padding:10px 16px;font-size:15px}.on-capture .sample-photo-button{font-size:12px;padding:3px 0}.on-capture #capture-hint{display:none}.on-capture .photo-error:empty{display:none}.on-capture .camera-caption{font-size:12px;bottom:12px}.on-capture .capture-privacy{margin-top:13px}.on-capture #photo-review .primary{margin-top:0;min-height:44px;font-size:15px}
.formula-visual .formula-image{height:330px;min-height:0;flex:auto}.formula-photo-label{padding:13px 12px;font-size:13px}.step-symbol{width:40px;flex-basis:40px}.step-symbol svg{width:34px;height:38px}
}
@media(max-height:600px) and (max-width:760px){.on-cover .cover-copy{padding-bottom:12px}.on-cover .cover-description{margin-top:8px;font-size:12px}.on-cover .cover-time{margin-top:8px}.on-cover .start-scan{margin-top:12px}.on-capture .capture-screen{padding-top:8px}}
@media(max-width:760px){.sticky-action{gap:12px}.sticky-total{min-width:0;max-width:120px}.sticky-total span{font-size:12px;letter-spacing:0}.sticky-action .primary{white-space:nowrap;gap:12px;padding:12px 14px;font-size:15px;max-width:none}}

.closing p{font-size:38px;line-height:1.25;margin:0 0 22px}.closing a{font-size:18px;line-height:1.5;min-height:44px;align-items:center;border-bottom-color:#bcaaff;padding-bottom:8px;gap:22px}
@media(max-width:760px){.closing{padding-top:35px;padding-bottom:36px}.closing p{font-size:31px;line-height:1.3;margin-bottom:20px}.closing a{font-size:17px;min-height:44px}}

/* Preserve the complete supplied Custom Cream image. */
.formula-image>img{object-fit:contain}
@media(max-width:760px){.formula-visual .formula-image{height:auto;aspect-ratio:1;flex:none}}

/* Compact skin overview followed by the formula itself, without repeated results. */
.results-screen .results-intro{margin-bottom:12px}.results-screen .photo-link-row{margin-top:14px}
.result-card .concern-summary{font-size:14px;line-height:1.4;min-height:2.8em;max-width:190px;margin:0;color:#6d6660}
.concern-more-arrow{width:16px;height:16px;flex-shrink:0}.result-card .ingredient-more{gap:9px;font-size:14px}
.formula-intro{padding-top:30px;padding-bottom:22px}.formula-intro h1{font-size:48px;line-height:1.12}.formula-intro .eyebrow{margin-bottom:10px}.formula-copy>.formula-description{margin-top:0}
@media(max-width:760px){.results-screen .results-intro{margin-bottom:8px}.result-card .concern-summary{font-size:13px;line-height:1.4;min-height:4.2em;padding:0 4px}.result-card .ingredient-more{font-size:13px;gap:5px}.formula-intro{padding-top:25px;padding-bottom:19px}.formula-intro h1{font-size:38px}.formula-intro .eyebrow{font-size:14px}}

/* A readable, continuous strip with one concise label for each step. */
.process-strip-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}
.process-strip-heading .eyebrow{display:block;margin-bottom:8px}.process-playback{display:flex;align-items:center;gap:7px;flex-shrink:0;padding:9px 12px;min-height:42px;border:1px solid #ded6cd;background:white;color:#665e6c;font:400 14px Figtree,sans-serif}.process-playback>span:first-child{font-size:18px;line-height:1}
.process-strip{overflow:hidden;border-top:1px solid #dfd8d0;border-bottom:1px solid #dfd8d0;background:#faf8f5;padding:22px 0;outline-offset:4px}
.process-track{display:flex;width:max-content;animation:process-travel 24s linear infinite;animation-play-state:paused;will-change:transform}
.process.is-visible .process-track{animation-play-state:running}.process.is-paused .process-track,.process-strip:hover .process-track,.process-strip:focus-within .process-track{animation-play-state:paused}
.process-sequence{display:flex;flex-shrink:0;align-items:center;gap:48px;list-style:none;padding:0 48px 0 0;margin:0}
.process-sequence li{display:flex;align-items:center;gap:14px;white-space:nowrap;padding:0;margin:0;font-size:18px;line-height:1.5}
.process-sequence .process-step-icon{display:block;flex-shrink:0;width:32px;height:32px;color:#a590be;margin:0}.process-sequence .process-step-icon svg{display:block;width:32px;height:32px}
@keyframes process-travel{to{transform:translateX(-50%)}}
@media(max-width:760px){.process-strip-heading{gap:12px;margin-bottom:18px}.process-strip-heading h2{font-size:29px;line-height:1.2}.process-strip-heading .eyebrow{font-size:12px}.process-playback{padding:8px;align-self:flex-start}.process-playback-label{display:none}.process-strip{padding:20px 0}.process-sequence{gap:34px;padding-right:34px}.process-sequence li{font-size:16px;gap:12px}.process-sequence .process-step-icon,.process-sequence .process-step-icon svg{width:29px;height:29px}}
@media(prefers-reduced-motion:reduce){.process-track{animation:none;transform:none;will-change:auto}.process-strip{overflow-x:auto}.process-sequence-copy,.process-playback{display:none}}
/* Purchase details first; the large personalized bottle follows the formula CTA. */
.formula{max-width:860px}.formula-intro{max-width:860px}.formula .formula-card{display:block}.formula .formula-copy{padding:30px 38px}.personalized-formula{max-width:860px;margin-top:34px;margin-bottom:0}.personalized-formula .formula-visual{border:1px solid #dedad5}.personalized-formula .formula-image{display:flex;justify-content:center;min-height:0;height:auto;flex:none;position:relative;background:#f4f0ea;overflow:hidden}.bottle-artwork{position:relative;width:min(100%,640px);aspect-ratio:1;container-type:inline-size}.bottle-artwork>img{position:static;display:block;width:100%;height:100%;object-fit:contain}.bottle-personalization{position:absolute;left:50%;top:54.4%;transform:translateX(-50%);width:19%;text-align:center;color:#302c29;line-height:1.25;pointer-events:none;font-family:Figtree,sans-serif}.bottle-personalization>span{display:block;font-size:1cqw;letter-spacing:.1em}.bottle-personalization>b{display:block;font-size:2.2cqw;font-weight:500;letter-spacing:.015em;transition:opacity .17s ease,transform .17s ease}.bottle-personalization>b.name-changing{opacity:0;transform:translateY(3px)}.bottle-motion-toggle{position:absolute;top:14px;right:14px;min-width:42px;min-height:42px;border:1px solid #cbbfb4;background:#ffffffd9;color:#61576a;font:400 18px Figtree,sans-serif}.personalized-formula .formula-photo-label{padding:14px 12px}
@media(max-width:760px){.formula .formula-copy{padding:22px 20px}.personalized-formula{margin-top:25px}.personalized-formula .formula-image{height:auto;aspect-ratio:auto}.personalized-formula .formula-photo-label{padding:12px;font-size:13px}.bottle-motion-toggle{top:10px;right:10px}}
@media(prefers-reduced-motion:reduce){.bottle-personalization>b{transition:none}.bottle-motion-toggle{display:none}}

/* Step 3 only: results and the invitation to discover the formula share one view. */
.results-screen{padding-top:24px;padding-bottom:20px}.results-screen .results-intro{margin-bottom:14px}.results-screen .results-intro h1{font-size:42px;line-height:1.12}.results-screen .results-intro p:last-child{font-size:15px;line-height:1.45;margin-top:8px}.results-screen .photo-link-row{margin:10px 0 12px}.results-screen .result-card{padding:13px 10px;gap:9px}.results-screen .result-card h2{font-size:20px}.results-screen .concern-ring{width:72px}.results-screen .result-card .concern-summary{font-size:14px;line-height:1.4;min-height:0;margin:0;padding:0}.results-screen .results-bridge{padding:20px 24px;margin-top:18px}.results-screen .results-bridge h2{font-size:28px;line-height:1.2}.results-screen .results-bridge p{font-size:14px;line-height:1.5;margin-top:8px}.results-screen .results-bridge .primary{font-size:17px;min-height:49px}.results-screen>.scan-back{margin-top:10px}
@media(max-width:760px){.results-screen{padding-top:19px;padding-bottom:14px}.results-screen .results-intro{gap:12px;margin-bottom:12px}.results-screen .results-intro h1{font-size:32px;line-height:1.1;max-width:270px}.results-screen .results-intro p:last-child{font-size:14px;line-height:1.4;margin-top:7px}.results-screen .result-selfie{width:44px;flex-shrink:0}.results-screen .result-selfie img{width:44px;height:55px;object-fit:cover}.results-screen .result-selfie span{display:none}.results-screen .photo-link-row{margin:8px 0 10px;gap:8px}.results-screen .photo-link-row>span{font-size:12px}.results-screen .view-photo{font-size:14px;padding:6px 11px;min-height:39px}.results-screen .result-card{padding:12px 4px;gap:8px}.results-screen .result-card h2{font-size:16px;letter-spacing:-.03em}.results-screen .concern-ring{width:60px}.results-screen .concern-ring .score-value{font-size:23px}.results-screen .result-card .concern-summary{font-size:13px;line-height:1.35}.results-screen .results-bridge{padding:17px 18px;margin-top:16px}.results-screen .results-bridge .eyebrow{font-size:12px;margin-bottom:6px}.results-screen .results-bridge h2{font-size:26px;line-height:1.17}.results-screen .results-bridge p{font-size:14px;line-height:1.4;margin-top:7px}.results-screen .results-bridge .primary{margin-top:13px;font-size:17px;padding:12px 15px;min-height:48px}.results-screen>.scan-back{font-size:13px}}
@media(max-width:350px){.results-screen .results-intro h1{font-size:29px}.results-screen .result-card h2{font-size:14px}.results-screen .concern-ring{width:54px}.results-screen .results-bridge h2{font-size:24px}}

@media(max-width:760px) and (max-height:700px){.on-results .scan-header{height:54px}.on-results .journey{padding:9px 18px}.on-results .journey .prototype-label{display:none}.on-results .journey li{font-size:13px}.results-screen{padding-top:14px}.results-screen .results-intro h1{font-size:29px}.results-screen .result-card{gap:7px;padding-top:10px;padding-bottom:10px}.results-screen .concern-ring{width:54px}.results-screen .results-bridge{padding:14px 16px;margin-top:13px}.results-screen .results-bridge p{display:none}.results-screen .results-bridge .primary{margin-top:12px}}

@media(max-width:760px) and (max-height:620px){.results-screen .results-bridge .eyebrow{display:none}}

.active h3 .pipette-icon{display:inline-block;width:16px;height:24px;vertical-align:middle;margin-right:5px;color:#9b8d81}

/* Slightly richer result explanations, with the primary action kept in view. */
@media(max-width:760px){.results-screen .result-card .concern-summary{font-size:13px;line-height:1.3}.results-screen .results-bridge{margin-top:13px}.results-screen .results-bridge p{margin-top:6px}}
@media(max-width:760px) and (max-height:700px){.results-screen .results-intro>div>p:last-child{display:none}.results-screen .results-intro{margin-bottom:9px}}
/* A smaller preview below the formula headline, with an explicit review annotation. */
.personalized-formula{margin-top:0;margin-bottom:24px}.personalized-formula .formula-photo-label{padding:10px 12px}.bottle-artwork{width:min(100%,480px)}.bottle-personalization>b{font-size:4cqw;font-weight:550;transition:none}.bottle-personalization>span{font-size:1cqw}.bottle-dan-note{position:absolute;left:69%;top:38%;width:28%;color:#4e453e;font-family:Figtree,sans-serif}.bottle-dan-note>b{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:550;line-height:1.25}.bottle-dan-note>b>span{display:block;width:7px;height:7px;border-radius:50%;background:#d4ae54;flex-shrink:0}.bottle-dan-note p{font-size:14px;line-height:1.3;margin:5px 0 0}.bottle-name-pointer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.bottle-name-pointer path{stroke:#a08a64;stroke-width:.3;stroke-linecap:round;stroke-linejoin:round}.bottle-name-pointer circle{fill:#d4ae54}
@media(max-width:760px){.personalized-formula{margin-top:0;margin-bottom:19px}.personalized-formula .formula-photo-label{padding:9px 12px;font-size:12px}.bottle-artwork{width:min(100%,300px)}.bottle-dan-note{top:35%;left:69%;width:29%}.bottle-dan-note>b{font-size:14px;gap:4px}.bottle-dan-note p{font-size:13px;line-height:1.25;margin-top:4px}.bottle-dan-note>b>span{width:6px;height:6px}}
/* Edge-to-edge bottle photograph, with both captions inside the image. */
.personalized-formula{max-width:640px}.personalized-formula .formula-visual{position:relative;display:block;border:0;background:transparent}.personalized-formula .formula-image{background:transparent;display:block}.personalized-formula .bottle-artwork{width:100%;max-width:none}.personalized-formula .formula-photo-label{position:absolute;top:16px;left:20px;z-index:2;padding:0;margin:0;font-size:13px;color:#51453c;text-align:left}.personalized-formula .formula-photo-label:last-child{top:auto;left:auto;right:20px;bottom:16px;text-align:right}.bottle-personalization{top:55%;line-height:1.2}
.routine-choice-label{display:block;font-size:13px;line-height:1.4;margin:13px 0 5px;color:#746b64}.routine-choice-wrap{position:relative;width:100%;max-width:100%}.routine-choice{display:block;width:100%;max-width:100%;min-height:44px;appearance:none;-webkit-appearance:none;border:1px solid #c8b6e2;border-radius:0;background:#fff;color:#39333e;font:400 14px/1.4 Figtree,sans-serif;padding:9px 34px 9px 10px;cursor:pointer}.routine-choice:focus{outline:1px solid #a78acd;outline-offset:2px;background:#faf7ff}.routine-choice-wrap>svg{position:absolute;right:9px;top:13px;width:18px;height:18px;pointer-events:none;color:#8f779f}.addon-info{min-width:0}.addon-bottom{margin-top:17px}.night-content{display:flex;align-items:center;gap:22px}.night-content>img{width:80px;height:110px;object-fit:contain;background:#f7f4f0}.night-content h3{font-size:20px;margin-bottom:7px}.night-content p{font-size:15px;line-height:1.6}.night-explore{display:inline-flex;align-items:center;gap:20px;margin-top:16px;padding:10px 14px;min-height:44px;border:1px solid #bcadd0;background:#fff;color:#44354f;font:500 15px Figtree,sans-serif}
@media(max-width:760px){.personalized-formula .formula-photo-label{top:12px;left:14px;font-size:12px}.personalized-formula .formula-photo-label:last-child{right:14px;bottom:12px}.routine-choice{font-size:13px;padding-left:9px}.routine-choice-label{font-size:13px;margin-top:10px}.night-content{align-items:flex-start;gap:14px}.night-content>img{width:60px;height:90px}.night-content h3{font-size:18px}.night-content p{font-size:14px}.night-explore{font-size:14px;padding:9px 11px;gap:10px}}

.night-explore-arrow{width:20px;height:20px;flex:none;opacity:.85}

/* A clear two-line result heading with a more visible personal photo. */
.results-screen .results-name,.results-screen .results-skin-title{display:block}
.results-screen .results-name{white-space:nowrap}
.results-screen .results-intro>div:first-child{min-width:0}
.results-screen .result-selfie{flex-shrink:0}
.results-screen .result-selfie img{width:88px;height:110px}
@media(max-width:760px){.results-screen .result-selfie{width:68px}.results-screen .result-selfie img{width:68px;height:85px}.results-screen .results-intro h1{max-width:none}}

/* One concise result introduction; the cards carry the detail. */
.results-screen .photo-link-row{justify-content:flex-end}
.results-screen .result-selfie img{width:104px;height:130px}
.results-screen .result-selfie>span{display:none}
.results-screen .results-skin-title{max-width:620px}
@media(max-width:760px){.results-screen .results-intro{align-items:center}.results-screen .result-selfie{width:78px}.results-screen .result-selfie img{width:78px;height:98px}.results-screen .results-skin-title{font-size:28px;line-height:1.08;max-width:250px}.results-screen .photo-link-row{margin-top:4px}}
@media(max-width:350px){.results-screen .results-skin-title{font-size:25px}}

.results-screen .results-client-name{font-family:Figtree,sans-serif;font-size:16px;font-weight:500;line-height:1.3;margin:0 0 7px;color:#746b64}
.results-screen .results-intro h1{max-width:640px}
@media(max-width:760px){.results-screen .results-intro h1{font-size:28px;line-height:1.08;max-width:250px}.results-screen .results-client-name{font-size:16px;margin:0 0 7px}}

/* Keep the customer name in the editorial headline and soften shipping. */
.results-screen .results-intro h1 .results-name,.results-screen .results-intro h1 .results-skin-title{font:inherit;letter-spacing:inherit;line-height:inherit}
.shipping{background:#f4f3f1;border-color:#e4e0db}
.shipping-track{background:#e3dfda}
.shipping-track>span{background:#aaa198}
@media(max-width:760px){.results-screen .results-intro h1{font-size:30px;line-height:1.06}.results-screen .results-intro h1 .results-skin-title{max-width:none}}

.bottle-personalization{top:53.5%}.bottle-personalization>b{font-size:3.3cqw}

.results-screen .results-name{white-space:normal;overflow-wrap:anywhere}.bottle-personalization>b{overflow-wrap:anywhere}

/* A softly opening circular scan, with a two-way laser and visible progress. */
.analysis-scan{width:240px;height:240px;border-radius:50%;clip-path:circle(48% at 50% 50%);animation:scan-aperture 2.2s ease-in-out infinite;box-shadow:inset 0 0 0 1px #bcaaff75}
.analysis-scan>img{object-position:center 35%}
.scan-beam{height:20px;animation:skin-scan-sweep 1.1s ease-in-out infinite alternate}
@keyframes scan-aperture{0%,100%{clip-path:circle(45% at 50% 50%)}50%{clip-path:circle(50% at 50% 50%)}}
@keyframes skin-scan-sweep{0%{top:5%;opacity:.65}15%,85%{opacity:1}100%{top:86%;opacity:.65}}
.analysing-screen .analysis-progress{width:240px;height:5px;border-radius:4px;overflow:hidden;background:#e6e0db;margin:22px 0 6px}
.analysing-screen .analysis-progress>span{background:#a995d3;transition:width .06s linear;border-radius:4px}
.analysing-screen .analysis-percentage{font:500 18px/1.4 Figtree,sans-serif;font-variant-numeric:tabular-nums;color:#625276;margin:0}
@media(max-width:760px){.analysis-scan{width:220px;height:220px}.analysing-screen .analysis-progress{width:220px}}
@media(prefers-reduced-motion:reduce){.analysis-scan,.scan-beam{animation:none}.analysis-scan{clip-path:circle(49% at 50% 50%)}.scan-beam{top:48%}.analysing-screen .analysis-progress>span{transition:none}}

#analysis-percentage{font:500 18px/1.4 Figtree,sans-serif;font-variant-numeric:tabular-nums;color:#625276;margin:0}

/* Ingredient thumbnails replace active number badges only. */
.active-ingredient-preview{flex:0 0 76px;width:76px;padding:0;border:0;display:flex;flex-direction:column;align-items:center;gap:5px;background:transparent;color:var(--ink)}.active-ingredient-preview img{display:block;width:64px;height:64px;object-fit:cover}.active-ingredient-preview>span{font-size:12px;line-height:1.4;border-bottom:1px solid #c9c1ba}.active-ingredient-preview:hover>span{border-color:#bcaaff}.active-ingredient-preview:focus-visible{outline:2px solid #bcaaff;outline-offset:3px}
