@font-face {
  font-family: "Pluto";
  src: url("./assets/fonts/pluto/Pluto-Thin.otf") format("opentype");
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Pluto";
  src: url("./assets/fonts/pluto/Pluto-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Pluto";
  src: url("./assets/fonts/pluto/Pluto-Semibold.otf") format("opentype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Pluto";
  src: url("./assets/fonts/pluto/Pluto-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Pluto";
  src: url("./assets/fonts/pluto/Pluto-Black.otf") format("opentype");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Brand foundation */
  --color-ocean: #002A42;
  --color-forest: #CCA34F;

  /* Status palette */
  --color-fejoa: #73BBA5;
  --color-manuka: #DFCC8D;
  --color-peach: #DFA092;
  --color-sky: #BFE5FB;

  /* Supporting neutrals for dashboard readability */
  --color-surface: #ffffff;
  --color-background: #f4f7f9;
  --color-text: #0b1f2d;
  --color-text-muted: #4f6270;
  --color-border: #d7e1e8;
  --color-elevated: #f8fbfd;
  --color-overlay: rgba(0, 42, 66, 0.55);

  /* Typography families */
  --font-pluto-thin: "Pluto", "Avenir Next", "Segoe UI", sans-serif;
  --font-pluto-regular: "Pluto", "Avenir Next", "Segoe UI", sans-serif;
  --font-pluto-semibold: "Pluto", "Avenir Next", "Segoe UI", sans-serif;
  --font-pluto-bold: "Pluto", "Avenir Next", "Segoe UI", sans-serif;
  --font-pluto-black: "Pluto", "Avenir Next", "Segoe UI", sans-serif;
  --font-museo-100: "Museo Sans", "Avenir Next", "Segoe UI", sans-serif;
  --font-museo-300: "Museo Sans", "Avenir Next", "Segoe UI", sans-serif;
  --font-museo-500: "Museo Sans", "Avenir Next", "Segoe UI", sans-serif;
  --font-museo-700: "Museo Sans", "Avenir Next", "Segoe UI", sans-serif;
  --font-museo-900: "Museo Sans", "Avenir Next", "Segoe UI", sans-serif;

  /* Typography weights */
  --font-weight-pluto-thin: 200;
  --font-weight-pluto-regular: 400;
  --font-weight-pluto-semibold: 600;
  --font-weight-pluto-bold: 700;
  --font-weight-pluto-black: 900;
  --font-weight-museo-100: 100;
  --font-weight-museo-300: 300;
  --font-weight-museo-500: 500;
  --font-weight-museo-700: 700;
  --font-weight-museo-900: 900;

  /* Sizing and rhythm */
  --radius-sm: 8px;
  --radius-md: 12px;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 2.5rem;
  --shadow-card: 0 4px 14px rgba(0, 42, 66, 0.09);
  --shadow-popover: 0 16px 40px rgba(0, 42, 66, 0.2);

  /* Logo constraints */
  --logo-min-width: 50px;
  --logo-clear-space: 1em;
}

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

html,
body {
  margin: 0;
  padding: 0;
  min-height: 100%;
}

body {
  background: radial-gradient(circle at 8% -20%, #e6f4ff 0%, transparent 40%), var(--color-background);
  color: var(--color-text);
  font-family: var(--font-museo-500);
  font-weight: var(--font-weight-museo-500);
  line-height: 1.45;
}

a {
  color: var(--color-ocean);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--color-ocean);
  font-family: var(--font-pluto-semibold);
  font-weight: var(--font-weight-pluto-semibold);
  line-height: 1.1;
  margin-top: 0;
}
