* { box-sizing: border-box; margin: 0; padding: 0; }
html {
  color-scheme: light;
  -webkit-tap-highlight-color: transparent;
  -webkit-text-size-adjust: 100%;
  scrollbar-color: var(--scroll-thumb) transparent;
  scroll-padding-top: 88px; /* focused or scrolled-to elements land below the sticky glass bar */
}
:root[data-theme="dark"] { color-scheme: dark; }
body {
  min-height: 100dvh;
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.5;
  color: var(--ink);
  background: var(--ground);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  transition: background-color 300ms var(--ease-out), color 300ms var(--ease-out);
}
::selection { background: var(--accent-ring); color: var(--ink); }
input, select, textarea { caret-color: var(--accent); }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
button, a, [role="button"], select { touch-action: manipulation; }
button, [role="button"], .tab, .chip { user-select: none; -webkit-user-select: none; }
:focus { outline: none; }
:focus-visible { outline: 3px solid var(--accent-ring); outline-offset: 2px; }
.num { font-variant-numeric: tabular-nums; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: var(--scroll-thumb); border-radius: 999px; border: 3px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-track { background: transparent; }

.ic {
  width: 20px; height: 20px; flex: none;
  fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round;
}
.ic-16 { width: 16px; height: 16px; }
.ic-14 { width: 14px; height: 14px; stroke-width: 2; }

@media (prefers-reduced-motion: reduce) { body { transition-duration: 0ms; } }
