:root {
  --bg: #0b0c10;
  --panel: #111318;
  --text: #dee2e6;
  --muted: #9aa0a6;
  --accent: #6a8dff;
  --border: #1e2128;
}
* { box-sizing: border-box; }
html,body { height: 100%; }
body {
  margin: 0;
  background: linear-gradient(180deg, #0a0b12, #0b0c10);
  color: var(--text);
  font: 16px/1.5 system-ui, -apple-system, Segoe UI, Roboto, Inter, Arial, sans-serif;
}
.wrap { max-width: 960px; margin: 0 auto; padding: 24px; }
header { margin-bottom: 16px; }
h1 { margin: 0 0 6px 0; font-weight: 700; letter-spacing: 0.2px; }
.sub { margin: 0; color: var(--muted); }
.panel {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 16px;
  margin: 16px 0 24px;
}
.field { margin: 12px 0; }
.label { display: block; font-size: 14px; color: var(--muted); margin-bottom: 6px; }
input[type=file], select {
  width: 100%;
  background: #0f1117;
  border: 1px solid var(--border);
  padding: 10px 12px;
  border-radius: 10px;
  color: var(--text);
}
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
button {
  background: #1a1f2b;
  color: var(--text);
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  cursor: pointer;
}
button.primary { background: var(--accent); color: #05060a; font-weight: 600; }
button:disabled { opacity: 0.6; cursor: not-allowed; }
.canvas-wrap {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 12px;
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
}
canvas, video { width: 100%; max-width: 640px; border-radius: 12px; background: #000; }
.hidden { display: none; }
footer { margin: 18px 0 8px; color: var(--muted); text-align: center; }
.tiny { font-size: 12px; }
