/* Speaker Clock — generated from tokens.json */
:root, [data-theme="ghost"] {
  --ground: #0a0a0a;
  --surface: #141312;
  --raised: #1e1c1a;
  --well: #060606;
  --line: #34302b;
  --line-strong: #514a41;
  --ink: #ffe9c6;
  --ink-muted: #b9a78b;
  --accent: #ffd48a;
  --on-accent: #1a1206;
  --primary: #ffe9c6;
  --on-primary: #0a0a0a;
  --focus: #ffd48a;
  --danger: #f07a55;
  --success: #8fd19e;
  --signal-normal: #2e7d4a;
  --signal-warning: #e3a63b;
  --signal-critical: #c24a24;
  --signal-over: #a51d2d;
  --shadow-bevel: inset 0 1px 0 rgba(255,233,198,0.08), 0 2px 0 rgba(0,0,0,0.6);
  --shadow-well: inset 0 2px 4px rgba(0,0,0,0.6);
  --shadow-lift: 0 18px 50px rgba(0,0,0,0.7);
}
[data-theme="graphite"] {
  --ground: #151413;
  --surface: #1d1b19;
  --raised: #292623;
  --well: #0f0e0d;
  --line: #3b3733;
  --line-strong: #544e48;
  --ink: #efe9e1;
  --ink-muted: #a69d92;
  --accent: #7f95ff;
  --on-accent: #0b0f2e;
  --primary: #efe9e1;
  --on-primary: #151413;
  --focus: #9aabff;
  --danger: #f07a55;
  --success: #7fd19b;
  --signal-normal: #23804a;
  --signal-warning: #f0a51a;
  --signal-critical: #c4441f;
  --signal-over: #b3122b;
  --shadow-bevel: inset 0 1px 0 rgba(255,233,198,0.08), 0 2px 0 rgba(0,0,0,0.6);
  --shadow-well: inset 0 2px 4px rgba(0,0,0,0.6);
  --shadow-lift: 0 18px 50px rgba(0,0,0,0.7);
}
[data-theme="gaffer"] {
  --ground: #0d0d0e;
  --surface: #17171a;
  --raised: #222226;
  --well: #08080a;
  --line: #34343a;
  --line-strong: #4a4a52;
  --ink: #f4f4f5;
  --ink-muted: #9d9da6;
  --accent: #ff4f9a;
  --on-accent: #2b0014;
  --primary: #ff4f9a;
  --on-primary: #2b0014;
  --focus: #ff7ab3;
  --danger: #ff7a52;
  --success: #5fe0a8;
  --signal-normal: #13804f;
  --signal-warning: #ffc233;
  --signal-critical: #c9401a;
  --signal-over: #c8102e;
  --shadow-bevel: inset 0 1px 0 rgba(255,233,198,0.08), 0 2px 0 rgba(0,0,0,0.6);
  --shadow-well: inset 0 2px 4px rgba(0,0,0,0.6);
  --shadow-lift: 0 18px 50px rgba(0,0,0,0.7);
}
[data-theme="promptbook"] {
  --ground: #e9ecef;
  --surface: #ffffff;
  --raised: #f7f8fa;
  --well: #dfe3e8;
  --line: #c5ccd5;
  --line-strong: #98a3b0;
  --ink: #19212c;
  --ink-muted: #4f5a69;
  --accent: #f3d23c;
  --on-accent: #19212c;
  --primary: #19212c;
  --on-primary: #ffffff;
  --focus: #1f5fbf;
  --danger: #b3261e;
  --success: #1d6b3a;
  --signal-normal: #0072b2;
  --signal-warning: #e69f00;
  --signal-critical: #b34f00;
  --signal-over: #6a1d55;
  --shadow-bevel: inset 0 1px 0 rgba(255,255,255,0.9), 0 2px 0 rgba(25,33,44,0.18);
  --shadow-well: inset 0 2px 3px rgba(25,33,44,0.15);
  --shadow-lift: 0 18px 50px rgba(25,33,44,0.25);
}
[data-theme="house"] {
  --ground: #1b0e12;
  --surface: #26141a;
  --raised: #331c23;
  --well: #140a0d;
  --line: #4d2a33;
  --line-strong: #6b3d48;
  --ink: #f6ebe0;
  --ink-muted: #c3a89c;
  --accent: #d6a84c;
  --on-accent: #241604;
  --primary: #d6a84c;
  --on-primary: #241604;
  --focus: #e8c27a;
  --danger: #f08a6e;
  --success: #8fd19e;
  --signal-normal: #2a7d4d;
  --signal-warning: #ff8c1a;
  --signal-critical: #c23a2c;
  --signal-over: #9e1230;
  --shadow-bevel: inset 0 1px 0 rgba(255,233,198,0.08), 0 2px 0 rgba(0,0,0,0.6);
  --shadow-well: inset 0 2px 4px rgba(0,0,0,0.6);
  --shadow-lift: 0 18px 50px rgba(0,0,0,0.7);
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 40px;
  --radius-1: 2px;
  --radius-2: 3px;
  --radius-3: 4px;
  --border-hair: 1px;
  --border-module: 2px;
  --chamfer: 5px;
  --bracket: 10px;
  --tap: 52px;
  --font-ui: "Lexend", "Segoe UI", system-ui, sans-serif;
  --font-mono: "Azeret Mono", ui-monospace, Menlo, Consolas, monospace;
}
.type-clock { font-family: var(--font-ui); font-size: 120px; line-height: 1; font-weight: 700; letter-spacing: -0.01em; }
.type-phase { font-family: var(--font-ui); font-size: 40px; line-height: 1; font-weight: 600; letter-spacing: 0.04em; }
.type-title { font-family: var(--font-ui); font-size: 28px; line-height: 34px; font-weight: 700; letter-spacing: -0.01em; }
.type-heading { font-family: var(--font-ui); font-size: 20px; line-height: 26px; font-weight: 700; }
.type-body { font-family: var(--font-ui); font-size: 16px; line-height: 24px; font-weight: 400; }
.type-control { font-family: var(--font-ui); font-size: 17px; line-height: 22px; font-weight: 600; }
.type-label { font-family: var(--font-ui); font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: 0.14em; }
.type-small { font-family: var(--font-ui); font-size: 13px; line-height: 18px; font-weight: 400; }
.type-mono { font-family: var(--font-mono); font-size: 14px; line-height: 20px; font-weight: 500; }
.type-mono-large { font-family: var(--font-mono); font-size: 22px; line-height: 28px; font-weight: 500; }
@font-face { font-family: "Lexend"; src: url("fonts/lexend-latin.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Azeret Mono"; src: url("fonts/azeret-mono-latin.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
