html {
  /* Typography tokens */
  --font-heading: 'Amatic SC', sans-serif;
  --font-body: 'Encode Sans', sans-serif;
  --font-mono: 'Source Sans Pro', monospace;

  /* New design system color tokens */
  --color-primary-dark: #004455;
  --color-primary-mid: #4A7A87;
  --color-accent-warm: #C14A1D;
  --color-accent-gold: #E0BE80;
  --color-accent-muted: #5A8690;
  --color-text-primary: #EBEBEB;
  --color-text-secondary: #CADDE2;
  --color-text-muted: #8BA3AA;
  --color-success: #4CAF50;
  --color-warning: #FFC107;
  --color-error: #F44336;

  /* Spacing scale */
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 2.5rem;
  --space-3xl: 3rem;
  --space-4xl: 4rem;

  /* Border radius */
  --radius-tight: 0.25rem;
  --radius-soft: 0.5rem;
  --radius-medium: 0.75rem;
  --radius-round: 999px;

  /* Shadows (elevation) */
  --shadow-subtle: 0 1px 3px rgba(0, 0, 0, 0.12);
  --shadow-medium: 0 4px 8px rgba(0, 0, 0, 0.15);
  --shadow-elevated: 0 8px 16px rgba(0, 0, 0, 0.2);
  --shadow-floating: 0 16px 34px rgba(0, 0, 0, 0.35);

  /* Animation durations */
  --duration-fast: 200ms;
  --duration-standard: 260ms;
  --duration-slow: 420ms;
  --duration-slower: 620ms;

  /* Animation timing functions */
  --timing-ease: ease;
  --timing-custom: cubic-bezier(0.2, 0.7, 0.2, 1);

  /* Z-index scale */
  --z-dropdown: 10;
  --z-sticky: 20;
  --z-fixed: 30;
  --z-modal: 40;
  --z-modal-backdrop: 35;
  --z-tooltip: 50;
  --z-floating-button: 52;
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: calc(17px + (17 - 16) * ((100vw - 50px) / (1600 - 300)));
  line-height: calc(1.7em + (1.5 - 1.2) * ((100vw - 50px)/(1600 - 300)));
  color: var(--color-text-secondary);
  background-color: var(--color-primary-dark);
}
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.14);
  border-radius: 999px;
}
::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.28);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading, 'Amatic SC', cursive);
  margin: 0 0 0.5em 0;
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-text-primary);
}

h1 {
  font-size: 2em;
  text-transform: uppercase;
}

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

a[href^="#-"],
a[href^="##"],
.pillar-card p a[href^="/"],
.modal-description a {
  color: inherit;
  text-decoration-line: underline;
  text-decoration-color: rgba(232, 194, 130, 0.52);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.16em;
  transition:
    text-decoration-color 220ms ease,
    text-decoration-thickness 220ms ease;
}

a[href^="#-"]:hover,
a[href^="#-"]:focus-visible,
a[href^="##"]:hover,
a[href^="##"]:focus-visible,
.pillar-card p a[href^="/"]:hover,
.pillar-card p a[href^="/"]:focus-visible,
.modal-description a:hover,
.modal-description a:focus-visible {
  text-decoration-color: rgba(244, 219, 171, 0.8);
  text-decoration-thickness: 1.5px;
  outline: none;
}

.material-symbols-outlined {
  font-variation-settings:
    'FILL' 0,
    'wght' 400,
    'GRAD' 0,
    'opsz' 24;
}

code, pre {
  font-family: var(--font-mono);
  background-color: var(--color-primary-mid);
  padding: 0.2em 0.4em;
  border-radius: 10px;
}

code i {
  font-weight: 200;
}

blockquote {
  display: inline-block;
  margin: 0;
  padding: 0 2rem;
  font-size: larger;
  font-weight: 300;
  position: relative;
}
cite {
  margin-top: .5rem;
  display: block;
  text-align: left;
  font-size: initial;
  margin-left: 2rem;
}
cite:before {
  content: "\2014 ";
}
cite > * {
  position: relative;
  z-index: 1;
}
blockquote > em {
  font-style: normal;
  font-weight: normal;
}

.spacer {
  margin-top: 2rem;
}

.clickable {
  user-select: none;
  cursor: pointer;
}

.center {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.expand-card-region {
  position: relative;
}

.expand-card-region::before {
  content: '';
  position: fixed;
  inset: 0;
  background: rgba(2, 11, 14, 0.52);
  opacity: 0;
  pointer-events: none;
  transition: opacity 260ms cubic-bezier(0.2, 0.7, 0.16, 1);
  z-index: 1;
}

.expand-card-region.dimmed::before {
  opacity: 1;
}

/* Reusable responsive card grid: 3 → 2 → 1 columns */
.card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 740px) {
  .card-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 500px) {
  .card-grid {
    grid-template-columns: 1fr;
  }
}

figure {
  margin: 0;
}

/* ── Embassy shared section styles ───────────────────── */
.embassy-section {
  width: 100%;
  min-height: 100svh;
  display: grid;
  align-items: center;
  padding: clamp(2rem, 7vw, 5.5rem) clamp(1rem, 4vw, 3rem);
  box-sizing: border-box;
}

.embassy-section-shell {
  width: 100%;
}

.embassy-kicker {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.76rem;
  color: rgba(230, 205, 162, 0.9);
}

.body-clamp {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}

.embassy-read-more {
  display: inline-flex;
  align-items: center;
  margin-top: 0.35rem;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(230, 205, 162, 0.72);
  transition: color 180ms ease;
}

.embassy-read-more:hover,
.embassy-read-more:focus-visible {
  color: rgba(244, 220, 178, 1);
  outline: none;
}

@media (max-width: 720px) {
  .embassy-section {
    padding: 1.2rem 0.9rem 1.4rem;
  }
}
