/* ============================================================================
   ouRGeo — themes
   ----------------------------------------------------------------------------
   GENERATED by tools/docs/../palette/gen_themes.py from tools/palette/themes.py.
   Do not edit: the next build overwrites it. Change a colour in themes.py and
   re-run the generator, which also re-checks every theme against WCAG.

   `sextant` is the default and lives in tokens.css as the bare :root, so a browser
   that never runs a line of JavaScript still gets the site as it has always
   looked. Every block below is html[data-theme="…"], stamped by theme.js.
   ========================================================================== */

/* ── Dev — The signature look — electric cyan on blue-black. (dark) */
html[data-theme="dev"], .theme-dev {
  color-scheme: dark;

  --bg-0: #050c14;  --bg-1: #07131f;
  --map-deep: #07131f;  --map-panel: #0d1a28;  --map-line: #24455a;

  --water:  #4fc3f7;   --water-rgb:  79 195 247;
  --aqua:   #7fffd4;    --aqua-rgb:   127 255 212;
  --route:  #ffb74d;   --route-rgb:  255 183 77;
  --accent: #4493f8;  --accent-rgb: 68 147 248;

  --text: #d3e6f2;  --text-strong: #eaf6ff;
  --muted: #8199ab;  --muted-rgb: 129 153 171;
  --text-faint: #55697a;
  --on-accent: #051019;

  --danger: #ff7a7a;  --danger-rgb: 255 122 122;
  --ok: #7fffd4;

  --shadow-rgb: 0 0 0;
  --hi-rgb: 255 255 255;
  --bg0-rgb: 5 12 20;
  --bg1-rgb: 7 19 31;
  --panel-rgb: 13 26 40;

  --font-display: Orbitron, "Segoe UI", system-ui, sans-serif;
  --font-body: Inter, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-post: Inter, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --display-tracking: 0.08em;
  --display-transform: uppercase;

  --radius: 16px;
  --rule: solid;
  --paper: none;
  --paper-size: auto;

  --ridge-1: #0c2233;  --ridge-2: #0a1b28;  --ridge-3: #08151f;
}

/* ── Slate — The same map, printed with less ink. (dark) */
html[data-theme="slate"], .theme-slate {
  color-scheme: dark;

  --bg-0: #070d11;  --bg-1: #0b141a;
  --map-deep: #0b141a;  --map-panel: #101c22;  --map-line: #2b4654;

  --water:  #6fa8c4;   --water-rgb:  111 168 196;
  --aqua:   #8fc3a6;    --aqua-rgb:   143 195 166;
  --route:  #d9a463;   --route-rgb:  217 164 99;
  --accent: #5f92ad;  --accent-rgb: 95 146 173;

  --text: #d6e3e6;  --text-strong: #eef4f5;
  --muted: #8b9ba1;  --muted-rgb: 139 155 161;
  --text-faint: #5c6d74;
  --on-accent: #071016;

  --danger: #e08a7d;  --danger-rgb: 224 138 125;
  --ok: #8fc3a6;

  --shadow-rgb: 0 0 0;
  --hi-rgb: 255 255 255;
  --bg0-rgb: 7 13 17;
  --bg1-rgb: 11 20 26;
  --panel-rgb: 16 28 34;

  --font-display: Rajdhani, "Segoe UI", system-ui, sans-serif;
  --font-body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-post: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
  --display-tracking: 0.06em;
  --display-transform: uppercase;

  --radius: 12px;
  --rule: solid;
  --paper: none;
  --paper-size: auto;

  --ridge-1: #101f27;  --ridge-2: #0d1920;  --ridge-3: #0a1319;
}

/* ── Basalt — Black rock, square edges, one hot seam. (dark) */
html[data-theme="basalt"], .theme-basalt {
  color-scheme: dark;

  --bg-0: #08090b;  --bg-1: #0d0f12;
  --map-deep: #0d0f12;  --map-panel: #141719;  --map-line: #33383d;

  --water:  #8ea9c1;   --water-rgb:  142 169 193;
  --aqua:   #7fb69a;    --aqua-rgb:   127 182 154;
  --route:  #e08e4a;   --route-rgb:  224 142 74;
  --accent: #6f8fab;  --accent-rgb: 111 143 171;

  --text: #e4e7ea;  --text-strong: #f5f7f8;
  --muted: #8b9299;  --muted-rgb: 139 146 153;
  --text-faint: #5a6169;
  --on-accent: #0a0b0d;

  --danger: #e0776a;  --danger-rgb: 224 119 106;
  --ok: #7fb69a;

  --shadow-rgb: 0 0 0;
  --hi-rgb: 255 255 255;
  --bg0-rgb: 8 9 11;
  --bg1-rgb: 13 15 18;
  --panel-rgb: 20 23 25;

  --font-display: "Space Grotesk", "Segoe UI", system-ui, sans-serif;
  --font-body: "Space Grotesk", "Segoe UI", system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-post: "Space Grotesk", "Segoe UI", system-ui, sans-serif;
  --display-tracking: 0.04em;
  --display-transform: uppercase;

  --radius: 2px;
  --rule: solid;
  --paper: none;
  --paper-size: auto;

  --ridge-1: #16191c;  --ridge-2: #111316;  --ridge-3: #0c0e10;
}

/* ── Forest — Deep conifer, new growth, wet bark. Softened for night reading. (dark) */
html[data-theme="forest"], .theme-forest {
  color-scheme: dark;

  --bg-0: #0a100c;  --bg-1: #0e1611;
  --map-deep: #0e1611;  --map-panel: #131d17;  --map-line: #2f4437;

  --water:  #7fb0a5;   --water-rgb:  127 176 165;
  --aqua:   #9cbf7f;    --aqua-rgb:   156 191 127;
  --route:  #c98f4f;   --route-rgb:  201 143 79;
  --accent: #6f9c86;  --accent-rgb: 111 156 134;

  --text: #a9b4a7;  --text-strong: #bdc6b9;
  --muted: #788a78;  --muted-rgb: 120 138 120;
  --text-faint: #5d6a5d;
  --on-accent: #08100b;

  --danger: #d4796c;  --danger-rgb: 212 121 108;
  --ok: #9cbf7f;

  --shadow-rgb: 0 0 0;
  --hi-rgb: 255 255 255;
  --bg0-rgb: 10 16 12;
  --bg1-rgb: 14 22 17;
  --panel-rgb: 19 29 23;

  --font-display: Cabin, "Segoe UI", system-ui, sans-serif;
  --font-body: Cabin, "Segoe UI", system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-post: Cabin, "Segoe UI", system-ui, sans-serif;
  --display-tracking: 0.05em;
  --display-transform: uppercase;

  --radius: 14px;
  --rule: solid;
  --paper: none;
  --paper-size: auto;

  --ridge-1: #16261b;  --ridge-2: #111e16;  --ridge-3: #0c1611;
}

/* ── Trout — Olive back, red spot, cream belly. (dark) */
html[data-theme="trout"], .theme-trout {
  color-scheme: dark;

  --bg-0: #0b0f0c;  --bg-1: #101511;
  --map-deep: #101511;  --map-panel: #161c17;  --map-line: #3a4a38;

  --water:  #7fa8b5;   --water-rgb:  127 168 181;
  --aqua:   #a3b884;    --aqua-rgb:   163 184 132;
  --route:  #d97b5c;   --route-rgb:  217 123 92;
  --accent: #6d8f8f;  --accent-rgb: 109 143 143;

  --text: #e0e2d6;  --text-strong: #f2f3e9;
  --muted: #949a89;  --muted-rgb: 148 154 137;
  --text-faint: #63695c;
  --on-accent: #0a0d0a;

  --danger: #d4645a;  --danger-rgb: 212 100 90;
  --ok: #a3b884;

  --shadow-rgb: 0 0 0;
  --hi-rgb: 255 255 255;
  --bg0-rgb: 11 15 12;
  --bg1-rgb: 16 21 17;
  --panel-rgb: 22 28 23;

  --font-display: "Zilla Slab", Rockwell, Georgia, serif;
  --font-body: "Source Sans 3", "Segoe UI", system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-post: "Source Sans 3", "Segoe UI", system-ui, sans-serif;
  --display-tracking: 0.04em;
  --display-transform: none;

  --radius: 10px;
  --rule: solid;
  --paper: none;
  --paper-size: auto;

  --ridge-1: #1a2318;  --ridge-2: #141c13;  --ridge-3: #0f150f;
}

/* ── High Alpine — Cold granite, late sun, thin air. (dark) */
html[data-theme="high-alpine"], .theme-high-alpine {
  color-scheme: dark;

  --bg-0: #0b0e12;  --bg-1: #101419;
  --map-deep: #101419;  --map-panel: #161b21;  --map-line: #35414f;

  --water:  #9db8cf;   --water-rgb:  157 184 207;
  --aqua:   #9dc4b0;    --aqua-rgb:   157 196 176;
  --route:  #d8a05f;   --route-rgb:  216 160 95;
  --accent: #7f9ab5;  --accent-rgb: 127 154 181;

  --text: #dfe6ec;  --text-strong: #f4f8fb;
  --muted: #8e9aa6;  --muted-rgb: 142 154 166;
  --text-faint: #5f6a75;
  --on-accent: #090c10;

  --danger: #d98a84;  --danger-rgb: 217 138 132;
  --ok: #9dc4b0;

  --shadow-rgb: 0 0 0;
  --hi-rgb: 255 255 255;
  --bg0-rgb: 11 14 18;
  --bg1-rgb: 16 20 25;
  --panel-rgb: 22 27 33;

  --font-display: Oswald, "Arial Narrow", "Segoe UI", sans-serif;
  --font-body: Barlow, "Helvetica Neue", "Segoe UI", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-post: Barlow, "Helvetica Neue", "Segoe UI", system-ui, sans-serif;
  --display-tracking: 0.10em;
  --display-transform: uppercase;

  --radius: 4px;
  --rule: solid;
  --paper: none;
  --paper-size: auto;

  --ridge-1: #1b2530;  --ridge-2: #151d26;  --ridge-3: #10161d;
}

/* ── Wood — Oiled walnut and an ember. Softened for night reading. (dark) */
html[data-theme="wood"], .theme-wood {
  color-scheme: dark;

  --bg-0: #0f0b08;  --bg-1: #15100b;
  --map-deep: #15100b;  --map-panel: #1c150f;  --map-line: #4a3a2a;

  --water:  #b08d5f;   --water-rgb:  176 141 95;
  --aqua:   #9aa86b;    --aqua-rgb:   154 168 107;
  --route:  #d4813f;   --route-rgb:  212 129 63;
  --accent: #8a7355;  --accent-rgb: 138 115 85;

  --text: #b7aea1;  --text-strong: #ccc0ae;
  --muted: #918270;  --muted-rgb: 145 130 112;
  --text-faint: #6b6154;
  --on-accent: #050402;

  --danger: #cf7a63;  --danger-rgb: 207 122 99;
  --ok: #9aa86b;

  --shadow-rgb: 0 0 0;
  --hi-rgb: 255 255 255;
  --bg0-rgb: 15 11 8;
  --bg1-rgb: 21 16 11;
  --panel-rgb: 28 21 15;

  --font-display: Bitter, Georgia, "Times New Roman", serif;
  --font-body: Lora, Georgia, "Times New Roman", serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-post: Lora, Georgia, "Times New Roman", serif;
  --display-tracking: 0.03em;
  --display-transform: none;

  --radius: 12px;
  --rule: solid;
  --paper: none;
  --paper-size: auto;

  --ridge-1: #241a12;  --ridge-2: #1c150e;  --ridge-3: #14100a;
}

/* ── Sextant — Deep navy chart, brass and bone. Softened for night reading. (dark) */
html[data-theme="sextant"], .theme-sextant {
  color-scheme: dark;

  --bg-0: #070b14;  --bg-1: #0b1119;
  --map-deep: #0b1119;  --map-panel: #101823;  --map-line: #2c3f57;

  --water:  #8fb4d9;   --water-rgb:  143 180 217;
  --aqua:   #a9c4a0;    --aqua-rgb:   169 196 160;
  --route:  #c9a227;   --route-rgb:  201 162 39;
  --accent: #6f8fb5;  --accent-rgb: 111 143 181;

  --text: #b5af9d;  --text-strong: #cac1ab;
  --muted: #7d8594;  --muted-rgb: 125 133 148;
  --text-faint: #616a78;
  --on-accent: #070b14;

  --danger: #cf8570;  --danger-rgb: 207 133 112;
  --ok: #a9c4a0;

  --shadow-rgb: 0 0 0;
  --hi-rgb: 255 255 255;
  --bg0-rgb: 7 11 20;
  --bg1-rgb: 11 17 25;
  --panel-rgb: 16 24 35;

  --font-display: Cinzel, Georgia, "Times New Roman", serif;
  --font-body: "EB Garamond", Garamond, Georgia, serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-post: "EB Garamond", Garamond, Georgia, serif;
  --display-tracking: 0.12em;
  --display-transform: uppercase;

  --radius: 2px;
  --rule: solid;
  --paper: none;
  --paper-size: auto;

  --ridge-1: #142031;  --ridge-2: #0f1826;  --ridge-3: #0a121c;
}

/* ── Glacier — Pale ice and cold shadow. (light) */
html[data-theme="glacier"], .theme-glacier {
  color-scheme: light;

  --bg-0: #e9eff3;  --bg-1: #f1f5f8;
  --map-deep: #f1f5f8;  --map-panel: #f9fbfc;  --map-line: #93a9b8;

  --water:  #2d7191;   --water-rgb:  45 113 145;
  --aqua:   #2d7961;    --aqua-rgb:   45 121 97;
  --route:  #995b27;   --route-rgb:  153 91 39;
  --accent: #3a6f8f;  --accent-rgb: 58 111 143;

  --text: #1f2b33;  --text-strong: #0d1519;
  --muted: #5a6c77;  --muted-rgb: 90 108 119;
  --text-faint: #798a96;
  --on-accent: #f2f6f8;

  --danger: #b3453c;  --danger-rgb: 179 69 60;
  --ok: #2d7961;

  --shadow-rgb: 90 110 125;
  --hi-rgb: 0 0 0;
  --bg0-rgb: 233 239 243;
  --bg1-rgb: 241 245 248;
  --panel-rgb: 249 251 252;

  --font-display: Inter, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-body: Inter, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-post: Inter, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --display-tracking: 0.06em;
  --display-transform: uppercase;

  --radius: 10px;
  --rule: solid;
  --paper: none;
  --paper-size: auto;

  --ridge-1: #c3d4de;  --ridge-2: #d2e0e8;  --ridge-3: #e0eaf0;
}

/* ── Field Notes — Manila card, ruled, typed in the truck. (light) */
html[data-theme="field-notes"], .theme-field-notes {
  color-scheme: light;

  --bg-0: #ddd0b4;  --bg-1: #e6dac2;
  --map-deep: #e6dac2;  --map-panel: #efe6d2;  --map-line: #9d8c6c;

  --water:  #2f5d7c;   --water-rgb:  47 93 124;
  --aqua:   #436139;    --aqua-rgb:   67 97 57;
  --route:  #8e461a;   --route-rgb:  142 70 26;
  --accent: #3d5f7a;  --accent-rgb: 61 95 122;

  --text: #2a2418;  --text-strong: #14100a;
  --muted: #5f5747;  --muted-rgb: 95 87 71;
  --text-faint: #7c7360;
  --on-accent: #f0e8d8;

  --danger: #9c3a2a;  --danger-rgb: 156 58 42;
  --ok: #436139;

  --shadow-rgb: 90 80 60;
  --hi-rgb: 0 0 0;
  --bg0-rgb: 221 208 180;
  --bg1-rgb: 230 218 194;
  --panel-rgb: 239 230 210;

  --font-display: "Courier Prime", "Courier New", ui-monospace, monospace;
  --font-body: "Courier Prime", "Courier New", ui-monospace, monospace;
  --font-mono: "Courier Prime", "Courier New", ui-monospace, monospace;
  --font-post: "Courier Prime", "Courier New", ui-monospace, monospace;
  --display-tracking: 0.05em;
  --display-transform: uppercase;

  --radius: 2px;
  --rule: dashed;
  --paper: repeating-linear-gradient(0deg, transparent 0 27px, rgb(var(--water-rgb) / 0.13) 27px 28px);
  --paper-size: auto;

  --ridge-1: #c2b18c;  --ridge-2: #cdbd9c;  --ridge-3: #d6c9ab;
}

/* ── Rainproof — Buff all-weather paper, olive grid. (light) */
html[data-theme="rainproof"], .theme-rainproof {
  color-scheme: light;

  --bg-0: #e5d9b4;  --bg-1: #eee3c4;
  --map-deep: #eee3c4;  --map-panel: #f5ecd6;  --map-line: #8d9460;

  --water:  #486838;   --water-rgb:  72 104 56;
  --aqua:   #2d6757;    --aqua-rgb:   45 103 87;
  --route:  #86511b;   --route-rgb:  134 81 27;
  --accent: #55703f;  --accent-rgb: 85 112 63;

  --text: #2b2a1c;  --text-strong: #15140c;
  --muted: #616049;  --muted-rgb: 97 96 73;
  --text-faint: #7e7c63;
  --on-accent: #f5efd8;

  --danger: #9c3f2a;  --danger-rgb: 156 63 42;
  --ok: #2d6757;

  --shadow-rgb: 95 90 65;
  --hi-rgb: 0 0 0;
  --bg0-rgb: 229 217 180;
  --bg1-rgb: 238 227 196;
  --panel-rgb: 245 236 214;

  --font-display: "Roboto Condensed", "Arial Narrow", system-ui, sans-serif;
  --font-body: "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-mono: "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-post: "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --display-tracking: 0.07em;
  --display-transform: uppercase;

  --radius: 3px;
  --rule: solid;
  --paper: linear-gradient(rgb(var(--water-rgb) / 0.10) 1px, transparent 1px), linear-gradient(90deg, rgb(var(--water-rgb) / 0.10) 1px, transparent 1px);
  --paper-size: 22px 22px;

  --ridge-1: #d0c093;  --ridge-2: #dacca2;  --ridge-3: #e3d7b1;
}

/* ── Albany — A quadrangle sheet — contour, hydro, vegetation. (light) */
html[data-theme="albany"], .theme-albany {
  color-scheme: light;

  --bg-0: #ebe5d5;  --bg-1: #f2ede0;
  --map-deep: #f2ede0;  --map-panel: #f8f5ec;  --map-line: #ac9c86;

  --water:  #2c689f;   --water-rgb:  44 104 159;
  --aqua:   #426f40;    --aqua-rgb:   66 111 64;
  --route:  #945528;   --route-rgb:  148 85 40;
  --accent: #3a6d94;  --accent-rgb: 58 109 148;

  --text: #2a2823;  --text-strong: #121110;
  --muted: #6a6458;  --muted-rgb: 106 100 88;
  --text-faint: #8a8370;
  --on-accent: #f7f4ea;

  --danger: #a83b2c;  --danger-rgb: 168 59 44;
  --ok: #426f40;

  --shadow-rgb: 100 95 80;
  --hi-rgb: 0 0 0;
  --bg0-rgb: 235 229 213;
  --bg1-rgb: 242 237 224;
  --panel-rgb: 248 245 236;

  --font-display: Spectral, Georgia, "Times New Roman", serif;
  --font-body: Spectral, Georgia, "Times New Roman", serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-post: Spectral, Georgia, "Times New Roman", serif;
  --display-tracking: 0.08em;
  --display-transform: uppercase;

  --radius: 2px;
  --rule: solid;
  --paper: repeating-linear-gradient(45deg, transparent 0 12px, rgb(var(--route-rgb) / 0.07) 12px 13px);
  --paper-size: auto;

  --ridge-1: #d4c9ad;  --ridge-2: #ded3ba;  --ridge-3: #e6dcc6;
}

/* ── Linen — Warm paper, quiet type, wide margins. (light) */
html[data-theme="linen"], .theme-linen {
  color-scheme: light;

  --bg-0: #f0ece4;  --bg-1: #f7f4ee;
  --map-deep: #f7f4ee;  --map-panel: #fcfaf6;  --map-line: #bdb3a3;

  --water:  #4a6572;   --water-rgb:  74 101 114;
  --aqua:   #4b7457;    --aqua-rgb:   75 116 87;
  --route:  #916030;   --route-rgb:  145 96 48;
  --accent: #5b7482;  --accent-rgb: 91 116 130;

  --text: #2b2823;  --text-strong: #14120f;
  --muted: #6e6960;  --muted-rgb: 110 105 96;
  --text-faint: #8c8577;
  --on-accent: #faf7f2;

  --danger: #a34a3c;  --danger-rgb: 163 74 60;
  --ok: #4b7457;

  --shadow-rgb: 110 104 94;
  --hi-rgb: 0 0 0;
  --bg0-rgb: 240 236 228;
  --bg1-rgb: 247 244 238;
  --panel-rgb: 252 250 246;

  --font-display: Fraunces, Georgia, "Times New Roman", serif;
  --font-body: Newsreader, Georgia, "Times New Roman", serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-post: Newsreader, Georgia, "Times New Roman", serif;
  --display-tracking: 0.02em;
  --display-transform: none;

  --radius: 8px;
  --rule: solid;
  --paper: none;
  --paper-size: auto;

  --ridge-1: #ded6c9;  --ridge-2: #e8e1d5;  --ridge-3: #f0ebe2;
}
