/* Generated by scripts/build-theme.mjs from design/tokens.json. Do not edit directly. */
@font-face { font-family: "Linux Libertine Display"; src: url("assets/fonts/LinLibertine_DR_G.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Noto Sans"; src: url("assets/fonts/NotoSans-Regular.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Noto Sans"; src: url("assets/fonts/NotoSans-Bold.ttf") format("truetype"); font-style: normal; font-weight: 700; font-display: swap; }
:root {
  --font-body: "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: "Linux Libertine Display", Georgia, serif;
  --text-caption: 0.75rem;
  --text-label: 0.8125rem;
  --text-small: 0.875rem;
  --text-body: 1rem;
  --text-lead: 1.125rem;
  --text-heading: 1.25rem;
  --text-display-sm: 1.5rem;
  --text-display: 1.75rem;
  --text-title-sm: 2rem;
  --text-title: 2.5rem;
  --text-timer-sm: 2.5rem;
  --text-timer: 3rem;
  --text-hero: 4.5rem;
  --text-reading: 4rem;
  --leading-body: 1.6;
  --leading-ui: 1.4;
  --leading-heading: 1.15;
  --leading-display: 1.05;
  --tracking-body: 0em;
  --tracking-display: -0.035em;
  --tracking-reading: -0.04em;
  --weight-regular: 400;
  --weight-strong: 700;
  --space-0: 0rem;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-7: 1.75rem;
  --space-8: 2rem;
  --space-9: 2.25rem;
  --space-10: 2.5rem;
  --space-11: 2.75rem;
  --space-12: 3rem;
  --space-13: 3.25rem;
  --space-14: 3.5rem;
  --space-15: 3.75rem;
  --space-16: 4rem;
  --space-18: 4.5rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-25: 6.25rem;
  --space-32: 8rem;
  --space-half: 0.125rem;
  --radius-none: 0rem;
  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --target-min: 3rem;
  --mobile-nav-height: 5rem;
  --elevation-flat: none;
  --elevation-raised: 0 0.5rem 2rem var(--atelier-shadow-color);
  --elevation-dialog: 0 1.5rem 5rem var(--atelier-shadow-color);
  --motion-fast: 140ms;
  --motion-normal: 220ms;
  --motion-slow: 360ms;
  --ease-standard: cubic-bezier(.2, 0, .2, 1);
  --ease-enter: cubic-bezier(.16, 1, .3, 1);
  --motion-lift: 0.125rem;
  --color-bg: var(--atelier-bg);
  --color-surface: var(--atelier-surface);
  --color-raised: var(--atelier-raised);
  --color-border: var(--atelier-border);
  --color-control-border: var(--atelier-control-border);
  --color-text: var(--atelier-text);
  --color-text-secondary: var(--atelier-text-secondary);
  --color-text-disabled: var(--atelier-text-disabled);
  --color-primary: var(--atelier-primary);
  --color-primary-hover: var(--atelier-primary-hover);
  --color-on-primary: var(--atelier-on-primary);
  --color-selected: var(--atelier-selected);
  --color-success: var(--atelier-success);
  --color-success-surface: var(--atelier-success-surface);
  --color-warning: var(--atelier-warning);
  --color-warning-surface: var(--atelier-warning-surface);
  --color-danger: var(--atelier-danger);
  --color-danger-surface: var(--atelier-danger-surface);
  --color-info: var(--atelier-info);
  --color-info-surface: var(--atelier-info-surface);
  --color-focus: var(--atelier-focus);
  --color-track: var(--atelier-track);
  --color-accent: var(--atelier-accent);
  --color-strip-paper: var(--atelier-strip-paper);
  --color-chart-paper: var(--atelier-chart-paper);
  --color-overlay: var(--atelier-overlay);
  --color-shadow-color: var(--atelier-shadow-color);
  --color-chart-1: var(--atelier-chart-1);
  --color-chart-2: var(--atelier-chart-2);
  --color-chart-3: var(--atelier-chart-3);
  --color-chart-4: var(--atelier-chart-4);
  --color-chart-5: var(--atelier-chart-5);
  --color-chart-6: var(--atelier-chart-6);
  --color-strip-ink: var(--atelier-strip-ink);
  --color-strip-focus: var(--atelier-strip-focus);
  --color-strip-unread: var(--atelier-strip-unread);
  --color-provider-surface: var(--atelier-provider-surface);
  --color-provider-text: var(--atelier-provider-text);
  --color-provider-border: var(--atelier-provider-border);
  --color-primary-pressed: var(--atelier-primary-pressed);
  --color-color-surface: var(--atelier-color-surface);
  --color-on-color-text: var(--atelier-on-color-text);
  --color-on-color-muted: var(--atelier-on-color-muted);
  --color-on-color-action: var(--atelier-on-color-action);
  --color-on-color-action-text: var(--atelier-on-color-action-text);
  --color-on-color-hover: var(--atelier-on-color-hover);
  --color-on-color-pressed: var(--atelier-on-color-pressed);
  --color-on-color-secondary-hover: var(--atelier-on-color-secondary-hover);
  --color-on-color-disabled: var(--atelier-on-color-disabled);
  --color-on-color-disabled-text: var(--atelier-on-color-disabled-text);
  --color-on-color-control-border: var(--atelier-on-color-control-border);
  --color-on-color-focus: var(--atelier-on-color-focus);
  --color-on-color-progress-track: var(--atelier-on-color-progress-track);
  --color-dark-surface: var(--atelier-dark-surface);
  --color-on-color-field-danger: var(--atelier-on-color-field-danger);
  --bg: var(--atelier-bg);
  --paper: var(--atelier-surface);
  --ink: var(--atelier-text);
  --muted: var(--atelier-text-secondary);
  --line: var(--atelier-border);
  --control-line: var(--atelier-control-border);
  --line-tint: var(--atelier-border);
  --line-main: var(--atelier-border);
  --line-jar: var(--atelier-border);
  --mint: var(--atelier-selected);
  --accent: var(--atelier-primary);
  --focus: var(--atelier-focus);
  --surface-subtle: var(--atelier-selected);
  --surface-summary: var(--atelier-selected);
  --surface-main: var(--atelier-surface);
  --surface-jar: var(--atelier-surface);
  --surface-selected: var(--atelier-selected);
  --surface-upload: var(--atelier-surface);
  --action-bg: var(--atelier-primary);
  --action-ink: var(--atelier-on-primary);
  --status-bg: var(--atelier-selected);
  --status-ink: var(--atelier-text-secondary);
  --ready-bg: var(--atelier-success-surface);
  --ready-ink: var(--atelier-success);
  --waiting-bg: var(--atelier-info-surface);
  --waiting-ink: var(--atelier-info);
  --attention-bg: var(--atelier-warning-surface);
  --attention-ink: var(--atelier-warning);
  --attention-line: var(--atelier-warning);
  --note-bg: var(--atelier-warning-surface);
  --note-ink: var(--atelier-warning);
  --missed-bg: var(--atelier-warning-surface);
  --missed-ink: var(--atelier-warning);
  --error-bg: var(--atelier-danger-surface);
  --error-ink: var(--atelier-danger);
  --timer-bg: var(--atelier-color-surface);
  --timer-ink: var(--atelier-on-color-text);
  --timer-muted: var(--atelier-on-color-muted);
  --timer-button: var(--atelier-on-color-action);
  --timer-button-ink: var(--atelier-on-color-action-text);
  --progress-track: var(--atelier-track);
  --progress-fill: var(--atelier-primary);
  --sidebar-bg: var(--atelier-surface);
  --sticky-bg: var(--atelier-bg);
  --overlay: var(--atelier-overlay);
  --toast-bg: var(--atelier-primary);
  --toast-ink: var(--atelier-on-primary);
  --chart-paper: var(--atelier-chart-paper);
  --amber: var(--atelier-warning-surface);
  --lav: var(--atelier-info-surface);
  font-family: var(--font-body);
  font-synthesis: none;
}
:root {
  color-scheme: light;
  --atelier-bg: #f4f1ec;
  --atelier-surface: #fcfaf7;
  --atelier-raised: #ffffff;
  --atelier-border: #d0c9bf;
  --atelier-control-border: #847c72;
  --atelier-text: #282725;
  --atelier-text-secondary: #615c56;
  --atelier-text-disabled: #67615a;
  --atelier-primary: #2447a5;
  --atelier-primary-hover: #1b367e;
  --atelier-on-primary: #ffffff;
  --atelier-selected: #e8e2da;
  --atelier-success: #28633f;
  --atelier-success-surface: #efede9;
  --atelier-warning: #80520f;
  --atelier-warning-surface: #f3e8d6;
  --atelier-danger: #9d3d35;
  --atelier-danger-surface: #f4e6df;
  --atelier-info: #2447a5;
  --atelier-info-surface: #e9ecf4;
  --atelier-focus: #2447a5;
  --atelier-track: #d5cdc3;
  --atelier-accent: #2447a5;
  --atelier-strip-paper: #ffffff;
  --atelier-chart-paper: #ffffff;
  --atelier-overlay: #1a1815b3;
  --atelier-shadow-color: #241f1824;
  --atelier-chart-1: #2447a5;
  --atelier-chart-2: #526a93;
  --atelier-chart-3: #625b52;
  --atelier-chart-4: #384052;
  --atelier-chart-5: #74695c;
  --atelier-chart-6: #334f79;
  --atelier-strip-ink: #2e3878;
  --atelier-strip-focus: #2447a5;
  --atelier-strip-unread: #e8e2da;
  --atelier-provider-surface: #ffffff;
  --atelier-provider-text: #1f1f1f;
  --atelier-provider-border: #747775;
  --atelier-primary-pressed: #142c6d;
  --atelier-color-surface: #2447a5;
  --atelier-on-color-text: #ffffff;
  --atelier-on-color-muted: #edf2ff;
  --atelier-on-color-action: #ffffff;
  --atelier-on-color-action-text: #1b367e;
  --atelier-on-color-hover: #edf2ff;
  --atelier-on-color-pressed: #d6e3ff;
  --atelier-on-color-secondary-hover: #173278;
  --atelier-on-color-disabled: #d6e3ff;
  --atelier-on-color-disabled-text: #465579;
  --atelier-on-color-control-border: #ffffff;
  --atelier-on-color-focus: #ffffff;
  --atelier-on-color-progress-track: #142c6d;
  --atelier-dark-surface: #1b1a19;
  --atelier-on-color-field-danger: #9d3d35;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --atelier-bg: #1b1a19;
  --atelier-surface: #242321;
  --atelier-raised: #2d2b28;
  --atelier-border: #4a4540;
  --atelier-control-border: #a0988d;
  --atelier-text: #f5f0e9;
  --atelier-text-secondary: #c8c0b6;
  --atelier-text-disabled: #b5ab9f;
  --atelier-primary: #a8bdff;
  --atelier-primary-hover: #c4d1ff;
  --atelier-on-primary: #172145;
  --atelier-selected: #36322e;
  --atelier-success: #a7d8b1;
  --atelier-success-surface: #30302d;
  --atelier-warning: #efc281;
  --atelier-warning-surface: #3a3023;
  --atelier-danger: #ffb1a8;
  --atelier-danger-surface: #3c2e2b;
  --atelier-info: #a8bdff;
  --atelier-info-surface: #2c3040;
  --atelier-focus: #a8bdff;
  --atelier-track: #534d45;
  --atelier-accent: #a8bdff;
  --atelier-strip-paper: #ffffff;
  --atelier-chart-paper: #ffffff;
  --atelier-overlay: #0c0b09c9;
  --atelier-shadow-color: #00000047;
  --atelier-chart-1: #a8bdff;
  --atelier-chart-2: #a9bddf;
  --atelier-chart-3: #c8beb2;
  --atelier-chart-4: #afbacd;
  --atelier-chart-5: #b7aa98;
  --atelier-chart-6: #d5dcef;
  --atelier-strip-ink: #2e3878;
  --atelier-strip-focus: #2447a5;
  --atelier-strip-unread: #e8e2da;
  --atelier-provider-surface: #ffffff;
  --atelier-provider-text: #1f1f1f;
  --atelier-provider-border: #747775;
  --atelier-primary-pressed: #d6e3ff;
  --atelier-color-surface: #203b83;
  --atelier-on-color-text: #ffffff;
  --atelier-on-color-muted: #edf2ff;
  --atelier-on-color-action: #ffffff;
  --atelier-on-color-action-text: #1b367e;
  --atelier-on-color-hover: #edf2ff;
  --atelier-on-color-pressed: #d6e3ff;
  --atelier-on-color-secondary-hover: #173278;
  --atelier-on-color-disabled: #d6e3ff;
  --atelier-on-color-disabled-text: #465579;
  --atelier-on-color-control-border: #ffffff;
  --atelier-on-color-focus: #ffffff;
  --atelier-on-color-progress-track: #142c6d;
  --atelier-dark-surface: #1b1a19;
  --atelier-on-color-field-danger: #9d3d35;
}
:root[data-theme="light"] {
  color-scheme: light;
  --atelier-bg: #f4f1ec;
  --atelier-surface: #fcfaf7;
  --atelier-raised: #ffffff;
  --atelier-border: #d0c9bf;
  --atelier-control-border: #847c72;
  --atelier-text: #282725;
  --atelier-text-secondary: #615c56;
  --atelier-text-disabled: #67615a;
  --atelier-primary: #2447a5;
  --atelier-primary-hover: #1b367e;
  --atelier-on-primary: #ffffff;
  --atelier-selected: #e8e2da;
  --atelier-success: #28633f;
  --atelier-success-surface: #efede9;
  --atelier-warning: #80520f;
  --atelier-warning-surface: #f3e8d6;
  --atelier-danger: #9d3d35;
  --atelier-danger-surface: #f4e6df;
  --atelier-info: #2447a5;
  --atelier-info-surface: #e9ecf4;
  --atelier-focus: #2447a5;
  --atelier-track: #d5cdc3;
  --atelier-accent: #2447a5;
  --atelier-strip-paper: #ffffff;
  --atelier-chart-paper: #ffffff;
  --atelier-overlay: #1a1815b3;
  --atelier-shadow-color: #241f1824;
  --atelier-chart-1: #2447a5;
  --atelier-chart-2: #526a93;
  --atelier-chart-3: #625b52;
  --atelier-chart-4: #384052;
  --atelier-chart-5: #74695c;
  --atelier-chart-6: #334f79;
  --atelier-strip-ink: #2e3878;
  --atelier-strip-focus: #2447a5;
  --atelier-strip-unread: #e8e2da;
  --atelier-provider-surface: #ffffff;
  --atelier-provider-text: #1f1f1f;
  --atelier-provider-border: #747775;
  --atelier-primary-pressed: #142c6d;
  --atelier-color-surface: #2447a5;
  --atelier-on-color-text: #ffffff;
  --atelier-on-color-muted: #edf2ff;
  --atelier-on-color-action: #ffffff;
  --atelier-on-color-action-text: #1b367e;
  --atelier-on-color-hover: #edf2ff;
  --atelier-on-color-pressed: #d6e3ff;
  --atelier-on-color-secondary-hover: #173278;
  --atelier-on-color-disabled: #d6e3ff;
  --atelier-on-color-disabled-text: #465579;
  --atelier-on-color-control-border: #ffffff;
  --atelier-on-color-focus: #ffffff;
  --atelier-on-color-progress-track: #142c6d;
  --atelier-dark-surface: #1b1a19;
  --atelier-on-color-field-danger: #9d3d35;
}
:root, .atelier-panel, [data-surface="neutral"] {
  --surface-background: var(--atelier-surface);
  --surface-foreground: var(--atelier-text);
  --surface-muted: var(--atelier-text-secondary);
  --control-primary-bg: var(--atelier-primary);
  --control-primary-hover: var(--atelier-primary-hover);
  --control-primary-pressed: var(--atelier-primary-pressed);
  --control-primary-text: var(--atelier-on-primary);
  --control-secondary-text: var(--atelier-text);
  --control-secondary-hover: var(--atelier-selected);
  --control-border: var(--atelier-control-border);
  --control-disabled-bg: var(--atelier-selected);
  --control-disabled-text: var(--atelier-text-disabled);
  --control-disabled-border: var(--atelier-control-border);
  --control-field-bg: var(--atelier-surface);
  --control-field-text: var(--atelier-text);
  --control-placeholder: var(--atelier-text-secondary);
  --control-danger: var(--atelier-danger);
  --control-focus: var(--atelier-focus);
  --control-link: var(--atelier-primary);
  --control-progress-fill: var(--atelier-primary);
  --control-progress-track: var(--atelier-track);
}
.atelier-surface--color, .atelier-surface--dark, [data-surface="color"], [data-surface="dark"], .timer-panel, .atelier-button--on-color, .atelier-input--on-color, .atelier-link--on-color {
  --surface-background: var(--atelier-color-surface);
  --surface-foreground: var(--atelier-on-color-text);
  --surface-muted: var(--atelier-on-color-muted);
  --control-primary-bg: var(--atelier-on-color-action);
  --control-primary-hover: var(--atelier-on-color-hover);
  --control-primary-pressed: var(--atelier-on-color-pressed);
  --control-primary-text: var(--atelier-on-color-action-text);
  --control-secondary-text: var(--atelier-on-color-text);
  --control-secondary-hover: var(--atelier-on-color-secondary-hover);
  --control-border: var(--atelier-on-color-control-border);
  --control-disabled-bg: var(--atelier-on-color-disabled);
  --control-disabled-text: var(--atelier-on-color-disabled-text);
  --control-disabled-border: var(--atelier-on-color-disabled);
  --control-field-bg: var(--atelier-on-color-action);
  --control-field-text: var(--atelier-on-color-action-text);
  --control-placeholder: var(--atelier-on-color-action-text);
  --control-danger: var(--atelier-on-color-field-danger);
  --control-focus: var(--atelier-on-color-focus);
  --control-link: var(--atelier-on-color-text);
  --control-progress-fill: var(--atelier-on-color-text);
  --control-progress-track: var(--atelier-on-color-progress-track);
}
.atelier-surface--dark, [data-surface="dark"] { --surface-background: var(--atelier-dark-surface); }
.atelier-surface--color, .atelier-surface--dark, [data-surface="color"], [data-surface="dark"] { background: var(--surface-background); color: var(--surface-foreground); }
body { font-family: var(--font-body); color: var(--atelier-text); background: var(--atelier-bg); -webkit-font-smoothing: antialiased; }
.atelier-display { font-family: var(--font-display); font-weight: var(--weight-regular); line-height: var(--leading-display); letter-spacing: var(--tracking-display); }
.atelier-numeral { font-variant-numeric: tabular-nums; letter-spacing: var(--tracking-reading); }
.atelier-muted { color: var(--surface-muted); }
.atelier-button {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-3);
  min-height: var(--target-min); min-width: var(--target-min); max-width: 100%; padding: var(--space-3) var(--space-5);
  border: 1px solid transparent; border-radius: var(--radius-sm); background: var(--control-primary-bg); color: var(--control-primary-text);
  font: var(--weight-strong) var(--text-small)/var(--leading-ui) var(--font-body); text-align: center; text-decoration: none; white-space: normal; overflow-wrap: anywhere;
  cursor: pointer; transition: background-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);
}
.atelier-button:hover { background: var(--control-primary-hover); }
.atelier-button:active:not(:disabled) { background: var(--control-primary-pressed); transform: translateY(.0625rem); }
.atelier-button--secondary { color: var(--control-secondary-text); background: transparent; border-color: var(--control-border); }
.atelier-button--secondary:hover, .atelier-button--secondary:active:not(:disabled) { background: var(--control-secondary-hover); }
.atelier-button--quiet { color: var(--control-link); background: transparent; }
.atelier-button--quiet:hover, .atelier-button--quiet:active:not(:disabled) { color: var(--control-secondary-text); background: var(--control-secondary-hover); }
.atelier-button:disabled { color: var(--control-disabled-text); background: var(--control-disabled-bg); border-color: var(--control-disabled-border); border-style: dashed; opacity: 1; cursor: not-allowed; }
.atelier-button svg { width: 1.125rem; height: 1.125rem; flex: none; stroke-width: 1.5; }
.atelier-input {
  min-height: var(--target-min); min-width: 0; max-width: 100%; padding: var(--space-3); border: 1px solid var(--control-border); border-radius: var(--radius-sm);
  color: var(--control-field-text); background: var(--control-field-bg); font: var(--weight-regular) var(--text-body)/var(--leading-ui) var(--font-body);
}
.atelier-input::placeholder { color: var(--control-placeholder); opacity: 1; }
.atelier-input[aria-invalid="true"] { border-color: var(--control-danger); }
.atelier-input:disabled { color: var(--control-disabled-text); background: var(--control-disabled-bg); }
.atelier-button:focus-visible, .atelier-input:focus-visible, .atelier-link:focus-visible { outline: 3px solid var(--control-focus); outline-offset: .25rem; }
.atelier-link { color: var(--control-link); text-decoration-thickness: .0625rem; text-underline-offset: .2em; }
.atelier-link:hover { text-decoration-thickness: .125rem; }
.atelier-panel { color: var(--atelier-text); background: var(--atelier-surface); border-radius: var(--radius-md); padding: var(--space-6); }
.atelier-divider { border: 0; border-top: 1px solid var(--atelier-border); margin: var(--space-6) 0; }
.atelier-status { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--atelier-text-secondary); font: var(--weight-strong) var(--text-label)/var(--leading-ui) var(--font-body); }
.atelier-status svg { width: 1rem; height: 1rem; flex: none; stroke-width: 1.5; }
.atelier-status--success { color: var(--atelier-success); }
.atelier-status--warning { color: var(--atelier-warning); }
.atelier-status--danger { color: var(--atelier-danger); }
.atelier-status--info { color: var(--atelier-info); }
.atelier-alert { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-4); border-left: .1875rem solid var(--atelier-warning); border-radius: var(--radius-sm); color: var(--atelier-warning); background: var(--atelier-warning-surface); font-size: var(--text-small); line-height: var(--leading-body); }
.atelier-alert--danger { color: var(--atelier-danger); background: var(--atelier-danger-surface); border-color: var(--atelier-danger); }
.atelier-alert--info { color: var(--atelier-info); background: var(--atelier-info-surface); border-color: var(--atelier-info); }
.atelier-appearance { display: grid; gap: var(--space-2); font-size: var(--text-small); line-height: var(--leading-ui); color: var(--atelier-text-secondary); }
.atelier-appearance select { width: 100%; }
.atelier-skeleton { border-radius: var(--radius-sm); background: var(--atelier-track); color: transparent; min-height: 1em; animation: atelier-breathe var(--motion-slow) var(--ease-standard) alternate 3; }
@keyframes atelier-breathe { from { opacity: .65; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  :root { --motion-fast: 0ms; --motion-normal: 0ms; --motion-slow: 0ms; --motion-lift: 0rem; }
  .atelier-button, .atelier-input, .atelier-skeleton { animation: none; transition: none; }
  .atelier-button:active:not(:disabled) { transform: none; }
}
