:root {
  /* Dark only, on every device (owner preference): one palette, no light-mode media query. */
  --bg: #111214;
  --surface: #1a1b1e;
  --text: #ececee;
  --muted: #a2a5ac;
  --line: #2b2d31;
  --accent: #6ea0ff;
  --accent-text: #0c1426;
  --note-bg: #162238;
  --note-text: #b9cffb;
  --shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .3);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font: 16px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  padding: 0 16px;
}
a { color: var(--accent); }

.intro, .projects, .foot { max-width: 1000px; margin: 0 auto; }

.intro { padding: 56px 0 32px; }
.kicker {
  margin: 0 0 8px;
  font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: var(--muted);
}
h1 { margin: 0 0 12px; font-size: clamp(1.8rem, 4.5vw, 2.6rem); line-height: 1.15; letter-spacing: -.02em; }
.lede { margin: 0 0 20px; max-width: 62ch; font-size: 1.1rem; color: var(--muted); }
.note {
  display: inline-flex; align-items: center; gap: 10px;
  margin: 0; padding: 10px 14px; border-radius: 10px;
  background: var(--note-bg); color: var(--note-text); font-weight: 500;
}
.dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; flex: none; }

.projects {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  padding-bottom: 40px;
}
@media (min-width: 760px) { .projects { grid-template-columns: 1fr 1fr; } }

.project {
  display: flex; flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--shadow);
}
.shot { display: block; aspect-ratio: 16 / 10; background: var(--line); border-bottom: 1px solid var(--line); }
.shot img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.body { display: flex; flex-direction: column; flex: 1; padding: 18px 20px 20px; }
h2 { margin: 0 0 6px; font-size: 1.25rem; letter-spacing: -.01em; }
.body p { margin: 0 0 10px; }
.demo-data { font-size: .9rem; color: var(--muted); }
.links { display: flex; align-items: center; gap: 16px; margin-top: auto; padding-top: 8px; }
.btn {
  display: inline-block; padding: 9px 16px; border-radius: 9px;
  background: var(--accent); color: var(--accent-text);
  font-weight: 600; text-decoration: none;
}
.btn:hover { filter: brightness(1.08); }
.btn:focus-visible, .gh:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.gh { font-weight: 500; }

.foot {
  padding: 24px 0 48px;
  border-top: 1px solid var(--line);
  font-size: .9rem; color: var(--muted);
}
.foot p { margin: 0 0 8px; max-width: 70ch; }

/* plain pages: 404 and "demo unavailable" */
.plain { max-width: 560px; margin: 0 auto; padding: 18vh 0 48px; }
.plain h1 { font-size: 1.8rem; }
.plain p { color: var(--muted); }
