/* Interface polish is scoped away from live capture and world rendering. */
:root{--surface:#110e12;--line-soft:#c7a8bd13;--ease-out:cubic-bezier(.2,.8,.2,1)}
body{background:#0a080b;-webkit-font-smoothing:antialiased}
body>header{height:84px;border-bottom-color:#c7a8bd16;padding-inline:clamp(24px,3vw,56px);background:linear-gradient(180deg,#15101760,transparent)}
.brand{font-size:22px;gap:12px}.brand img{width:38px;height:38px;box-shadow:0 0 0 1px #d4b6cd16}.brand small{font-size:8px;letter-spacing:2.7px;margin-top:5px}
nav{padding:4px;gap:4px;border:1px solid #c7a8bd12;background:#110d13;border-radius:10px}
.nav{position:relative;min-width:76px;border-radius:6px;padding:10px 19px;transition:background 160ms,color 160ms}
.nav:hover{background:#211823}.nav.active{background:#2b1f2c;box-shadow:inset 0 1px #f1d9ed0a,0 2px 6px #0002;color:#efdfec}
.local{font-size:9px;color:#a08b9e}.local i{background:#c8b1cb;box-shadow:0 0 0 4px #c8b1cb08}
main{padding:34px clamp(24px,3vw,56px) 20px}.eyebrow{font-size:9px;letter-spacing:2.1px}
h1{font-size:clamp(30px,2.5vw,42px);font-weight:350;letter-spacing:-1.2px;line-height:1.15;margin:12px 0 10px}
.range-head,.section-head{position:relative;padding:0 0 24px;margin-bottom:22px;gap:24px;border-bottom:1px solid var(--line-soft)}
.range-head>div:first-child>p,.section-head>div:first-child>p{font-size:12px;color:#a696a6;max-width:700px;line-height:1.8}
.range-head>div:first-child>p.range-disclaimer{display:flex;align-items:baseline;gap:10px;max-width:480px;margin-top:13px;font-size:10.5px;line-height:1.65;color:#9e8a9b}
.range-disclaimer .development-label{flex:0 0 auto;padding:2px 6px;border:1px solid #b391a52b;border-radius:3px;background:#b391a506;font:8px/1.5 Consolas,monospace;letter-spacing:.65px;text-transform:uppercase;color:#bba0b4}
.range-disclaimer .development-copy{min-width:0}
.session-actions{padding:5px;gap:6px;background:#151016;border:1px solid #c7a8bd1c;border-radius:9px;box-shadow:0 3px 18px #0002;max-width:100%}
button,select,input[type=number]{transition:background-color 160ms,border-color 160ms,color 160ms,box-shadow 160ms}
button{border-radius:6px;min-height:38px;letter-spacing:.05px}button:active:not(:disabled){background-color:#312331}
button.primary{background:linear-gradient(125deg,#d9bed1,#c7aec6);border-color:#e8d0e128;box-shadow:inset 0 1px #fff3,0 2px 8px #0002;color:#231922}
button.primary:hover{background:linear-gradient(125deg,#e5cfe0,#d4bfd5);box-shadow:inset 0 1px #fff5,0 3px 14px #d1accc16}button.primary:active{background:#c5a8c0}
.session-actions select{border-color:transparent;background-color:#1b151e;min-height:40px;padding:9px 32px 9px 13px;border-radius:5px;color:#d5c6d3;font-size:11px}
.session-actions select:hover{border-color:#6a5166}.session-actions #exercise{min-width:196px}.session-actions .primary{min-width:132px;min-height:40px;font-size:12px;padding-inline:20px}
.session-actions #start::after{content:'';display:inline-block;width:14px;height:14px;vertical-align:-2px;margin-left:14px;opacity:.65;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 12 8-8M4 4h8v8' fill='none' stroke='%23231922' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}.session-actions #start:disabled::after{display:none}
.range-shell{border-color:#ae8da42b;border-radius:12px;box-shadow:0 20px 60px #0003,inset 0 1px #e9c6df0a;background:#100d13}
.range-shell:fullscreen{border-radius:0;box-shadow:none}
.hud-top{color:#b4a0b2;font-size:9px}.hud-bottom #ammo{font-size:25px}.key-hints{gap:14px;font-size:9px}
.intro{background:radial-gradient(ellipse at 50% 48%,#100b1447,#08060b90);padding:30px}
.intro .eyebrow{font-size:9px;color:#c2aac0;letter-spacing:3px}.intro h2{font-size:clamp(33px,3vw,48px);font-weight:300;letter-spacing:-1.3px;margin:18px 0 8px}.intro p{max-width:520px;font-size:13px;line-height:1.85}.intro #introHint{font-size:10px;line-height:1.9;margin-top:22px;color:#ab93a5}
.burst-hud{border:1px solid #bc98b01c;border-left-color:#bda0b85c;border-radius:5px;background:#100c13db;padding:11px 13px;gap:4px}.burst-hud>span{font-size:8px;letter-spacing:1.2px}.burst-hud small{font-size:8px;opacity:.8}
.metric-strip{border:1px solid #c7a8bd19;border-radius:9px;margin-top:18px;background:linear-gradient(160deg,#17111988,#0e0b10);overflow:hidden}
.metric-strip>div{padding:17px 23px!important;border-right-color:#c7a8bd12}.metric-strip>div>span{font-size:8px;letter-spacing:1.35px}.metric-strip strong{font-size:23px;letter-spacing:-.7px;margin-top:8px;font-variant-numeric:tabular-nums;color:#dacbd8}
#reportView .section-head>div:last-child{display:flex;gap:7px;flex-wrap:wrap}#reportView .section-head button{font-size:11px;padding:10px 14px;background:#171219}
.report-overview{gap:18px;margin-top:26px}.report-overview .assessment,.report-overview .report-brief{background:linear-gradient(135deg,#19121c,#100d12);border-color:#b593ad26;border-radius:10px;box-shadow:inset 0 1px #edcfe805,0 8px 30px #0001}
.assessment-head>strong{letter-spacing:-1px}.score-track{height:7px;box-shadow:0 0 0 4px #d5b7cc04}.score-endpoints{font-size:8px}.stat-legend{font-size:10px;gap:18px}
.report-metrics{gap:1px;border:1px solid #c7a8bd1c;border-radius:9px;background:#c7a8bd12;overflow:hidden;margin:20px 0 30px}
.report-metrics>div{background:#120e15;padding:22px 20px}.report-metrics strong{font-size:27px;letter-spacing:-.9px;font-variant-numeric:tabular-nums}.report-metrics span{display:block;margin-top:8px;font-size:10px;line-height:1.6}
.report-heading{margin-top:30px}#reportContent>h2,.report-heading h2{font-size:16px;font-weight:450;letter-spacing:-.25px}
.report-disclosure{background:#100d12;border-color:#b593ad24;border-radius:8px;margin-top:12px;overflow:clip}.report-disclosure>summary{font-size:12px;padding:18px 20px;transition:background 160ms,color 160ms}.report-disclosure>summary:hover{background:#22172566;color:#eedcec}.report-disclosure[open]>summary{background:#1b1320;border-bottom:1px solid #c7a8bd19}.report-disclosure>summary span{font-size:10px;color:#9f8c9e}
.empty{padding:clamp(50px,8vh,100px) 24px;border:1px solid #c7a8bd1c;border-radius:12px;background:radial-gradient(ellipse at 50% 0,#2d1e3038,transparent 70%),#100d12;margin-top:30px}.empty>span{font-size:9px;letter-spacing:2px}.empty h2{font-size:32px;letter-spacing:-.8px}.empty p{font-size:12px;max-width:530px;margin:12px auto 26px;line-height:1.9}
.analysis-status{display:flex;align-items:center;justify-content:center;gap:22px;min-height:280px;border:1px solid #c7a8bd1c;border-radius:12px;margin-top:30px;background:#120e15}.analysis-status h2{font-size:24px;font-weight:350;margin:3px 0 8px}.analysis-status p{font-size:12px}.analysis-orbit{width:40px;height:40px;border:1px solid #c7a8bd24;border-top-color:#d9bbd2;border-right-color:#b69bc169;border-radius:50%;animation:interface-orbit 1.2s linear infinite}
#settingsView .settings-heading{margin-bottom:28px}#settingsView .settings-sections{border-color:#c7a8bd1c}#settingsView .settings-card,#settingsView .world-editor,#settingsView .crosshair-editor{border-color:#b593ad23;background:linear-gradient(145deg,#161018,#100d12);border-radius:9px;box-shadow:inset 0 1px #edcfe804}#settingsView .settings-panel{animation:none}
dialog{border-color:#98768e50;border-radius:12px;box-shadow:0 32px 100px #0009}dialog[open]:not(#setupDialog){animation:interface-dialog-in 240ms var(--ease-out) both}dialog::backdrop{background:#09060bb0;backdrop-filter:blur(7px)}
#setupDialog{border-color:#a1819940;background:linear-gradient(145deg,#1a121d,#100c12 80%);padding:36px;box-shadow:0 32px 120px #000a,inset 0 1px #e6c9e00a;border-radius:14px}
#setupProgress{gap:16px;margin-block:29px 34px}#setupProgress li{border-top-width:1px;font-size:9px;letter-spacing:.25px;padding-top:12px}#setupProgress li.current{border-color:#d5b7ce;box-shadow:0 -1px #d5b7ce44}.setup-stage h1{font-size:40px;font-weight:350;letter-spacing:-1.2px}.setup-intro-line{padding-block:18px;border-color:#c7a8bd17}.setup-intro-line>span{width:24px;color:#a78fa8;font-size:10px}.setup-intro-line strong{font-size:13px}.setup-stage.enter{animation:interface-content-in 300ms var(--ease-out) both}.setup-footer{border-color:#c7a8bd1c;padding-top:23px}#setupNext{min-width:116px}
#setupDialog .setup-footer{position:sticky;bottom:0;z-index:2;background:linear-gradient(180deg,#110d13f2,#110d13 28%);padding-top:18px;margin-top:22px}
body.capture-active.setup-reveal>header,body.capture-active.setup-reveal>main,body.capture-active.setup-reveal>footer{animation:none!important}
#loader-top,#loader-bottom{transition-duration:720ms}#loader-content{gap:20px}#loader-count{font-size:1.7rem;letter-spacing:.12em;color:#bda9ba}#loader-count sup{font-size:.36em;letter-spacing:0;color:#92798c;vertical-align:super;padding:0;display:inline;margin-left:1px}#loader-word{letter-spacing:3.7px;color:#9b8297;font-size:8px}#loader-track{width:136px;background:#211923}#loader-fill{background:#9e87a7}
#toast{border-color:#98768e50;background:#201624f5;border-radius:8px;box-shadow:0 12px 40px #0008;font-size:11px;padding:14px 20px;line-height:1.7}
footer{border-top-color:#c7a8bd14;font:9px/1.7 Consolas,monospace;letter-spacing:.3px;padding-inline:clamp(24px,3vw,56px)}
@keyframes interface-content-in{from{opacity:0;filter:blur(3px);transform:translateY(7px)}to{opacity:1;filter:none;transform:none}}
@keyframes interface-dialog-in{from{opacity:0;filter:blur(4px);translate:0 8px;scale:.99}to{opacity:1;filter:none;translate:0 0;scale:1}}
@keyframes interface-orbit{to{transform:rotate(360deg)}}
@media(max-width:1100px){.range-head{align-items:stretch;flex-direction:column;gap:20px}.session-actions{align-self:flex-start}.report-overview{gap:14px}}
@media(max-width:700px){body>header{padding-inline:20px}.brand{font-size:20px}nav{margin-left:auto}.nav{min-width:0;padding-inline:12px}main{padding:24px 20px}.session-actions{align-self:stretch}.session-actions #exercise{min-width:150px;flex:1}.session-actions .primary{min-width:110px}.range-shell{border-radius:9px}.metric-strip>div{padding:14px!important}.metric-strip strong{font-size:21px}.report-metrics>div{padding:18px 14px}.report-metrics strong{font-size:23px}.report-disclosure>summary span{display:block;margin-top:3px}#setupDialog{padding:26px}.setup-stage h1{font-size:34px}.analysis-status{padding:30px;gap:16px}.analysis-orbit{flex:0 0 32px;height:32px}}
@media(max-height:800px){#setupDialog{padding:24px 30px}#setupProgress{margin-block:22px 25px}.setup-stage h1{font-size:35px;margin-bottom:12px}.setup-stage>p{font-size:12px}.setup-intro-line{padding-block:12px}.setup-intro-line:first-of-type{margin-top:18px}.setup-footer{margin-top:18px}}
@media(prefers-reduced-motion:reduce){button,select,input,nav .nav,.report-disclosure>summary{transition:none!important}dialog[open],.setup-stage.enter,.analysis-orbit{animation:none!important}#loader-top,#loader-bottom{transition:none!important}}

/* Celestial scrollbars, including dialog, report and picker scroll areas. */
*{scrollbar-width:thin;scrollbar-color:#90758b #100c12}
@supports selector(::-webkit-scrollbar){
 *{scrollbar-width:auto;scrollbar-color:auto}
 ::-webkit-scrollbar{width:9px;height:9px}
 ::-webkit-scrollbar-track{background:#100c12;border-radius:12px}
 ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#aa8ca3,#755b73);border:2px solid #100c12;border-radius:12px;min-height:32px}
 ::-webkit-scrollbar-thumb:hover{background:#b99ab2}
 ::-webkit-scrollbar-thumb:active{background:#d0b0c7}
 ::-webkit-scrollbar-corner{background:#100c12}
 ::-webkit-scrollbar-button{display:none}
}

/* Native customizable pickers retain the original select nodes and event flow.
   Unsupported browsers retain their functional native menu and dark options. */
select option,select optgroup{background:#17111b;color:#e4d7e2}
@supports (appearance:base-select){
 select:not([multiple]):not([size]),select:not([multiple]):not([size])::picker(select){appearance:base-select}
 select:not([multiple]):not([size]){align-items:center;gap:12px;cursor:pointer}
 select:disabled{cursor:not-allowed}
 select::picker-icon{color:#b99ab1;transition:rotate 150ms ease;margin-inline-start:auto;font-size:10px}
 select:open::picker-icon{rotate:180deg}
 select:open{border-color:#9a7a93!important;box-shadow:0 0 0 2px #c4a4bc0c}
 select::picker(select){
  box-sizing:border-box;min-inline-size:anchor-size(self-inline);max-inline-size:min(440px,calc(100vw - 24px));max-block-size:min(340px,60vh);
  padding:6px;margin-block:6px;background:linear-gradient(150deg,#201622,#130e17 85%);color:#e4d7e2;
  border:1px solid #73556b;border-radius:9px;box-shadow:0 16px 44px #0009,inset 0 1px #f1d9eb08;
  font:12px/1.55 'Segoe UI',Arial,sans-serif;overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:#987b92 #17111b;
  opacity:0;transition:opacity 140ms ease,display 140ms allow-discrete,overlay 140ms allow-discrete;
 }
 select:open::picker(select){opacity:1}
 @starting-style{select:open::picker(select){opacity:0}}
 select option{display:flex;align-items:center;gap:16px;min-height:39px;padding:10px 12px;border:1px solid transparent;border-radius:5px;background:transparent;color:#cbbbc9;white-space:normal;overflow-wrap:anywhere;cursor:pointer;transition:background-color 100ms,color 100ms}
 select option+option{margin-top:2px}
 select option:hover,select option:focus{background:#352539;color:#f0deed;outline:none;border-color:#aa86a323}
 select option:checked{background:#322235;color:#edd7e7;border-color:#b38bac26}
 select option:disabled{color:#7a687b;opacity:.55;cursor:not-allowed}
 select option::checkmark{content:'✓';order:1;margin-inline-start:auto;font-size:12px;color:#d6b5cd}
 select optgroup{padding:6px;background:transparent;color:#9e85a0;font-size:11px}
 .session-actions #exercise{min-width:260px}
 @media(prefers-reduced-motion:reduce){select::picker(select),select::picker-icon,select option{transition:none}}
}
@media(forced-colors:active){
 *{scrollbar-color:auto}
 select::picker(select){border-color:ButtonText;background:Canvas;color:CanvasText;box-shadow:none}
 select option{color:CanvasText}select option:checked,select option:hover,select option:focus{background:Highlight;color:HighlightText}
}
