@font-face {
  font-family: 'Courier Prime';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/courier-prime-regular-latin.woff2') format('woff2');
}

@font-face {
  font-family: 'Courier Prime';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/courier-prime-bold-latin.woff2') format('woff2');
}

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/fraunces-variable-latin.woff2') format('woff2');
}

@font-face {
  font-family: 'Libre Franklin';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/libre-franklin-variable-latin.woff2') format('woff2');
}

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

body.rmlp-modal-open {
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}


:root {
  /* Color: paper */
  --rmlp-paper: #F6EFDD;
  --rmlp-paper-raised: #FBF6EA;

  /* Color: ink */
  --rmlp-ink: #2A2018;
  --rmlp-ink-muted: #6E5D4C;

  /* Color: structure (borders, graph edges, rules) */
  --rmlp-rule: #C9B896;

  /* Color: accents */
  --rmlp-accent-red: #C1432B;   /* primary / CTA / brand */
  --rmlp-accent-teal: #1F5C55;  /* secondary / links / info */
  --rmlp-accent-gold: #C99A2E;  /* success / par-achieved */
  --rmlp-invalid: #A8501B;      /* invalid-word / error feedback */

  /* Typography */
  --rmlp-font-display: 'Fraunces', Georgia, serif;
  --rmlp-font-ui: 'Libre Franklin', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --rmlp-font-mono: 'Courier Prime', 'Courier New', monospace;
  --rmlp-font-weight-regular: 400;
  --rmlp-font-weight-semibold: 600;
  --rmlp-font-weight-bold: 700;

  /* Links */
  --rmlp-link-underline-offset: 0.3rem;

  /* Type scale */
  --rmlp-text-xs: 15px;
  --rmlp-text-sm: 17px;
  --rmlp-text-base: 19px;
  --rmlp-text-lg: 24px;
  --rmlp-text-xl: 32px;
  --rmlp-text-2xl: 44px;

  /* Radius */
  --rmlp-radius-sm: 3px;
  --rmlp-radius-md: 6px;
  --rmlp-radius-lg: 12px;


  /* Spacing (base unit 4px) */
  --rmlp-space-1: 4px;
  --rmlp-space-2: 8px;
  --rmlp-space-3: 12px;
  --rmlp-space-4: 16px;
  --rmlp-space-6: 24px;
  --rmlp-space-8: 32px;

  --rmlp-page-width: 1180px;
  --rmlp-page-gutter: var(--rmlp-space-4);
  
  --rmlp-header-height: 72px;
  --rmlp-header-gap: var(--rmlp-space-8);
  --rmlp-header-border-width: 1px;
  --rmlp-header-border-opacity: 22%;
  --rmlp-header-background-opacity: 92%;
  --rmlp-header-border:
    rgb(from var(--rmlp-ink-muted) r g b / var(--rmlp-header-border-opacity));
  --rmlp-header-background:
    rgb(from var(--rmlp-paper) r g b / var(--rmlp-header-background-opacity));
  --rmlp-header-backdrop-blur: 10px;
  --rmlp-header-z-index: 5;

  /* Keyboard focus */
  --rmlp-focus-outline-width: 3px;
  --rmlp-focus-outline-offset: var(--rmlp-space-1);
}

.site-header {
  position: relative;
  z-index: var(--rmlp-header-z-index);
  border-bottom: var(--rmlp-header-border-width) solid var(--rmlp-header-border);
  background: var(--rmlp-header-background);
  backdrop-filter: blur(var(--rmlp-header-backdrop-blur));
}

.page-width {
  width: min(100% - 2 * var(--rmlp-page-gutter), var(--rmlp-page-width));
  margin-inline: auto;
}

.header-inner {
  min-height: var(--rmlp-header-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rmlp-header-gap);
}



body {
  margin: 0;
  color: var(--rmlp-ink);
  background: var(--rmlp-paper);
  font-family: var(--rmlp-font-ui);
  font-size: 1rem;
  line-height: 1.65;
}

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

a {
  color: inherit;
  font-weight: var(--rmlp-font-weight-semibold);
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: transparent;
  text-underline-offset: var(--rmlp-link-underline-offset);
}

a:hover {
  color: var(--rmlp-accent-teal);
  text-decoration-color: currentColor;
}


.rmlp-heading {
  font-family: var(--rmlp-font-display);
  font-weight: var(--rmlp-font-weight-bold);
  color: var(--rmlp-ink);
}

.rmlp-label {
  font-family: var(--rmlp-font-mono);
  font-size: var(--rmlp-text-xs);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--rmlp-ink-muted);
}

.rmlp-surface-raised {
  background: var(--rmlp-paper-raised);
  border: 1px solid var(--rmlp-rule);
  border-radius: var(--rmlp-radius-md);
}

.rmlp-skip-link {
  --rmlp-skip-link-inset: var(--rmlp-space-3);
  --rmlp-skip-link-padding: 0.7rem 1rem;
  --rmlp-skip-link-hidden-offset: -160%;
  --rmlp-skip-link-z-index: 20;

  position: fixed;
  z-index: var(--rmlp-skip-link-z-index);
  top: var(--rmlp-skip-link-inset);
  left: var(--rmlp-skip-link-inset);
  padding: var(--rmlp-skip-link-padding);
  background: var(--rmlp-ink);
  border-radius: var(--rmlp-radius-md);
  transform: translateY(var(--rmlp-skip-link-hidden-offset));
}

.rmlp-skip-link,
.rmlp-skip-link:hover {
  color: var(--rmlp-paper-raised);
}

.rmlp-skip-link:focus {
  transform: translateY(0);
}

a:focus-visible,
button:focus-visible {
  outline: var(--rmlp-focus-outline-width) solid var(--rmlp-accent-teal);
  outline-offset: var(--rmlp-focus-outline-offset);
}

.rmlp-privacy-banner {
  --rmlp-privacy-text-width: 26rem;
  --rmlp-privacy-button-height: 44px;
  background: var(--rmlp-paper-raised);
  border-bottom: 1px solid var(--rmlp-rule);
  padding: var(--rmlp-space-4) var(--rmlp-page-gutter);
}

.rmlp-privacy-banner[hidden] { display: none; }

.rmlp-privacy-inner {
  max-width: var(--rmlp-page-width);
  margin-inline: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--rmlp-space-4) var(--rmlp-space-8);
}

.rmlp-privacy-inner > div:first-child {
  flex: 1 1 var(--rmlp-privacy-text-width);
}

.rmlp-privacy-banner h2 {
  margin: 0 0 var(--rmlp-space-1);
  font-family: var(--rmlp-font-display);
  font-size: var(--rmlp-text-lg);
}

.rmlp-privacy-banner p { margin: 0; }
.rmlp-privacy-banner a { text-decoration-color: currentColor; }
.rmlp-privacy-status:empty { display: none; }

.rmlp-privacy-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rmlp-space-3);
}

.rmlp-privacy-actions button {
  min-height: var(--rmlp-privacy-button-height);
  padding: var(--rmlp-space-2) var(--rmlp-space-4);
  border: 1px solid var(--rmlp-accent-teal);
  border-radius: var(--rmlp-radius-md);
  background: var(--rmlp-paper-raised);
  color: var(--rmlp-accent-teal);
  font: inherit;
  font-weight: var(--rmlp-font-weight-semibold);
  cursor: pointer;
}

.rmlp-privacy-actions button:hover {
  background: var(--rmlp-accent-teal);
  color: var(--rmlp-paper-raised);
}

.rmlp-privacy-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--rmlp-space-4);
  padding: var(--rmlp-space-6) var(--rmlp-page-gutter);
}
