/*  Copyright (C) Bitstem GmbH
 *  All rights reserved.
 *
 *  This source code is proprietary and confidential.
 *  Unauthorized copying, distribution, or disclosure of this file,
 *  in whole or in part, is strictly prohibited unless explicitly
 *  permitted in writing by Bitstem GmbH.
 *
 *  Author: Klaus Kuehnhammer <klaus@bitstem.com>
 */

/* DM Mono (SIL Open Font License 1.1, see webfonts/DMMono-OFL.txt), self-
   hosted. Replaced ABC Diatype Rounded Mono, whose files were an education
   build not licensed for public servers (2026-11-02). */
@font-face {
  font-family: "DM Mono";
  src: url("/assets/webfonts/DMMono-Regular-ef36d5fe.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "DM Mono";
  src: url("/assets/webfonts/DMMono-Italic-7e2bfdda.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "DM Mono";
  src: url("/assets/webfonts/DMMono-Medium-87043a6a.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

/* Prata (SIL Open Font License 1.1, see webfonts/Prata-OFL.txt), self-hosted,
   for headings. Replaced Lanston Bell, a commercial FontSite font with no
   licence on file (2026-11-02). Prata has no italic. */
@font-face {
  font-family: "Prata";
  src: url("/assets/webfonts/Prata-Regular-a9b91ddc.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@layer reset, base, layout, components, utilities;

@layer reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body,
  h1,
  h2,
  h3,
  h4,
  p,
  figure,
  blockquote,
  dl,
  dd {
    margin: 0;
  }

  ul[role="list"],
  ol[role="list"] {
    list-style: none;
    padding: 0;
    margin: 0;
  }

  img,
  picture,
  svg {
    max-width: 100%;
    display: block;
  }

  button,
  input,
  textarea,
  select {
    font: inherit;
    color: inherit;
  }

  button {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
  }

  a {
    color: inherit;
    text-decoration: none;
  }

  :focus-visible {
    outline: 2px solid var(--color-text);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
  }
}

@layer base {
  html {
    color-scheme: light;
    scroll-behavior: smooth;
  }

  body {
    font-family: var(--font-body);
    font-size: var(--text-base);
    line-height: var(--line-height-normal);
    color: var(--color-text);
    background-color: var(--color-body);
    min-block-size: 100dvh;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    font-weight: var(--font-weight-normal);
  }

  p {
    line-height: var(--line-height-normal);
  }

  h1,
  h2,
  h3,
  h4 {
    font-weight: var(--font-weight-normal);
    line-height: var(--line-height-tight);
    letter-spacing: var(--letter-spacing-wide);
  }
}
