@font-face {
  font-family: Figtree;
  src: url('/fonts/figtree-wght-normal.woff2') format('woff2');
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
}

/* Shared appearance follows the system, including changes while a page is open. */
:root {
  color-scheme: dark;
  --bg: #141414;
  --ink: #fff;
  --ink-80: rgba(255,255,255,.8);
  --ink-70: rgba(255,255,255,.7);
  --ink-60: rgba(255,255,255,.6);
  --ink-50: rgba(255,255,255,.5);
  --letter-muted: var(--ink-70);
  --surface: rgba(255,255,255,.05);
  --surface-2: rgba(255,255,255,.1);
  --card-bg: #202020;
  --accent: #007aff;
  --accent-text: #66adff;
  --accent-surface: #1c2b40;
  --accent-surface-hover: #243954;
  --home-filter: grayscale(1) brightness(1.3);
  --home-blend: screen;
  --section-gap: 170px;
  --project-gap: 130px;
  --ease: cubic-bezier(.22,1,.36,1);
  font-family: Figtree, Arial, sans-serif;
  font-synthesis: none;
  background: var(--bg);
  color: var(--ink);
}

@media (prefers-color-scheme: light) {
  :root {
    color-scheme: light;
    --bg: #f5f4f1;
    --ink: #242520;
    --ink-80: #41413c;
    --ink-70: #555650;
    --ink-60: #666761;
    --ink-50: #6f706a;
    --letter-muted: #6f706a;
    --surface: rgba(36,37,32,.05);
    --surface-2: rgba(36,37,32,.12);
    --card-bg: #eae9e5;
    --accent-text: #0066cc;
    --accent-surface: #e0edff;
    --accent-surface-hover: #d4e5fb;
    --home-filter: grayscale(1) invert(1);
    --home-blend: multiply;
  }
}

* { box-sizing: border-box; }
body { margin: 0; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 5px; }
button, input, select, textarea { font: inherit; color: inherit; }
a:focus-visible { outline: 1px solid var(--ink); outline-offset: 7px; border-radius: 2px; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: 1px solid var(--ink-60); outline-offset: 5px; }
/* Touch and mouse focus stays functional without a tap flash or autofocus ring. */
a, button, input, select, textarea, [tabindex] { -webkit-tap-highlight-color: transparent; }
:focus:not(:focus-visible), :root[data-focus-modality="pointer"] :focus { outline: none; }
b, strong, th { font-weight: 600; }
[hidden] { display: none !important; }
::selection { background: var(--ink); color: var(--bg); }

@media (max-width: 600px) {
  :root { --section-gap: 110px; --project-gap: 90px; }
}

@media (prefers-reduced-motion: reduce), print {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

@media print {
  :root {
    color-scheme: light;
    --bg: #fff;
    --ink: #242520;
    --ink-80: #41413c;
    --ink-70: #555650;
    --ink-60: #666761;
    --ink-50: #6f706a;
    --letter-muted: #555650;
    --surface: rgba(36,37,32,.05);
    --surface-2: rgba(36,37,32,.12);
    --card-bg: #eae9e5;
    --accent-text: #0066cc;
    --accent-surface: #e0edff;
    --home-filter: grayscale(1) invert(1);
    --home-blend: multiply;
  }
  .skip-link, .paper-skip { display: none; }
}
