/*
  DIRECTION CONTRACT
  THESIS: an architectural materials-portfolio, not a contractor template; precision and restraint read as skill.
  OWN-WORLD: near-black charcoal ground, one cold steel-blue accent, oversized Archivo display type,
    thin blueprint-grade hairlines and a faint drafting grid, sharp 2px corners, real jobsite photography.
  STORY: a Dutch homeowner or aannemer lands, immediately reads "allround vakman", scans services and
    proof of past work, and reaches the offerte form in one or two taps.
  FIRST VIEWPORT: left-aligned headline over a full-bleed jobsite photo with a bottom-weighted scrim,
    two CTAs, a thin availability bar anchored under the fold.
  FORM: brief-pinned direction (dark premium construction/architecture portfolio), authored directly
    from the user's explicit spec rather than the concept-seed tournament; disclosed to the user.
  FINISH: unreviewed and undocumented is unfinished; this build ends with the finish review, the
    verdict, DESIGN.md, and every shipping raster carrying its provenance.
*/

:root {
  /* Surfaces */
  --bg: #0a0b0d;
  --bg-raised: #121417;
  --bg-raised-2: #191c21;
  --bg-raised-3: #21252b;

  /* Borders */
  --border: rgba(255, 255, 255, 0.09);
  --border-strong: rgba(255, 255, 255, 0.17);

  /* Text */
  --text: #f3f4f2;
  --text-muted: #a1a7ac;
  --text-faint: #7c8288; /* kept >=4.5:1 against --bg for small print (labels, hints, legal line) */

  /* Accent: cold steel blue, locked across the whole page */
  --accent: #3e6ea3;
  --accent-hover: #4c7fb8;
  --accent-active: #365f8c;
  --accent-light: #93b8e4;
  --accent-dim: rgba(62, 110, 163, 0.16);
  --accent-line: rgba(62, 110, 163, 0.4);

  /* Radius: sharp, blueprint-consistent. Interactive surfaces get a 2px ease, everything else 0. */
  --radius: 2px;
  --radius-lg: 3px;

  /* Type */
  --font-display: 'Archivo', 'Segoe UI', system-ui, sans-serif;
  --font-body: 'Archivo', 'Segoe UI', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  /* Motion */
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --dur-fast: 160ms;
  --dur: 220ms;
  --dur-slow: 420ms;

  /* Layout */
  --container: 1360px;
  --container-narrow: 900px;
  --edge: 1.5rem;
  --nav-h: 84px;

  color-scheme: dark;
}

@media (min-width: 640px) {
  :root { --edge: 2.5rem; }
}
@media (min-width: 1024px) {
  :root { --edge: 3.5rem; }
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }

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

body {
  min-height: 100dvh;
  font-family: var(--font-body);
  background: var(--bg);
  color: var(--text);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img, picture, video, canvas, svg { display: block; max-width: 100%; }
input, button, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: none; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; padding: 0; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

p { max-width: 65ch; }

/* ---------- Browser surfaces: theme what we didn't draw ---------- */
::selection { background: var(--accent); color: #fff; }

::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb {
  background: var(--bg-raised-3);
  border: 3px solid var(--bg);
  border-radius: 8px;
}
::-webkit-scrollbar-thumb:hover { background: var(--accent-active); }
html { scrollbar-color: var(--bg-raised-3) var(--bg); scrollbar-width: thin; }

:focus-visible {
  outline: 2px solid var(--accent-light);
  outline-offset: 3px;
  border-radius: var(--radius);
}

/* tabular numerals for phone/KvK/BTW-style data */
.mono {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}
