:root{--background:#080909;--text:#E8E7E2;--secondary:#AAA9A4;--accent:#BFC8D8;--accent-bright:#D8E3F0;--border:#59616D;--surface:#101214;--surface-raised:#171B20}
[hidden],.hidden{display:none!important}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:320px;background:var(--background);color:var(--text);font-family:'Cormorant Garamond',Georgia,serif;font-size:18px}
button,input{font:inherit}
a{color:inherit;text-decoration:none}
button,a,input,summary{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent-bright);outline-offset:5px}
button{cursor:pointer}
button:disabled{opacity:.5;cursor:wait}
.topbar{max-width:1160px;margin:auto;padding:28px 32px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}
.wordmark{font-size:30px;color:var(--accent);letter-spacing:1px}
.wordmark span{display:block;color:var(--secondary);font-size:11px;letter-spacing:3px;margin-top:3px}
.topbar>a:last-child{font-size:17px;color:var(--secondary)}
.hero{text-align:center;padding:54px 20px 32px}
.eyebrow{font-size:12px;letter-spacing:3px;color:var(--accent);margin:0 0 18px}
h1{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:clamp(32px,4.8vw,64px);line-height:1.15;font-weight:500;letter-spacing:-1.8px;margin:0 0 20px}
h1 em{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.2em;font-weight:400;line-height:1.15;color:var(--accent-bright)}
.hero-copy{color:var(--secondary);font-size:21px;line-height:1.5;margin:0}
h2{font-size:32px;font-weight:400;margin:0 0 12px}
h3{font-weight:400;font-size:25px}
.analysis-shell{position:relative;max-width:900px;margin:0 auto;background:radial-gradient(ellipse at 50% 0%,#BFC8D827,transparent 65%),var(--surface);border:1px solid var(--border);border-radius:4px;padding:30px}
.upload-area{position:relative;min-height:0;aspect-ratio:auto;background:none;border:1px dashed var(--border);border-radius:2px;text-align:center;padding:26px 20px;transition:background .2s,border-color .2s}
.upload-area.dragover{background:var(--surface-raised);border-color:var(--accent-bright)}
.upload-inner{pointer-events:auto}
.upload-inner p{color:var(--secondary);font-size:18px;margin:0 0 24px}
.pill-stage{width:160px;height:68px;margin:0 auto 20px;position:relative}
.pill-stage img{width:160px;height:auto;animation:float-pill 6s ease-in-out infinite}
.pill-shadow{position:absolute;bottom:0;left:20%;width:60%;height:6px;border-radius:50%;background:#BFC8D825;filter:blur(7px)}
@keyframes float-pill{0%,100%{transform:translateY(0) rotate(-6deg)}
50%{transform:translateY(-8px) rotate(4deg)}
}
.gold-button{display:inline-flex;justify-content:center;align-items:center;position:relative;min-height:54px;padding:13px 35px;border:1px solid var(--border);border-radius:30px;background:linear-gradient(110deg,var(--accent-bright),#BFC8D8 70%,var(--accent-bright));box-shadow:0 7px 27px #BFC8D815;color:#080909;font-size:18px;font-family:inherit;cursor:pointer}
.gold-button:hover{filter:brightness(1.09)}
.native-photo-picker{overflow:hidden}
.native-photo-picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;display:block!important;pointer-events:auto}
.native-photo-picker:focus-within{outline:2px solid var(--accent-bright);outline-offset:5px}
.native-photo-picker span{pointer-events:none}
.upload-inner .drop-hint{font-size:15px;margin:20px 0 0;color:var(--secondary)}
.upload-thumb{position:relative;height:350px}
.upload-thumb img{height:100%;max-width:100%;object-fit:contain}
.thumb-remove{position:absolute;right:0;top:0;display:grid;place-items:center;border:1px solid var(--border);width:36px;height:36px;border-radius:50%;background:#111d;color:var(--accent-bright);font-size:26px}
#readyActions{text-align:center;padding-top:8px}
#readyActions p{color:var(--secondary)}
.error{color:#e8a59c;line-height:1.5;white-space:pre-line}
.error:empty{display:none}
.privacy-note{text-align:center;color:var(--secondary);font-size:15px;margin:18px 20px}
.privacy-note span{margin:0 8px;color:var(--accent)}
.result-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.result-heading .eyebrow{margin-bottom:8px}
.result-heading h2{font-size:32px}
.text-button{background:none;border:1px solid var(--border);color:var(--accent);padding:10px 18px;font-family:inherit;font-size:17px}
.result-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.scan-image{position:relative;min-height:0;align-self:start;background:var(--background);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden}
.scan-image canvas{width:100%;height:auto;max-width:100%;display:block}
.image-label{position:absolute;bottom:12px;left:12px;font-size:11px;letter-spacing:2px;color:var(--accent-bright);background:#090909c9;padding:6px 8px}
.scan-line{position:absolute;inset:0;pointer-events:none;border-top:2px solid var(--accent-bright);background:linear-gradient(#BFC8D822,transparent 15%);animation:sweep 2.4s linear infinite}
@keyframes sweep{from{transform:translateY(-100%)}
to{transform:translateY(100%)}
}
#scanStatus{color:var(--accent);font-size:17px;line-height:1.4;margin:4px 0 22px}
.measurement-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.measurement{background:var(--surface-raised);border:1px solid var(--border);padding:20px 10px;text-align:center}
.measurement strong{display:block;color:var(--accent-bright);font-size:36px;font-weight:400}
.measurement span{color:var(--secondary);font-size:15px}
.mesh-toggle{display:flex;gap:10px;align-items:center;font-size:17px;margin:22px 0;color:var(--accent-bright)}
.mesh-toggle input{width:17px;height:17px;accent-color:var(--accent)}
.result-note{font-size:15px;line-height:1.5;color:var(--secondary);margin:12px 0}
#scanWaiting{padding:35px 14px;text-align:center;color:var(--secondary);line-height:1.5}
.loading-orbit{display:inline-block;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);border-top-color:var(--accent-bright);animation:spin 1.4s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}
}
.faq{max-width:820px;padding:70px 24px 80px;margin:auto;scroll-margin-top:30px}
.faq>h2{font-size:40px;margin-bottom:28px}
.faq details{border-top:1px solid var(--border);padding:20px 0}
.faq details:last-child{border-bottom:1px solid var(--border)}
.faq summary{cursor:pointer;font-size:21px;list-style:none;display:flex;justify-content:space-between;gap:18px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';color:var(--accent)}
.faq details[open] summary::after{content:'−'}
.faq details p{font-size:18px;line-height:1.6;color:var(--secondary);margin:16px 30px 0 0}
footer{border-top:1px solid var(--border);padding:28px;text-align:center;color:var(--accent);font-size:14px;letter-spacing:3px}
footer span{display:block;color:var(--secondary);font-size:16px;letter-spacing:0;margin-top:8px}
@media(max-width:650px){.topbar{padding:20px}
.wordmark{font-size:25px}
.wordmark span{font-size:9px;letter-spacing:2px}
.topbar>a:last-child{font-size:15px}
.hero{padding-top:38px}
.hero .eyebrow{font-size:10px;letter-spacing:2px}
h1{letter-spacing:-1px}
.hero-copy{font-size:19px}
.desktop-break{display:none}
.analysis-shell{margin:0 16px;padding:16px}
.upload-area{padding:24px 12px}
.upload-inner h2{font-size:28px}
.privacy-note{line-height:1.5;font-size:14px}
.privacy-note span{display:block;height:4px;font-size:0}
.result-layout{grid-template-columns:1fr}
.result-heading{align-items:flex-start}
.result-heading h2{font-size:27px}
.result-heading .text-button{font-size:15px;padding:8px 10px}
.faq{padding-top:55px}
.faq>h2{font-size:34px}
.faq summary{font-size:20px}
.upload-thumb{height:280px}

}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{animation:none!important;transition:none!important}
}


/* Reference upload component, with the existing FaceRate type and cool accent palette. */
.analysis-shell{border:0;background:none;padding:0;max-width:900px}
.upload-area{padding:0;border:0;border-radius:36px;background:radial-gradient(circle at 50% 0%,#BFC8D817,transparent 70%),var(--surface);box-shadow:0 18px 50px #0006;overflow:hidden}
.upload-card__body{border:1.5px dashed #59616D;border-radius:36px;padding:48px 24px 40px;display:flex;flex-direction:column;align-items:center;gap:30px}
.upload-preview{display:flex;align-items:center;justify-content:center;position:relative;height:165px;width:300px;margin:0 auto}
.upload-preview img{width:140px;height:140px;border-radius:20px;object-fit:cover;box-shadow:0 12px 28px #0008;border:2.5px solid var(--accent);transition:transform .3s ease;position:absolute}
.upload-preview img:first-child{left:10px;top:10px;z-index:1;transform:rotate(-12deg)}
.upload-preview img:last-child{right:10px;bottom:10px;z-index:2;transform:rotate(12deg)}
.upload-card__body:hover .upload-preview img:first-child{transform:rotate(-18deg) translateY(-3px)}
.upload-card__body:hover .upload-preview img:last-child{transform:rotate(18deg) translateY(-3px)}
.upload-card__body h2{font-size:32px;font-weight:500;margin:0}
.upload-card__body .drop-hint{font-size:18px;color:var(--secondary);margin:0 0 8px}
.upload-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:15px 32px;min-height:58px;border-radius:12px;border:1px solid var(--accent);background:#BFC8D80a;color:var(--accent-bright);box-shadow:0 8px 24px #BFC8D812;transition:background .2s,box-shadow .2s;font-size:20px;font-weight:500;cursor:pointer}
.upload-btn:hover{background:#BFC8D81c;box-shadow:0 8px 28px #BFC8D820}
.upload-thumb{margin:24px;height:350px}
#scanView{border:1px solid var(--border);border-radius:20px;padding:28px;background:var(--surface)}
@media(max-width:650px){.analysis-shell{margin:0 16px;padding:0}.upload-card__body{padding:36px 20px;gap:26px}.upload-preview{width:220px;height:130px}.upload-preview img{width:100px;height:100px}.upload-preview img:first-child{left:8px;top:5px}.upload-preview img:last-child{right:8px;bottom:5px}.upload-card__body h2{font-size:27px}.upload-card__body .drop-hint{font-size:16px;line-height:1.5}.upload-btn{font-size:18px;padding:12px 28px}.upload-thumb{height:280px;margin:16px}#scanView{padding:16px}}

.photo-column{min-width:0;align-self:start}.photo-column>.result-note{text-align:center;font-size:13px}.result-detail{min-width:0}
.metric-instruction{color:var(--secondary);font-size:16px;margin:0 0 14px}
button.measurement{font-family:inherit;color:var(--text);cursor:pointer;transition:border-color .2s,background .2s;width:100%;min-width:0;padding:18px 10px}
button.measurement[aria-pressed="true"]{border-color:var(--accent-bright);background:#222831}
button.measurement:hover{border-color:var(--accent)}
.measurement strong{font-size:clamp(23px,2.3vw,31px);margin:8px 0;overflow-wrap:anywhere}
.measurement small{display:block;color:var(--secondary);font-size:13px;line-height:1.3}
.measurement span{color:var(--text);font-size:17px}
.metric-explanation{border-bottom:1px solid var(--border);padding:18px 0}
.metric-explanation h3{margin:0 0 8px;font-size:24px}.metric-explanation p{font-size:17px;line-height:1.5;margin:0;color:var(--secondary)}
.metric-explanation #eyeDetails{margin-top:12px;color:var(--text)}
#hairlineActions .text-button{margin-top:10px;font-size:16px}#hairlineEditor{margin-top:16px;padding:14px;border:1px solid var(--border)}
#hairlineEditor label{font-size:17px;display:block}#hairlineSlider{display:block;width:100%;margin:18px 0;accent-color:var(--accent)}
.hairline-buttons{display:flex;gap:10px;flex-wrap:wrap}.scan-image canvas.marking{cursor:crosshair}
@media(max-width:650px){.measurement strong{font-size:25px}.measurement span{font-size:16px}.measurement small{font-size:13px}}
/* Outlined call to action and layered scan presentation. */
.analyze-button{display:inline-flex;align-items:center;justify-content:center;gap:40px;min-width:260px;padding:18px 30px;border:1px solid var(--accent);border-radius:2px;background:transparent;color:var(--accent-bright);font:inherit;font-size:19px;letter-spacing:.04em;cursor:pointer;transition:background .25s,border-color .25s,box-shadow .25s}
.analyze-button:hover{background:#BFC8D812;border-color:var(--accent-bright);box-shadow:0 0 28px #BFC8D80c}.analyze-button:focus-visible{outline:2px solid var(--accent-bright);outline-offset:5px}.analyze-button:disabled{opacity:.5;cursor:wait}.analyze-button span{font-family:system-ui;font-size:24px}
.scan-line{border:0;background:linear-gradient(90deg,#08090930,transparent 35%,transparent 65%,#08090930);animation:none;overflow:hidden}
.scan-line::before{content:'';position:absolute;inset:0;background-image:linear-gradient(#D8E3F018 1px,transparent 1px),linear-gradient(90deg,#D8E3F018 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(ellipse,#000,transparent 72%);animation:scan-breathe 3s ease-in-out infinite}
.scan-beam{position:absolute;inset:0 0 auto;height:25%;background:linear-gradient(transparent,#BFC8D82b);border-bottom:1px solid #D8E3F0;box-shadow:0 10px 25px -12px #D8E3F0;animation:scan-pass 2.8s ease-in-out infinite alternate}
.scan-reticle{position:absolute;inset:8%;border:1px solid #D8E3F060;clip-path:polygon(0 0,14% 0,14% 1%,1% 1%,1% 14%,0 14%,0 0,100% 0,100% 14%,99% 14%,99% 1%,86% 1%,86% 0,100% 0,100% 100%,86% 100%,86% 99%,99% 99%,99% 86%,100% 86%,100% 100%,0 100%,0 86%,1% 86%,1% 99%,14% 99%,14% 100%,0 100%);animation:scan-breathe 3s ease-in-out infinite}
.is-scanning .scan-image canvas{animation:scan-reveal 1.2s ease-out both}.is-scanning .image-label{animation:scan-breathe 2s ease-in-out infinite}.is-scanning #landmarkNote{visibility:hidden}
#scanWaiting{align-self:center;padding:40px 20px}#scanWaiting h3{font-size:32px;font-weight:400;color:var(--accent-bright);margin:16px 0}#scanWaiting .eyebrow{font-size:11px;margin-top:26px}.loading-orbit{width:68px;height:68px;position:relative;border-color:#59616D50;border-top-color:var(--accent-bright)}.loading-orbit::before{content:'';position:absolute;inset:10px;border:1px solid #BFC8D870;border-left-color:transparent;border-radius:50%;animation:spin 3s linear reverse infinite}.loading-orbit::after{content:'';position:absolute;inset:28px;background:var(--accent-bright);border-radius:50%;box-shadow:0 0 20px #D8E3F080}
.scan-steps{display:flex;justify-content:center;gap:16px;margin-top:28px;font-size:14px}.scan-steps span{animation:scan-stage var(--scan-duration,6s) ease-in-out both}.scan-steps span:nth-child(2){animation-delay:1.5s}.scan-steps span:nth-child(3){animation-delay:3s}
#poseNote:empty{display:none}
@keyframes scan-pass{from{transform:translateY(-100%)}to{transform:translateY(400%)}}
@keyframes scan-breathe{50%{opacity:.35}}
@keyframes scan-reveal{from{filter:brightness(.65);opacity:.5}to{filter:brightness(1);opacity:1}}
@keyframes scan-stage{0%{opacity:.35}35%,100%{opacity:1;color:var(--accent-bright)}}
@media(prefers-reduced-motion:reduce){.scan-line *,.scan-line::before,.is-scanning .scan-image canvas,.is-scanning .image-label,.loading-orbit,.loading-orbit::before,.scan-steps span{animation:none}.scan-beam{transform:translateY(150%)}.analyze-button{transition:none}}
.analyze-button{border-radius:999px;padding:16px 30px;min-width:230px;gap:26px}
.scan-focus{position:absolute;width:24%;height:18%;border:1px solid #D8E3F080;background:radial-gradient(ellipse,#D8E3F01a,transparent 75%);box-shadow:0 0 22px #D8E3F015;animation:focus-search 4.2s ease-in-out infinite alternate}
.scan-focus-one{left:22%;top:28%}.scan-focus-two{left:53%;top:43%;animation-delay:-2s;animation-direction:alternate-reverse}
.scan-pulse{position:absolute;left:15%;top:18%;width:70%;height:65%;border:1px solid #D8E3F055;border-radius:50%;animation:focus-pulse 2.4s ease-out infinite;box-shadow:inset 0 0 40px #D8E3F009}
.scan-readout{position:absolute;top:18px;left:18px;color:var(--accent-bright);font:9px/1.7 system-ui,sans-serif;letter-spacing:.18em;background:#08090980;padding:7px 10px}.scan-readout span{display:block;letter-spacing:.6em;animation:scan-breathe 1.2s ease-in-out infinite}
.is-scanning .image-label{visibility:hidden}
@keyframes focus-search{0%{transform:translate(0,0);opacity:.2}35%{opacity:1}60%{transform:translate(18%,80%)}100%{transform:translate(-15%,140%);opacity:.35}}
@keyframes focus-pulse{0%{transform:scale(.65);opacity:0}30%{opacity:.7}100%{transform:scale(1.25);opacity:0}}
@media(prefers-reduced-motion:reduce){.scan-focus,.scan-pulse,.scan-readout span{animation:none}}

.age-panel{margin-top:24px;padding-top:22px;border-top:1px solid var(--border)}.age-panel>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.age-panel strong{font-size:32px;color:var(--accent-bright);font-weight:400}.age-panel button{border-radius:999px}
#expressionValue{font-size:1.35rem;text-align:right}.expression-row{display:flex;justify-content:space-between;gap:1rem;margin:.5rem 0;color:var(--muted,#aaa9a4)}#expressionDetails{display:block;margin-bottom:1rem}
