:root{--bg: #0e0d14;--panel: #17151f;--ink: #ece9f5;--muted: #9a96ab;--line: #2c2938;--accent: #ffd166;--warn: #ffb4a2;--mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}button,select,input{font:inherit;color:inherit}button,select{background:#24212f;border:1px solid var(--line);border-radius:6px;padding:5px 12px;cursor:pointer}button:hover:not(:disabled),select:hover{border-color:#4a4560}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#1b1708;font-weight:600;min-width:7.5em}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--muted)}.mono{font-family:var(--mono)}kbd{font-family:var(--mono);border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:0 5px}.app{height:100%;display:grid;grid-template-rows:auto auto 1fr auto}.topbar{display:flex;align-items:center;gap:16px;padding:10px 16px;border-bottom:1px solid var(--line)}.topbar h1{margin:0;font-size:1.3rem;letter-spacing:-.01em}.topbar h1 span{color:var(--accent)}.search{position:relative;flex:1;max-width:360px}.search input{width:100%;background:#1f1c2a;border:1px solid var(--line);border-radius:6px;padding:6px 10px}.search-results{position:absolute;z-index:10;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px;list-style:none;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #00000080}.search-results li.muted{padding:6px 8px}.search-results button{width:100%;text-align:left;background:none;border:0;padding:6px 8px}.search-results button:hover,.search-results button:focus-visible{background:#2a2638}.sweep{padding:8px 16px;border-bottom:1px solid var(--line);background:#12111a}.sweep-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.sweep-row+.sweep-row{margin-top:8px}.tempo input{vertical-align:middle;width:140px;accent-color:var(--accent)}.tempo output{display:inline-block;min-width:5.5em;font-family:var(--mono)}.custom input{width:min(420px,70vw);background:#1f1c2a;border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-family:var(--mono)}.warn{color:var(--warn)}.stage{min-height:0;display:grid;grid-template-columns:1fr 380px}.scene{position:relative;min-height:0;background:radial-gradient(ellipse at 50% 40%,#1d1a2b 0%,var(--bg) 70%)}.scene canvas.is-pointing{cursor:pointer}.legend{position:absolute;top:10px;left:50%;transform:translate(-50%);margin:0;padding:8px 10px;list-style:none;display:grid;grid-template-columns:repeat(4,auto);gap:2px 14px;font-size:12px;background:#0e0d14c7;border:1px solid var(--line);border-radius:8px;pointer-events:none}.legend li{white-space:nowrap}.swatch{width:10px;height:10px;margin-right:6px;vertical-align:-1px}.motion-note{position:absolute;right:12px;bottom:12px;margin:0;padding:4px 8px;font-size:12px;color:var(--muted);background:#0e0d14c7;border-radius:6px}.detail{overflow-y:auto;padding:16px;background:var(--panel);border-left:1px solid var(--line)}.detail.empty{display:flex;flex-direction:column;justify-content:center;text-align:center}.detail-head{display:flex;align-items:center;gap:14px}.detail-head h2{margin:0;font-size:1.5rem}.detail-head p{margin:0}.detail-symbol{width:64px;height:64px;flex:none}.detail-symbol text{fill:#14121a;font-family:system-ui,sans-serif}.detail-symbol .z{font-size:11px;font-weight:600}.detail-symbol .sym{font-size:28px;font-weight:700}.facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:14px 0}.facts dt{color:var(--muted)}.facts dd{margin:0;overflow-wrap:anywhere}.bohr-canvas{height:240px!important;border:1px solid var(--line);border-radius:8px;background:radial-gradient(circle,#1f1b2e,#121019 75%)}.detail h3{margin:16px 0 6px;font-size:.95rem}.spectrum{margin:0}.spectrum svg{display:block;width:100%;background:#050407;border-radius:4px}.spectrum .tick{fill:var(--muted);font-size:8px;font-family:var(--mono)}.spectrum figcaption{margin-top:4px;font-size:12px;color:var(--muted)}.credits{padding:6px 16px;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}@media(max-width:860px){.app{height:auto}.stage{grid-template-columns:1fr}.scene{height:62vh}.legend{grid-template-columns:repeat(2,auto)}.detail{border-left:0;border-top:1px solid var(--line)}}
