@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap');
:root {
  color-scheme: light;
  --paper: #f4f1e9;
  --ink: #263b32;
  --muted: #626e63;
  --line: #d6dcd0;
  --accent: #ad5030;
  --green: #527153;
  --surface: #eeeee4;
  --card: #efeee5;
  --selected: #fcfaf3;
  --inactive: #e6e8df;
  --field: #f8f6ef;
  --stage: #e7e9df;
  --dot: #bdc5b7;
  --overlay: #f4f1e9ed;
  --shadow: #263b3210;
  --voice-1: #a94c2c;
  --voice-2: #276b86;
  --voice-3: #79518d;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #141b19;
  --ink: #e7e9dc;
  --muted: #a6b3a7;
  --line: #35463d;
  --accent: #efab83;
  --green: #b3c8ac;
  --surface: #202c25;
  --card: #1c2721;
  --selected: #26342b;
  --inactive: #18211c;
  --field: #17221c;
  --stage: #101813;
  --dot: #304537;
  --overlay: #1c2721ed;
  --shadow: #00000035;
  --voice-1: #efab83;
  --voice-2: #8dc6da;
  --voice-3: #c7a7df;
}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select{font:inherit}button,a,label.upload,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}a{color:inherit;text-decoration:none}header{height:90px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5vw}.wordmark{display:flex;align-items:center;gap:13px;font-size:13px;letter-spacing:2px;font-weight:700}.mark{font:46px Georgia;color:var(--accent);line-height:1}.edition{font-size:10px;letter-spacing:1.5px;color:var(--muted)}.edition span{margin-left:36px}main{max-width:1440px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 350px;padding:48px 5vw 56px;gap:48px}.intro{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:34px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:600;margin:0 0 15px;color:var(--muted)}h1{font:56px/.97 'Instrument Serif',Georgia,serif;letter-spacing:-1px;margin:0}h1 em{font-weight:400;color:var(--green)}.intro-copy{font-size:12px;line-height:1.8;color:var(--muted);margin:0 0 2px 20px}.drawing-toolbar{display:flex;align-items:center;justify-content:space-between;font-size:11px;padding:14px 0;border-top:1px solid var(--line)}.drawing-toolbar>span{max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawing-toolbar>div{display:flex;gap:18px;align-items:center}.text-button{padding:0;background:none;border:0;color:var(--muted);font-size:11px}.text-button[aria-pressed=true]{color:var(--ink);text-decoration:underline;text-underline-offset:5px}.upload{cursor:pointer;font-weight:600}.canvas-wrap{position:relative;min-height:520px;height:640px;display:flex;justify-content:center;align-items:center;background:var(--stage);border:1px solid var(--line);overflow:hidden;background-image:radial-gradient(var(--dot) .6px,transparent .6px);background-size:12px 12px}#drawing{display:block;height:calc(100% - 64px);max-width:calc(100% - 46px);object-fit:contain;cursor:crosshair;box-shadow:0 9px 30px var(--shadow);touch-action:manipulation}.canvas-note{position:absolute;left:18px;bottom:16px;display:flex;gap:8px;align-items:center;font-size:10px;background:var(--overlay);padding:7px 10px;color:var(--muted)}.live-dot{width:5px;height:5px;background:var(--accent);border-radius:50%}.scale{position:absolute;right:13px;top:18px;font-size:8px;writing-mode:vertical-rl;letter-spacing:2px;color:var(--muted)}.transport{display:flex;align-items:center;gap:10px;padding:18px 0;border-bottom:1px solid var(--line)}button.play{background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:12px 24px;min-width:125px;display:flex;align-items:center;justify-content:center;gap:12px}.play #play-icon{font-size:10px}.secondary{background:none;border:1px solid var(--line);padding:11px 13px;color:var(--ink);font-size:11px}.secondary:hover{border-color:var(--green)}#record.recording{color:var(--accent);border-color:var(--accent)}.transport-status{margin-left:auto;text-align:right;font:10px monospace;display:flex;flex-direction:column;gap:5px;color:var(--muted)}#state{color:var(--green);letter-spacing:1px}#message{font-size:11px;line-height:1.7;color:var(--muted);min-height:36px}aside{border-left:1px solid var(--line);padding-left:30px}.panel-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 22px}.panel-heading .eyebrow{margin:0}.small-mark{color:var(--green);font-size:24px}.readout{border:1px solid var(--line);padding:20px 18px 13px;background:var(--surface)}.label{font-size:9px;letter-spacing:1.6px;color:var(--muted)}#frequency{font:56px 'Instrument Serif',Georgia,serif;font-variant-numeric:tabular-nums}.unit{font-size:12px;color:var(--muted);margin-left:8px}#scope{display:block;width:100%;height:46px;margin:8px 0 13px}.readout-footer{display:flex;justify-content:space-between;gap:5px;font-size:9px;color:var(--muted)}.controls{padding:25px 0 21px;border-bottom:1px solid var(--line)}h2{font:22px 'Instrument Serif',Georgia,serif;margin:0 0 19px}label:not(.upload){display:block;font-size:11px;margin:17px 0 8px}output{float:right;color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}input[type=range]{display:block;width:100%;height:3px;accent-color:var(--green);margin:13px 0 24px;cursor:pointer}select{width:100%;background:transparent;border:1px solid var(--line);border-radius:0;padding:11px 7px;color:var(--ink);font-size:11px}.hint{font-size:10px;line-height:1.7;color:var(--muted);margin:12px 0 0}.extraction{padding:20px 0;border-bottom:1px solid var(--line)}summary{cursor:pointer;font-size:11px;list-style:none}summary span{float:right}.explanation{padding-top:25px}.explanation p{font-size:11px;line-height:1.85;color:var(--muted)}.explanation strong{font-weight:500;color:var(--ink)}.legend{display:flex;gap:20px;font-size:9px;color:var(--muted);margin-top:20px}.legend span{display:flex;align-items:center;gap:6px}.legend i{display:inline-block}.path-key{width:15px;height:1px;background:var(--green)}.cursor-key{width:6px;height:6px;border-radius:50%;background:var(--accent)}footer{border-top:1px solid var(--line);padding:24px 5vw;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:var(--muted)}button:focus-visible,canvas:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media(min-width:1400px){.canvas-wrap{height:730px}}@media(max-width:1000px){main{gap:25px;grid-template-columns:minmax(0,1fr) 290px;padding:35px 4vw}aside{padding-left:22px}.intro-copy{display:none}h1{font-size:51px}.edition span{display:none}.canvas-wrap{height:610px}.transport{gap:6px}button.play{padding:12px 14px;min-width:105px}.secondary{padding:11px 9px}}@media(max-width:700px){header{height:70px;padding:0 6vw}.edition{display:none}main{display:block;padding:30px 6vw}.intro{margin-bottom:28px}h1{font-size:50px}.canvas-wrap{height:580px;min-height:400px}.drawing-toolbar>div{gap:14px}.transport-status{font-size:9px}aside{border-left:0;padding:24px 0 0;margin-top:12px;border-top:1px solid var(--line)}.controls{padding:22px 0}.readout #frequency{font-size:50px}footer{gap:25px;font-size:8px;line-height:1.7}.scale{display:none}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
.traveller-panel{margin:0 0 22px}.traveller-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:13px}.traveller-title h2{font-size:23px;margin:0}.traveller-title>span{font-size:9px;color:var(--muted)}#travellers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.traveller{border:1px solid var(--line);padding:12px;background:var(--card);min-width:0;border-top:2px solid var(--traveller)}.traveller.selected{box-shadow:inset 0 0 0 1px var(--traveller);background:var(--selected)}.traveller.inactive{background:var(--inactive)}.traveller-heading{display:flex;justify-content:space-between;gap:5px;align-items:center;font-size:10px;font-weight:600}.traveller-heading>span{display:flex;align-items:center;gap:6px}.traveller-heading i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--traveller)}.traveller label.enable-label{display:flex;align-items:center;gap:3px;font-size:9px;margin:0;color:var(--muted)}.enable-label input{accent-color:var(--traveller);width:12px;height:12px;margin:0;cursor:pointer}.place-button{display:block;width:100%;border:1px solid var(--line);background:transparent;color:var(--ink);padding:8px;margin:12px 0 4px;font-size:10px}.place-button[aria-pressed=true]{border-color:var(--traveller);color:var(--traveller)}.traveller-fields{display:grid;grid-template-columns:1fr;gap:4px}.traveller-fields label{font-size:9px;margin:6px 0 0}.traveller-fields select{padding:7px 3px;font-size:10px;width:100%;min-width:0}.traveller-note{margin:10px 0 0;font-size:10px;color:var(--traveller);font-variant-numeric:tabular-nums}.traveller-panel>.hint{margin:9px 0 0}#resonance-label{font-size:8px;letter-spacing:1.1px}@media(max-width:1000px){.traveller{padding:9px 7px}.traveller-heading{font-size:9px;flex-wrap:wrap}.traveller-title>span{display:none}.traveller-heading i{width:5px;height:5px}.traveller-fields select{font-size:9px}}@media(max-width:700px){#travellers{grid-template-columns:1fr;gap:8px}.traveller{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:5px 14px;padding:11px 13px}.traveller-heading{grid-column:1;font-size:11px;flex-wrap:nowrap;align-self:start}.place-button{grid-column:1;grid-row:2;margin:1px 0;padding:7px}.traveller-fields{grid-column:2;grid-row:1/4;grid-template-columns:45px minmax(0,1fr);gap:8px;align-items:center}.traveller-fields label{margin:0;font-size:9px}.traveller-fields select{font-size:10px;padding:7px 3px}.traveller-note{grid-column:1;margin:1px 0 0;font-size:10px}.traveller-title h2{font-size:24px}.traveller-panel>.hint{font-size:10px}}
.effect-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.effect-heading h2{margin:0}.effect-heading label.effect-toggle{display:flex;gap:6px;align-items:center;margin:0;font-size:10px;color:var(--muted)}.effect-toggle input{accent-color:var(--green);cursor:pointer}input[type=range]:disabled{opacity:.35;cursor:default}.traveller-title{align-items:center}@media(max-width:700px){.traveller-fields{grid-template-columns:52px minmax(0,1fr)}.traveller-title h2{font-size:23px}}
.score-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 22px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:10px;color:var(--muted)}.score-toolbar>div{display:flex;gap:8px;align-items:center}.score-toolbar label.upload{font-size:11px;font-weight:400;cursor:pointer}.traveller-expression{margin-top:12px;border-top:1px solid var(--line);padding-top:10px;grid-column:1/-1}.traveller-expression summary{font-size:10px;color:var(--traveller)}.traveller-expression label{font-size:9px;margin:15px 0 7px}.traveller-expression output{font-size:9px}.traveller-expression input[type=range]{accent-color:var(--traveller);margin:11px 0 16px}input[type=text]{width:100%;border:1px solid var(--line);background:transparent;padding:10px;color:var(--ink);border-radius:0}#performance-status{min-height:34px}@media(max-width:700px){.score-toolbar{align-items:flex-start;flex-direction:column}.score-toolbar>div{width:100%}.score-toolbar .secondary{flex:1;text-align:center}.traveller-expression{margin-top:5px}.traveller-expression label{font-size:10px}.traveller-expression output{font-size:10px}}

/* Quiet surfaces, clearer controls, and a shared palette across the instrument. */
header { height: 82px; }
.header-tools { display: flex; align-items: center; gap: 28px; }
.theme-switch { display: flex; gap: 3px; padding: 4px; border: 1px solid var(--line); border-radius: 30px; background: var(--surface); }
.theme-switch button { border: 0; border-radius: 20px; background: transparent; color: var(--muted); padding: 7px 11px; font-size: 11px; min-height: 32px; }
.theme-switch button span { margin-right: 3px; font-size: 14px; }
.theme-switch button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.theme-switch button:hover:not([aria-pressed="true"]) { color: var(--ink); background: var(--field); }
.theme-switch button { width: 34px; padding: 6px; font-size: 0; gap: 0; }
.theme-switch button .ui-icon { width: 17px; height: 17px; }
.composition-tools { display: flex; align-items: center; gap: 5px; }
.header-action { width: 36px; height: 36px; display: inline-grid; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); background: var(--surface); cursor: pointer; }
.header-action.upload { margin: 0; }
.header-action .ui-icon { width: 17px; height: 17px; }
.header-action:hover:not(:disabled) { color: var(--ink); border-color: var(--green); }
.header-action:disabled { opacity: .4; cursor: default; }
main { padding-top: 44px; }
h1 { font-size: clamp(54px, 4.8vw, 70px); line-height: 1; }
.intro-copy { font-size: 12px; }
.traveller { border-radius: 12px; padding: 15px 12px; }
.traveller.selected { box-shadow: inset 0 0 0 1px var(--traveller), 0 6px 22px var(--shadow); }
.traveller-heading { font-size: 11px; }
.traveller-fields label { font-size: 10px; }
.traveller-fields select { padding: 9px 7px; font-size: 11px; }
.place-button, .secondary, select, input[type=text] { border-radius: 7px; }
select, input[type=text] { background: var(--field); }
select option { color: var(--ink); background: var(--field); }
.place-button:hover, .secondary:hover { background: var(--surface); }
.place-button[aria-pressed=true] { background: var(--field); }
.readout { border-radius: 14px; padding: 24px 20px 16px; box-shadow: 0 7px 25px var(--shadow); }
.readout #frequency { font-size: 64px; }
.canvas-wrap { border-radius: 14px; }
.canvas-note { border: 1px solid var(--line); border-radius: 6px; }
button.play { border-radius: 8px; }
button.play:hover { background: var(--green); border-color: var(--green); }
.hint, .explanation p { font-size: 11px; }
button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible, a:focus-visible, label.upload:focus-within { outline: 2px solid var(--accent); outline-offset: 4px; }
@media(max-width:1100px) { .header-tools .edition { display: none; } }
@media(max-width:700px) {
  header { height: 76px; padding: 0 5vw; gap: 12px; }
  .wordmark { font-size: 11px; gap: 8px; letter-spacing: 1.5px; }
  .mark { font-size: 36px; }
  .theme-switch { gap: 1px; padding: 3px; }
  .theme-switch button { padding: 6px 8px; font-size: 10px; }
  .theme-switch button span { display: none; }
  main { padding: 28px 5vw; }
  h1 { font-size: 54px; }
  .traveller { padding: 13px; }
  .traveller-fields select { font-size: 11px; }
  .readout #frequency { font-size: 60px; }
}

/* Listening first: the score stays central; detail appears when invited. */
[hidden] { display: none !important; }
body { padding-bottom: 96px; }
main { grid-template-columns: minmax(0,1fr) 280px; gap: 40px; padding-top: 30px; }
.intro { align-items: center; gap: 20px; margin-bottom: 25px; }
h1 { font-size: clamp(34px,3.4vw,48px); line-height: 1.08; }
.intro .eyebrow { margin-bottom: 10px; }
.intro-copy { margin: 0; flex-shrink: 0; font-size: 11px; }
.voice-bar { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; margin-bottom: 14px; }
.voice-chip { min-width: 0; border: 1px solid var(--line); border-top: 2px solid var(--traveller); border-radius: 10px; background: var(--card); overflow: hidden; }
.voice-button { display: flex; align-items: center; gap: 8px; width: 100%; border: 0; background: transparent; padding: 12px 10px 9px; text-align: left; color: var(--ink); }
.voice-button:hover, .voice-button[aria-expanded=true] { background: var(--selected); }
.voice-button>span:nth-child(2) { min-width: 0; flex: 1; }
.voice-button strong { display: block; font-size: 11px; font-weight: 500; }
.voice-button span span { display: block; color: var(--muted); font-size: 10px; margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.voice-number { display: grid; place-items: center; width: 22px; height: 22px; flex-shrink: 0; border: 1px solid var(--traveller); color: var(--traveller); border-radius: 50%; font-size: 10px; }
.voice-button.muted .voice-number { opacity: .4; }
.voice-mute { display: block; margin: 0 10px 9px auto; min-width: 44px; background: transparent; color: var(--traveller); border: 0; padding: 4px 6px; font-size: 10px; border-radius: 5px; }
.voice-mute[aria-pressed=true] { color: var(--muted); background: var(--inactive); }
#travellers.voice-settings { display: block; }
.voice-settings .traveller { display: block; margin-bottom: 16px; }
.traveller-heading { display: flex; gap: 12px; }
.close-voice { border: 0; background: transparent; font-size: 10px; color: var(--muted); margin-left: auto; }
.voice-settings .traveller label.enable-label { margin-left: 8px; }
.voice-settings .place-button { width: auto; min-width: 135px; display: inline-block; margin: 14px 0; }
.voice-settings .traveller-fields { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px 12px; }
.voice-settings .traveller-fields label { grid-row: 1; margin: 0; }
.voice-settings .traveller-fields select { grid-row: 2; }
.voice-settings .traveller-note { font-size: 10px; }
.voice-settings .traveller-expression[open] { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.voice-settings .traveller-expression summary { grid-column: 1/-1; }
.voice-settings .traveller-expression input { grid-column: 2; align-self: center; margin: 12px 0; }
.voice-settings .traveller-expression label { margin: 12px 0; }
.canvas-wrap { height: clamp(420px,64vh,760px); min-height: 420px; }
#drawing { touch-action: none; }
.drawing-toolbar { font-size: 11px; border-top: 0; }
.drawing-toolbar label.upload { color: var(--ink); padding: 9px 11px; border: 1px solid var(--line); border-radius: 7px; background: var(--field); }
.drawing-caption { display: flex; justify-content: space-between; gap: 20px; margin-top: 10px; font-size: 10px; line-height: 1.7; color: var(--muted); }
.drawing-caption p { margin: 0; }
.drawing-caption #performance-status { min-height: 0; max-width: 210px; text-align: right; color: var(--green); }
#message { min-height: 0; font-size: 10px; margin-bottom: 0; }
.listening-panel { padding-left: 26px; }
.listening-panel>.eyebrow { margin: 4px 0 23px; }
.simple-controls { border-bottom: 0; }
.simple-controls h2 { font-size: 25px; }
.control-group { border-top: 1px solid color-mix(in srgb,var(--line) 55%,transparent); }
.control-group:last-of-type { border-bottom: 1px solid color-mix(in srgb,var(--line) 55%,transparent); }
.control-group>summary { display: flex; justify-content: space-between; align-items: center; padding: 15px 0; font-size: 11px; color: var(--ink); }
.control-group>summary span { display: flex; color: var(--muted); transition: transform .2s ease; }
.control-group[open]>summary span { transform: rotate(45deg); }
.control-group .group-content { padding: 0 0 18px; }
.control-group .group-content>label:first-child { margin-top: 0; }
.control-group .group-content .hint:first-child { margin-top: 0; }
.control-group .effect-heading { margin: 0 0 8px; }
.score-toolbar { margin-top: 15px; padding: 0; border: 0; flex-direction: column; align-items: flex-start; }
.score-toolbar>span { display: none; }
.score-toolbar>div { flex-wrap: wrap; }
.control-group .readout { padding: 14px; }
.control-group #frequency { font-size: 44px; }
.privacy-note { color: var(--muted); font-size: 10px; line-height: 1.8; margin-top: 20px; }
.transport { position: fixed; z-index: 10; bottom: 0; left: 0; right: 0; margin: 0; padding: 16px max(5vw,calc((100vw - 1296px)/2)); background: var(--paper); border-top: 1px solid var(--line); border-bottom: 0; box-shadow: 0 -8px 28px var(--shadow); gap: 12px; }
.transport button { min-height: 43px; }
.transport-status { flex-direction: row; align-items: center; gap: 16px; }
.transport-status #state { font-size: 9px; }
footer { padding-top: 18px; padding-bottom: 18px; }
@media(max-width:1000px) {
  main { grid-template-columns: minmax(0,1fr) 245px; gap: 24px; }
  .listening-panel { padding-left: 22px; }
  .intro-copy { display: none; }
  .voice-button { padding: 10px 7px 8px; gap: 6px; }
  .voice-number { width: 18px; height: 18px; }
  .drawing-caption { display: block; }
  .drawing-caption #performance-status { text-align: left; margin-top: 7px; max-width: none; }
  .drawing-toolbar>div { gap: 10px; }
  .drawing-toolbar label.upload { max-width: 126px; }
}
@media(max-width:700px) {
  body { padding-bottom: 88px; }
  main { display: block; padding: 24px 5vw; }
  h1 { font-size: 39px; max-width: 310px; }
  .intro { margin-bottom: 20px; }
  .voice-bar { gap: 6px; }
  .voice-button { padding: 10px 7px 6px; gap: 6px; }
  .voice-button strong { font-size: 10px; }
  .voice-button span span { font-size: 9px; }
  .voice-mute { margin: 0 5px 6px auto; }
  .voice-settings .traveller { display: block; padding: 13px; }
  .voice-settings .traveller-fields { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
  .voice-settings .traveller-fields select { font-size: 10px; padding: 8px 4px; }
  .voice-settings .traveller-fields label { font-size: 10px; }
  .canvas-wrap { height: 58svh; min-height: 350px; max-height: 630px; }
  #drawing { height: calc(100% - 50px); max-width: calc(100% - 32px); }
  .drawing-toolbar { flex-wrap: wrap; gap: 10px; }
  .drawing-toolbar>span { max-width: 100%; width: 100%; }
  .drawing-toolbar>div { width: 100%; justify-content: flex-end; gap: 18px; }
  .drawing-toolbar label.upload { margin-right: auto; order: -1; max-width: none; }
  .canvas-note { left: 10px; bottom: 8px; font-size: 9px; padding: 5px 7px; }
  .listening-panel { border-left: 0; padding: 25px 0 0; margin-top: 25px; border-top: 1px solid var(--line); }
  .listening-panel>.eyebrow { display: none; }
  .transport { padding: 12px 5vw max(12px,env(safe-area-inset-bottom)); gap: 7px; }
  .transport button { font-size: 11px; padding: 10px; min-width: 0; }
  .transport button.play { min-width: 100px; }
  .transport-status { flex-direction: column; gap: 3px; font-size: 10px; }
  .transport-status #state { display: none; }
}

/* Keep the opening screen quiet; status text appears only when needed. */
.upload-privacy { margin: -2px 0 12px; text-align: right; color: var(--muted); font-size: 10px; }
.drawing-caption { justify-content: flex-start; }
footer { justify-content: flex-end; }
@media(max-width:700px) { .upload-privacy { text-align: left; } }

.presets { padding: 0 0 4px; }
.presets label { margin: 0 0 9px; }
.presets select { font-size: 13px; padding: 12px; }

.header-tools { gap: 12px; }
.settings-menu { position: relative; }
.settings-menu>summary { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); background: var(--surface); }
.settings-menu>summary::-webkit-details-marker { display: none; }
.settings-menu[open]>summary, .settings-menu>summary:hover { color: var(--ink); border-color: var(--green); }
.settings-popover { position: absolute; z-index: 30; top: 48px; right: 0; width: 265px; max-width: 85vw; background: var(--field); border: 1px solid var(--line); border-radius: 12px; padding: 20px; box-shadow: 0 12px 40px var(--shadow); }
.settings-popover h2 { margin: 0 0 18px; font-size: 25px; }
.settings-popover label { margin-top: 0; }
.settings-popover .hint { font-size: 10px; }
.settings-popover h3 { margin: 0 0 12px; font-size: 17px; font-family: 'Instrument Serif', Georgia, serif; font-weight: 400; }
.settings-section + .settings-section { border-top: 1px solid var(--line); margin-top: 18px; padding-top: 18px; }
.settings-popover input[type="number"] { width: 100%; border: 1px solid var(--line); border-radius: 0; background: transparent; color: var(--ink); padding: 10px 8px; font: inherit; }
.documentation-link { display: flex; width: 100%; justify-content: center; align-items: center; margin-top: 8px; color: var(--ink); text-decoration: none; }
.about-instrument { border-top: 1px solid var(--line); padding: 82px 5vw 116px; background: color-mix(in srgb,var(--surface) 42%,transparent); }
.about-instrument-inner { max-width: 1120px; margin: 0 auto; }
.about-eyebrow { margin: 0 0 16px; color: var(--green); font-size: 10px; font-weight: 600; letter-spacing: 1.7px; }
.about-instrument h2 { margin: 0; font: 400 clamp(38px,5vw,56px)/1.05 'Instrument Serif',Georgia,serif; }
.about-tagline { margin: 14px 0 48px; color: var(--muted); font: italic 28px/1.2 'Instrument Serif',Georgia,serif; }
.about-columns { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 36px; }
.about-columns article { border-top: 1px solid var(--line); padding-top: 18px; }
.about-columns h3 { margin: 0 0 12px; font-size: 13px; font-weight: 500; }
.about-columns p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.85; }
.about-links { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 38px; padding-top: 18px; border-top: 1px solid var(--line); }
.about-links a { color: var(--muted); font-size: 11px; text-underline-offset: 4px; }
.about-links a:hover { color: var(--ink); text-decoration: underline; }
@media(max-width:700px) { .about-instrument { padding: 58px 6vw 106px; } .about-tagline { margin-bottom: 34px; font-size: 25px; } .about-columns { grid-template-columns: 1fr; gap: 22px; } .about-columns article { padding-top: 14px; } .about-links { gap: 16px; margin-top: 30px; } }
.settings-popover { max-height: calc(100vh - 72px); overflow-y: auto; }

.canvas-wrap.luminous { background: transparent; background-image: none; border-color: transparent; }
.canvas-wrap.luminous #drawing { box-shadow: none; }
.zoom-tools { position: absolute; z-index: 2; top: 12px; right: 12px; display: flex; align-items: center; gap: 4px; padding: 4px; border: 1px solid var(--line); border-radius: 9px; background: var(--overlay); box-shadow: 0 3px 14px var(--shadow); }
.zoom-tools button { min-width: 30px; height: 28px; border: 0; border-radius: 6px; background: transparent; color: var(--ink); font-size: 16px; }
.zoom-tools button:hover { background: var(--surface); }
.zoom-tools #zoom-reset { min-width: 45px; font-size: 10px; font-variant-numeric: tabular-nums; }
#drawing.zoomed { cursor: grab; }
#drawing.panning { cursor: grabbing; }
.canvas-wrap.luminous #drawing.zoomed { cursor: grab; }
.encoder-credits { display: inline-block; margin-top: 18px; font-size: 9px; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
@media(max-width:700px) { .header-tools { gap: 7px; } .composition-tools { gap: 3px; } .header-action { width: 32px; height: 32px; } .theme-switch button { width: 30px; min-height: 28px; padding: 5px; } .theme-switch button .ui-icon { width: 15px; height: 15px; } .settings-menu>summary { width: 32px; height: 32px; } }
@media(max-width:380px) { header { padding-left: 4vw; padding-right: 4vw; } .header-tools { gap: 4px; } .composition-tools { gap: 2px; } .theme-switch button { width: 27px; } .header-action, .settings-menu>summary { width: 29px; height: 29px; } .wordmark { gap: 7px; font-size: 11px; } .mark { font-size: 38px; } }

/* The viewport fills the drawing panel; the camera fits and zooms the vector drawing. */
.canvas-wrap #drawing { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: fill; box-shadow: none; }
.canvas-wrap #drawing.panning { cursor: grabbing; }

.workspace { min-width: 0; }

/* The drawing stays in place; the sidebar switches between mix and voice editing. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
header { height: 68px; border-bottom-color: color-mix(in srgb,var(--line) 65%,transparent); }
main { grid-template-columns: minmax(0,1fr) 300px; gap: 32px; align-items: start; padding-top: 24px; padding-bottom: 32px; }
.voice-bar { margin-bottom: 8px; }
.voice-chip { display: flex; align-items: center; min-height: 54px; border: 1px solid color-mix(in srgb,var(--line) 65%,transparent); background: transparent; border-radius: 9px; }
.voice-chip.editing { border-color: color-mix(in srgb,var(--traveller) 55%,transparent); background: var(--surface); }
.voice-button { flex: 1; width: auto; min-width: 0; padding: 10px; }
.voice-button:hover, .voice-button[aria-expanded=true] { background: transparent; }
.voice-number { border: 0; background: color-mix(in srgb,var(--traveller) 10%,transparent); }
.voice-mute { display: grid; place-items: center; margin: 0 7px 0 0; min-width: 32px; min-height: 32px; padding: 4px; }
.drawing-toolbar { gap: 12px; padding: 8px 0 12px; flex-wrap: wrap; }
.drawing-toolbar>span { flex: 1; min-width: 90px; max-width: none; }
.drawing-toolbar .drawing-actions { flex: 0 1 auto; gap: 8px; }
.drawing-actions select { width: auto; max-width: 180px; min-width: 0; height: 34px; padding: 7px 8px; background: transparent; border-color: color-mix(in srgb,var(--line) 75%,transparent); }
.drawing-toolbar label.upload { display: flex; align-items: center; min-height: 34px; padding: 7px 10px; background: transparent; border-color: color-mix(in srgb,var(--line) 75%,transparent); white-space: nowrap; }
.canvas-wrap { height: clamp(440px,calc(100svh - 300px),940px); min-height: 440px; border: 0; border-radius: 0; background: transparent; background-image: none; }
.zoom-tools { top: 8px; right: 8px; box-shadow: none; border-color: color-mix(in srgb,var(--line) 65%,transparent); }
.drawing-caption { flex-wrap: wrap; gap: 4px 18px; }
.drawing-caption .upload-privacy { margin: 0 0 0 auto; white-space: nowrap; }
.listening-panel { align-self: start; padding-left: 24px; border-left-color: color-mix(in srgb,var(--line) 65%,transparent); }
.panel-title { font-size: 24px; margin: 0 0 22px; }
.panel-back { display: inline-flex; align-items: center; min-height: 34px; padding: 0 4px; margin: 0 0 22px; background: transparent; border: 0; color: var(--muted); font-size: 12px; }
.panel-back:hover { color: var(--ink); }
.listening-panel .voice-settings .traveller { display: block; padding: 0; margin: 0; border: 0; background: transparent; box-shadow: none; }
.listening-panel .traveller-heading { font-size: 14px; gap: 8px; }
.listening-panel .traveller-heading .enable-label { margin-left: auto; }
.listening-panel .voice-settings .traveller-fields { display: flex; flex-direction: column; gap: 0; }
.listening-panel .voice-settings .traveller-fields label { margin: 17px 0 8px; font-size: 11px; }
.listening-panel .voice-settings .traveller-fields select { padding: 11px 9px; font-size: 12px; }
.listening-panel .voice-settings .place-button { min-width: 0; margin: 18px 0 0; }
.listening-panel .voice-settings .traveller-expression[open] { display: block; }
.listening-panel .voice-settings .traveller-expression label { margin: 17px 0 8px; }
.listening-panel .voice-settings .traveller-expression input { margin: 13px 0 24px; }
.listening-panel .traveller-note { margin: 16px 0; line-height: 1.6; }
.control-group, .controls { border-color: color-mix(in srgb,var(--line) 65%,transparent); }
.transport { box-shadow: none; border-top-color: color-mix(in srgb,var(--line) 65%,transparent); }
@media(max-width:1000px) {
  main { grid-template-columns: minmax(0,1fr) 260px; gap: 24px; }
  .voice-button { padding: 9px 7px; gap: 6px; }
  .voice-mute { min-width: 26px; margin-right: 4px; font-size: 9px; }
  .drawing-toolbar>span { flex-basis: 100%; }
  .drawing-toolbar .drawing-actions { margin-left: auto; }
}
@media(max-width:700px) {
  header { height: 64px; }
  main { padding-top: 20px; }
  .voice-chip { display: block; }
  .voice-button { width: 100%; padding: 9px 7px 4px; }
  .voice-mute { margin: 0 5px 4px auto; min-height: 26px; }
  .drawing-toolbar>span { width: auto; }
  .drawing-toolbar .drawing-actions { width: 100%; justify-content: space-between; }
  .drawing-toolbar label.upload { order: 0; margin: 0; }
  .drawing-actions select { max-width: 55%; }
  .canvas-wrap { height: 58svh; min-height: 350px; max-height: 720px; }
  .drawing-caption { display: flex; }
  .drawing-caption .upload-privacy { margin-left: 0; }
  .listening-panel { padding: 22px 0 0; border-left: 0; margin-top: 20px; }
  #voice-editor { scroll-margin-top: 18px; }
}

/* Luminous threads: quiet light around the drawing, with all controls kept visible. */
.luminous-mode body { background: radial-gradient(ellipse at 22% 32%,#c5a7740b,transparent 55%),radial-gradient(ellipse at 62% 70%,#8bb4c00b,transparent 50%),var(--paper); }
.luminous-mode .voice-chip { border-color: transparent; background: color-mix(in srgb,var(--surface) 55%,transparent); border-radius: 28px; }
.luminous-mode .voice-chip.editing { background: color-mix(in srgb,var(--traveller) 9%,var(--paper)); }
.luminous-mode .listening-panel { padding: 20px; border: 1px solid color-mix(in srgb,var(--line) 40%,transparent); border-radius: 16px; background: color-mix(in srgb,var(--paper) 78%,transparent); backdrop-filter: blur(16px); }
.luminous-mode .transport { left: 50%; right: auto; bottom: 14px; transform: translateX(-50%); width: min(700px,calc(100% - 32px)); padding: 12px 16px; border: 1px solid color-mix(in srgb,var(--line) 60%,transparent); border-radius: 16px; background: var(--overlay); backdrop-filter: blur(18px); box-shadow: 0 8px 30px var(--shadow); }
@media(max-width:700px) {
  .luminous-mode .listening-panel { padding: 18px; }
  .luminous-mode .transport { width: calc(100% - 24px); bottom: 10px; padding: 10px; }
  .luminous-mode .transport button.play { min-width: 86px; }
}

/* A shared language for the controls: thin strokes, soft light, and readable labels. */
:root { --record-color: #a65e5d; }
:root[data-theme="dark"] { --record-color: #e5aaa3; }
.icon-library { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
.ui-icon { display: inline-block; width: 17px; height: 17px; flex: 0 0 auto; vertical-align: middle; }
.theme-switch button { display: inline-flex; align-items: center; justify-content: center; gap: 5px; }
.theme-switch button .ui-icon { width: 15px; height: 15px; }
.settings-menu>summary .ui-icon { width: 19px; height: 19px; }
.drawing-toolbar label.upload, .score-toolbar .secondary, .panel-back, .place-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.drawing-toolbar label.upload .ui-icon, .panel-back .ui-icon { width: 15px; height: 15px; }
.encoder-credits .ui-icon { width: 11px; height: 11px; margin-left: 2px; }
.zoom-tools button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.zoom-tools #zoom-reset { min-width: 68px; }
.zoom-tools #zoom-reset .ui-icon { width: 13px; height: 13px; opacity: .65; }
.voice-chip, .luminous-mode .voice-chip { border: 1px solid transparent; border-radius: 30px; background: color-mix(in srgb,var(--surface) 52%,transparent); }
.voice-chip.editing, .luminous-mode .voice-chip.editing { border-color: color-mix(in srgb,var(--traveller) 20%,transparent); background: color-mix(in srgb,var(--traveller) 7%,var(--paper)); }
.voice-button { gap: 10px; padding: 12px 14px; }
.voice-button strong { font-size: 11px; font-weight: 500; letter-spacing: .015em; }
.voice-button span span { font-size: 10px; margin-top: 3px; }
.voice-number { display: grid; place-items: center; width: 17px; height: 22px; border: 0; background: transparent; color: var(--traveller); }
.voice-light { display: block; width: 7px; height: 7px; border-radius: 50%; background: currentColor; opacity: .55; box-shadow: 0 0 8px 1px currentColor; }
.voice-button.muted .voice-light { opacity: .2; box-shadow: none; }
.voice-mute { min-width: 35px; color: var(--muted); font-size: 10px; }
.voice-mute:hover { color: var(--traveller); background: color-mix(in srgb,var(--traveller) 7%,transparent); }
.listening-panel, .luminous-mode .listening-panel { padding: 24px; border: 0; border-radius: 20px; background: color-mix(in srgb,var(--field) 70%,transparent); backdrop-filter: blur(20px); box-shadow: 0 10px 40px var(--shadow); }
.panel-title, .listening-panel .controls h2, .listening-panel .readout h2, .settings-popover h2, .settings-popover h3 { font: 500 13px/1.5 'DM Sans',sans-serif; letter-spacing: .01em; }
.panel-title { margin-bottom: 22px; }
.section-icon { width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; }
.panel-title { display: flex; align-items: center; gap: 9px; }
.sound-icon { color: var(--muted); }
.voices-icon { width: 19px; height: 19px; margin-right: 2px; }
.voices-icon .voice-dot { stroke: none; }
.voices-icon .dot-one { fill: var(--voice-1); }
.voices-icon .dot-two { fill: var(--voice-2); }
.voices-icon .dot-three { fill: var(--voice-3); }
.control-group > summary .summary-label { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); transition: none; }
.control-group[open] > summary .summary-label { transform: none; }
.journey-icon, .fx-icon { color: var(--muted); }
.listening-panel .controls { border: 0; padding: 24px 0; }
.listening-panel label:not(.upload), .settings-popover label, .listening-panel .voice-settings .traveller-fields label { font-size: 11px; font-weight: 400; }
.listening-panel .traveller-heading { font-size: 13px; font-weight: 500; }
.listening-panel .voice-settings .traveller label.enable-label { margin-left: auto; }
.listening-panel .control-group { border-top-color: color-mix(in srgb,var(--line) 45%,transparent); }
.listening-panel .control-group .group-content { padding-bottom: 16px; }
.listening-panel .hint, .drawing-caption, #message { font-size: 10px; line-height: 1.7; }
select { appearance: none; padding-right: 30px !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23818c81' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 9px center; }
.listening-panel select, .settings-popover select { border-color: color-mix(in srgb,var(--line) 65%,transparent); background-color: color-mix(in srgb,var(--paper) 45%,transparent); font-size: 12px; }
.presets select { font-size: 12px; }
input[type=range] { --slider-color: var(--green); appearance: none; -webkit-appearance: none; height: 28px; margin: 1px 0 17px; background: transparent; cursor: pointer; }
.traveller input[type=range] { --slider-color: var(--traveller); }
input[type=range]::-webkit-slider-runnable-track { height: 2px; border-radius: 2px; background: linear-gradient(to right,var(--slider-color) 0%,var(--slider-color) var(--range-progress,0%),color-mix(in srgb,var(--line) 70%,transparent) var(--range-progress,0%),color-mix(in srgb,var(--line) 70%,transparent) 100%); }
input[type=range]::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: 11px; height: 11px; margin-top: -4.5px; border: 2px solid var(--field); border-radius: 50%; background: var(--slider-color); box-shadow: 0 0 9px color-mix(in srgb,var(--slider-color) 35%,transparent); }
input[type=range]::-moz-range-track { height: 2px; border-radius: 2px; background: color-mix(in srgb,var(--line) 70%,transparent); }
input[type=range]::-moz-range-progress { height: 2px; background: var(--slider-color); }
input[type=range]::-moz-range-thumb { width: 8px; height: 8px; border: 2px solid var(--field); border-radius: 50%; background: var(--slider-color); box-shadow: 0 0 9px color-mix(in srgb,var(--slider-color) 35%,transparent); }
input[type=range]:focus-visible { outline: none; }
input[type=range]:not(:disabled):hover::-webkit-slider-thumb, input[type=range]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 2px var(--paper),0 0 0 3px var(--slider-color),0 0 16px color-mix(in srgb,var(--slider-color) 45%,transparent); }
input[type=range]:not(:disabled):hover::-moz-range-thumb, input[type=range]:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 2px var(--paper),0 0 0 3px var(--slider-color),0 0 16px color-mix(in srgb,var(--slider-color) 45%,transparent); }
output { opacity: .72; font-size: 10px; font-weight: 400; font-variant-numeric: tabular-nums; transition: opacity .15s,color .15s; }
label:hover output, label:has(+ input[type=range]:is(:focus-visible,:active,:hover)) output { opacity: 1; color: var(--ink); }
.transport, .luminous-mode .transport { left: 50%; right: auto; bottom: 14px; transform: translateX(-50%); width: min(640px,calc(100% - 32px)); padding: 10px 12px; border: 1px solid color-mix(in srgb,var(--line) 35%,transparent); border-radius: 40px; background: var(--overlay); backdrop-filter: blur(20px); box-shadow: 0 8px 32px var(--shadow); gap: 8px; }
.transport button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; font-size: 12px; font-weight: 400; }
.transport #play-icon, .transport #record-icon { display: grid; place-items: center; }
.transport button.play { min-width: 126px; border-radius: 30px; padding: 12px 20px; border: 0; box-shadow: 0 0 20px color-mix(in srgb,var(--green) 12%,transparent); }
.transport button.play .ui-icon { width: 16px; height: 16px; }
.transport .secondary { border: 1px solid transparent; border-radius: 30px; padding: 10px 12px; background: transparent; color: var(--muted); }
.transport .secondary:hover:not(:disabled) { background: var(--surface); color: var(--ink); }
.transport #record.recording { border-color: transparent; color: var(--record-color); background: color-mix(in srgb,var(--record-color) 8%,transparent); }
.transport-status { gap: 10px; padding-right: 8px; }
.transport-status #state { font-size: 8px; letter-spacing: .06em; }
#elapsed { color: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.record-indicator { width: 5px; height: 5px; flex: 0 0 auto; border-radius: 50%; background: var(--record-color); box-shadow: 0 0 10px color-mix(in srgb,var(--record-color) 55%,transparent); }
#record.busy .ui-icon { animation: encoder-turn 1.3s linear infinite; }
@keyframes encoder-turn { to { transform: rotate(360deg); } }
@media(max-width:1000px) { .voice-button { padding: 10px; gap: 7px; } }
@media(max-width:700px) {
  .theme-switch button { gap: 4px; padding: 6px 7px; }
  .theme-switch button .ui-icon { width: 13px; height: 13px; }
  .voice-button { padding: 10px 8px 4px; gap: 6px; }
  .voice-number { width: 12px; }
  .voice-light { width: 6px; height: 6px; }
  .listening-panel, .luminous-mode .listening-panel { padding: 20px; }
  .transport, .luminous-mode .transport { width: calc(100% - 24px); bottom: 10px; padding: 7px; gap: 3px; }
  .transport button { font-size: 11px; gap: 5px; }
  .transport button.play, .luminous-mode .transport button.play { min-width: 90px; padding: 10px 12px; }
  .transport .secondary { padding: 9px 8px; }
  .transport-status { flex-direction: row; padding-right: 5px; gap: 5px; }
  .transport .secondary .ui-icon { width: 15px; height: 15px; }
}
@media(prefers-reduced-motion:reduce) { #record.busy .ui-icon { animation: none; } output { transition: none; } }
@media(max-width:700px) {
  .transport button.play, .luminous-mode .transport button.play { min-width: 84px; }
  .transport #reset { min-width: 34px; padding: 9px 8px; }
  .transport #reset>span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .transport-status { padding-right: 0; gap: 4px; }
}
.voice-button>span.voice-copy { display: block; }
.drawing-settings-menu { position: relative; flex: 0 0 auto; }
.drawing-settings-button { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 7px 10px; border: 1px solid color-mix(in srgb,var(--line) 75%,transparent); border-radius: 7px; background: transparent; color: var(--ink); font-size: 11px; white-space: nowrap; }
.drawing-settings-button::-webkit-details-marker { display: none; }
.drawing-settings-button .ui-icon { width: 15px; height: 15px; }
.drawing-settings-menu[open] .drawing-settings-button, .drawing-settings-button:hover { border-color: var(--green); }
.drawing-settings-popover { position: absolute; z-index: 20; top: calc(100% + 8px); right: 0; width: 270px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--field); box-shadow: 0 10px 32px var(--shadow); }
.drawing-settings-popover label { margin: 0 0 8px; }
.drawing-settings-popover input[type=range] { margin: 13px 0 16px; }
.drawing-settings-popover .hint { margin: 0 0 14px; }
.drawing-settings-popover #analyse { width: 100%; }
.drawing-settings-popover .suggestion-button { width: 100%; margin: 0 0 10px; font-size: 11px; }
/* Bring interactive text up to a more comfortable reading size. */
label:not(.upload), .control-group>summary { font-size: 12px; }
.hint, .explanation p, .drawing-caption, #message, .settings-popover .hint { font-size: 12px; }
.listening-panel label:not(.upload), .settings-popover label, .voice-settings .traveller-fields label, .listening-panel .voice-settings .traveller-fields label, .traveller label.enable-label, .voice-settings .traveller label.enable-label { font-size: 12px; }
.listening-panel .hint { font-size: 12px; }
output { font-size: 11px; }
select, .secondary { font-size: 12px; }
.canvas-note { font-size: 12px; }
.voice-button strong { font-size: 12px; }
.voice-button span span, .voice-mute, .traveller-note, .place-button { font-size: 11px; }
.traveller-heading { font-size: 11px; }
.voice-number { font-size: 11px; }
.effect-heading label.effect-toggle { font-size: 12px; }
.drawing-settings-button { width: 36px; justify-content: center; padding: 7px; }
.drawing-actions .zoom-tools { position: static; z-index: auto; top: auto; right: auto; gap: 3px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.drawing-actions .zoom-tools button { width: 30px; min-width: 30px; height: 34px; padding: 5px; border: 1px solid color-mix(in srgb,var(--line) 75%,transparent); border-radius: 7px; background: transparent; color: var(--ink); }
.drawing-actions .zoom-tools button:hover { border-color: var(--green); background: var(--field); }
.drawing-actions .zoom-tools #zoom-reset { min-width: 66px; }
.view-mode-select { position: relative; display: inline-flex; min-width: 0; }
.view-mode-select select { padding-left: 34px; }
.view-mode-icon { position: absolute; z-index: 1; left: 9px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%); color: var(--green); pointer-events: none; }
@media(max-width:360px) {
  .theme-switch button { font-size: 0; gap: 0; min-width: 28px; padding: 6px; }
}
@media(max-width:700px) {
  .drawing-toolbar .drawing-actions { flex-wrap: wrap; justify-content: flex-start; gap: 8px; }
  .drawing-actions .view-mode-select { flex: 1 0 100%; width: 100%; }
  .view-mode-select select { width: 100%; max-width: none; }
  .drawing-toolbar label.upload { margin: 0; }
}

/* Keep drawing tools together as a small control dock. */
.drawing-toolbar { min-height: 50px; margin: 0 0 12px; padding: 6px; border: 1px solid color-mix(in srgb,var(--line) 85%,transparent); border-radius: 11px; background: color-mix(in srgb,var(--surface) 88%,transparent); }
.drawing-toolbar>span[hidden] { display: none !important; }
.drawing-toolbar .drawing-actions { flex: 1 1 auto; width: 100%; min-width: 0; justify-content: space-between; gap: 10px; }
.drawing-control-group { display: flex; align-items: center; gap: 7px; min-width: 0; }
.drawing-navigation-controls { padding-left: 10px; border-left: 1px solid color-mix(in srgb,var(--line) 75%,transparent); }
.drawing-toolbar .view-mode-select { flex: 0 1 auto; }
.drawing-toolbar .view-mode-select select { min-width: 145px; max-width: 190px; border-radius: 7px; background-color: color-mix(in srgb,var(--paper) 45%,transparent); }
.drawing-toolbar label.upload { border-radius: 7px; background: color-mix(in srgb,var(--paper) 35%,transparent); }
.drawing-toolbar label.upload:hover, .drawing-toolbar .view-mode-select select:hover { background: var(--field); border-color: var(--green); }
@media(max-width:700px) {
  .drawing-toolbar { min-height: 0; padding: 7px; }
  .drawing-toolbar .drawing-actions { flex-wrap: wrap; justify-content: space-between; gap: 7px; }
  .drawing-display-controls { width: 100%; justify-content: space-between; }
  .drawing-toolbar .view-mode-select { flex: 1 1 140px; width: auto; }
  .drawing-toolbar .view-mode-select select { width: 100%; max-width: none; min-width: 0; }
  .drawing-navigation-controls { width: 100%; justify-content: flex-end; padding: 7px 0 0; border-left: 0; border-top: 1px solid color-mix(in srgb,var(--line) 75%,transparent); }
}

.recording-monitor { display: flex; align-items: center; gap: 9px; margin-left: auto; color: var(--accent); font: 11px monospace; font-variant-numeric: tabular-nums; }
#recording-waveform { display: block; width: 120px; height: 30px; }
@media(max-width:700px) {
  .recording-monitor { gap: 4px; }
  #recording-waveform { width: 62px; height: 24px; }
}

.transport .transport-status { margin-left: auto; }
#recording-monitor:not([hidden]) + .transport-status { margin-left: 0; }
#recording-monitor:not([hidden]) ~ .transport-status #elapsed { display: none; }

.path-preview-legend { position: absolute; z-index: 2; top: 12px; right: 12px; display: flex; flex-direction: column; gap: 7px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 7px; background: var(--overlay); color: var(--ink); font-size: 10px; pointer-events: none; }
.path-preview-legend[hidden] { display: none; }
.path-preview-legend span { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.path-preview-legend i { display: inline-block; width: 15px; height: 2px; border-radius: 2px; }
.current-path-key { background: var(--green); opacity: .48; }
.candidate-path-key { background: #087c68; }
[data-theme="dark"] .candidate-path-key { background: #a6e6c4; }

.transport #record-video { display: flex; align-items: center; justify-content: center; gap: 6px; min-width: 82px; }
.transport #record-video.recording { color: var(--accent); border-color: var(--accent); }
@media(max-width:700px) {
  .transport #record-video { min-width: 0; gap: 4px; }
  .transport #record-video .ui-icon { width: 15px; height: 15px; }
}
@media(max-width:380px) {
  .transport { gap: 4px; }
  .transport button.play { min-width: 78px; padding: 10px 6px; }
  .transport #reset, .transport #record, .transport #record-video { padding: 10px 7px; }
  #recording-waveform { width: 38px; }
}
