@media print { #themeBtn { display: none !important; } }
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: var(--page); }

:root {
  color-scheme: dark;
  --page: #212c2a; --panel: #171f1d; --panel-2: #1b2422;
  --ink: #f8f8f2; --muted: rgba(248, 248, 242, 0.66); --faint: rgba(248, 248, 242, 0.40);
  --accent: #a7ffa0; --accent-ink: #13201c;
  --hairline: rgba(248, 248, 242, 0.13); --hairline-strong: rgba(167, 255, 160, 0.22);
  --rail: #0c110f;
  --mark-bg: #212c2a; --mark-ink: #f8f8f2; --mark-dot: #a7ffa0; --mark-border: rgba(248, 248, 242, 0.14);
  --sans: 'Atkinson Hyperlegible Next', ui-sans-serif, system-ui, sans-serif;
  --mono: 'Inconsolata', ui-monospace, 'SF Mono', Menlo, monospace;
  --t-lead: clamp(16.5px, 1.5vw, 19px); --t-body: 15.5px; --t-kicker: 12px;
  --maxw: 1200px; --pad: clamp(22px, 4vw, 44px);
}

:root[data-theme="light"] {
  color-scheme: light;
  --page: #ffffff; --panel: #f4f7f4; --panel-2: #eef3ef;
  --ink: #1c2320; --muted: #5b6b61; --faint: #718378;
  --accent: #1f8a5b; --accent-ink: #ffffff;
  --hairline: #dbe6dd; --hairline-strong: #a6ccb2;
  --rail: #e7ede8;
  --mark-bg: #edf2ee; --mark-ink: #1c2320; --mark-dot: #1f8a5b; --mark-border: #cbd8ce;
}

a, a:hover { color: var(--accent); }
:where(a, button):focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
[data-bg] { overflow: hidden; }
section[id] { scroll-margin-top: 78px; }
@keyframes dgflow { to { stroke-dashoffset: -120; } }
svg .dgflow { animation: dgflow 7s linear infinite; }
:root[data-motion="off"] svg .dgflow { animation: none; }
@media (prefers-reduced-motion: reduce) { svg .dgflow { animation: none; } }
@keyframes iamcaret { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { [data-caret] { animation: none !important; } }
