:root {
  --color-black: #000;
  --color-white: #fff;

  --color-red-50: oklch(97.1% 0.013 17.38);
  --color-red-100: oklch(93.6% 0.032 17.717);
  --color-red-200: oklch(88.5% 0.062 18.334);
  --color-red-300: oklch(80.8% 0.114 19.571);
  --color-red-400: oklch(70.4% 0.191 22.216);
  --color-red-500: oklch(63.7% 0.237 25.331);
  --color-red-600: oklch(57.7% 0.245 27.325);
  --color-red-700: oklch(50.5% 0.213 27.518);
  --color-red-800: oklch(44.4% 0.177 26.899);
  --color-red-900: oklch(39.6% 0.141 25.723);
  --color-red-950: oklch(25.8% 0.092 26.042);

  --color-orange-50: oklch(98% 0.016 73.684);
  --color-orange-100: oklch(95.4% 0.038 75.164);
  --color-orange-200: oklch(90.1% 0.076 70.697);
  --color-orange-300: oklch(83.7% 0.128 66.29);
  --color-orange-400: oklch(75% 0.183 55.934);
  --color-orange-500: oklch(70.5% 0.213 47.604);
  --color-orange-600: oklch(64.6% 0.222 41.116);
  --color-orange-700: oklch(55.3% 0.195 38.402);
  --color-orange-800: oklch(47% 0.157 37.304);
  --color-orange-900: oklch(40.8% 0.123 38.172);
  --color-orange-950: oklch(26.6% 0.079 36.259);

  --color-amber-50: oklch(98.7% 0.022 95.277);
  --color-amber-100: oklch(96.2% 0.059 95.617);
  --color-amber-200: oklch(92.4% 0.12 95.746);
  --color-amber-300: oklch(87.9% 0.169 91.605);
  --color-amber-400: oklch(82.8% 0.189 84.429);
  --color-amber-500: oklch(76.9% 0.188 70.08);
  --color-amber-600: oklch(66.6% 0.179 58.318);
  --color-amber-700: oklch(55.5% 0.163 48.998);
  --color-amber-800: oklch(47.3% 0.137 46.201);
  --color-amber-900: oklch(41.4% 0.112 45.904);
  --color-amber-950: oklch(27.9% 0.077 45.635);

  --color-yellow-50: oklch(98.7% 0.026 102.212);
  --color-yellow-100: oklch(97.3% 0.071 103.193);
  --color-yellow-200: oklch(94.5% 0.129 101.54);
  --color-yellow-300: oklch(90.5% 0.182 98.111);
  --color-yellow-400: oklch(85.2% 0.199 91.936);
  --color-yellow-500: oklch(79.5% 0.184 86.047);
  --color-yellow-600: oklch(68.1% 0.162 75.834);
  --color-yellow-700: oklch(55.4% 0.135 66.442);
  --color-yellow-800: oklch(47.6% 0.114 61.907);
  --color-yellow-900: oklch(42.1% 0.095 57.708);
  --color-yellow-950: oklch(28.6% 0.066 53.813);

  --color-lime-50: oklch(98.6% 0.031 120.757);
  --color-lime-100: oklch(96.7% 0.067 122.328);
  --color-lime-200: oklch(93.8% 0.127 124.321);
  --color-lime-300: oklch(89.7% 0.196 126.665);
  --color-lime-400: oklch(84.1% 0.238 128.85);
  --color-lime-500: oklch(76.8% 0.233 130.85);
  --color-lime-600: oklch(64.8% 0.2 131.684);
  --color-lime-700: oklch(53.2% 0.157 131.589);
  --color-lime-800: oklch(45.3% 0.124 130.933);
  --color-lime-900: oklch(40.5% 0.101 131.063);
  --color-lime-950: oklch(27.4% 0.072 132.109);

  --color-green-50: oklch(98.2% 0.018 155.826);
  --color-green-100: oklch(96.2% 0.044 156.743);
  --color-green-200: oklch(92.5% 0.084 155.995);
  --color-green-300: oklch(87.1% 0.15 154.449);
  --color-green-400: oklch(79.2% 0.209 151.711);
  --color-green-500: oklch(72.3% 0.219 149.579);
  --color-green-600: oklch(62.7% 0.194 149.214);
  --color-green-700: oklch(52.7% 0.154 150.069);
  --color-green-800: oklch(44.8% 0.119 151.328);
  --color-green-900: oklch(39.3% 0.095 152.535);
  --color-green-950: oklch(26.6% 0.065 152.934);

  --color-emerald-50: oklch(97.9% 0.021 166.113);
  --color-emerald-100: oklch(95% 0.052 163.051);
  --color-emerald-200: oklch(90.5% 0.093 164.15);
  --color-emerald-300: oklch(84.5% 0.143 164.978);
  --color-emerald-400: oklch(76.5% 0.177 163.223);
  --color-emerald-500: oklch(69.6% 0.17 162.48);
  --color-emerald-600: oklch(59.6% 0.145 163.225);
  --color-emerald-700: oklch(50.8% 0.118 165.612);
  --color-emerald-800: oklch(43.2% 0.095 166.913);
  --color-emerald-900: oklch(37.8% 0.077 168.94);
  --color-emerald-950: oklch(26.2% 0.051 172.552);

  --color-teal-50: oklch(98.4% 0.014 180.72);
  --color-teal-100: oklch(95.3% 0.051 180.801);
  --color-teal-200: oklch(91% 0.096 180.426);
  --color-teal-300: oklch(85.5% 0.138 181.071);
  --color-teal-400: oklch(77.7% 0.152 181.912);
  --color-teal-500: oklch(70.4% 0.14 182.503);
  --color-teal-600: oklch(60% 0.118 184.704);
  --color-teal-700: oklch(51.1% 0.096 186.391);
  --color-teal-800: oklch(43.7% 0.078 188.216);
  --color-teal-900: oklch(38.6% 0.063 188.416);
  --color-teal-950: oklch(27.7% 0.046 192.524);

  --color-cyan-50: oklch(98.4% 0.019 200.873);
  --color-cyan-100: oklch(95.6% 0.045 203.388);
  --color-cyan-200: oklch(91.7% 0.08 205.041);
  --color-cyan-300: oklch(86.5% 0.127 207.078);
  --color-cyan-400: oklch(78.9% 0.154 211.53);
  --color-cyan-500: oklch(71.5% 0.143 215.221);
  --color-cyan-600: oklch(60.9% 0.126 221.723);
  --color-cyan-700: oklch(52% 0.105 223.128);
  --color-cyan-800: oklch(45% 0.085 224.283);
  --color-cyan-900: oklch(39.8% 0.07 227.392);
  --color-cyan-950: oklch(30.2% 0.056 229.695);

  --color-sky-50: oklch(97.7% 0.013 236.62);
  --color-sky-100: oklch(95.1% 0.026 236.824);
  --color-sky-200: oklch(90.1% 0.058 230.902);
  --color-sky-300: oklch(82.8% 0.111 230.318);
  --color-sky-400: oklch(74.6% 0.16 232.661);
  --color-sky-500: oklch(68.5% 0.169 237.323);
  --color-sky-600: oklch(58.8% 0.158 241.966);
  --color-sky-700: oklch(50% 0.134 242.749);
  --color-sky-800: oklch(44.3% 0.11 240.79);
  --color-sky-900: oklch(39.1% 0.09 240.876);
  --color-sky-950: oklch(29.3% 0.066 243.157);

  --color-blue-50: oklch(97% 0.014 254.604);
  --color-blue-100: oklch(93.2% 0.032 255.585);
  --color-blue-200: oklch(88.2% 0.059 254.128);
  --color-blue-300: oklch(80.9% 0.105 251.813);
  --color-blue-400: oklch(70.7% 0.165 254.624);
  --color-blue-500: oklch(62.3% 0.214 259.815);
  --color-blue-600: oklch(54.6% 0.245 262.881);
  --color-blue-700: oklch(48.8% 0.243 264.376);
  --color-blue-800: oklch(42.4% 0.199 265.638);
  --color-blue-900: oklch(37.9% 0.146 265.522);
  --color-blue-950: oklch(28.2% 0.091 267.935);

  --color-indigo-50: oklch(96.2% 0.018 272.314);
  --color-indigo-100: oklch(93% 0.034 272.788);
  --color-indigo-200: oklch(87% 0.065 274.039);
  --color-indigo-300: oklch(78.5% 0.115 274.713);
  --color-indigo-400: oklch(67.3% 0.182 276.935);
  --color-indigo-500: oklch(58.5% 0.233 277.117);
  --color-indigo-600: oklch(51.1% 0.262 276.966);
  --color-indigo-700: oklch(45.7% 0.24 277.023);
  --color-indigo-800: oklch(39.8% 0.195 277.366);
  --color-indigo-900: oklch(35.9% 0.144 278.697);
  --color-indigo-950: oklch(25.7% 0.09 281.288);

  --color-violet-50: oklch(96.9% 0.016 293.756);
  --color-violet-100: oklch(94.3% 0.029 294.588);
  --color-violet-200: oklch(89.4% 0.057 293.283);
  --color-violet-300: oklch(81.1% 0.111 293.571);
  --color-violet-400: oklch(70.2% 0.183 293.541);
  --color-violet-500: oklch(60.6% 0.25 292.717);
  --color-violet-600: oklch(54.1% 0.281 293.009);
  --color-violet-700: oklch(49.1% 0.27 292.581);
  --color-violet-800: oklch(43.2% 0.232 292.759);
  --color-violet-900: oklch(38% 0.189 293.745);
  --color-violet-950: oklch(28.3% 0.141 291.089);

  --color-purple-50: oklch(97.7% 0.014 308.299);
  --color-purple-100: oklch(94.6% 0.033 307.174);
  --color-purple-200: oklch(90.2% 0.063 306.703);
  --color-purple-300: oklch(82.7% 0.119 306.383);
  --color-purple-400: oklch(71.4% 0.203 305.504);
  --color-purple-500: oklch(62.7% 0.265 303.9);
  --color-purple-600: oklch(55.8% 0.288 302.321);
  --color-purple-700: oklch(49.6% 0.265 301.924);
  --color-purple-800: oklch(43.8% 0.218 303.724);
  --color-purple-900: oklch(38.1% 0.176 304.987);
  --color-purple-950: oklch(29.1% 0.149 302.717);

  --color-fuchsia-50: oklch(97.7% 0.017 320.058);
  --color-fuchsia-100: oklch(95.2% 0.037 318.852);
  --color-fuchsia-200: oklch(90.3% 0.076 319.62);
  --color-fuchsia-300: oklch(83.3% 0.145 321.434);
  --color-fuchsia-400: oklch(74% 0.238 322.16);
  --color-fuchsia-500: oklch(66.7% 0.295 322.15);
  --color-fuchsia-600: oklch(59.1% 0.293 322.896);
  --color-fuchsia-700: oklch(51.8% 0.253 323.949);
  --color-fuchsia-800: oklch(45.2% 0.211 324.591);
  --color-fuchsia-900: oklch(40.1% 0.17 325.612);
  --color-fuchsia-950: oklch(29.3% 0.136 325.661);

  --color-pink-50: oklch(97.1% 0.014 343.198);
  --color-pink-100: oklch(94.8% 0.028 342.258);
  --color-pink-200: oklch(89.9% 0.061 343.231);
  --color-pink-300: oklch(82.3% 0.12 346.018);
  --color-pink-400: oklch(71.8% 0.202 349.761);
  --color-pink-500: oklch(65.6% 0.241 354.308);
  --color-pink-600: oklch(59.2% 0.249 0.584);
  --color-pink-700: oklch(52.5% 0.223 3.958);
  --color-pink-800: oklch(45.9% 0.187 3.815);
  --color-pink-900: oklch(40.8% 0.153 2.432);
  --color-pink-950: oklch(28.4% 0.109 3.907);

  --color-rose-50: oklch(96.9% 0.015 12.422);
  --color-rose-100: oklch(94.1% 0.03 12.58);
  --color-rose-200: oklch(89.2% 0.058 10.001);
  --color-rose-300: oklch(81% 0.117 11.638);
  --color-rose-400: oklch(71.2% 0.194 13.428);
  --color-rose-500: oklch(64.5% 0.246 16.439);
  --color-rose-600: oklch(58.6% 0.253 17.585);
  --color-rose-700: oklch(51.4% 0.222 16.935);
  --color-rose-800: oklch(45.5% 0.188 13.697);
  --color-rose-900: oklch(41% 0.159 10.272);
  --color-rose-950: oklch(27.1% 0.105 12.094);

  --color-slate-50: oklch(98.4% 0.003 247.858);
  --color-slate-100: oklch(96.8% 0.007 247.896);
  --color-slate-200: oklch(92.9% 0.013 255.508);
  --color-slate-300: oklch(86.9% 0.022 252.894);
  --color-slate-400: oklch(70.4% 0.04 256.788);
  --color-slate-500: oklch(55.4% 0.046 257.417);
  --color-slate-600: oklch(44.6% 0.043 257.281);
  --color-slate-700: oklch(37.2% 0.044 257.287);
  --color-slate-800: oklch(27.9% 0.041 260.031);
  --color-slate-900: oklch(20.8% 0.042 265.755);
  --color-slate-950: oklch(12.9% 0.042 264.695);

  --color-gray-50: oklch(98.5% 0.002 247.839);
  --color-gray-100: oklch(96.7% 0.003 264.542);
  --color-gray-200: oklch(92.8% 0.006 264.531);
  --color-gray-300: oklch(87.2% 0.01 258.338);
  --color-gray-400: oklch(70.7% 0.022 261.325);
  --color-gray-500: oklch(55.1% 0.027 264.364);
  --color-gray-600: oklch(44.6% 0.03 256.802);
  --color-gray-700: oklch(37.3% 0.034 259.733);
  --color-gray-800: oklch(27.8% 0.033 256.848);
  --color-gray-900: oklch(21% 0.034 264.665);
  --color-gray-950: oklch(13% 0.028 261.692);

  --color-zinc-50: oklch(98.5% 0 0);
  --color-zinc-100: oklch(96.7% 0.001 286.375);
  --color-zinc-200: oklch(92% 0.004 286.32);
  --color-zinc-300: oklch(87.1% 0.006 286.286);
  --color-zinc-400: oklch(70.5% 0.015 286.067);
  --color-zinc-500: oklch(55.2% 0.016 285.938);
  --color-zinc-600: oklch(44.2% 0.017 285.786);
  --color-zinc-700: oklch(37% 0.013 285.805);
  --color-zinc-800: oklch(27.4% 0.006 286.033);
  --color-zinc-900: oklch(21% 0.006 285.885);
  --color-zinc-950: oklch(14.1% 0.005 285.823);

  --color-neutral-50: oklch(98.5% 0 0);
  --color-neutral-100: oklch(97% 0 0);
  --color-neutral-200: oklch(92.2% 0 0);
  --color-neutral-300: oklch(87% 0 0);
  --color-neutral-400: oklch(70.8% 0 0);
  --color-neutral-500: oklch(55.6% 0 0);
  --color-neutral-600: oklch(43.9% 0 0);
  --color-neutral-700: oklch(37.1% 0 0);
  --color-neutral-800: oklch(26.9% 0 0);
  --color-neutral-900: oklch(20.5% 0 0);
  --color-neutral-950: oklch(14.5% 0 0);

  --color-stone-50: oklch(98.5% 0.001 106.423);
  --color-stone-100: oklch(97% 0.001 106.424);
  --color-stone-200: oklch(92.3% 0.003 48.717);
  --color-stone-300: oklch(86.9% 0.005 56.366);
  --color-stone-400: oklch(70.9% 0.01 56.259);
  --color-stone-500: oklch(55.3% 0.013 58.071);
  --color-stone-600: oklch(44.4% 0.011 73.639);
  --color-stone-700: oklch(37.4% 0.01 67.558);
  --color-stone-800: oklch(26.8% 0.007 34.298);
  --color-stone-900: oklch(21.6% 0.006 56.043);
  --color-stone-950: oklch(14.7% 0.004 49.25);

  --color-mauve-50: oklch(98.5% 0 0);
  --color-mauve-100: oklch(96% 0.003 325.6);
  --color-mauve-200: oklch(92.2% 0.005 325.62);
  --color-mauve-300: oklch(86.5% 0.012 325.68);
  --color-mauve-400: oklch(71.1% 0.019 323.02);
  --color-mauve-500: oklch(54.2% 0.034 322.5);
  --color-mauve-600: oklch(43.5% 0.029 321.78);
  --color-mauve-700: oklch(36.4% 0.029 323.89);
  --color-mauve-800: oklch(26.3% 0.024 320.12);
  --color-mauve-900: oklch(21.2% 0.019 322.12);
  --color-mauve-950: oklch(14.5% 0.008 326);

  --color-olive-50: oklch(98.8% 0.003 106.5);
  --color-olive-100: oklch(96.6% 0.005 106.5);
  --color-olive-200: oklch(93% 0.007 106.5);
  --color-olive-300: oklch(88% 0.011 106.6);
  --color-olive-400: oklch(73.7% 0.021 106.9);
  --color-olive-500: oklch(58% 0.031 107.3);
  --color-olive-600: oklch(46.6% 0.025 107.3);
  --color-olive-700: oklch(39.4% 0.023 107.4);
  --color-olive-800: oklch(28.6% 0.016 107.4);
  --color-olive-900: oklch(22.8% 0.013 107.4);
  --color-olive-950: oklch(15.3% 0.006 107.1);

  --color-mist-50: oklch(98.7% 0.002 197.1);
  --color-mist-100: oklch(96.3% 0.002 197.1);
  --color-mist-200: oklch(92.5% 0.005 214.3);
  --color-mist-300: oklch(87.2% 0.007 219.6);
  --color-mist-400: oklch(72.3% 0.014 214.4);
  --color-mist-500: oklch(56% 0.021 213.5);
  --color-mist-600: oklch(45% 0.017 213.2);
  --color-mist-700: oklch(37.8% 0.015 216);
  --color-mist-800: oklch(27.5% 0.011 216.9);
  --color-mist-900: oklch(21.8% 0.008 223.9);
  --color-mist-950: oklch(14.8% 0.004 228.8);

  --color-taupe-50: oklch(98.6% 0.002 67.8);
  --color-taupe-100: oklch(96% 0.002 17.2);
  --color-taupe-200: oklch(92.2% 0.005 34.3);
  --color-taupe-300: oklch(86.8% 0.007 39.5);
  --color-taupe-400: oklch(71.4% 0.014 41.2);
  --color-taupe-500: oklch(54.7% 0.021 43.1);
  --color-taupe-600: oklch(43.8% 0.017 39.3);
  --color-taupe-700: oklch(36.7% 0.016 35.7);
  --color-taupe-800: oklch(26.8% 0.011 36.5);
  --color-taupe-900: oklch(21.4% 0.009 43.1);
  --color-taupe-950: oklch(14.7% 0.004 49.3);
}
@font-face {
  src: url("./fonts/Gestura-Text-Roman-VF.DTbNeaXV.woff2") format("woff2");
  font-family: "Gestura";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  src: url("./fonts/Gestura-Text-Italic-VF.AvG6mubI.woff2") format("woff2");
  font-family: "Gestura";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  src: url("./fonts/SchibstedGrotesk-VF.Cz6hYSrG.woff2") format("woff2");
  font-family: "Schibsted Grotesk";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  src: url("./fonts/SchibstedGrotesk-Italic-VF.BULvpKq9.woff2") format("woff2");
  font-family: "Schibsted Grotesk";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  src: url("./fonts/Monaspace-Argon-Var.5LfYUcTe.woff2") format("woff2");
  font-family: "Monaspace Argon";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  size-adjust: 95%;
}
@font-face {
  src: url("./fonts/Monaspace-Neon-Var.BLN028Fz.woff2") format("woff2");
  font-family: "Monaspace Neon";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  size-adjust: 85%;
}
@font-face {
  src: url("./fonts/Monaspace-Xenon-Var.DufifYI1.woff2") format("woff2");
  font-family: "Monaspace Xenon";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}
@font-face {
  src: url("./fonts/Monaspace-Radon-Var.BnJn7aN6.woff2") format("woff2");
  font-family: "Monaspace Radon";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}
:root {
  --font-sans: "Schibsted Grotesk", system-ui, sans-serif;
  --font-serif: "Gestura", ui-serif, serif;
  --font-mono: ui-monospace, monospace;
  --font-mono-prose: "Monaspace Argon", ui-monospace, monospace;
  --font-mono-sans: "Monaspace Neon", ui-monospace, monospace;
  --font-mono-typewriter: "Monaspace Xenon", ui-monospace, monospace;
  --font-mono-voice: "Monaspace Radon", ui-monospace, monospace;
}
:root {
  --color-text: var(--color-zinc-800);
  --color-muted: var(--color-zinc-500);
  --color-soft: var(--color-zinc-400);
  --color-bg: var(--color-white);
  --color-bg-alt: var(--color-zinc-50);
  --color-border: var(--color-zinc-300);
  --color-border-light: var(--color-zinc-200);
  --color-label-bg: color-mix(in oklch, var(--color-black) 2%, transparent);
  --color-callout-bg: var(--color-blue-50);
  --color-callout-border: var(--color-blue-500);
  --color-callout-text: var(--color-black);
  --color-kbd-bg: color-mix(in oklch, var(--color-black) 4%, transparent);
  --color-kbd-border: color-mix(in oklch, var(--color-black) 15%, transparent);
  --color-overlay: color-mix(in oklch, var(--color-black) 35%, transparent);
  --shadow-sm: 0 1px 2px color-mix(in oklch, var(--color-black) 10%, transparent);
  --shadow-md: 0 2px 8px color-mix(in oklch, var(--color-black) 10%, transparent);
  --shadow-lg: 0 4px 12px color-mix(in oklch, var(--color-black) 15%, transparent);
  --shadow-xl: 0 10px 30px color-mix(in oklch, var(--color-black) 20%, transparent);
  --color-kbd-text: var(--color-text);
  --color-code-text: var(--color-zinc-600);
  --color-mark-bg: var(--color-yellow-100);
  --color-mark-text: inherit;
  /* Typography – base scale (rem). Body scale via --font-size-root in em. */
  --font-size-root: 1.125em;
  --font-size-xs: 0.875rem;
  --font-size-sm: 0.925rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.25rem;
  --font-size-2xl: 2rem;
  --font-size-3xl: 2.25rem;

  /* Semantic font sizes (preferred in component CSS) */
  --font-size-body: var(--font-size-base);
  --font-size-title: var(--font-size-3xl);
  --font-size-heading: var(--font-size-xl);
  --font-size-subheading: var(--font-size-lg);
  --font-size-caption: var(--font-size-sm);
  --font-size-interface: var(--font-size-sm);
  --font-size-data: var(--font-size-sm);
  --font-size-body-small: var(--font-size-sm);
  --font-size-body-micro: var(--font-size-xs);

  /* Font weights */
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Space scale */
  --space-3xs: 0.125rem;
  --space-2xs: 0.25rem;
  --space-xs: 0.375rem;
  --space-s: 0.5rem;
  --space-m: 0.75rem;
  --space-l: 1rem;
  --space-xl: 1.5rem;
  --space-2xl: 2rem;
  --space-3xl: 3rem;
  --space-4xl: 4rem;
  --space-5xl: 6rem;

  /* Border radius */
  --radius-xs: 0.125rem;
  --radius-sm: 0.25rem;
  --radius-md: 0.375rem;
  --radius-lg: 0.5rem;
  --radius-xl: 1rem;

  /* Layout / sizing */
  --sidebar-width: 320px;
  --content-max-width: 54rem;
  --size-icon: 1.25rem;
  --size-icon-sm: 1rem;

  /* Monochrome SVG masks — color via background-color on the element */
  --chevron-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
  --arrow-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");

  /* Responsive breakpoint */
  --chalk-mobile: 768px;
}
@media (max-width: 768px) {
  :root {
    --font-size-root: 1.0625rem;
    --font-size-title: var(--font-size-2xl);
  }
}
/* Dark mode variables (theme is set via data-theme; no prefers-color-scheme to avoid flash) */
:root[data-theme="dark"] {
  --color-text: var(--color-zinc-200);
  --color-muted: var(--color-zinc-400);
  --color-soft: var(--color-zinc-500);
  --color-bg: var(--color-zinc-900);
  --color-bg-alt: var(--color-zinc-950);
  --color-border: var(--color-zinc-700);
  --color-border-light: var(--color-zinc-800);
  --color-label-bg: color-mix(in oklch, var(--color-white) 5%, transparent);
  --color-callout-bg: var(--color-blue-900);
  --color-callout-border: var(--color-blue-700);
  --color-callout-text: var(--color-white);
  --color-kbd-bg: color-mix(in oklch, var(--color-white) 10%, transparent);
  --color-kbd-border: color-mix(in oklch, var(--color-white) 20%, transparent);
  --color-kbd-text: var(--color-text);
  --color-code-text: var(--color-zinc-300);
  --color-mark-bg: var(--color-yellow-100);
  --color-mark-text: var(--color-zinc-800);
}
/* Sidebar theme overrides */
body[data-sidebar-theme="dark"] > nav {
  --color-bg-alt: var(--color-zinc-950);
  --color-text: var(--color-zinc-200);
  --color-muted: var(--color-zinc-400);
  --color-soft: var(--color-zinc-500);
  --color-border: var(--color-zinc-700);
  --color-border-light: var(--color-zinc-800);
  --color-label-bg: color-mix(in oklch, var(--color-white) 5%, transparent);
  --color-kbd-bg: color-mix(in oklch, var(--color-white) 10%, transparent);
  --color-kbd-border: color-mix(in oklch, var(--color-white) 20%, transparent);
}
body[data-sidebar-theme="light"] > nav {
  --color-bg-alt: var(--color-zinc-50);
  --color-text: var(--color-zinc-800);
  --color-muted: var(--color-zinc-500);
  --color-soft: var(--color-zinc-400);
  --color-border: var(--color-zinc-300);
  --color-border-light: var(--color-zinc-200);
  --color-label-bg: color-mix(in oklch, var(--color-black) 2%, transparent);
  --color-kbd-bg: color-mix(in oklch, var(--color-black) 4%, transparent);
  --color-kbd-border: color-mix(in oklch, var(--color-black) 15%, transparent);
}
/* Typography for rendered content (headings, body copy, links). */
a {
  color: inherit;
  text-decoration-color: color-mix(in srgb, currentColor 30%, transparent);
  text-underline-offset: 0.1em;
}
a:hover {
  text-decoration-color: color-mix(in srgb, currentColor 60%, transparent);
}
img {
  max-width: 100%;
  height: auto;
}
h1,
h2,
h3,
h4 {
  font-weight: var(--font-weight-bold);
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  line-height: 1.2;
}
h2,
h3,
h4 {
  font-family: var(--font-sans);
}
h2 {
  font-size: var(--font-size-heading);
}
h3 {
  font-size: var(--font-size-subheading);
}
p {
  margin-bottom: 1lh;
}
body {
  margin: 0;
  padding: 0;
  font-family: var(--font-serif);
  font-size: var(--font-size-root);
  line-height: 1.5;
  color: var(--color-text);
  background: var(--color-bg);
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  display: grid;
  grid-template-areas:
    "nav main"
    "nav main"
    "footer footer";
  grid-template-columns: var(--sidebar-width) 1fr;
  grid-template-rows: auto 1fr auto;
}
body > main {
  overflow-y: auto;
  grid-area: main;
  box-sizing: border-box;
  display: grid;
  grid-template-rows: subgrid;
}
body > footer {
  grid-area: footer;
}
.content-layout {
  display: grid;
  grid-template-columns: 1fr var(--sidebar-width);
  gap: 0;
  grid-row: 2;
  min-height: 0;
  overflow-y: auto;
}
.content-layout:not(:has(.inspector-sidebar)) {
  grid-template-columns: 1fr;
}
body.inspector-collapsed .content-layout {
  grid-template-columns: 1fr;
}
body.inspector-collapsed .inspector-sidebar {
  display: none;
}
.content-container {
  overflow-y: auto;
  min-height: 0;
}
@media (max-width: 768px) {
  /* Prevent next/previous links from being cut off at bottom (FAB + safe area) */
  .content-container {
    padding-bottom: calc(5rem + env(safe-area-inset-bottom, 0px));
  }

  .content-container article {
    padding-inline: var(--space-l);
  }
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
body > nav {
  box-sizing: border-box;
  font-family: var(--font-sans);
  background: var(--color-bg-alt);
  border-right: 1px solid var(--color-border-light);
  overflow-y: auto;
  grid-area: nav;
  font-size: var(--font-size-interface);
  display: grid;
  grid-template-rows: subgrid;
}
body > nav a {
  display: block;
}
/* Current page styling */
body > nav li[aria-current="page"] > a,
body > nav a[aria-current="page"] {
  color: var(--color-text);
  font-weight: var(--font-weight-semibold);
}
body.sidebar-collapsed {
  grid-template-columns: 0 1fr;
}
body.sidebar-collapsed > nav {
  display: none;
}
.nav-home {
  color: var(--color-text);
  border-bottom: 1px solid var(--color-border-light);
  background: var(--color-bg-alt);
  padding: var(--space-s) var(--space-xl);
  z-index: 10;
  display: flex;
  align-items: center;
  box-sizing: border-box;
}
.nav-home a {
  font-weight: var(--font-weight-semibold);
  text-decoration: none;
}
.nav-home a:hover {
  text-decoration: underline;
}
.nav-tree {
  overflow-y: auto;
  padding: var(--space-s) var(--space-l) var(--space-l);
  line-height: 1.4;
}
body > nav,
body > nav * {
  font-size: var(--font-size-interface);
}
body > nav summary {
  list-style: none;
  list-style-type: none;
  padding-left: 1.1em;
  position: relative;
  cursor: pointer;
}
body > nav summary::-webkit-details-marker {
  display: none;
}
body > nav summary::marker {
  display: none;
}
body > nav summary::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 0.85em;
  height: 0.85em;
  background-color: var(--color-muted);
  -webkit-mask-image: var(--chevron-mask);
  mask-image: var(--chevron-mask);
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
body > nav details[open] > summary::before {
  transform: translateY(-50%) rotate(90deg);
}
body > nav summary:hover {
  background-color: var(--color-bg-alt);
  border-radius: var(--radius-sm);
}
body > nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
body > nav .nav-footer {
  display: none;
}
body > nav ul ul {
  border-left: 1px solid var(--color-border);
  padding-left: 0.85em;
  margin-left: 0.425em;
  margin-top: 0.25em;
}
body > nav li {
  margin: var(--space-s) 0;
}
body > nav li a {
  color: var(--color-muted);
  font-weight: var(--font-weight-normal);
  line-height: 1.2;
  text-decoration: none;
}
body > nav li a:hover {
  color: var(--color-text);
}
body > nav summary a {
  display: inline;
}
body > nav li:not(summary) > a {
  display: block;
  text-wrap: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-left: 1.1em;
}
body > nav li a:hover {
  text-decoration: underline;
}
body > nav li small {
  color: var(--color-muted);
  display: block;
  font-size: var(--font-size-interface);
  font-weight: var(--font-weight-normal);
  text-decoration: none;
}
@media (max-width: 768px) {
  body.is-mobile.sidebar-collapsed {
    grid-template-columns: 0 1fr;
  }

  body.is-mobile.sidebar-collapsed > nav {
    display: none;
  }

  body.is-mobile:not(.sidebar-collapsed) {
    grid-template-columns: min(var(--sidebar-width), 85vw) 1fr;
  }

  body.is-mobile:not(.sidebar-collapsed) > nav {
    display: grid;
  }

  body.is-mobile:not(.sidebar-collapsed) {
    overflow: hidden;
  }

  body > nav {
    grid-template-rows: auto minmax(0, 1fr) auto;
    overflow: hidden;
  }

  body > nav .nav-tree {
    min-height: 0;
  }

  body > nav .nav-footer {
    display: flex !important;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-s);
    padding: var(--space-s) var(--space-l);
    border-top: 1px solid var(--color-border-light);
    background: var(--color-bg-alt);
    flex-shrink: 0;
  }

  .nav-footer-source.source-info-icons {
    display: flex;
    align-items: center;
    gap: var(--space-2xs);
    flex-shrink: 0;
  }

  .nav-footer-theme {
    margin-left: auto;
    flex-shrink: 0;
  }

  .nav-footer-source .source-file-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-xs);
    color: var(--color-muted);
    text-decoration: none;
    border-radius: var(--radius-md);
  }

  .nav-footer-source .source-file-icon:hover {
    color: var(--color-text);
  }

  .nav-footer-source .source-file-icon svg {
    width: var(--size-icon-sm);
    height: var(--size-icon-sm);
  }

  .nav-footer-theme .theme-option svg {
    width: var(--size-icon);
    height: var(--size-icon);
  }
}
menu {
  display: flex;
  gap: var(--space-s);
  list-style: none;
  margin: 0;
  padding: var(--space-2xs) var(--space-s);
  position: sticky;
  top: 0;
  align-items: center;
  z-index: 100;
  background-color: var(--color-bg);
  border-bottom: 1px solid var(--color-border-light);
  box-sizing: border-box;
}
menu li {
  margin: 0;
}
menu:not(:has(.breadcrumb-container)) {
  justify-content: space-between;
}
#sidebar-toggle {
  color: var(--color-muted);
  background: var(--color-bg);
  border: none;
  border-radius: var(--radius-lg);
  padding: var(--space-s);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
#sidebar-toggle:hover {
  color: var(--color-text);
}
#sidebar-toggle svg {
  width: var(--size-icon);
  height: var(--size-icon);
}
.toolbar-actions {
  display: flex;
  align-items: center;
  gap: var(--space-s);
}
/* Search toggle button */
#search-toggle {
  color: var(--color-muted);
  background: var(--color-bg);
  border: none;
  border-radius: var(--radius-lg);
  padding: var(--space-xs);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
#search-toggle:hover {
  color: var(--color-text);
  background: var(--color-bg);
}
#search-toggle svg {
  width: var(--size-icon);
  height: var(--size-icon);
}
.theme-selector {
  display: flex;
  background: var(--color-bg-alt);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  padding: var(--space-3xs);
  gap: var(--space-3xs);
}
.theme-option {
  color: var(--color-muted);
  background: transparent;
  border: none;
  border-radius: var(--radius-md);
  padding: var(--space-s);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.theme-option:hover {
  color: var(--color-text);
  background: var(--color-bg);
}
.theme-option.active {
  color: var(--color-text);
  background: var(--color-bg);
  box-shadow: var(--shadow-sm);
}
.theme-option svg {
  width: var(--size-icon);
  height: var(--size-icon);
}
@media (max-width: 768px) {
  menu {
    min-width: 0;
  }

  menu .toolbar-actions .theme-selector {
    display: none;
  }
}
.breadcrumb-container {
  flex: 1;
  font-family: var(--font-sans);
}
.breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2xs);
  font-size: var(--font-size-interface);
  color: var(--color-muted);
}
.breadcrumb-link {
  color: var(--color-muted);
  text-decoration: none;
}
.breadcrumb-link:hover {
  color: var(--color-text);
  text-decoration: underline;
}
.breadcrumb-current {
  color: var(--color-text);
  font-weight: var(--font-weight-medium);
}
.breadcrumb-separator {
  color: var(--color-soft);
  margin: 0 var(--space-2xs);
}
.breadcrumb-mobile {
  display: none;
}
.breadcrumb-dropdown {
  position: relative;
}
.breadcrumb-trigger {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--space-2xs);
  font-family: var(--font-sans);
  font-size: var(--font-size-interface);
  color: var(--color-text);
  background: var(--color-bg);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  padding: var(--space-xs) var(--space-s);
  cursor: pointer;
  max-width: 100%;
  text-align: left;
}
.breadcrumb-trigger:hover {
  border-color: var(--color-border);
}
.breadcrumb-trigger-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
}
.breadcrumb-chevron {
  width: var(--size-icon-sm);
  height: var(--size-icon-sm);
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.breadcrumb-trigger[aria-expanded="true"] .breadcrumb-chevron {
  transform: rotate(180deg);
}
.breadcrumb-dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: var(--space-2xs);
  background: var(--color-bg);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  z-index: 200;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.breadcrumb-dropdown-menu[hidden] {
  display: none;
}
.breadcrumb-dropdown-link {
  display: block;
  padding: var(--space-s) var(--space-m);
  font-family: var(--font-sans);
  font-size: var(--font-size-interface);
  color: var(--color-muted);
  text-decoration: none;
  border: none;
  text-align: left;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.breadcrumb-dropdown-link:hover {
  color: var(--color-text);
  background: var(--color-bg-alt);
}
.breadcrumb-dropdown-link[aria-current="page"] {
  color: var(--color-text);
  font-weight: var(--font-weight-medium);
}
@media (max-width: 768px) {
  /* Header: show mobile breadcrumb dropdown, hide desktop breadcrumbs and theme selector */
  menu .breadcrumb-desktop,
  menu li.breadcrumb-container.breadcrumb-desktop {
    display: none !important;
  }

  menu .breadcrumb-mobile,
  menu li.breadcrumb-mobile {
    display: flex !important;
    flex: 1;
    min-width: 0;
    max-width: 100%;
    align-items: center;
  }

  .breadcrumb-dropdown {
    min-width: 0;
    max-width: 100%;
    width: 100%;
  }

  .breadcrumb-trigger {
    min-width: 0;
    max-width: 100%;
    width: 100%;
    overflow: hidden;
  }

  .breadcrumb-trigger .breadcrumb-trigger-label {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .breadcrumb-trigger .breadcrumb-chevron {
    flex-shrink: 0;
  }

  .breadcrumb-dropdown-menu {
    left: 0;
    right: 0;
    min-width: 0;
    max-width: calc(100vw - 3rem);
    box-sizing: border-box;
  }
}
/* Search modal */
#search-modal[aria-hidden="true"] { display: none; }
#search-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  font-family: var(--font-sans);
}
#search-modal .search-overlay {
  position: absolute;
  inset: 0;
  background: var(--color-overlay);
}
#search-modal .search-dialog {
  position: relative;
  margin: 10vh auto 0 auto;
  max-width: 720px;
  background: var(--color-bg);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-xl);
  overflow: hidden;
}
#search-modal .search-header {
  display: flex;
  align-items: center;
  gap: var(--space-s);
  padding: var(--space-s);
}
#search-modal #search-input {
  flex: 1;
  padding: var(--space-s) var(--space-m);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-lg);
  background: var(--color-bg-alt);
  color: var(--color-text);
  font-size: inherit;
  font-family: inherit;
}
#search-modal #search-input:focus {
  outline: solid 2px var(--color-callout-border);
  border-color: var(--color-border);
}
/* Search close: use SVG icon sized with --size-icon, not font-size */
#search-modal #search-close {
  background: transparent;
  color: var(--color-muted);
  border: none;
  width: var(--size-icon);
  height: var(--size-icon);
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  cursor: pointer;
}
#search-modal #search-close svg {
  width: 100%;
  height: 100%;
}
#search-modal #search-results {
  border-top: 1px solid var(--color-border-light);
  max-height: 60vh;
  max-height: 60dvh;
  overflow: auto;
  list-style: none;
  margin: 0;
  padding: 0;
}
#search-modal #search-results:empty {
  display: none;
}
#search-modal .search-status {
  padding: var(--space-l) var(--space-xl);
  color: var(--color-muted);
  font-size: var(--font-size-caption);
  border-top: 1px solid var(--color-border-light);
}
#search-modal .search-status:empty {
  display: none;
}
#search-modal #search-results li {
  cursor: pointer;
  margin: 0;
  padding: var(--space-l) var(--space-xl);
  border-bottom: 1px solid var(--color-border-light);
}
#search-modal #search-results li:last-child {
  border-bottom: none;
}
#search-modal #search-results li::before {
  display: none;
}
#search-modal #search-results li[aria-selected="true"] {
  background: var(--color-callout-bg);
  color: var(--color-callout-text);
}
#search-modal .result-breadcrumbs {
  color: var(--color-muted);
  font-size: var(--font-size-body-micro);
  margin-bottom: var(--space-2xs);
}
#search-modal .result-title {
  font-weight: var(--font-weight-semibold);
}
#search-modal .result-preview {
  color: var(--color-muted);
  font-size: var(--font-size-caption);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-clamp: 2;
  overflow: hidden;
}
/* Search: right drawer on mobile */
@media (max-width: 768px) {
  body.search-drawer-open #search-modal .search-dialog {
    position: fixed;
    right: 0;
    top: 0;
    bottom: 0;
    width: min(var(--sidebar-width), 85vw);
    max-width: none;
    max-height: none;
    height: 100%;
    margin: 0;
    border-radius: 0;
    border-left: 1px solid var(--color-border-light);
  }
}
.source-info {
  display: flex;
  align-items: center;
  gap: 0;
  font-family: var(--font-sans);
  font-size: var(--font-size-interface);
  color: var(--color-muted);
}
.page-footer {
  background: var(--color-bg-alt);
  border-top: 1px solid var(--color-border-light);
  padding: var(--space-2xs) var(--space-s);
  z-index: 100;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-l);
}
.inspector-toggles {
  display: flex;
  align-items: center;
  gap: var(--space-s);
}
.embeds-toggle,
.issues-toggle {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  font-family: var(--font-sans);
  font-size: var(--font-size-interface);
  color: var(--color-muted);
}
.embeds-toggle a,
.issues-toggle a {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  color: inherit;
  text-decoration: none;
  padding: var(--space-xs) var(--space-m);
  border-radius: var(--radius-md);
}
.embeds-toggle a:hover,
.issues-toggle a:hover {
  color: var(--color-text);
}
.embeds-toggle svg,
.issues-toggle svg {
  width: var(--size-icon-sm);
  height: var(--size-icon-sm);
  flex-shrink: 0;
}
.git-branch,
.source-file {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
}
.git-branch svg,
.source-file svg {
  width: var(--size-icon-sm);
  height: var(--size-icon-sm);
  flex-shrink: 0;
}
.git-branch a,
.source-file a {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  color: inherit;
  text-decoration: none;
  padding: var(--space-xs) var(--space-m);
  border-radius: var(--radius-md);
}
.git-branch a:hover,
.source-file a:hover {
  color: var(--color-text);
}
.source-file a span {
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}
.inspector-sidebar {
  overflow-y: auto;
  min-height: 0;
  border-left: 1px solid var(--color-border-light);
  padding: var(--space-l);
  font-size: var(--font-size-interface);
  font-family: var(--font-sans);
}
.inspector-sidebar h3 {
  margin-top: 0;
  margin-bottom: var(--space-l);
  font-size: var(--font-size-interface);
  color: var(--color-text);
  font-weight: var(--font-weight-semibold);
}
.embeds-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.embeds-list li {
  margin: 0;
  padding: var(--space-s) 0;
  border-bottom: 1px solid var(--color-border-light);
}
.embeds-list li::before {
  display: none;
}
.embeds-list li:last-child {
  border-bottom: none;
  margin-bottom: 0;
}
.embeds-list dl {
  margin: 0;
}
.embeds-list dt {
  font-weight: var(--font-weight-semibold);
  color: var(--color-muted);
  margin-bottom: var(--space-2xs);
}
.embeds-list dd {
  margin: 0 0 var(--space-s) 0;
  color: var(--color-text);
  line-height: 1.4;
}
.embeds-list dd:last-child {
  margin-bottom: 0;
}
.issues-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.issues-list li {
  margin: 0;
  padding: var(--space-m) 0;
  border-bottom: 1px solid var(--color-border-light);
}
.issues-list li::before {
  display: none;
}
.issues-list li:last-child {
  border-bottom: none;
  margin-bottom: 0;
}
.issue {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}
.issue-field {
  font-weight: var(--font-weight-semibold);
  color: var(--color-muted);
  font-size: var(--font-size-interface);
}
.issue-message {
  color: var(--color-text);
  line-height: 1.4;
}
.issue-error .issue-field {
  color: var(--color-error, #dc2626);
}
.issue-error .issue-message {
  color: var(--color-error, #dc2626);
}
.issue-warning .issue-field {
  color: var(--color-warning, #d97706);
}
.issue-warning .issue-message {
  color: var(--color-warning, #d97706);
}
/* Footer: hide page footer bar and source; inspector toggles become FAB */
@media (max-width: 768px) {
  .page-footer {
    position: relative;
    height: 0;
    overflow: visible;
    border: none;
    background: transparent;
    padding: 0;
  }

  .page-footer .source-info {
    display: none;
  }

  .page-footer .inspector-toggles {
    position: fixed;
    bottom: var(--space-l);
    right: var(--space-l);
    z-index: 90;
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
  }

  .page-footer .inspector-toggles .embeds-toggle span,
  .page-footer .inspector-toggles .issues-toggle span {
    display: none;
  }

  .page-footer .inspector-toggles .embeds-toggle a,
  .page-footer .inspector-toggles .issues-toggle a {
    padding: var(--space-s);
  }
}
/* Next/Previous Navigation */
.next-previous {
  font-family: var(--font-sans);
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--space-l);
  margin: var(--space-2xl) 0 0;
  padding: var(--space-xl);
  border-top: 1px solid var(--color-border-light);
}
.nav-link {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  padding: var(--space-l);
  border-radius: var(--radius-lg);
  text-decoration: none;
  color: var(--color-text);
  background: var(--color-bg-alt);
  border: 1px solid var(--color-border-light);
  flex: 1;
  max-width: 50%;
}
.nav-link:hover {
  background: var(--color-bg);
  border-color: var(--color-border);
  text-decoration: none;
  box-shadow: var(--shadow-md);
}
.nav-link.disabled {
  opacity: 0;
  cursor: not-allowed;
  pointer-events: none;
}
.nav-link.previous {
  text-align: left;
}
.nav-link.next {
  text-align: right;
}
.nav-direction {
  font-size: var(--font-size-interface);
  color: var(--color-muted);
  font-weight: var(--font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 0.025em;
}
.nav-title {
  font-weight: var(--font-weight-semibold);
  line-height: 1.4;
  color: var(--color-text);
}
/* Responsive design for next/previous navigation */
@media (max-width: 768px) {
  .next-previous {
    flex-direction: column-reverse;
    gap: var(--space-m);
    margin-top: var(--space-2xl);
    padding: var(--space-xl) var(--space-l);
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  .next-previous .nav-link {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: var(--space-l);
    text-align: left !important;
    box-sizing: border-box;
  }

  .next-previous .nav-title {
    overflow-wrap: break-word;
    word-break: break-word;
  }

  .nav-link.next {
    text-align: left !important;
  }
}
p.subtitle {
  font-family: var(--font-sans);
  font-size: var(--font-size-body-large, 1.125rem);
  color: var(--color-muted);
  margin-top: -0.5lh;
  margin-bottom: 1.5lh;
  text-wrap: balance;
}
dl.meta {
  font-family: var(--font-sans);
  font-size: var(--font-size-caption);
  font-weight: var(--font-weight-medium);
  margin-bottom: 2lh;
  display: grid;
  grid-template-rows: auto auto;
  grid-auto-flow: column;
  grid-auto-columns: max-content;
  gap: 0 var(--space-xl);
}
dl.meta dt {
  color: var(--color-muted);
  grid-row: 1;
}
dl.meta dd {
  grid-row: 2;
  margin: 0;
}
.metadata-group {
  font-family: var(--font-sans);
  margin-top: 2lh;
  padding-top: 1lh;
  border-top: 1px solid var(--color-border);
}
.metadata-group h2 {
  font-size: var(--font-size-caption);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-muted);
  margin-bottom: 0.5lh;
}
.metadata-group ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}
.metadata-group li {
  font-size: var(--font-size-caption);
}
.metadata-group a {
  color: var(--color-link);
  text-decoration: none;
}
.metadata-group a:hover {
  text-decoration: underline;
}
kbd {
  background-color: var(--color-kbd-bg);
  border: 1px solid var(--color-kbd-border);
  border-radius: var(--radius-sm);
  box-shadow: inset 0 0 0 1px var(--color-bg);
  font-size: var(--font-size-interface);
  margin: 0 0.125em;
  padding: 0.25em 0.5em;
  font-family: var(--font-sans);
  font-weight: var(--font-weight-semibold);
  color: var(--color-kbd-text);
}
.label {
  font-family: var(--font-sans);
  font-weight: var(--font-weight-semibold);
}
main {
  ul,
  ol {
    list-style: none;
    margin: 1lh 0;
    padding-left: 0;
  }
  ul ul,
  ul ol,
  ol ul,
  ol ol {
    margin-block: 0.25lh;
  }

  ul li,
  ol li {
    position: relative;
    margin-bottom: 0.25lh;
    padding-left: 2em;
  }
  ul li li,
  ol li li {
    margin-bottom: 0.125lh;
  }

  li p {
    margin-block: 0;
  }
  li p + p {
    margin-top: 0.5lh;
  }

  ul li::before {
    content: "";
    position: absolute;
    left: 0.25em;
    top: 0.25em;
    width: 1em;
    height: 1em;
    background-color: var(--color-muted);
    -webkit-mask: var(--arrow-mask) no-repeat center / contain;
    mask: var(--arrow-mask) no-repeat center / contain;
  }

  ol {
    counter-reset: step;
    margin-bottom: 2.5em;
  }

  ol > li {
    counter-increment: step;
  }

  ol > li::before {
    content: counter(step);
    position: absolute;
    top: 0;
    left: 0;
    width: 1.5em;
    height: 1.5em;
    border: 2px solid var(--color-border);
    border-radius: 50%;
    background: var(--color-bg);
    color: var(--color-text);
    text-align: center;
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-data);
    font-family: var(--font-sans);
    line-height: 1.5em;
  }

  ol > li:has(> :is(h2, h3, h4):first-child)::before {
    top: 0.15em;
  }

  li:has(> [type="checkbox"]) {
    display: flex;
    align-items: center;
    gap: 0.5lh;
    padding-left: 0;
    margin-bottom: 0.5lh;

    &::before {
      content: none;
    }
  }

  :is(fieldset, ul, ol) input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    font-size: inherit;
    line-height: inherit;
    width: 1lh;
    height: 1lh;
    display: inline-grid;
    place-content: center;
    background-color: var(--color-bg);
    border: 2px solid var(--color-text);
    border-radius: var(--radius-sm);
    margin: 0;
    cursor: pointer;
    transition: all 0.2s ease;
  }

  :is(fieldset, ul, ol) input[type="checkbox"]:checked::before {
    content: "";
    width: 1lh;
    height: 1lh;
    background-image: url("data:image/svg+xml,%3Csvg fill='none' stroke='currentColor' stroke-width='1.875' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
  }

  :is(fieldset, ul, ol) input[type="checkbox"]:disabled {
    cursor: default;
  }

  flex-grow: 1;
}
article {
  padding: var(--space-5xl) var(--space-2xl) var(--space-2xl);
  max-inline-size: 75ch;
  max-inline-size: var(--content-max-width);
  margin-inline: auto;
}
article h1 {
  font-size: var(--font-size-title);
  margin-block-start: 0;
  text-wrap: balance;
}
hr {
  border: none;
  border-top: 1px solid var(--color-border);
  margin: 2em 0;
}
blockquote {
  margin: 2em 0;
  padding: 0 0 0 1em;
  border-left: 4px solid var(--color-border);
  font-family: var(--font-sans);
}
pre {
  background: var(--color-bg-alt);
  padding: var(--space-l);
  overflow-x: auto;
  border-radius: var(--radius-sm);
  font-family: var(--font-mono-sans);
}
pre:has(code) {
  border-left: 4px solid var(--color-border-light);
}
code {
  color: var(--color-code-text);
  font-family: var(--font-mono-prose);
  font-weight: var(--font-weight-normal);
  font-feature-settings: "calt" 1;
}
:is(h1, h2, h3, h4, h5, h6) code {
  font-weight: inherit;
}
pre code {
  color: inherit;
  font-family: var(--font-mono-sans);
  font-weight: inherit;
  background: transparent;
  padding: 0;
  border-radius: 0;
}
/* Code block copy button (injected by client.js when JS runs) */
.code-block-wrapper {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
}
.code-block-wrapper pre {
  grid-column: 1;
  grid-row: 1;
  padding: var(--space-2xl) var(--space-4xl) var(--space-2xl) var(--space-2xl);
  margin: 0;
  white-space: pre-wrap;
}
.code-block-wrapper .code-copy {
  grid-column: 1;
  grid-row: 1;
  justify-self: end;
  align-self: start;
  position: sticky;
  top: var(--space-s);
  z-index: 1;
  margin: var(--space-s);
  padding: var(--space-2xs) var(--space-s);
  font-family: var(--font-sans);
  font-size: var(--font-size-interface);
  color: var(--color-muted);
  background: var(--color-bg);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-sm);
  cursor: pointer;
}
.code-block-wrapper .code-copy:hover {
  color: var(--color-text);
  border-color: var(--color-border);
}
figure {
  font-family: var(--font-sans);
  margin: 1lh 0;
}
figure img,
figure video,
figure audio {
  display: block;
  max-inline-size: 100%;
  max-block-size: 60vh;
  max-block-size: 60dvh;
  object-fit: contain;
  background: var(--color-bg-alt);
}
figure video-player {
  max-inline-size: 100%;
  max-block-size: 60vh;
  max-block-size: 60dvh;
}
figure audio,
figure audio-player {
  inline-size: 100%;
}
.embed-video {
  background: var(--color-bg-alt);
  border-radius: var(--radius-xs);
  overflow: hidden;
  aspect-ratio: 16 / 9;
}
.embed-video iframe {
  border: 0;
  display: block;
  inline-size: 100%;
  block-size: 100%;
}
figure :first-child {
  margin-top: 0;
}
figure :last-child {
  margin-bottom: 0;
}
figure:not(:has(img, video, video-player, audio, audio-player, .embed-video, [data-chalk-island])) {
  background: var(--color-bg-alt);
  padding: 1em;
  border-radius: var(--radius-lg);
}
figcaption {
  font-family: var(--font-sans);
  font-size: var(--font-size-caption);
  color: var(--color-muted);
}
figure > * + figcaption {
  margin-top: 0.5em;
}
figcaption :is(p, ul, ol) {
  margin-block: 0.5lh;
}
figcaption :is(li, ul li, ol li) {
  margin-block: 0;
}
figcaption :first-child {
  margin-top: 0;
}
figcaption :last-child {
  margin-bottom: 0;
}
mark {
  color: var(--color-mark-text);
  background-color: var(--color-mark-bg);
  padding: 0.05em 0.2em;
  border-radius: var(--radius-xs);
}
aside {
  margin: 1em 0;
  padding: 1em;
  background: var(--color-bg-alt);
  border-radius: var(--radius-lg);
}
table {
  font-family: var(--font-sans);
  font-variant-numeric: tabular-nums;
  border-collapse: collapse;
  width: 100%;
  margin: 2em 0;
}
th,
td {
  border: 1px solid var(--color-border-light);
  padding: var(--space-s);
  text-align: left;
  vertical-align: top;
  font-size: var(--font-size-data);
}
th {
  background: var(--color-bg-alt);
}
th,
td {
  & > :first-child {
    margin-top: 0;
  }
  & > :last-child {
    margin-bottom: 0;
  }
  & > :is(p, ul, ol) {
    margin-block: 0.5lh;
  }
  & :is(ul li, ol li) {
    margin-block: 0;
  }
}
.table-scroll {
  overflow-x: auto;
}
table.index {
  border: none;
}
table.index th {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--color-border);
}
table.index td {
  border: none;
  border-bottom: 1px solid var(--color-border-light);
  padding: var(--space-s);
}
table.index tr:last-child td {
  border-bottom: none;
}
table.index :is(td, th):first-child {
  padding-left: 0;
}
table.index :is(td, th):last-child {
  padding-right: 0;
}
/* CSV Table Styling */
.csv-table-container {
  overflow-x: auto;
  margin: 1em 0;
  border: 1px solid var(--color-border-light);
}
.csv-table {
  font-family: var(--font-sans);
  border-collapse: collapse;
  width: 100%;
  min-width: 100%;
  font-size: var(--font-size-data);
}
.csv-table th {
  background: var(--color-bg-alt);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  border-bottom: 1px solid var(--color-border);
  padding: var(--space-m) var(--space-s);
  text-align: left;
  position: sticky;
  top: 0;
  z-index: 1;
}
.csv-table td {
  padding: var(--space-s);
  border-bottom: 1px solid var(--color-border-light);
  vertical-align: top;
  word-wrap: break-word;
  max-width: 200px;
}
.csv-table tbody tr:hover {
  background: var(--color-bg-alt);
}
.csv-table tbody tr:last-child td {
  border-bottom: none;
}
/* Responsive CSV table */
@media (max-width: 768px) {
  .csv-table {
    font-size: var(--font-size-body-micro);
  }

  .csv-table th,
  .csv-table td {
    padding: var(--space-xs) var(--space-2xs);
  }

  .csv-table td {
    max-width: 150px;
  }
}
aside.callout {
  --color-label-bg: color-mix(in oklch, var(--color-blue-500) 3%, transparent);
  --color-border-light: color-mix(in oklch, var(--color-blue-500) 10%, transparent);
  --color-kbd-bg: color-mix(in oklch, var(--color-blue-500) 5%, transparent);
  --color-kbd-border: color-mix(in oklch, var(--color-blue-500) 20%, transparent);
  background-color: var(--color-callout-bg);
  border-left: 4px solid var(--color-callout-border);
  color: var(--color-callout-text);
  padding: 1lh;
  margin: 1lh 0;
  border-radius: var(--radius-sm);
}
aside.callout :first-child {
  margin-top: 0;
}
aside.callout :last-child {
  margin-bottom: 0;
}
aside.callout h4 {
  margin-top: 0;
  font-size: var(--font-size-subheading);
}
/* Specific styles for kbd elements within callouts */
aside.callout kbd {
  background-color: color-mix(in oklch, var(--color-blue-500) 15%, transparent);
  border-color: color-mix(in oklch, var(--color-blue-500) 40%, transparent);
  box-shadow: inset 0 0 0 1px var(--color-callout-bg);
}
/* Specific styles for ol elements within callouts */
aside.callout ol > li::before {
  background-color: var(--color-callout-bg);
  border-color: color-mix(in oklch, var(--color-blue-500) 25%, transparent);
}
section.prompt {
  margin: 1lh 0;
  padding: 1lh;
  background: var(--color-bg-alt);
  border-radius: var(--radius-sm);
  border: none;
  border-left: 0.25em solid var(--color-border);
  font-family: var(--font-sans);
  position: relative;
}
section.prompt::before {
  content: "";
  position: absolute;
  top: 1.5lh;
  left: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.375em 0 0.375em 0.375em;
  border-color: transparent transparent transparent var(--color-border);
  transform: translateY(-50%);
}
section.prompt > :first-child {
  margin-top: 0;
  font-weight: var(--font-weight-medium);
}
section.prompt > :last-child {
  margin-bottom: 0;
}
fieldset.quiz {
  margin: 1lh 0;
  padding: 1lh;
  background: var(--color-bg-alt);
  border-radius: var(--radius-sm);
  border: none;
  border-left: 0.25em solid var(--color-border);
  font-family: var(--font-sans);
  position: relative;
}
fieldset.quiz::before {
  content: "";
  position: absolute;
  top: 1.5lh;
  left: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.375em 0 0.375em 0.375em;
  border-color: transparent transparent transparent var(--color-border);
  transform: translateY(-50%);
}
fieldset.quiz legend {
  font-weight: var(--font-weight-medium);
  padding: 0 0.5em;
  margin-bottom: 1em;
  float: left;
  margin-left: -0.5em;
}
fieldset.quiz > * {
  clear: left;
}
fieldset.quiz label {
  display: block;
  margin: 0.5lh 0;
  cursor: pointer;
  clear: left;
}
fieldset.quiz label:has(input[type="radio"]) {
  display: flex;
  align-items: center;
  gap: 0.25lh;
}
fieldset.quiz input[type="radio"] {
  margin-right: 0.5em;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  width: 1.5em;
  height: 1.5em;
  border-radius: 50%;
  border: 1px solid var(--color-border);
  position: relative;
}
fieldset.quiz input[type="radio"]:checked {
  border-color: var(--color-callout-border);
}
fieldset.quiz input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 0.75em;
  height: 0.75em;
  background-color: var(--color-callout-border);
  border-radius: 50%;
}
fieldset.quiz label:has(input[type="checkbox"]) {
  display: flex;
  align-items: center;
  gap: 0.25lh;
}
fieldset.quiz input[type="checkbox"] {
  margin-right: 0.5em;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  width: 1.5em;
  height: 1.5em;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  position: relative;
}
fieldset.quiz input[type="checkbox"]:checked {
  border-color: var(--color-text);
}
fieldset.quiz input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
aside.internal {
  position: relative;
  background-color: var(--color-bg-alt);
  padding: 1lh;
  border-radius: var(--radius-sm);
  border: 1px solid color-mix(in srgb, var(--color-border) 40%, var(--color-white));
  font-family: var(--font-sans);
  overflow: hidden;
}
aside.internal::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 0.2em;
  background-image: repeating-linear-gradient(
    135deg,
    var(--color-border),
    var(--color-border) 0.2em,
    transparent 0.2em,
    transparent 0.35em
  );
  background-position: 0 0;
  z-index: 0;
}
aside.internal > * {
  position: relative;
  z-index: 1;
}
aside.internal :first-child {
  margin-top: 0;
}
aside.internal :last-child {
  margin-bottom: 0;
}
/* Footnote styles */
sup:has(a) {
  vertical-align: text-bottom;
  font-size: var(--font-size-body-micro);
  font-family: var(--font-sans);
  font-weight: var(--font-weight-semibold);
}
sup a {
  text-decoration: none;
  color: var(--color-text);
  background-color: var(--color-kbd-bg);
  border: 1px solid var(--color-kbd-border);
  border-radius: 1em;
  padding: 0 var(--space-s);
  margin: 0 var(--space-2xs);
  display: inline-block;
  text-align: center;
  transition: background-color 0.2s ease;
}
sup a:hover {
  background-color: var(--color-border-light);
  text-decoration: none;
}
.footnotes {
  margin-top: 2lh;
  padding-top: 1lh;
  border-top: 1px solid var(--color-border-light);
  font-size: var(--font-size-caption);
  font-family: var(--font-sans);
  color: var(--color-muted);
}
.footnotes ol {
  counter-reset: footnote;
  list-style: none;
  padding-left: 0;
}
.footnotes li {
  counter-increment: footnote;
  margin-bottom: 0.5lh;
  padding-left: 2em;
  position: relative;
}
.footnotes li::before {
  content: counter(footnote);
  position: absolute;
  left: 0;
  top: 0;
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  font-size: var(--font-size-caption);
}
.footnotes p {
  margin: 0;
  line-height: 1.6;
}
.footnotes a {
  color: inherit;
  text-decoration-color: color-mix(in srgb, currentColor 30%, transparent);
}
.footnotes a:hover {
  text-decoration-color: color-mix(in srgb, currentColor 60%, transparent);
}
video-player,
audio-player {
  display: block;
}
video-player {
  max-inline-size: 100%;
  max-block-size: 60vh;
  max-block-size: 60dvh;
  aspect-ratio: 16 / 9;
  background: var(--color-bg-alt);
  border-radius: var(--radius-xs);
  overflow: hidden;
  --media-border-radius: var(--radius-xs);
}
/* video-skin is the fullscreen element, not video-player */
video-skin:fullscreen,
video-player:fullscreen {
  border-radius: 0;
  --media-border-radius: 0;
  --media-video-border-radius: 0;
  /* Lift embedded size caps (e.g. max-block-size: 60vh on video-player) */
  max-inline-size: none;
  max-block-size: none;
  aspect-ratio: auto;
  inline-size: 100%;
  block-size: 100%;
}
/* figure video keeps 60vh in prose.css; slotted media is not :fullscreen itself */
figure:has(video-skin:fullscreen) :is(video, hls-video),
video-skin:fullscreen :is(video, hls-video) {
  max-inline-size: none;
  max-block-size: none;
  max-height: none;
}
audio-player {
  inline-size: 100%;
  --media-border-radius: var(--radius-lg);
}
