/* AND BLINQ — luminous precision, 0.4.0. */
:root{color-scheme:dark;--bg:#030709;--panel:#0a1015;--line:#25303a;--text:#e6edf3;--muted:#a8b7c6;--mint:#a6dcff;--gold:#ffc39b;font-weight:400}
body{background:radial-gradient(ellipse at 50% 0,#0c172155,transparent 58%),var(--bg);font-weight:400}
main{max-width:560px;padding:28px 24px calc(100px + env(safe-area-inset-bottom))}
.brand-header{display:flex;justify-content:space-between;align-items:flex-start;margin:0 0 26px;gap:12px}
.brand-lockup{font-size:.94rem;line-height:1.2;letter-spacing:.22em;text-decoration:none;color:var(--text);font-weight:400}
.brand-lockup small{display:block;font-size:.75rem;letter-spacing:.055em;color:var(--muted);margin-top:7px}
.scan-edition{font-size:.75rem;letter-spacing:.12em;white-space:nowrap;padding-top:2px;color:var(--muted)}
.mode-tabs{background:transparent;border:0;border-bottom:1px solid var(--line);padding:0;border-radius:0;margin:0 0 20px;gap:18px}
.mode-tabs button{border-radius:0;min-height:44px;font-size:.875rem;font-weight:400;border-bottom:1px solid transparent}
.mode-tabs button[aria-pressed="true"]{background:transparent;color:var(--text);border-bottom-color:var(--mint)}
button{font-weight:400;border:1px solid #506777;background:linear-gradient(155deg,#15202a,#070d12);color:var(--text);border-radius:24px;min-height:48px}
button:not(:disabled):hover{border-color:#abd8f5;background:linear-gradient(155deg,#1d2b38,#0b151e)}
button:disabled{opacity:.45}button:focus-visible,summary:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #c2e5ff;outline-offset:4px}
.primary{min-height:52px;letter-spacing:.14em;font-size:.9rem;border-color:#5b768c;background:radial-gradient(ellipse at 50% 0,#2e4a6044,transparent 75%),#0b1219;box-shadow:inset 0 0 20px #a6dcff05,0 0 20px #4b9fde08}
.scan-intro{text-align:center;padding:0 0 20px}.iris-hero{display:block;width:min(100%,340px);height:auto;aspect-ratio:1;margin:-6px auto -12px;mix-blend-mode:screen}
.scan-intro h1{font-size:clamp(1.65rem,7.4vw,2.2rem);font-weight:300;line-height:1.3;letter-spacing:.18em;margin:0 0 14px;padding-left:.18em}
.intro-kicker{font-size:.8rem;letter-spacing:.22em;color:#ccdce8;margin:0 0 26px}.start-scan{max-width:320px;margin:0 auto}.intro-description{font-size:.8rem;line-height:1.8;color:var(--muted);margin:15px 0 8px}.development-note{font-size:.75rem;color:#8799aa;margin:0}
h2{font-weight:400}.note{font-size:.875rem}.screen-kicker{letter-spacing:.15em;font-size:.75rem!important;color:var(--muted);margin-top:24px}.text-button{background:none;border:0;min-height:44px;padding:0;font-size:.875rem;color:var(--muted);text-align:left}.text-button:hover{background:none!important}
.setup-card,.result-card,.candidate-card,.eye-grid article{border-color:var(--line);background:linear-gradient(130deg,#10192277,#070c11cc);border-radius:16px;box-shadow:inset 0 1px 0 #b9d8ef06}
.setup-card{padding:22px 20px}.setup-card h2{font-size:1.3rem}.setup-card>p{font-size:.875rem}legend{font-size:.95rem;font-weight:400}.kind-choice{gap:10px}.kind-choice label{border-color:#354351;border-radius:8px;font-size:.875rem}.kind-choice label:has(input:checked){border-color:var(--mint);background:#a6dcff0c}.field-label{font-size:.9rem}
input[type="text"],select,textarea{background:#060c11;border-color:#354351;font-size:1rem;color:var(--text)}#subjective-options button{background:#101a22;border-color:#354351;font-weight:400;border-radius:8px}#subjective-options button[aria-pressed="true"]{background:#b9e3ff;color:#07121b;border-color:#b9e3ff}.check-label{font-size:.875rem}.subjective p{font-size:.8rem}.field-label span{font-size:.8rem}.research-entry a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 0;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;font-size:.875rem;color:var(--text)}.research-entry span{font-size:.75rem;color:var(--muted);letter-spacing:.08em}.history-panel{border-top:0;margin:20px 0;padding:4px 0 16px}.history-item{background:#0c141b;font-size:.875rem;border-radius:8px}.quiet{font-size:.875rem}.history-panel summary{font-size:.875rem}footer{font-size:.75rem;color:#8799aa;text-align:center}footer a{font-size:.875rem}.controls{background:#081018ef}.camera-panel{background:#081018;border-color:var(--line);border-radius:14px}.viewport{background:#020507}.guide{background:#06101ade;border-color:#4c687e}.status-grid>div{background:#091018}.eye-grid p,.eye-grid .unit,.data-panel dt,.data-panel dd{font-size:.875rem}.meter{background:#26333f}.data-panel dl>div{border-bottom-color:var(--line)}
@media(min-width:650px){main{padding-top:36px}#subjective-options{grid-template-columns:repeat(6,1fr)}.setup-card,.result-card{padding:26px}}
@media(max-width:360px){main{padding:22px 16px 90px}.brand-lockup{font-size:.85rem;letter-spacing:.16em}.brand-lockup small{font-size:.75rem;letter-spacing:0}.scan-edition{font-size:.75rem}.setup-card{padding:20px 16px}.research-entry a{flex-wrap:wrap}.iris-hero{max-width:280px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Results: every arc follows a measured value; missing scores remain unfilled. */
.result-card{margin-top:20px;padding:22px 20px;background:transparent;border:0;border-radius:0}.completion-mark{width:44px;height:44px;border:1px solid #9ec9e8;border-radius:50%;display:grid;place-items:center;font-size:22px;margin:0 auto;color:#d3eaff;box-shadow:0 0 22px #7fbfff28}.centered{text-align:center;margin:12px 0 24px!important}.result-heading{justify-content:center;flex-wrap:wrap;margin:0}.result-heading h2{font-size:.875rem}.result-heading>span{font-size:.75rem}.score-name{text-align:center;font-size:.875rem;font-weight:300;letter-spacing:.24em;margin:26px 0 16px}.battery-ring{--value:0%;position:relative;width:min(242px,100%);aspect-ratio:1;border-radius:50%;padding:5px;margin:0 auto;background:conic-gradient(from -36deg,#42647f 0%,#84c9ff calc(var(--value)*.65),#e6f7ff var(--value),#273039 var(--value),#171e25 100%);box-shadow:0 0 34px #63b1ef18,0 0 0 6px #779bbb08}.battery-ring::after{content:"";position:absolute;inset:10px;border:1px solid #7ca5c317;border-radius:50%;pointer-events:none}.battery-core{border-radius:50%;background:radial-gradient(circle at 80% 12%,#182a3a66,transparent 50%),#030709;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.score-value{font-size:clamp(3.5rem,18vw,5rem);font-weight:200;line-height:1.15;letter-spacing:-.03em;color:var(--text)}.score-unit{font-size:1rem;font-weight:300;margin-top:8px}.battery-ring.pending{background:#26323c;box-shadow:none}.battery-ring.pending .score-value{font-size:2rem}.condition-label{font-size:.75rem;letter-spacing:.2em;text-align:center;color:var(--muted);margin:22px 0 6px}.result-reason{text-align:center;font-size:.8rem;margin:0 0 22px}.result-highlights{border:1px solid var(--line);border-radius:13px;padding:6px 16px;background:linear-gradient(120deg,#121b2477,#080d1266);margin:22px 0}.result-highlights>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.result-highlights>div:last-child{border:0}.result-highlights span{display:block;font-size:.75rem;letter-spacing:.02em;color:#d6e2ed}.result-highlights small{display:block;font-size:.75rem;color:var(--muted);line-height:1.5;margin-top:5px}.result-highlights strong{font-size:1rem;font-weight:400;white-space:nowrap;font-variant-numeric:tabular-nums}.baseline-panel{display:grid;grid-template-columns:1fr 1fr 1fr;border:1px solid var(--line);background:#0a1118;border-radius:12px;padding:18px 8px;gap:4px;margin:20px 0}.baseline-panel>div{text-align:center;min-width:0}.baseline-panel>div+div{border-left:1px solid var(--line)}.baseline-panel span{font-size:.75rem;letter-spacing:.02em;display:block;overflow-wrap:anywhere}.baseline-panel strong{font-size:1.45rem;font-weight:300;display:block;margin-top:7px;font-variant-numeric:tabular-nums}.baseline-panel>p{grid-column:1/-1;font-size:.75rem;color:var(--muted);line-height:1.7;padding:0 8px;margin:12px 0 0}#baseline-empty{font-size:.75rem;text-align:center}.negative{color:#ffad97!important}.comparison{border:0;gap:10px;margin:26px 0;padding:12px 0}.comparison>div>span{font-size:.75rem;letter-spacing:.2em;margin-bottom:14px;color:var(--text)}.mini-ring{--value:0%;border-radius:50%;aspect-ratio:1;display:grid;place-items:center;position:relative;background:conic-gradient(from -30deg,#679ecd,var(--mint) var(--value),#263039 var(--value));padding:4px;max-width:190px;margin:auto;box-shadow:0 0 18px #83c7ff12}.mini-ring::before{content:"";position:absolute;inset:4px;border-radius:50%;background:#050a0f}.mini-ring strong{font-size:clamp(1.5rem,7vw,2.7rem);font-weight:300;z-index:1}.compare-separator{font-weight:200;color:#839aab}.comparison #charge{font-size:clamp(1.1rem,5vw,1.65rem);font-weight:300;letter-spacing:.1em;line-height:1.5;margin-top:24px;overflow-wrap:anywhere}.comparison .comparison-caption{font-size:.75rem;color:var(--muted);letter-spacing:0;margin-top:0}.result-card details{font-size:.875rem}.detail-data{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}.detail-data summary{font-size:.8rem;letter-spacing:.15em}.detail-data summary span{font-size:.8rem;letter-spacing:0;color:var(--muted);margin-left:8px}.result-data>div{font-size:.875rem;grid-template-columns:1.3fr 1fr}.result-actions{grid-template-columns:1fr}.result-actions button{font-weight:400}.report-actions button{font-size:.875rem}.result-card #report-panel{scroll-margin-top:20px}
/* Scan screen: rings indicate elapsed time, while targets keep their original geometry. */
#scan-stage,#experiment-stage{background:radial-gradient(ellipse at 50% 45%,#101e2b55,transparent 64%),#030709;overflow-y:auto}.stage-brand{display:flex;justify-content:space-between;align-items:center;font-size:.875rem;letter-spacing:.18em;margin:4px 0 16px;flex-shrink:0}.stage-brand span{font-size:.75rem;color:var(--muted);letter-spacing:.12em}.stage-top{font-size:.8rem;flex-shrink:0}#cancel-scan,#experiment-stop{min-height:44px;border-radius:24px}#scan-progress{margin:12px 0 18px;background:#172530}#scan-progress::-webkit-progress-bar{background:#172530}#scan-progress::-webkit-progress-value{background:var(--mint)}.stage-code{text-align:center;font-size:1.25rem;letter-spacing:.22em;font-weight:300;margin:0 0 8px;flex-shrink:0}#scan-stage h2{text-align:center;font-size:1rem;font-weight:400;margin:0 0 6px}#stage-instruction{text-align:center;font-size:.875rem;min-height:3.2em}#stimulus-area{background:transparent;border-color:transparent;border-radius:0;overflow:hidden;min-height:140px}.scan-orbit{position:absolute;width:min(87%,320px);aspect-ratio:1;top:48%;left:50%;transform:translate(-50%,-50%);border-radius:50%;background:conic-gradient(from 0deg,#82c5fc var(--scan-progress,0%),#18232d var(--scan-progress,0%));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 0);opacity:.55;pointer-events:none}#tracking-dot{background:#b9e9ff;border:2px solid #d9f5ff;width:22px;height:22px;box-shadow:0 0 22px #76c4ff88,0 0 45px #4ea4e538}#scan-stage[data-stage="reaction"] .scan-orbit,#scan-stage[data-stage="recognition"] .scan-orbit{display:none}#reaction-pad{background:#13202d;color:#d5e7f4;border:1px solid #39536a;border-radius:20px;font-weight:400}#reaction-pad.go{background:#b9e8ff;color:#071523;box-shadow:inset 0 0 50px #fff8}#reaction-pad:disabled{background:#0b1720;color:var(--muted)}#recognition-symbol{color:#d5edff}#recognition-choices button{border-radius:14px;background:#111e29;color:#e0f1ff;border-color:#526d85}.stage-steps{display:flex;justify-content:space-between;gap:5px;padding:0;list-style:none;margin:7px 0 14px;flex-shrink:0}.stage-steps li{font-size:.75rem;letter-spacing:.02em;color:#8899a9;text-align:center;flex:1;line-height:1.4}.stage-steps li::before{content:"";display:block;width:10px;height:10px;border:1px solid #657e92;border-radius:50%;margin:0 auto 8px}.stage-steps li.active{color:#e0f5ff}.stage-steps li.active::before{background:#b2e5ff;border-color:#ccefff;box-shadow:0 0 14px #91d5ff99}.stage-steps li.done::before{background:#557f9e;border-color:#557f9e}.stage-note{font-size:.8rem;color:#adc0cf}.scanning #lab-section>.camera-panel{border-color:#4c6b81;box-shadow:0 0 16px #80c6ff14}.aligning #lab-section>.camera-panel{top:280px;bottom:auto;left:50%;right:auto;transform:translateX(-50%);width:min(calc(100% - 48px),350px);height:min(33dvh,270px);border-radius:12px}.aligning .camera-panel .viewport{height:100%;width:100%}.aligning .camera-panel .guide{display:block;font-size:.8rem}.aligning .scan-orbit{display:none}.aligning #quality-note{padding-right:0;min-height:60px;flex-basis:60px;text-align:center;justify-content:center}
/* Supplemental screens preserve white calibrated test surfaces. */
.mode-research main{max-width:700px}.research-heading{padding:10px 0 26px}.research-heading h1{font-size:clamp(1.8rem,6vw,2.6rem);font-weight:300;letter-spacing:.08em;line-height:1.6}.research-heading a{font-size:.875rem}.candidate-section h2{font-weight:300;letter-spacing:.08em}.candidate-card{padding:22px 20px;border-radius:12px}.candidate-card h3{font-size:1.1rem;font-weight:400}.candidate-card p{font-size:.9rem}.candidate-card .badge{font-size:.8rem}.candidate-card button{font-size:.9rem}.experiment-board:not(.light-board){background:#09141e;border-color:#2b4154}.experiment-board .reaction-button{background:#13202d;color:#d5e7f4}.experiment-board .reaction-button.ready{background:#b9e8ff;color:#071523}.search-grid button{background:#13212e;border-color:#526d85}.experiment-board.light-board{background:#fff;color:#000}.mode-research .section-heading{flex-wrap:wrap}#experiment-stage h2{font-weight:400}.mode-research .setup-card summary{font-size:.9rem}.evidence{max-width:860px}
@media(min-width:650px){#scan-stage{width:560px}.scanning #lab-section>.camera-panel{right:max(18px,calc((100vw - 512px)/2))}.aligning #lab-section>.camera-panel{right:auto}.candidate-list{grid-template-columns:1fr 1fr}}
#scan-stage[data-compact="true"] .stage-brand{margin:0 0 6px}#scan-stage[data-compact="true"] .stage-code{font-size:1rem;margin-bottom:4px}#scan-stage[data-compact="true"] #scan-progress{margin:6px 0 10px}#scan-stage[data-compact="true"] .stage-steps{margin:3px 0 6px}#scan-stage[data-compact="true"] .stage-steps li::before{margin-bottom:4px}#scan-stage[data-compact="true"] .stage-note{min-height:90px;flex-basis:90px}
@media(max-height:740px){.aligning #lab-section>.camera-panel{top:235px;height:28dvh}}
@media(max-width:360px){.result-card{padding:18px 0}.baseline-panel span{font-size:.75rem}.baseline-panel strong{font-size:1.2rem}.stage-steps li{font-size:.75rem}.result-highlights{padding:5px 12px}.result-highlights strong{font-size:.9rem}}
/* Reboot points are explicitly separate from the unchanged measured SCAN result. */
.reboot-setup{margin:20px 0;padding:0 16px 12px;border:1px solid #39576f;border-radius:12px;background:#0b172280}.reboot-setup select{font-size:1rem}.reboot-setup .note{font-size:.875rem}.score-type{text-align:center;color:#c8e7ff;font-size:.9rem;margin:-6px 0 18px}.experience-breakdown{border:1px solid #416581;border-radius:14px;background:linear-gradient(135deg,#15293a66,#080f16);padding:20px 18px;margin:24px 0}.experience-breakdown h3{font-size:1rem;font-weight:400;margin:0 0 8px}.reboot-result-menu{font-size:.95rem;color:#c5e8ff;margin:0 0 16px}.experience-breakdown dl{margin:0}.experience-breakdown dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center;font-size:.875rem}.experience-breakdown dt{color:var(--muted)}.experience-breakdown dd{margin:0;font-size:1rem;font-variant-numeric:tabular-nums}.experience-breakdown .experience-total dt,.experience-breakdown .experience-total dd{color:#c5e8ff}.experience-breakdown .note{font-size:.875rem;line-height:1.8;margin-bottom:0}.scan-comparison-title{text-align:center;font-weight:400;font-size:1rem;margin:28px 0 4px}#score-unit{font-size:1rem}#scan-comparison-title+.baseline-panel{margin-top:14px}

/* Guided protocol: instructions are their own unmeasured step. */
.stage-preparation{margin:auto 0;padding:22px 8px;text-align:center;flex:1;display:flex;flex-direction:column;justify-content:center;gap:16px;min-height:220px}
#preparation-detail{font-size:clamp(1.2rem,4.8vw,1.5rem);line-height:1.9;margin:0;text-wrap:pretty}#preparation-duration{margin:0}#start-stage{width:100%;margin-top:12px;letter-spacing:.04em;font-size:1rem}
.stage-count-in{font-size:clamp(5rem,22vw,8rem);font-weight:200;color:#d7efff;text-align:center;flex:1;display:grid;place-items:center;text-shadow:0 0 40px #91cfff66;min-height:180px}
#scan-stage[data-phase="instruction"] #stimulus-area,#scan-stage[data-phase="countdown"] #stimulus-area{display:none}
#scan-stage[data-phase="instruction"] #stage-instruction,#scan-stage[data-phase="countdown"] #stage-instruction{min-height:0;font-size:1rem}
#scan-stage h2{font-size:1.25rem}#reaction-pad{border-radius:50%;inset:8% 10%;width:80%;height:84%;border:1px solid #577992;box-shadow:inset 0 0 36px #91cfff12}#reaction-pad.go{box-shadow:0 0 24px #86bfff44}
#recognition-symbol{font-family:Arial,sans-serif;font-weight:400}#recognition-choices button{border-radius:50%;aspect-ratio:1;min-height:48px;max-height:72px;padding:0}
.notice{border-left:2px solid var(--mint);padding:12px 16px;background:#a6dcff09;font-size:.95rem;line-height:1.8;color:#d4e8f7}
.followup-panel{margin:28px 0;padding:22px 18px;border:1px solid #2e4c63;border-radius:16px;background:#08121bdd}.followup-panel h3{font-size:1.15rem;font-weight:400}.followup-panel .screen-kicker{margin:0}.followup-panel>button{width:100%}.followup-panel details{margin-top:18px}
.backup-actions{display:grid;gap:10px;grid-template-columns:1fr}.history-panel h2{font-size:1.2rem;margin:30px 0 12px}.history-panel input[type="file"]{width:100%;font-size:1rem}.history-panel>details{margin:20px 0}.history-panel textarea{width:100%;margin:16px 0}.history-panel .error{color:#ffad97}#history-summary{font-variant-numeric:tabular-nums;font-size:.9rem;color:#c5e8ff}#experience-change{font-size:1.15rem;letter-spacing:.02em}
@media(min-width:700px){main{max-width:680px}#scan-stage{width:min(100%,680px)}.scanning #lab-section>.camera-panel{right:max(18px,calc((100vw - 644px)/2))}.aligning #lab-section>.camera-panel{right:auto}.backup-actions{grid-template-columns:1fr 1fr}#preparation-detail{font-size:1.5rem}}
#scan-stage[data-compact="true"][data-phase="instruction"] .stage-brand,#scan-stage[data-compact="true"][data-phase="countdown"] .stage-brand{display:none}#scan-stage[data-compact="true"] .stage-preparation{padding:12px 0;gap:8px;min-height:220px}#scan-stage[data-compact="true"] #preparation-detail{font-size:1.1rem;line-height:1.65}#scan-stage[data-compact="true"] #start-stage{margin-top:4px}

/* Staff PIN: a server-verified second lock on the store surface. */
.staff-pin-panel{max-width:380px;margin:24px auto;padding:24px;border:1px solid #284351;border-radius:18px;background:#09131b}.staff-pin-panel[hidden]{display:none}.staff-pin-panel h2{font-size:1.15rem;margin:0 0 20px}.staff-pin-panel .field-label{display:grid;gap:8px;margin:16px 0;text-align:left;font-size:1rem}.staff-pin-panel .field-label[hidden]{display:none}.staff-pin-panel input{width:100%;box-sizing:border-box;padding:14px;text-align:center;font-size:1.5rem;letter-spacing:.6em;background:#02070c;color:#e8f7ff;border:1px solid #567083;border-radius:8px}.staff-pin-panel button{width:100%;font-size:1rem}.staff-pin-panel .note{font-size:.875rem;line-height:1.7}.account-compact{flex-wrap:wrap;gap:10px}

/* Keep measurement geometry independent of expanding LINE/Safari toolbars. */
#scan-stage{height:100svh;bottom:auto}
