/* ==========================================================================
   SnapRender site theme: light (default) and dark.

   Loaded on every Tailwind page through views/partials/theme-head.ejs, which also points Tailwind's palette
   at the --c-* variables below. Light values are Tailwind's own defaults, so light mode renders exactly as it
   did before themes existed. The palette block is generated by scripts/build-theme-css.mjs.

   Cached for a year under a content hash (/css/theme/theme.css?v=...): never reference it without the hash.
   ========================================================================== */

/* @palette:start (generated by scripts/build-theme-css.mjs; do not edit by hand) */
:root {
  --c-slate-50: 248 250 252; --c-slate-100: 241 245 249; --c-slate-200: 226 232 240; --c-slate-300: 203 213 225; --c-slate-400: 148 163 184; --c-slate-500: 100 116 139; --c-slate-600: 71 85 105; --c-slate-700: 51 65 85; --c-slate-800: 30 41 59; --c-slate-900: 15 23 42; --c-slate-950: 2 6 23;
  --c-gray-50: 249 250 251; --c-gray-100: 243 244 246; --c-gray-200: 229 231 235; --c-gray-300: 209 213 219; --c-gray-400: 156 163 175; --c-gray-500: 107 114 128; --c-gray-600: 75 85 99; --c-gray-700: 55 65 81; --c-gray-800: 31 41 55; --c-gray-900: 17 24 39; --c-gray-950: 3 7 18;
  --c-red-50: 254 242 242; --c-red-100: 254 226 226; --c-red-200: 254 202 202; --c-red-300: 252 165 165; --c-red-400: 248 113 113; --c-red-500: 239 68 68; --c-red-600: 220 38 38; --c-red-700: 185 28 28; --c-red-800: 153 27 27; --c-red-900: 127 29 29; --c-red-950: 69 10 10;
  --c-orange-50: 255 247 237; --c-orange-100: 255 237 213; --c-orange-200: 254 215 170; --c-orange-300: 253 186 116; --c-orange-400: 251 146 60; --c-orange-500: 249 115 22; --c-orange-600: 234 88 12; --c-orange-700: 194 65 12; --c-orange-800: 154 52 18; --c-orange-900: 124 45 18; --c-orange-950: 67 20 7;
  --c-amber-50: 255 251 235; --c-amber-100: 254 243 199; --c-amber-200: 253 230 138; --c-amber-300: 252 211 77; --c-amber-400: 251 191 36; --c-amber-500: 245 158 11; --c-amber-600: 217 119 6; --c-amber-700: 180 83 9; --c-amber-800: 146 64 14; --c-amber-900: 120 53 15; --c-amber-950: 69 26 3;
  --c-yellow-50: 254 252 232; --c-yellow-100: 254 249 195; --c-yellow-200: 254 240 138; --c-yellow-300: 253 224 71; --c-yellow-400: 250 204 21; --c-yellow-500: 234 179 8; --c-yellow-600: 202 138 4; --c-yellow-700: 161 98 7; --c-yellow-800: 133 77 14; --c-yellow-900: 113 63 18; --c-yellow-950: 66 32 6;
  --c-green-50: 240 253 244; --c-green-100: 220 252 231; --c-green-200: 187 247 208; --c-green-300: 134 239 172; --c-green-400: 74 222 128; --c-green-500: 34 197 94; --c-green-600: 22 163 74; --c-green-700: 21 128 61; --c-green-800: 22 101 52; --c-green-900: 20 83 45; --c-green-950: 5 46 22;
  --c-emerald-50: 236 253 245; --c-emerald-100: 209 250 229; --c-emerald-200: 167 243 208; --c-emerald-300: 110 231 183; --c-emerald-400: 52 211 153; --c-emerald-500: 16 185 129; --c-emerald-600: 5 150 105; --c-emerald-700: 4 120 87; --c-emerald-800: 6 95 70; --c-emerald-900: 6 78 59; --c-emerald-950: 2 44 34;
  --c-teal-50: 240 253 250; --c-teal-100: 204 251 241; --c-teal-200: 153 246 228; --c-teal-300: 94 234 212; --c-teal-400: 45 212 191; --c-teal-500: 20 184 166; --c-teal-600: 13 148 136; --c-teal-700: 15 118 110; --c-teal-800: 17 94 89; --c-teal-900: 19 78 74; --c-teal-950: 4 47 46;
  --c-cyan-50: 236 254 255; --c-cyan-100: 207 250 254; --c-cyan-200: 165 243 252; --c-cyan-300: 103 232 249; --c-cyan-400: 34 211 238; --c-cyan-500: 6 182 212; --c-cyan-600: 8 145 178; --c-cyan-700: 14 116 144; --c-cyan-800: 21 94 117; --c-cyan-900: 22 78 99; --c-cyan-950: 8 51 68;
  --c-sky-50: 240 249 255; --c-sky-100: 224 242 254; --c-sky-200: 186 230 253; --c-sky-300: 125 211 252; --c-sky-400: 56 189 248; --c-sky-500: 14 165 233; --c-sky-600: 2 132 199; --c-sky-700: 3 105 161; --c-sky-800: 7 89 133; --c-sky-900: 12 74 110; --c-sky-950: 8 47 73;
  --c-blue-50: 239 246 255; --c-blue-100: 219 234 254; --c-blue-200: 191 219 254; --c-blue-300: 147 197 253; --c-blue-400: 96 165 250; --c-blue-500: 59 130 246; --c-blue-600: 37 99 235; --c-blue-700: 29 78 216; --c-blue-800: 30 64 175; --c-blue-900: 30 58 138; --c-blue-950: 23 37 84;
  --c-indigo-50: 238 242 255; --c-indigo-100: 224 231 255; --c-indigo-200: 199 210 254; --c-indigo-300: 165 180 252; --c-indigo-400: 129 140 248; --c-indigo-500: 99 102 241; --c-indigo-600: 79 70 229; --c-indigo-700: 67 56 202; --c-indigo-800: 55 48 163; --c-indigo-900: 49 46 129; --c-indigo-950: 30 27 75;
  --c-violet-50: 245 243 255; --c-violet-100: 237 233 254; --c-violet-200: 221 214 254; --c-violet-300: 196 181 253; --c-violet-400: 167 139 250; --c-violet-500: 139 92 246; --c-violet-600: 124 58 237; --c-violet-700: 109 40 217; --c-violet-800: 91 33 182; --c-violet-900: 76 29 149; --c-violet-950: 46 16 101;
  --c-purple-50: 250 245 255; --c-purple-100: 243 232 255; --c-purple-200: 233 213 255; --c-purple-300: 216 180 254; --c-purple-400: 192 132 252; --c-purple-500: 168 85 247; --c-purple-600: 147 51 234; --c-purple-700: 126 34 206; --c-purple-800: 107 33 168; --c-purple-900: 88 28 135; --c-purple-950: 59 7 100;
  --c-pink-50: 253 242 248; --c-pink-100: 252 231 243; --c-pink-200: 251 207 232; --c-pink-300: 249 168 212; --c-pink-400: 244 114 182; --c-pink-500: 236 72 153; --c-pink-600: 219 39 119; --c-pink-700: 190 24 93; --c-pink-800: 157 23 77; --c-pink-900: 131 24 67; --c-pink-950: 80 7 36;
  --c-rose-50: 255 241 242; --c-rose-100: 255 228 230; --c-rose-200: 254 205 211; --c-rose-300: 253 164 175; --c-rose-400: 251 113 133; --c-rose-500: 244 63 94; --c-rose-600: 225 29 72; --c-rose-700: 190 18 60; --c-rose-800: 159 18 57; --c-rose-900: 136 19 55; --c-rose-950: 76 5 25;
  --c-brand-50: 238 242 255; --c-brand-100: 224 231 255; --c-brand-200: 199 210 254; --c-brand-300: 165 180 252; --c-brand-400: 129 140 248; --c-brand-500: 99 102 241; --c-brand-600: 79 70 229; --c-brand-700: 67 56 202; --c-brand-800: 55 48 163; --c-brand-900: 49 46 129;
  --c-claude-50: 253 244 239; --c-claude-100: 250 230 218; --c-claude-200: 244 203 178; --c-claude-300: 236 171 133; --c-claude-500: 217 119 87; --c-claude-600: 196 95 60; --c-claude-700: 163 76 47;
}
:root { --sr-base: 255 255 255; }
html.dark {
  --c-slate-50: 8 10 14; --c-slate-100: 21 26 34; --c-slate-200: 33 40 52; --c-slate-300: 48 56 72; --c-slate-400: 125 135 154; --c-slate-500: 152 162 181; --c-slate-600: 179 188 204; --c-slate-700: 204 211 224; --c-slate-800: 225 230 238; --c-slate-900: 239 242 247; --c-slate-950: 248 250 252;
  --c-gray-50: 8 9 12; --c-gray-100: 22 25 32; --c-gray-200: 34 38 47; --c-gray-300: 48 53 63; --c-gray-400: 123 130 146; --c-gray-500: 149 156 171; --c-gray-600: 176 182 195; --c-gray-700: 201 205 215; --c-gray-800: 223 226 233; --c-gray-900: 238 240 245; --c-gray-950: 248 249 251;
  --c-red-50: 33 20 24; --c-red-100: 47 23 27; --c-red-200: 72 29 32; --c-red-300: 119 59 62; --c-red-400: 248 113 113; --c-red-500: 239 68 68; --c-red-600: 248 113 113; --c-red-700: 252 165 165; --c-red-800: 254 202 202; --c-red-900: 254 226 226; --c-red-950: 254 242 242;
  --c-orange-50: 34 24 20; --c-orange-100: 48 30 20; --c-orange-200: 74 41 21; --c-orange-300: 120 74 38; --c-orange-400: 251 146 60; --c-orange-500: 249 115 22; --c-orange-600: 251 146 60; --c-orange-700: 253 186 116; --c-orange-800: 254 215 170; --c-orange-900: 255 237 213; --c-orange-950: 255 247 237;
  --c-amber-50: 34 28 19; --c-amber-100: 48 36 19; --c-amber-200: 73 52 18; --c-amber-300: 120 94 27; --c-amber-400: 251 191 36; --c-amber-500: 245 158 11; --c-amber-600: 251 191 36; --c-amber-700: 252 211 77; --c-amber-800: 253 230 138; --c-amber-900: 254 243 199; --c-amber-950: 255 251 235;
  --c-yellow-50: 33 30 19; --c-yellow-100: 46 40 18; --c-yellow-200: 70 58 17; --c-yellow-300: 120 100 20; --c-yellow-400: 250 204 21; --c-yellow-500: 234 179 8; --c-yellow-600: 250 204 21; --c-yellow-700: 253 224 71; --c-yellow-800: 254 240 138; --c-yellow-900: 254 249 195; --c-yellow-950: 254 252 232;
  --c-green-50: 15 31 27; --c-green-100: 16 42 31; --c-green-200: 18 62 39; --c-green-300: 40 108 69; --c-green-400: 74 222 128; --c-green-500: 34 197 94; --c-green-600: 74 222 128; --c-green-700: 134 239 172; --c-green-800: 187 247 208; --c-green-900: 220 252 231; --c-green-950: 240 253 244;
  --c-emerald-50: 13 30 30; --c-emerald-100: 13 41 36; --c-emerald-200: 14 59 48; --c-emerald-300: 31 103 80; --c-emerald-400: 52 211 153; --c-emerald-500: 16 185 129; --c-emerald-600: 52 211 153; --c-emerald-700: 110 231 183; --c-emerald-800: 167 243 208; --c-emerald-900: 209 250 229; --c-emerald-950: 236 253 245;
  --c-teal-50: 14 30 33; --c-teal-100: 14 40 42; --c-teal-200: 15 59 58; --c-teal-300: 27 104 97; --c-teal-400: 45 212 191; --c-teal-500: 20 184 166; --c-teal-600: 45 212 191; --c-teal-700: 94 234 212; --c-teal-800: 153 246 228; --c-teal-900: 204 251 241; --c-teal-950: 240 253 250;
  --c-cyan-50: 12 30 37; --c-cyan-100: 12 40 49; --c-cyan-200: 11 58 70; --c-cyan-300: 22 103 118; --c-cyan-400: 34 211 238; --c-cyan-500: 6 182 212; --c-cyan-600: 34 211 238; --c-cyan-700: 103 232 249; --c-cyan-800: 165 243 252; --c-cyan-900: 207 250 254; --c-cyan-950: 236 254 255;
  --c-sky-50: 13 29 39; --c-sky-100: 13 38 52; --c-sky-200: 13 54 75; --c-sky-300: 32 93 123; --c-sky-400: 56 189 248; --c-sky-500: 14 165 233; --c-sky-600: 56 189 248; --c-sky-700: 125 211 252; --c-sky-800: 186 230 253; --c-sky-900: 224 242 254; --c-sky-950: 240 249 255;
  --c-blue-50: 17 25 40; --c-blue-100: 20 32 54; --c-blue-200: 25 45 79; --c-blue-300: 50 83 124; --c-blue-400: 96 165 250; --c-blue-500: 59 130 246; --c-blue-600: 96 165 250; --c-blue-700: 147 197 253; --c-blue-800: 191 219 254; --c-blue-900: 219 234 254; --c-blue-950: 239 246 255;
  --c-indigo-50: 21 23 40; --c-indigo-100: 26 28 53; --c-indigo-200: 35 38 77; --c-indigo-300: 65 71 123; --c-indigo-400: 129 140 248; --c-indigo-500: 99 102 241; --c-indigo-600: 129 140 248; --c-indigo-700: 165 180 252; --c-indigo-800: 199 210 254; --c-indigo-900: 224 231 255; --c-indigo-950: 238 242 255;
  --c-violet-50: 24 22 40; --c-violet-100: 32 27 54; --c-violet-200: 46 35 79; --c-violet-300: 82 71 124; --c-violet-400: 167 139 250; --c-violet-500: 139 92 246; --c-violet-600: 167 139 250; --c-violet-700: 196 181 253; --c-violet-800: 221 214 254; --c-violet-900: 237 233 254; --c-violet-950: 245 243 255;
  --c-purple-50: 27 21 40; --c-purple-100: 36 26 54; --c-purple-200: 53 33 79; --c-purple-300: 94 68 124; --c-purple-400: 192 132 252; --c-purple-500: 168 85 247; --c-purple-600: 192 132 252; --c-purple-700: 216 180 254; --c-purple-800: 233 213 255; --c-purple-900: 243 232 255; --c-purple-950: 250 245 255;
  --c-pink-50: 33 20 32; --c-pink-100: 46 24 40; --c-pink-200: 71 30 55; --c-pink-300: 117 60 93; --c-pink-400: 244 114 182; --c-pink-500: 236 72 153; --c-pink-600: 244 114 182; --c-pink-700: 249 168 212; --c-pink-800: 251 207 232; --c-pink-900: 252 231 243; --c-pink-950: 253 242 248;
  --c-rose-50: 34 19 27; --c-rose-100: 48 22 31; --c-rose-200: 73 27 39; --c-rose-300: 120 59 71; --c-rose-400: 251 113 133; --c-rose-500: 244 63 94; --c-rose-600: 251 113 133; --c-rose-700: 253 164 175; --c-rose-800: 254 205 211; --c-rose-900: 255 228 230; --c-rose-950: 255 241 242;
  --c-brand-50: 21 23 40; --c-brand-100: 26 28 53; --c-brand-200: 35 38 77; --c-brand-300: 65 71 123; --c-brand-400: 129 140 248; --c-brand-500: 99 102 241; --c-brand-600: 129 140 248; --c-brand-700: 165 180 252; --c-brand-800: 199 210 254; --c-brand-900: 224 231 255;
  --c-claude-50: 31 24 26; --c-claude-100: 44 31 30; --c-claude-200: 66 42 37; --c-claude-300: 109 74 61; --c-claude-500: 217 119 87; --c-claude-600: 227 145 110; --c-claude-700: 236 171 133;
}
html.dark { --sr-base: 13 15 20; }
/* Islands restore the light palette for solid and dark fills. */
html.dark :is([data-theme-island], .bg-black, .bg-black\/85, .bg-gray-700, .bg-slate-700, .bg-gray-800, .bg-slate-800, .bg-gray-900, .bg-slate-900, .bg-gray-950, .bg-slate-950, .bg-gray-900\/60, .bg-gray-900\/80, .bg-red-500, .bg-red-600, .bg-red-700, .bg-red-800, .bg-red-900, .bg-orange-500, .bg-orange-600, .bg-orange-700, .bg-orange-800, .bg-orange-900, .bg-amber-500, .bg-amber-600, .bg-amber-700, .bg-amber-800, .bg-amber-900, .bg-yellow-500, .bg-yellow-600, .bg-yellow-700, .bg-yellow-800, .bg-yellow-900, .bg-green-500, .bg-green-600, .bg-green-700, .bg-green-800, .bg-green-900, .bg-emerald-500, .bg-emerald-600, .bg-emerald-700, .bg-emerald-800, .bg-emerald-900, .bg-teal-500, .bg-teal-600, .bg-teal-700, .bg-teal-800, .bg-teal-900, .bg-cyan-500, .bg-cyan-600, .bg-cyan-700, .bg-cyan-800, .bg-cyan-900, .bg-sky-500, .bg-sky-600, .bg-sky-700, .bg-sky-800, .bg-sky-900, .bg-blue-500, .bg-blue-600, .bg-blue-700, .bg-blue-800, .bg-blue-900, .bg-indigo-500, .bg-indigo-600, .bg-indigo-700, .bg-indigo-800, .bg-indigo-900, .bg-violet-500, .bg-violet-600, .bg-violet-700, .bg-violet-800, .bg-violet-900, .bg-purple-500, .bg-purple-600, .bg-purple-700, .bg-purple-800, .bg-purple-900, .bg-pink-500, .bg-pink-600, .bg-pink-700, .bg-pink-800, .bg-pink-900, .bg-rose-500, .bg-rose-600, .bg-rose-700, .bg-rose-800, .bg-rose-900, .bg-brand-500, .bg-brand-600, .bg-brand-700, .bg-brand-800, .bg-brand-900, .bg-claude-500, .bg-claude-600, .bg-claude-700, .from-red-500, .from-red-600, .from-red-700, .from-orange-500, .from-orange-600, .from-orange-700, .from-amber-500, .from-amber-600, .from-amber-700, .from-yellow-500, .from-yellow-600, .from-yellow-700, .from-green-500, .from-green-600, .from-green-700, .from-emerald-500, .from-emerald-600, .from-emerald-700, .from-teal-500, .from-teal-600, .from-teal-700, .from-cyan-500, .from-cyan-600, .from-cyan-700, .from-sky-500, .from-sky-600, .from-sky-700, .from-blue-500, .from-blue-600, .from-blue-700, .from-indigo-500, .from-indigo-600, .from-indigo-700, .from-violet-500, .from-violet-600, .from-violet-700, .from-purple-500, .from-purple-600, .from-purple-700, .from-pink-500, .from-pink-600, .from-pink-700, .from-rose-500, .from-rose-600, .from-rose-700, .from-brand-500, .from-brand-600, .from-brand-700, .from-claude-500, .from-claude-600, .from-claude-700, .from-gray-600, .from-slate-600, .from-gray-700, .from-slate-700, .from-gray-800, .from-slate-800, .from-gray-900, .from-slate-900) {
  --c-slate-50: 248 250 252; --c-slate-100: 241 245 249; --c-slate-200: 226 232 240; --c-slate-300: 203 213 225; --c-slate-400: 148 163 184; --c-slate-500: 100 116 139; --c-slate-600: 71 85 105; --c-slate-700: 51 65 85; --c-slate-800: 30 41 59; --c-slate-900: 15 23 42; --c-slate-950: 2 6 23;
  --c-gray-50: 249 250 251; --c-gray-100: 243 244 246; --c-gray-200: 229 231 235; --c-gray-300: 209 213 219; --c-gray-400: 156 163 175; --c-gray-500: 107 114 128; --c-gray-600: 75 85 99; --c-gray-700: 55 65 81; --c-gray-800: 31 41 55; --c-gray-900: 17 24 39; --c-gray-950: 3 7 18;
  --c-red-50: 254 242 242; --c-red-100: 254 226 226; --c-red-200: 254 202 202; --c-red-300: 252 165 165; --c-red-400: 248 113 113; --c-red-500: 239 68 68; --c-red-600: 220 38 38; --c-red-700: 185 28 28; --c-red-800: 153 27 27; --c-red-900: 127 29 29; --c-red-950: 69 10 10;
  --c-orange-50: 255 247 237; --c-orange-100: 255 237 213; --c-orange-200: 254 215 170; --c-orange-300: 253 186 116; --c-orange-400: 251 146 60; --c-orange-500: 249 115 22; --c-orange-600: 234 88 12; --c-orange-700: 194 65 12; --c-orange-800: 154 52 18; --c-orange-900: 124 45 18; --c-orange-950: 67 20 7;
  --c-amber-50: 255 251 235; --c-amber-100: 254 243 199; --c-amber-200: 253 230 138; --c-amber-300: 252 211 77; --c-amber-400: 251 191 36; --c-amber-500: 245 158 11; --c-amber-600: 217 119 6; --c-amber-700: 180 83 9; --c-amber-800: 146 64 14; --c-amber-900: 120 53 15; --c-amber-950: 69 26 3;
  --c-yellow-50: 254 252 232; --c-yellow-100: 254 249 195; --c-yellow-200: 254 240 138; --c-yellow-300: 253 224 71; --c-yellow-400: 250 204 21; --c-yellow-500: 234 179 8; --c-yellow-600: 202 138 4; --c-yellow-700: 161 98 7; --c-yellow-800: 133 77 14; --c-yellow-900: 113 63 18; --c-yellow-950: 66 32 6;
  --c-green-50: 240 253 244; --c-green-100: 220 252 231; --c-green-200: 187 247 208; --c-green-300: 134 239 172; --c-green-400: 74 222 128; --c-green-500: 34 197 94; --c-green-600: 22 163 74; --c-green-700: 21 128 61; --c-green-800: 22 101 52; --c-green-900: 20 83 45; --c-green-950: 5 46 22;
  --c-emerald-50: 236 253 245; --c-emerald-100: 209 250 229; --c-emerald-200: 167 243 208; --c-emerald-300: 110 231 183; --c-emerald-400: 52 211 153; --c-emerald-500: 16 185 129; --c-emerald-600: 5 150 105; --c-emerald-700: 4 120 87; --c-emerald-800: 6 95 70; --c-emerald-900: 6 78 59; --c-emerald-950: 2 44 34;
  --c-teal-50: 240 253 250; --c-teal-100: 204 251 241; --c-teal-200: 153 246 228; --c-teal-300: 94 234 212; --c-teal-400: 45 212 191; --c-teal-500: 20 184 166; --c-teal-600: 13 148 136; --c-teal-700: 15 118 110; --c-teal-800: 17 94 89; --c-teal-900: 19 78 74; --c-teal-950: 4 47 46;
  --c-cyan-50: 236 254 255; --c-cyan-100: 207 250 254; --c-cyan-200: 165 243 252; --c-cyan-300: 103 232 249; --c-cyan-400: 34 211 238; --c-cyan-500: 6 182 212; --c-cyan-600: 8 145 178; --c-cyan-700: 14 116 144; --c-cyan-800: 21 94 117; --c-cyan-900: 22 78 99; --c-cyan-950: 8 51 68;
  --c-sky-50: 240 249 255; --c-sky-100: 224 242 254; --c-sky-200: 186 230 253; --c-sky-300: 125 211 252; --c-sky-400: 56 189 248; --c-sky-500: 14 165 233; --c-sky-600: 2 132 199; --c-sky-700: 3 105 161; --c-sky-800: 7 89 133; --c-sky-900: 12 74 110; --c-sky-950: 8 47 73;
  --c-blue-50: 239 246 255; --c-blue-100: 219 234 254; --c-blue-200: 191 219 254; --c-blue-300: 147 197 253; --c-blue-400: 96 165 250; --c-blue-500: 59 130 246; --c-blue-600: 37 99 235; --c-blue-700: 29 78 216; --c-blue-800: 30 64 175; --c-blue-900: 30 58 138; --c-blue-950: 23 37 84;
  --c-indigo-50: 238 242 255; --c-indigo-100: 224 231 255; --c-indigo-200: 199 210 254; --c-indigo-300: 165 180 252; --c-indigo-400: 129 140 248; --c-indigo-500: 99 102 241; --c-indigo-600: 79 70 229; --c-indigo-700: 67 56 202; --c-indigo-800: 55 48 163; --c-indigo-900: 49 46 129; --c-indigo-950: 30 27 75;
  --c-violet-50: 245 243 255; --c-violet-100: 237 233 254; --c-violet-200: 221 214 254; --c-violet-300: 196 181 253; --c-violet-400: 167 139 250; --c-violet-500: 139 92 246; --c-violet-600: 124 58 237; --c-violet-700: 109 40 217; --c-violet-800: 91 33 182; --c-violet-900: 76 29 149; --c-violet-950: 46 16 101;
  --c-purple-50: 250 245 255; --c-purple-100: 243 232 255; --c-purple-200: 233 213 255; --c-purple-300: 216 180 254; --c-purple-400: 192 132 252; --c-purple-500: 168 85 247; --c-purple-600: 147 51 234; --c-purple-700: 126 34 206; --c-purple-800: 107 33 168; --c-purple-900: 88 28 135; --c-purple-950: 59 7 100;
  --c-pink-50: 253 242 248; --c-pink-100: 252 231 243; --c-pink-200: 251 207 232; --c-pink-300: 249 168 212; --c-pink-400: 244 114 182; --c-pink-500: 236 72 153; --c-pink-600: 219 39 119; --c-pink-700: 190 24 93; --c-pink-800: 157 23 77; --c-pink-900: 131 24 67; --c-pink-950: 80 7 36;
  --c-rose-50: 255 241 242; --c-rose-100: 255 228 230; --c-rose-200: 254 205 211; --c-rose-300: 253 164 175; --c-rose-400: 251 113 133; --c-rose-500: 244 63 94; --c-rose-600: 225 29 72; --c-rose-700: 190 18 60; --c-rose-800: 159 18 57; --c-rose-900: 136 19 55; --c-rose-950: 76 5 25;
  --c-brand-50: 238 242 255; --c-brand-100: 224 231 255; --c-brand-200: 199 210 254; --c-brand-300: 165 180 252; --c-brand-400: 129 140 248; --c-brand-500: 99 102 241; --c-brand-600: 79 70 229; --c-brand-700: 67 56 202; --c-brand-800: 55 48 163; --c-brand-900: 49 46 129;
  --c-claude-50: 253 244 239; --c-claude-100: 250 230 218; --c-claude-200: 244 203 178; --c-claude-300: 236 171 133; --c-claude-500: 217 119 87; --c-claude-600: 196 95 60; --c-claude-700: 163 76 47;
}
html.dark :is([data-theme-island], .bg-black, .bg-black\/85, .bg-gray-700, .bg-slate-700, .bg-gray-800, .bg-slate-800, .bg-gray-900, .bg-slate-900, .bg-gray-950, .bg-slate-950, .bg-gray-900\/60, .bg-gray-900\/80, .bg-red-500, .bg-red-600, .bg-red-700, .bg-red-800, .bg-red-900, .bg-orange-500, .bg-orange-600, .bg-orange-700, .bg-orange-800, .bg-orange-900, .bg-amber-500, .bg-amber-600, .bg-amber-700, .bg-amber-800, .bg-amber-900, .bg-yellow-500, .bg-yellow-600, .bg-yellow-700, .bg-yellow-800, .bg-yellow-900, .bg-green-500, .bg-green-600, .bg-green-700, .bg-green-800, .bg-green-900, .bg-emerald-500, .bg-emerald-600, .bg-emerald-700, .bg-emerald-800, .bg-emerald-900, .bg-teal-500, .bg-teal-600, .bg-teal-700, .bg-teal-800, .bg-teal-900, .bg-cyan-500, .bg-cyan-600, .bg-cyan-700, .bg-cyan-800, .bg-cyan-900, .bg-sky-500, .bg-sky-600, .bg-sky-700, .bg-sky-800, .bg-sky-900, .bg-blue-500, .bg-blue-600, .bg-blue-700, .bg-blue-800, .bg-blue-900, .bg-indigo-500, .bg-indigo-600, .bg-indigo-700, .bg-indigo-800, .bg-indigo-900, .bg-violet-500, .bg-violet-600, .bg-violet-700, .bg-violet-800, .bg-violet-900, .bg-purple-500, .bg-purple-600, .bg-purple-700, .bg-purple-800, .bg-purple-900, .bg-pink-500, .bg-pink-600, .bg-pink-700, .bg-pink-800, .bg-pink-900, .bg-rose-500, .bg-rose-600, .bg-rose-700, .bg-rose-800, .bg-rose-900, .bg-brand-500, .bg-brand-600, .bg-brand-700, .bg-brand-800, .bg-brand-900, .bg-claude-500, .bg-claude-600, .bg-claude-700, .from-red-500, .from-red-600, .from-red-700, .from-orange-500, .from-orange-600, .from-orange-700, .from-amber-500, .from-amber-600, .from-amber-700, .from-yellow-500, .from-yellow-600, .from-yellow-700, .from-green-500, .from-green-600, .from-green-700, .from-emerald-500, .from-emerald-600, .from-emerald-700, .from-teal-500, .from-teal-600, .from-teal-700, .from-cyan-500, .from-cyan-600, .from-cyan-700, .from-sky-500, .from-sky-600, .from-sky-700, .from-blue-500, .from-blue-600, .from-blue-700, .from-indigo-500, .from-indigo-600, .from-indigo-700, .from-violet-500, .from-violet-600, .from-violet-700, .from-purple-500, .from-purple-600, .from-purple-700, .from-pink-500, .from-pink-600, .from-pink-700, .from-rose-500, .from-rose-600, .from-rose-700, .from-brand-500, .from-brand-600, .from-brand-700, .from-claude-500, .from-claude-600, .from-claude-700, .from-gray-600, .from-slate-600, .from-gray-700, .from-slate-700, .from-gray-800, .from-slate-800, .from-gray-900, .from-slate-900) { --sr-base: 255 255 255; }
/* White is not a palette variable (text-white must stay white), so surfaces that use it are mapped here.
   Inside an island --sr-base is white again, so a white card on a dark section stays white. */
html.dark .bg-white { background-color: rgb(var(--sr-base) / var(--tw-bg-opacity, 1)); }
html.dark .bg-white\/95 { background-color: rgb(var(--sr-base) / 0.95); }
html.dark .bg-white\/80 { background-color: rgb(var(--sr-base) / 0.8); }
html.dark .bg-white\/70 { background-color: rgb(var(--sr-base) / 0.7); }
html.dark .bg-white\/20 { background-color: rgb(var(--sr-base) / 0.2); }
html.dark .to-white { --tw-gradient-to: rgb(var(--sr-base)) var(--tw-gradient-to-position); }
html.dark .via-white { --tw-gradient-to: rgb(var(--sr-base) / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), rgb(var(--sr-base)) var(--tw-gradient-via-position), var(--tw-gradient-to); }
html.dark .from-white { --tw-gradient-from: rgb(var(--sr-base)) var(--tw-gradient-from-position); --tw-gradient-to: rgb(var(--sr-base) / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
/* @palette:end */

/* ------------------------------------------------------------- dark base */
html.dark { color-scheme: dark; background-color: rgb(var(--sr-base)); color: rgb(var(--c-gray-900)); }
html.dark body { color: rgb(var(--c-gray-900)); }
html.dark ::selection { background: rgb(129 140 248 / 0.35); color: #fff; }

/* Gradient headline text: the same hues, lifted so they read on a dark ground. */
html.dark .gradient-text { filter: brightness(1.55) saturate(1.05); }

/* Hover on recessed-grey buttons: in dark, gray-50 is darker than the surface, so lighten instead. */
html.dark .hover\:bg-gray-50:hover { background-color: rgb(var(--c-gray-100)); }

/* Grey-tinted soft shadows read as a light halo on a dark page: make them real shadows. */
html.dark :is(.shadow-gray-100\/50, .shadow-gray-200\/40, .shadow-gray-200\/50, .shadow-gray-200\/60, .shadow-slate-100\/50, .shadow-slate-200\/40),
html.dark :is(.hover\:shadow-gray-100\/50, .hover\:shadow-slate-100\/50):hover { --tw-shadow-color: rgb(0 0 0 / 0.45); }

/* Shadow-only cards: on dark the shadow disappears, so they get a hairline edge. Switch knobs stay white. */
html.dark .bg-white.shadow { outline: 1px solid rgb(var(--c-gray-200)); outline-offset: -1px; }
html.dark .sr-knob { background-color: #fff; }

/* Form fields without a background class would fall back to the browser's own dark grey. Zero specificity,
   so any bg-* class on the field still wins. */
:where(html.dark) :where(input:not([type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"], [type="submit"], [type="button"], [type="reset"]), select, textarea) {
  background-color: rgb(var(--c-gray-50));
}
:where(html.dark) :where(input, textarea)::placeholder { color: rgb(var(--c-gray-400)); }

/* --------------------------------------------------------- theme toggle */
.sr-theme-toggle {
  position: relative; display: inline-grid; place-items: center; flex: none;
  width: 36px; height: 36px; padding: 0; border-radius: 10px;
  border: 1px solid transparent; background: transparent; color: inherit; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 200ms ease, border-color 200ms ease, color 200ms ease, transform 160ms ease;
}
.sr-theme-toggle:hover { background-color: rgb(var(--c-gray-100)); }
.sr-theme-toggle:active { transform: scale(0.92); }
.sr-theme-toggle:focus-visible { outline: 2px solid rgb(var(--c-brand-500)); outline-offset: 2px; }
.sr-theme-toggle svg { width: 20px; height: 20px; overflow: visible; }
.sr-theme-toggle--on-dark:hover { background-color: rgb(255 255 255 / 0.08); }

/* Sun to moon: the rays fold in, the core swells, a shadow slides across it. Transforms only. */
.sr-tt-core, .sr-tt-cut, .sr-tt-rays, .sr-tt-star { transform-box: fill-box; transform-origin: center; }
.sr-tt-core { transition: transform 520ms cubic-bezier(0.34, 1.56, 0.64, 1); }
.sr-tt-cut { transition: transform 520ms cubic-bezier(0.34, 1.3, 0.64, 1); }
.sr-tt-rays { transition: transform 520ms cubic-bezier(0.34, 1.56, 0.64, 1), opacity 260ms ease; }
.sr-tt-star { opacity: 0; transform: scale(0); transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1) 160ms, opacity 200ms ease 160ms; }
html.dark .sr-tt-core { transform: scale(1.55); }
html.dark .sr-tt-cut { transform: translate(-7px, 3px); }
html.dark .sr-tt-rays { transform: rotate(-70deg) scale(0.4); opacity: 0; }
html.dark .sr-tt-star { opacity: 1; transform: scale(1); }
html.dark .sr-theme-toggle:hover { background-color: rgb(var(--c-gray-100)); }

/* The switch itself: a circular reveal from the toggle (View Transitions), or a short colour blend. */
::view-transition-old(root), ::view-transition-new(root) { animation: none; mix-blend-mode: normal; }
html.sr-theme-blend, html.sr-theme-blend *, html.sr-theme-blend *::before, html.sr-theme-blend *::after {
  transition: background-color 420ms ease, border-color 420ms ease, color 420ms ease, fill 420ms ease, stroke 420ms ease, box-shadow 420ms ease !important;
}

@media (prefers-reduced-motion: reduce) {
  .sr-tt-core, .sr-tt-cut, .sr-tt-rays, .sr-tt-star { transition: none; }
}

/* Dark polish from the full-resolution audit (light is unchanged by every rule below). */
html.dark .focus\:ring-offset-2:focus { --tw-ring-offset-color: rgb(var(--sr-base)); }
html.dark input::placeholder, html.dark textarea::placeholder { color: rgb(var(--c-gray-400)); }
html.dark input[type="checkbox"], html.dark input[type="radio"] { accent-color: rgb(var(--c-brand-600)); }
html.dark section.bg-gray-950 { box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.06); }
html.dark .bg-gray-950 code, html.dark pre.bg-gray-950 { box-shadow: 0 0 0 1px rgb(255 255 255 / 0.08); }
