:root {
  --page-bg: #0a0b0e;
  --bg: #0b0c0f;
  --hero-bg: linear-gradient(180deg, #0a0b0e 0%, #0c0e13 52%, #10141c 100%);
  --ink: #eceef2;
  --ink-strong: #f3f5f8;
  --ink2: #cdd2da;
  --ink3: #aab1bb;
  --ink4: #8a929e;
  --ink5: #6b7480;
  --faint: #5f6b86;
  --accent: #8fb0e6;
  --accent2: #7f97c4;
  --accent3: #8fa9d8;
  --accent4: #6f92cf;
  --accent-strong: #8fb0e6;
  --accent-hover: #a9c3ef;
  --btn-ink: #0b0c0f;
  --line: rgba(236, 238, 242, 0.1);
  --line-soft: rgba(236, 238, 242, 0.09);
  --line-strong: rgba(236, 238, 242, 0.2);
  --headerbg: rgba(11, 12, 15, 0.8);
  --glow: rgba(74, 109, 168, 0.16);
  --accent-border: rgba(143, 169, 216, 0.26);
  --accent-tint: rgba(74, 109, 168, 0.08);
  --accent-grad1: rgba(74, 109, 168, 0.06);
  --accent-grad2: rgba(74, 109, 168, 0.02);
  --head-font: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --label-font: "Space Mono", ui-monospace, monospace;
  color-scheme: dark;
}

* {
  box-sizing: border-box;
}

html {
  background: var(--bg);
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}

a {
  color: inherit;
}

a:hover {
  color: var(--accent-hover) !important;
}

a[target="_blank"] {
  text-underline-offset: 0.18em;
}

[data-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity 1s cubic-bezier(0.2, 0.7, 0.2, 1),
    transform 1s cubic-bezier(0.2, 0.7, 0.2, 1);
}

[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
  }

  [data-reveal] {
    opacity: 1;
    transform: none;
  }

  #pfield {
    opacity: 0.75;
  }
}

@media (max-width: 640px) {
  body {
    min-width: 320px;
  }
}
