:root {
  /* Colour */
  --paper: #F2EDE9;
  --ink: #241715;
  --ink-soft: #3E2B2E;
  --accent: #5E4B3B;
  --muted: #6E6357;
  --label: #A2968A;
  --rule: #CFC5B4;
  /* --paper as a bare "r, g, b" triplet, for the one place the theme needs
     paper at partial opacity (the sticky nav's translucent backdrop,
     layout.css). rgba(var(--paper-rgb), a) computes to exactly the same
     rgba() string the old literal did, so the light palettes are unchanged
     and old browsers need no color-mix(). theme-vars.html.twig derives the
     override from the resolved --paper hex via godvil.php's hex_rgb(). */
  --paper-rgb: 242, 237, 233;
  /* Text and controls drawn ON the fixed dark scrims (the lightbox
     backdrop, the video facade's overlay). Those scrims are ink-coloured
     literals that stay dark in every palette, so what sits on them must
     stay light in every palette too — they deliberately do NOT follow
     --paper / --rule / --ink-soft, which flip in the "Mørk" preset. Values
     are Chapel's paper / rule / ink-soft, so nothing moves for the light
     palettes. */
  --on-scrim: #F2EDE9;
  --on-scrim-muted: #CFC5B4;
  --on-scrim-hover: #3E2B2E;

  /* Type */
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'Jost', system-ui, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Spacing scale */
  --s2: 2px;   --s4: 4px;   --s6: 6px;   --s10: 10px;
  --s14: 14px; --s16: 16px; --s18: 18px; --s22: 22px;
  --s26: 26px; --s34: 34px; --s44: 44px; --s56: 56px;
  --s70: 70px; --s80: 80px;

  /* Page rhythm — overridden at breakpoints in responsive.css */
  --page-x: var(--s56);
  --page-y: var(--s80);

  /* Sticky footer (footer-sticky theme setting). 1 = main grows to fill the
     viewport so the footer sits at the bottom on short pages (the shipped
     default, base.css's `main { flex: var(--main-flex, 1); }`). 0 = main no
     longer grows, so the footer sits immediately after the content instead —
     see theme-vars.html.twig, which only overrides this when the setting is
     off. */
  --main-flex: 1;

  /* Photography — default is colour (grayscale(0)); Sepia/Kontrast still
     apply a subtle warm grade. photo-filter-grayscale (theme setting,
     default off) switches this to grayscale(1) sitewide; the per-image
     "Vis i gråtone" toggle (partials/picture.html.twig's `grayscale` param)
     forces a single photo into the same recipe regardless of this value —
     see --photo-filter-grayscale-recipe below and theme-vars.html.twig. */
  --photo-filter: grayscale(0) sepia(0.14) contrast(1.04);
  --photo-filter-grayscale-recipe: grayscale(1) sepia(0.14) contrast(1.04);
}
