:root{--surface-page:#0b0e14;--surface-panel:#161b22;--surface-recessed:#05070a;--surface-raised:#21262d;--border-default:#30363d;--text-primary:#e6edf3;--text-muted:#8b949e;--accent-signal:#58a6ff;--status-success:#3fb950;--status-warning:#d29922;--status-error:#f85149;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--chrome-height:4.75rem;color:var(--text-primary);background:var(--surface-page);font-synthesis:none;font-family:Segoe UI Variable,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-behavior:smooth}body{background:radial-gradient(circle at 50% -20%, #15253a 0, var(--surface-page) 34rem);min-width:20rem;min-height:100dvh;padding-bottom:calc(var(--chrome-height) + env(safe-area-inset-bottom));margin:0}button,input,select{font:inherit}button,select,input[type=range]{accent-color:var(--accent-signal)}button,select{min-height:2.75rem}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:.1875rem solid var(--accent-signal);outline-offset:.125rem}svg{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:1.25rem;height:1.25rem}.skip-link{inset:var(--space-2) auto auto var(--space-2);z-index:100;padding:var(--space-2) var(--space-3);background:var(--text-primary);color:var(--surface-page);border-radius:.375rem;position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.app-bar{z-index:20;min-height:var(--chrome-height);justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) clamp(var(--space-3), 4vw, var(--space-6));background:color-mix(in srgb, var(--surface-panel) 92%, transparent);border-bottom:1px solid var(--border-default);-webkit-backdrop-filter:blur(.75rem);backdrop-filter:blur(.75rem);display:flex;position:sticky;top:0}.brand{align-items:center;gap:var(--space-3);min-width:0;display:flex}.brand>svg{width:2rem;height:2rem;color:var(--accent-signal)}.brand h1,.brand p{margin:0}.brand h1{letter-spacing:-.025em;font-size:1.25rem}.brand p{color:var(--text-muted);margin-top:.125rem;font-size:.75rem}.brand p span{color:var(--accent-signal)}.button,.icon-button,.tab{border:1px solid var(--border-default);color:var(--text-primary);background:var(--surface-raised);cursor:pointer;border-radius:.5rem;transition:transform .12s ease-out,border-color .12s ease-out,background-color .12s ease-out}.button{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-weight:650;display:inline-flex}.button:hover,.icon-button:hover{border-color:color-mix(in srgb, var(--accent-signal) 65%, var(--border-default))}.button:active,.icon-button:active,.tab:active{transform:scale(.97)}.button-primary{color:#fff;background:#1f6feb;border-color:#388bfd}.button[disabled]{cursor:not-allowed;opacity:.55}.icon-button{place-items:center;width:2.75rem;padding:0;display:grid}.status{width:min(100% - 1.5rem,72rem);margin:var(--space-3) auto 0;padding:var(--space-2) var(--space-3);border:1px solid;border-radius:.5rem;font-size:.75rem}.status-info{border-color:color-mix(in srgb, var(--accent-signal) 45%, transparent);background:color-mix(in srgb, var(--accent-signal) 8%, transparent);color:#9dccff}.status-success{border-color:color-mix(in srgb, var(--status-success) 45%, transparent);background:color-mix(in srgb, var(--status-success) 8%, transparent);color:#7ee787}.status-warning{border-color:color-mix(in srgb, var(--status-warning) 45%, transparent);background:color-mix(in srgb, var(--status-warning) 8%, transparent);color:#e3b341}.status-error{border-color:color-mix(in srgb, var(--status-error) 45%, transparent);background:color-mix(in srgb, var(--status-error) 8%, transparent);color:#ff7b72}.workspace{width:min(100%,72rem);padding:var(--space-3);margin:0 auto}.panel{animation:.22s ease-in-out panel-in}.panel[hidden]{display:none}@keyframes panel-in{0%{opacity:0;transform:translateY(.25rem)}to{opacity:1;transform:translateY(0)}}.dashboard-grid,.route-layout,.control-grid,.direction-grid{gap:var(--space-3);display:grid}.instrument-card{min-width:0;padding:var(--space-3);background:var(--surface-panel);border:1px solid var(--border-default);border-radius:.75rem}.instrument-card.fullscreen{z-index:50;background:var(--surface-page);border:0;border-radius:0;flex-direction:column;display:flex;position:fixed;inset:0}.instrument-card.fullscreen .measurement-well{flex:1}.card-header,.readout,.toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.card-header{margin-bottom:var(--space-3)}.card-header h2,.card-header h3,.section-intro h2,.listening-card h3{margin:0}.card-header h2{font-size:1rem}.card-header h3{font-size:.875rem}.eyebrow{margin:0 0 var(--space-1);color:var(--accent-signal);letter-spacing:.08em;text-transform:uppercase;font:700 .6875rem/1.2 Cascadia Mono,Consolas,monospace}.measurement-well{background:var(--surface-recessed);border:1px solid #1d2633;border-radius:.5rem;min-height:13.75rem;position:relative;overflow:hidden}.measurement-well.compact{min-height:10rem}canvas{width:100%;height:100%;min-height:inherit;display:block}.readout{padding-top:var(--space-2);color:var(--text-muted);font-variant-numeric:tabular-nums;font:.75rem Cascadia Mono,Consolas,monospace}.meter-row{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.meter-row>div{padding:var(--space-4);background:var(--surface-recessed);text-align:center;border-radius:.5rem}.meter-row strong{color:var(--accent-signal);font:700 clamp(1.25rem,6vw,1.75rem) Cascadia Mono,Consolas,monospace;display:block}.meter-row span{color:var(--text-muted);text-transform:uppercase;font-size:.6875rem}.tag{padding:var(--space-1) var(--space-2);background:var(--surface-raised);color:var(--text-muted);border-radius:.25rem;font:650 .6875rem Cascadia Mono,Consolas,monospace;display:inline-flex}.tag-warning{color:var(--status-warning)}.notice{margin:var(--space-3) 0 0;color:var(--text-muted);font-size:.75rem;line-height:1.5}.notice-warning{padding:var(--space-3);border-left:.1875rem solid var(--status-warning);background:color-mix(in srgb, var(--status-warning) 6%, transparent);color:#d6b76e}.section-intro{max-width:46rem;margin:var(--space-3) 0 var(--space-6)}.section-intro h2{letter-spacing:-.035em;font-size:clamp(1.5rem,5vw,2.25rem)}.section-intro>p:last-child{color:var(--text-muted);line-height:1.6}.field{gap:var(--space-2);margin-bottom:var(--space-4);display:grid}.field label{justify-content:space-between;gap:var(--space-2);color:var(--text-primary);font-size:.8125rem;font-weight:650;display:flex}.field label span,.field output{color:var(--text-muted);font:.6875rem Cascadia Mono,Consolas,monospace}.field select{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border-default);background:var(--surface-raised);color:var(--text-primary);border-radius:.5rem}.field input[type=range]{width:100%;min-height:2rem}.switch-row{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:3.5rem;margin:var(--space-4) 0;cursor:pointer;display:flex}.switch-row span{gap:var(--space-1);display:grid}.switch-row small{color:var(--text-muted)}.switch-row input{width:1.5rem;height:1.5rem}.spatial-controls{padding-top:var(--space-3);border-top:1px solid var(--border-default)}.spatial-controls[hidden]{display:none}.mode-label{color:var(--accent-signal);font-size:.75rem;font-weight:700}.listening-card{text-align:center;align-content:center;place-items:center;min-height:22rem;display:grid}.listening-card p:last-child{max-width:28rem;color:var(--text-muted);line-height:1.6}.orb{aspect-ratio:1;width:9rem;margin-bottom:var(--space-6);border:1px solid color-mix(in srgb, var(--accent-signal) 55%, transparent);background:radial-gradient(circle at 36% 30%, #b9d9ff 0, var(--accent-signal) 10%, #1f6feb 28%, #0d213d 65%, var(--surface-recessed) 72%);box-shadow:0 0 3rem color-mix(in srgb, var(--accent-signal) 24%, transparent), inset -1rem -1rem 2rem #03060a99;border-radius:50%;transform:translate(0,0)}.bearing-card{place-items:center;min-height:24rem;display:grid}.bearing-dial{aspect-ratio:1;border:1px solid var(--border-default);background:repeating-radial-gradient(circle, transparent 0 18%, #58a6ff14 18.5% 19%, transparent 19.5% 25%), linear-gradient(90deg, transparent 49.8%, #58a6ff22 50%, transparent 50.2%), linear-gradient(transparent 49.8%, #58a6ff22 50%, transparent 50.2%), var(--surface-recessed);border-radius:50%;place-items:center;width:min(80vw,20rem);display:grid;position:relative}.bearing-dial strong{color:var(--text-primary);font:700 1.75rem Cascadia Mono,Consolas,monospace}#bearing-arrow{background:linear-gradient(var(--accent-signal), transparent);transform-origin:50% 100%;opacity:.25;border-radius:1rem;width:.2rem;height:42%;position:absolute;bottom:50%;transform:rotate(0)}.toolbar{margin-top:var(--space-3);justify-content:flex-end}.tab-bar{z-index:30;min-height:var(--chrome-height);padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--border-default);-webkit-backdrop-filter:blur(.75rem);backdrop-filter:blur(.75rem);background:#0d1117f5;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;inset:auto 0 0}.tab{align-content:center;place-items:center;gap:var(--space-1);min-width:0;padding:var(--space-2) var(--space-1);color:var(--text-muted);background:0 0;border:0;border-top:.125rem solid #0000;border-radius:0;font-size:.6875rem;display:grid}.tab.active{border-top-color:var(--accent-signal);background:color-mix(in srgb, var(--accent-signal) 7%, transparent);color:var(--accent-signal)}@media (min-width:48rem){.workspace{padding:var(--space-6)}.dashboard-grid{grid-template-columns:1fr 1fr}.dashboard-grid .wide{grid-column:1/-1}.route-layout,.control-grid,.direction-grid{grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr)}.tab-bar{left:50%;right:auto;bottom:var(--space-4);border:1px solid var(--border-default);border-radius:.75rem;width:min(42rem,100% - 2rem);overflow:hidden;transform:translate(-50%)}body{padding-bottom:calc(var(--chrome-height) + var(--space-8))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
