:root{color-scheme:dark;--bg:#0b1016;--panel:#111821;--raised:#18222d;--line:#24303b;--text:#e9eff4;--muted:#98a8b8;--teal:#8ce8d0;--lime:#d7f68a;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,select{cursor:pointer}button{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--teal);outline-offset:4px}button{transition:background .18s,color .18s,border-color .18s}button:hover{filter:brightness(1.16)}[hidden]{display:none!important}a{color:inherit}button{border:0;background:none}h1,h2,p{margin:0}h2{font-size:1rem;font-weight:600;letter-spacing:-.015em}.app-header{min-height:74px;padding:0 34px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:1rem;font-weight:750;letter-spacing:.06em;white-space:nowrap}.brand-light{font-weight:400;color:var(--muted)}.brand-mark{color:var(--teal);font-size:2.7rem;line-height:.7;transform:rotate(-28deg)}.header-topic{font-size:.75rem;letter-spacing:.1em;color:var(--muted);margin-left:20px}.header-topic span{padding:0 10px;color:var(--teal)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:22px}.text-button{font-size:.875rem;color:var(--muted)}.outline-button{border:1px solid var(--line);padding:9px 14px;border-radius:6px;font-size:.875rem;background:#141d27}.outline-button span{margin-left:14px;font-size:1.1rem}main{max-width:1680px;margin:auto;padding:28px 34px 0}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px;gap:24px}.eyebrow{font-size:.6875rem;font-weight:600;letter-spacing:.14em;color:var(--muted);line-height:1.8}.page-heading .eyebrow{color:var(--teal);font-size:.75rem;margin-bottom:5px}h1{font-size:1.75rem;letter-spacing:-.04em;font-weight:550}.page-heading p{font-size:.875rem;line-height:1.6;color:var(--muted)}.workspace{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}.control-panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}.control-section{padding:23px 21px;border-bottom:1px solid var(--line)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:21px}.section-index{font: .75rem var(--mono);color:#6d8193}.array-size{display:grid;grid-template-columns:1fr 15px 1fr;gap:13px;align-items:end}.array-size label{font-size:.875rem;color:var(--muted)}.array-size label>span{font: .75rem var(--mono);float:right;padding-top:2px}select{background:#1a2531;border:1px solid #314252;border-radius:5px;color:var(--text);padding:9px 11px;font-size:.875rem;max-width:100%}.array-size select{display:block;width:100%;margin-top:10px;font:1rem var(--mono)}.times{color:#6c8193;align-self:end;padding-bottom:10px}.range-field{margin-top:22px}.range-field label{font-size:.875rem;color:#c1cbd5;display:flex;justify-content:space-between;align-items:center;gap:8px}.range-field output{font:.8125rem var(--mono);color:var(--teal)}input[type=range]{width:100%;height:4px;margin:18px 0 7px;accent-color:var(--teal);cursor:pointer;display:block}.range-ends{display:flex;justify-content:space-between;font:.6875rem var(--mono);color:#7b8ea1;margin-top:7px}.micro{font-size:.75rem;line-height:1.7;color:var(--muted)}.control-section>p.micro{margin-top:15px}.segmented{background:#0c121a;border:1px solid #22303c;display:grid;grid-template-columns:1fr 1fr;border-radius:6px;padding:4px;gap:3px}.segmented button{padding:8px 3px;border-radius:4px;font-size:.8125rem;color:var(--muted)}.segmented button[aria-pressed=true]{background:#2b4244;color:var(--teal)}.select-row{display:flex;align-items:center;justify-content:space-between;gap:9px;font-size:.8125rem;color:#c1cbd5;margin-top:20px}.select-row select{padding:6px 8px;font-size:.75rem}.direction-readout{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:23px}.direction-readout>div{border-left:2px solid #395b59;padding-left:11px}.direction-readout span{font-size:.6875rem;color:var(--muted);display:block}.direction-readout strong{display:block;font:1.6rem var(--mono);margin-top:5px;letter-spacing:-.04em}.direction-readout small{font-size:1rem;color:var(--teal);margin-left:3px}.view-settings .section-heading{margin-bottom:0}.toggle-row{font-size:.8125rem;display:flex;align-items:center;gap:10px;margin-top:17px;color:#c1cbd5;cursor:pointer}.toggle-row input{accent-color:var(--teal);width:16px;height:16px;margin:0}.model-note{padding:16px 21px;font-size:.6875rem;line-height:1.6;color:var(--muted);background:#0f161e}.model-note.warning{color:#f4ca8b;background:#30271d}.visual-workspace{min-width:0}.scene-panel{height:490px;position:relative;border:1px solid #2d3d49;border-radius:10px 10px 0 0;background:radial-gradient(ellipse at 55% 55%,#15262c 0,#0e1821 56%,#0e151e 100%);overflow:hidden}.scene-heading{position:absolute;z-index:2;left:25px;right:25px;top:20px;display:flex;align-items:start;justify-content:space-between;pointer-events:none}.scene-heading h2{font-size:1.2rem;margin-top:5px}.beam-chip{border:1px solid #395b54;background:#142d2a;color:var(--teal);border-radius:5px;padding:7px 11px;font:.8125rem var(--mono)}#scene{position:absolute;inset:0;touch-action:none}#scene canvas{width:100%;height:100%;display:block}.loading-scene{height:100%;display:grid;place-content:center;color:var(--muted)}.scene-scale{position:absolute;right:26px;top:105px;display:flex;flex-direction:column;gap:8px;align-items:center;font:.625rem var(--mono);color:#a6b6c7;pointer-events:none}.power-gradient{width:5px;height:115px;border-radius:4px;background:linear-gradient(#e2ed89,#7de4b8,#27b2bc,#2d669c,#30405f)}.scene-caption{position:absolute;bottom:98px;left:26px;display:flex;gap:9px;align-items:center;font-size:.6875rem;color:#c0d0d9;pointer-events:none}.direction-line{width:22px;height:2px;background:var(--lime)}.scene-toolbar{position:absolute;left:24px;right:24px;bottom:46px;display:flex;align-items:center;justify-content:space-between;gap:15px}.camera-presets{background:#101a24cc;display:flex;gap:2px;padding:3px;border:1px solid #354550;border-radius:6px}.camera-presets button{border-radius:4px;padding:8px 12px;font-size:.75rem;color:#9eb0c0}.camera-presets button[aria-pressed=true]{background:#2c3b48;color:#f0f4f7}.scan-button{border:1px solid #4b6751;background:#202e26;color:var(--lime);border-radius:6px;padding:10px 14px;font-size:.75rem}.scan-button span{margin-right:5px}.scene-help{position:absolute;bottom:18px;left:25px;font-size:.6875rem;color:#8093a4;pointer-events:none}.scene-help span{margin:0 8px}.result-strip{display:grid;grid-template-columns:1.1fr 1.2fr .8fr;border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;background:#131d27;padding:18px 4px}.result-strip>div{padding:0 20px;border-right:1px solid var(--line);min-width:0}.result-strip>div:last-child{border:0}.result-strip span{display:block;color:var(--muted);font-size:.6875rem;margin-bottom:7px}.result-strip strong{font:.8125rem var(--mono);white-space:nowrap}.result-strip strong em{font-style:normal;color:#536d7c;margin:0 8px}.result-strip small{font-size:.7rem;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.detail-panel{border:1px solid var(--line);border-radius:9px;background:var(--panel);min-width:0;overflow:hidden}.panel-heading{display:flex;justify-content:space-between;align-items:center;padding:18px 20px 5px;gap:10px}.panel-heading h2{margin-top:3px}.mini-value{font:.75rem var(--mono);color:var(--muted);background:#1a2531;border:1px solid #283947;padding:5px 8px;border-radius:4px;white-space:nowrap}.grid-content,.phase-content{display:flex;align-items:center;gap:14px;padding:10px 15px 3px;min-height:207px}.codebook,#phase-map{width:57%;min-width:0;flex-shrink:0}.codebook svg,#phase-map svg{width:100%;display:block;overflow:visible}.grid-aside{flex:1;min-width:0}.grid-aside p{font:.75rem var(--mono);margin:20px 0 8px;color:#c1ccd6}.grid-aside .micro{font-size:.6875rem;line-height:1.6}.key-row{font-size:.6875rem;display:flex;align-items:center;gap:7px;margin:10px 0;color:var(--muted)}.key-dot{display:block;width:6px;height:6px;border-radius:50%;background:#627c8c;flex-shrink:0}.key-dot.selected{background:var(--lime);box-shadow:0 0 0 3px #d7f68a18}.key-dot.unavailable{background:transparent;border:1px solid #5d6268}.panel-foot{font-size:.6875rem;color:#8b9eaf;padding:12px 20px;border-top:1px solid var(--line);min-height:38px}.phase-content{padding:18px 22px 6px;gap:22px;min-height:183px}#phase-map{width:60%}.phase-aside{display:flex;flex-direction:column;align-items:center;gap:5px;flex:1}.phase-aside>strong{font:.6875rem var(--mono);white-space:nowrap}.phase-aside .micro{font-size:.625rem;text-align:center;white-space:nowrap}.phase-dial{height:48px;width:48px;border:1px solid #425262;border-radius:50%;margin:7px 0;position:relative;background:linear-gradient(0deg,transparent 49%,#263542 50%,transparent 51%),linear-gradient(90deg,transparent 49%,#263542 50%,transparent 51%)}.phase-dial>span{position:absolute;left:50%;top:50%;height:2px;width:20px;background:var(--teal);transform-origin:0 50%;transform:rotate(0deg)}.phase-legend{display:flex;align-items:center;gap:8px;padding:9px 22px 12px;font:.625rem var(--mono);color:var(--muted)}.phase-legend>div{height:5px;flex:1;border-radius:5px;background:linear-gradient(to right,hsl(0 65% 60%),hsl(60 65% 60%),hsl(120 65% 60%),hsl(180 65% 60%),hsl(240 65% 60%),hsl(300 65% 60%),hsl(360 65% 60%))}.formation-panel{display:grid;grid-template-columns:1fr 1fr;gap:35px;padding:25px 2px;margin-top:6px}.formation-panel h2{font-size:1.125rem;margin:6px 0 9px}.formation-panel p{font-size:.8125rem;line-height:1.75;color:var(--muted)}.formula{padding-top:17px}.formula>span{font:.8125rem var(--mono);display:block;margin-bottom:17px;color:#bbd3d4;line-height:1.7;overflow-wrap:anywhere}.formula p{font-size:.75rem}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #1e2c39;padding:22px 0;color:#788b9e;font-size:.6875rem;line-height:1.6}.footer-separator{margin:0 12px;color:#3d515e}dialog{max-width:660px;width:calc(100% - 32px);border:1px solid #38505f;border-radius:13px;background:#121c26;color:var(--text);padding:27px;box-shadow:0 20px 100px #0009}dialog::backdrop{background:#030b11bb;backdrop-filter:blur(6px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}dialog h2{font-size:1.7rem;margin-bottom:20px}dialog p{font-size:.9375rem;line-height:1.7;margin:15px 0;color:#b9c8d4}.dialog-formula{padding:18px;background:#0d151d;border-radius:5px;font:.875rem var(--mono);line-height:1.7;overflow-wrap:anywhere}dialog .sources{font-size:.75rem}dialog a{color:var(--teal);text-underline-offset:3px}.grid-point{cursor:pointer}.grid-point:hover{stroke:#d7f68a;stroke-width:2}.phase-cell{cursor:pointer}.phase-cell:hover{stroke:white;stroke-width:2}.grid-label{font:11px var(--mono);fill:#8ea2b5}.grid-curve{stroke:#304554;fill:none}.error-scene{padding:100px 35px;max-width:540px;font-size:1rem;line-height:1.8}.error-scene p{color:var(--muted);margin-top:15px}@media(min-width:1500px){.workspace{grid-template-columns:300px minmax(0,1fr)}.scene-panel{height:530px}.grid-content{min-height:240px}.phase-content{min-height:216px}}@media(max-width:1150px){main{padding:24px 22px 0}.app-header{padding:0 22px}.workspace{grid-template-columns:255px minmax(0,1fr);gap:16px}.control-section{padding:21px 17px}.header-topic{display:none}.result-strip{grid-template-columns:1fr 1fr}.result-strip>div:last-child{display:none}.result-strip>div:nth-child(2){border:0}.result-strip>div{padding:0 16px}.detail-grid{grid-template-columns:1fr}.grid-content{min-height:200px;padding:8px 22px}.codebook{width:50%;max-width:240px}.grid-aside{padding-left:15px}.grid-aside .micro,.key-row{font-size:.75rem}.phase-content{justify-content:space-around;min-height:205px;padding:15px 35px}#phase-map{width:50%;max-width:200px}.phase-aside{max-width:170px}.phase-aside>strong{font-size:.875rem}.phase-aside .micro{font-size:.75rem}.formation-panel{grid-template-columns:1fr;gap:5px}.formula{padding-top:5px}}@media(max-width:780px){.page-heading p{display:none}.workspace{grid-template-columns:1fr}.control-panel{display:grid;grid-template-columns:1fr 1fr}.control-section{border-right:1px solid var(--line)}.view-settings{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:13px 25px;align-items:center}.view-settings .section-heading{grid-column:1/-1;margin:0}.view-settings .select-row,.view-settings .range-field,.view-settings .toggle-row{margin:0}.view-settings .range-field{grid-row:2/4;grid-column:2}.model-note{grid-column:1/-1}.scene-panel{height:500px}.visual-workspace{grid-row:1}.control-panel{grid-row:2}.formation-panel{display:none}.detail-grid{grid-template-columns:1fr 1fr}.grid-content{padding:8px;gap:3px}.grid-aside{display:none}.codebook{width:100%;max-width:100%}.phase-content{padding:12px;gap:10px;min-height:190px}#phase-map{width:100%;max-width:100%}.phase-aside{display:none}.panel-heading{padding:15px 13px 5px}.panel-heading .eyebrow{font-size:.6rem}.panel-heading h2{font-size:.875rem}.panel-foot{padding:12px;font-size:.625rem}.mini-value{font-size:.625rem;padding:4px}.phase-legend{padding:9px 12px 12px}.grid-content{min-height:220px}.page-heading{margin-bottom:20px}h1{font-size:1.5rem}.app-header{min-height:64px}.header-actions{gap:8px}.text-button{font-size:.75rem}.outline-button{padding:8px 10px;font-size:.75rem}main{padding:21px 15px 0}footer{flex-direction:column;gap:8px}}@media(max-width:480px){.app-header{padding:0 15px;gap:10px}.brand{font-size:.8rem;gap:7px}.brand-mark{font-size:2rem}.header-actions{gap:4px}.outline-button span{display:none}.scene-panel{height:420px}.scene-heading{left:18px;right:18px;top:18px}.scene-heading h2{font-size:1rem}.beam-chip{font-size:.7rem;padding:6px 8px}.scene-scale{right:17px;top:95px}.scene-toolbar{left:12px;right:12px;bottom:42px;gap:5px}.camera-presets button{padding:8px;font-size:.625rem}.scan-button{padding:11px 8px;font-size:.625rem}.scene-help{font-size:.6rem;left:14px;bottom:17px}.scene-help span{margin:0 4px}.scene-caption{left:18px;font-size:.625rem;bottom:93px}.result-strip{padding:15px 0}.result-strip>div{padding:0 11px}.result-strip span{font-size:.625rem}.result-strip strong{font-size:.625rem}.result-strip strong em{margin:0 3px}.detail-grid{gap:10px}.panel-heading{align-items:start;flex-direction:column;gap:7px}.panel-heading h2{font-size:.8125rem}.panel-heading .mini-value{display:none}.grid-content{min-height:174px}.phase-content{min-height:145px}.panel-foot{min-height:48px}.control-panel{grid-template-columns:1fr}.control-section{border-right:0}.view-settings{display:block}.view-settings .range-field,.view-settings .select-row,.view-settings .toggle-row{margin-top:18px}.control-section .section-heading{margin-bottom:15px}dialog{padding:20px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Keep the working controls readable across compact and wide layouts. */
.eyebrow,.section-index,.range-ends,.micro,.direction-readout span,.model-note,.scene-scale,.scene-caption,.scene-help,.result-strip span,.grid-aside .micro,.key-row,.phase-aside .micro,.phase-legend,.panel-foot,footer{font-size:.75rem}
.segmented button,.select-row,.select-row select,.toggle-row,.camera-presets button,.scan-button,.range-field output{font-size:.875rem}
.phase-aside>strong{font-size:.75rem}.phase-dial{margin:6px 0}.phase-cell:focus-visible{outline:none;stroke:white;stroke-width:3}
@media(max-width:1150px){.result-strip strong{font-size:.75rem}.result-strip strong em{margin:0 4px}}
@media(max-width:780px){.workspace{display:flex;flex-direction:column;gap:16px}.visual-workspace{display:contents}.scene-panel{order:0;width:100%;height:420px}.result-strip{order:1;width:100%;margin-top:-16px}.control-panel{order:2;width:100%}.detail-grid{order:3;width:100%;margin:0}.formation-panel{display:grid;order:4;grid-template-columns:1fr;gap:5px}.scene-help{font-size:.75rem;right:16px;line-height:1.5}.scene-help span:last-child{display:none}.scene-help{max-width:calc(100% - 45px)}.scene-toolbar{bottom:65px}.scene-caption{bottom:116px}.scene-scale{font-size:.75rem}.camera-presets button{font-size:.75rem}.scan-button{font-size:.75rem}.phase-content{min-height:185px}.grid-content{min-height:220px}.panel-foot{font-size:.75rem}.panel-heading .eyebrow{font-size:.6875rem}.phase-legend{font-size:.6875rem}.key-row{font-size:.75rem}.formation-panel p{font-size:.9375rem}.formula>span{font-size:.875rem}.result-strip strong{white-space:normal;line-height:1.7}.phase-aside .micro{white-space:normal}}
@media(max-width:480px){.scene-panel{height:390px}.scene-toolbar{bottom:70px}.camera-presets button{padding:9px 7px}.scan-button{padding:11px 8px}.scene-help{font-size:.6875rem;bottom:15px}.scene-caption{bottom:120px}.result-strip strong{font-size:.6875rem}.result-strip span{font-size:.6875rem}.grid-content{min-height:165px}.phase-content{min-height:132px}.detail-grid{grid-template-columns:1fr}.panel-heading{flex-direction:row;align-items:center;padding:17px}.panel-heading h2{font-size:1rem}.panel-heading .mini-value{display:block;font-size:.75rem}.grid-aside{display:block}.codebook{width:60%}.grid-content{padding:12px}.phase-content{padding:16px;min-height:200px}#phase-map{width:60%}.phase-aside{display:flex}.phase-aside>strong{font-size:.75rem}.phase-aside .micro{font-size:.6875rem}.phase-legend{padding:10px 20px}.phase-aside{gap:9px}.header-actions .text-button{font-size:.75rem}}
