/* node_modules/.bun/tailwindcss@4.3.1/node_modules/tailwindcss/index.css */
@layer theme, base, components, utilities;

@layer theme {
  @theme default {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --color-red-50: oklch(97.1% .013 17.38); --color-red-100: oklch(93.6% .032 17.717); --color-red-200: oklch(88.5% .062 18.334); --color-red-300: oklch(80.8% .114 19.571); --color-red-400: oklch(70.4% .191 22.216); --color-red-500: oklch(63.7% .237 25.331); --color-red-600: oklch(57.7% .245 27.325); --color-red-700: oklch(50.5% .213 27.518); --color-red-800: oklch(44.4% .177 26.899); --color-red-900: oklch(39.6% .141 25.723); --color-red-950: oklch(25.8% .092 26.042); --color-orange-50: oklch(98% .016 73.684); --color-orange-100: oklch(95.4% .038 75.164); --color-orange-200: oklch(90.1% .076 70.697); --color-orange-300: oklch(83.7% .128 66.29); --color-orange-400: oklch(75% .183 55.934); --color-orange-500: oklch(70.5% .213 47.604); --color-orange-600: oklch(64.6% .222 41.116); --color-orange-700: oklch(55.3% .195 38.402); --color-orange-800: oklch(47% .157 37.304); --color-orange-900: oklch(40.8% .123 38.172); --color-orange-950: oklch(26.6% .079 36.259); --color-amber-50: oklch(98.7% .022 95.277); --color-amber-100: oklch(96.2% .059 95.617); --color-amber-200: oklch(92.4% .12 95.746); --color-amber-300: oklch(87.9% .169 91.605); --color-amber-400: oklch(82.8% .189 84.429); --color-amber-500: oklch(76.9% .188 70.08); --color-amber-600: oklch(66.6% .179 58.318); --color-amber-700: oklch(55.5% .163 48.998); --color-amber-800: oklch(47.3% .137 46.201); --color-amber-900: oklch(41.4% .112 45.904); --color-amber-950: oklch(27.9% .077 45.635); --color-yellow-50: oklch(98.7% .026 102.212); --color-yellow-100: oklch(97.3% .071 103.193); --color-yellow-200: oklch(94.5% .129 101.54); --color-yellow-300: oklch(90.5% .182 98.111); --color-yellow-400: oklch(85.2% .199 91.936); --color-yellow-500: oklch(79.5% .184 86.047); --color-yellow-600: oklch(68.1% .162 75.834); --color-yellow-700: oklch(55.4% .135 66.442); --color-yellow-800: oklch(47.6% .114 61.907); --color-yellow-900: oklch(42.1% .095 57.708); --color-yellow-950: oklch(28.6% .066 53.813); --color-lime-50: oklch(98.6% .031 120.757); --color-lime-100: oklch(96.7% .067 122.328); --color-lime-200: oklch(93.8% .127 124.321); --color-lime-300: oklch(89.7% .196 126.665); --color-lime-400: oklch(84.1% .238 128.85); --color-lime-500: oklch(76.8% .233 130.85); --color-lime-600: oklch(64.8% .2 131.684); --color-lime-700: oklch(53.2% .157 131.589); --color-lime-800: oklch(45.3% .124 130.933); --color-lime-900: oklch(40.5% .101 131.063); --color-lime-950: oklch(27.4% .072 132.109); --color-green-50: oklch(98.2% .018 155.826); --color-green-100: oklch(96.2% .044 156.743); --color-green-200: oklch(92.5% .084 155.995); --color-green-300: oklch(87.1% .15 154.449); --color-green-400: oklch(79.2% .209 151.711); --color-green-500: oklch(72.3% .219 149.579); --color-green-600: oklch(62.7% .194 149.214); --color-green-700: oklch(52.7% .154 150.069); --color-green-800: oklch(44.8% .119 151.328); --color-green-900: oklch(39.3% .095 152.535); --color-green-950: oklch(26.6% .065 152.934); --color-emerald-50: oklch(97.9% .021 166.113); --color-emerald-100: oklch(95% .052 163.051); --color-emerald-200: oklch(90.5% .093 164.15); --color-emerald-300: oklch(84.5% .143 164.978); --color-emerald-400: oklch(76.5% .177 163.223); --color-emerald-500: oklch(69.6% .17 162.48); --color-emerald-600: oklch(59.6% .145 163.225); --color-emerald-700: oklch(50.8% .118 165.612); --color-emerald-800: oklch(43.2% .095 166.913); --color-emerald-900: oklch(37.8% .077 168.94); --color-emerald-950: oklch(26.2% .051 172.552); --color-teal-50: oklch(98.4% .014 180.72); --color-teal-100: oklch(95.3% .051 180.801); --color-teal-200: oklch(91% .096 180.426); --color-teal-300: oklch(85.5% .138 181.071); --color-teal-400: oklch(77.7% .152 181.912); --color-teal-500: oklch(70.4% .14 182.503); --color-teal-600: oklch(60% .118 184.704); --color-teal-700: oklch(51.1% .096 186.391); --color-teal-800: oklch(43.7% .078 188.216); --color-teal-900: oklch(38.6% .063 188.416); --color-teal-950: oklch(27.7% .046 192.524); --color-cyan-50: oklch(98.4% .019 200.873); --color-cyan-100: oklch(95.6% .045 203.388); --color-cyan-200: oklch(91.7% .08 205.041); --color-cyan-300: oklch(86.5% .127 207.078); --color-cyan-400: oklch(78.9% .154 211.53); --color-cyan-500: oklch(71.5% .143 215.221); --color-cyan-600: oklch(60.9% .126 221.723); --color-cyan-700: oklch(52% .105 223.128); --color-cyan-800: oklch(45% .085 224.283); --color-cyan-900: oklch(39.8% .07 227.392); --color-cyan-950: oklch(30.2% .056 229.695); --color-sky-50: oklch(97.7% .013 236.62); --color-sky-100: oklch(95.1% .026 236.824); --color-sky-200: oklch(90.1% .058 230.902); --color-sky-300: oklch(82.8% .111 230.318); --color-sky-400: oklch(74.6% .16 232.661); --color-sky-500: oklch(68.5% .169 237.323); --color-sky-600: oklch(58.8% .158 241.966); --color-sky-700: oklch(50% .134 242.749); --color-sky-800: oklch(44.3% .11 240.79); --color-sky-900: oklch(39.1% .09 240.876); --color-sky-950: oklch(29.3% .066 243.157); --color-blue-50: oklch(97% .014 254.604); --color-blue-100: oklch(93.2% .032 255.585); --color-blue-200: oklch(88.2% .059 254.128); --color-blue-300: oklch(80.9% .105 251.813); --color-blue-400: oklch(70.7% .165 254.624); --color-blue-500: oklch(62.3% .214 259.815); --color-blue-600: oklch(54.6% .245 262.881); --color-blue-700: oklch(48.8% .243 264.376); --color-blue-800: oklch(42.4% .199 265.638); --color-blue-900: oklch(37.9% .146 265.522); --color-blue-950: oklch(28.2% .091 267.935); --color-indigo-50: oklch(96.2% .018 272.314); --color-indigo-100: oklch(93% .034 272.788); --color-indigo-200: oklch(87% .065 274.039); --color-indigo-300: oklch(78.5% .115 274.713); --color-indigo-400: oklch(67.3% .182 276.935); --color-indigo-500: oklch(58.5% .233 277.117); --color-indigo-600: oklch(51.1% .262 276.966); --color-indigo-700: oklch(45.7% .24 277.023); --color-indigo-800: oklch(39.8% .195 277.366); --color-indigo-900: oklch(35.9% .144 278.697); --color-indigo-950: oklch(25.7% .09 281.288); --color-violet-50: oklch(96.9% .016 293.756); --color-violet-100: oklch(94.3% .029 294.588); --color-violet-200: oklch(89.4% .057 293.283); --color-violet-300: oklch(81.1% .111 293.571); --color-violet-400: oklch(70.2% .183 293.541); --color-violet-500: oklch(60.6% .25 292.717); --color-violet-600: oklch(54.1% .281 293.009); --color-violet-700: oklch(49.1% .27 292.581); --color-violet-800: oklch(43.2% .232 292.759); --color-violet-900: oklch(38% .189 293.745); --color-violet-950: oklch(28.3% .141 291.089); --color-purple-50: oklch(97.7% .014 308.299); --color-purple-100: oklch(94.6% .033 307.174); --color-purple-200: oklch(90.2% .063 306.703); --color-purple-300: oklch(82.7% .119 306.383); --color-purple-400: oklch(71.4% .203 305.504); --color-purple-500: oklch(62.7% .265 303.9); --color-purple-600: oklch(55.8% .288 302.321); --color-purple-700: oklch(49.6% .265 301.924); --color-purple-800: oklch(43.8% .218 303.724); --color-purple-900: oklch(38.1% .176 304.987); --color-purple-950: oklch(29.1% .149 302.717); --color-fuchsia-50: oklch(97.7% .017 320.058); --color-fuchsia-100: oklch(95.2% .037 318.852); --color-fuchsia-200: oklch(90.3% .076 319.62); --color-fuchsia-300: oklch(83.3% .145 321.434); --color-fuchsia-400: oklch(74% .238 322.16); --color-fuchsia-500: oklch(66.7% .295 322.15); --color-fuchsia-600: oklch(59.1% .293 322.896); --color-fuchsia-700: oklch(51.8% .253 323.949); --color-fuchsia-800: oklch(45.2% .211 324.591); --color-fuchsia-900: oklch(40.1% .17 325.612); --color-fuchsia-950: oklch(29.3% .136 325.661); --color-pink-50: oklch(97.1% .014 343.198); --color-pink-100: oklch(94.8% .028 342.258); --color-pink-200: oklch(89.9% .061 343.231); --color-pink-300: oklch(82.3% .12 346.018); --color-pink-400: oklch(71.8% .202 349.761); --color-pink-500: oklch(65.6% .241 354.308); --color-pink-600: oklch(59.2% .249 .584); --color-pink-700: oklch(52.5% .223 3.958); --color-pink-800: oklch(45.9% .187 3.815); --color-pink-900: oklch(40.8% .153 2.432); --color-pink-950: oklch(28.4% .109 3.907); --color-rose-50: oklch(96.9% .015 12.422); --color-rose-100: oklch(94.1% .03 12.58); --color-rose-200: oklch(89.2% .058 10.001); --color-rose-300: oklch(81% .117 11.638); --color-rose-400: oklch(71.2% .194 13.428); --color-rose-500: oklch(64.5% .246 16.439); --color-rose-600: oklch(58.6% .253 17.585); --color-rose-700: oklch(51.4% .222 16.935); --color-rose-800: oklch(45.5% .188 13.697); --color-rose-900: oklch(41% .159 10.272); --color-rose-950: oklch(27.1% .105 12.094); --color-slate-50: oklch(98.4% .003 247.858); --color-slate-100: oklch(96.8% .007 247.896); --color-slate-200: oklch(92.9% .013 255.508); --color-slate-300: oklch(86.9% .022 252.894); --color-slate-400: oklch(70.4% .04 256.788); --color-slate-500: oklch(55.4% .046 257.417); --color-slate-600: oklch(44.6% .043 257.281); --color-slate-700: oklch(37.2% .044 257.287); --color-slate-800: oklch(27.9% .041 260.031); --color-slate-900: oklch(20.8% .042 265.755); --color-slate-950: oklch(12.9% .042 264.695); --color-gray-50: oklch(98.5% .002 247.839); --color-gray-100: oklch(96.7% .003 264.542); --color-gray-200: oklch(92.8% .006 264.531); --color-gray-300: oklch(87.2% .01 258.338); --color-gray-400: oklch(70.7% .022 261.325); --color-gray-500: oklch(55.1% .027 264.364); --color-gray-600: oklch(44.6% .03 256.802); --color-gray-700: oklch(37.3% .034 259.733); --color-gray-800: oklch(27.8% .033 256.848); --color-gray-900: oklch(21% .034 264.665); --color-gray-950: oklch(13% .028 261.692); --color-zinc-50: oklch(98.5% 0 0); --color-zinc-100: oklch(96.7% .001 286.375); --color-zinc-200: oklch(92% .004 286.32); --color-zinc-300: oklch(87.1% .006 286.286); --color-zinc-400: oklch(70.5% .015 286.067); --color-zinc-500: oklch(55.2% .016 285.938); --color-zinc-600: oklch(44.2% .017 285.786); --color-zinc-700: oklch(37% .013 285.805); --color-zinc-800: oklch(27.4% .006 286.033); --color-zinc-900: oklch(21% .006 285.885); --color-zinc-950: oklch(14.1% .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% .001 106.423); --color-stone-100: oklch(97% .001 106.424); --color-stone-200: oklch(92.3% .003 48.717); --color-stone-300: oklch(86.9% .005 56.366); --color-stone-400: oklch(70.9% .01 56.259); --color-stone-500: oklch(55.3% .013 58.071); --color-stone-600: oklch(44.4% .011 73.639); --color-stone-700: oklch(37.4% .01 67.558); --color-stone-800: oklch(26.8% .007 34.298); --color-stone-900: oklch(21.6% .006 56.043); --color-stone-950: oklch(14.7% .004 49.25); --color-mauve-50: oklch(98.5% 0 0); --color-mauve-100: oklch(96% .003 325.6); --color-mauve-200: oklch(92.2% .005 325.62); --color-mauve-300: oklch(86.5% .012 325.68); --color-mauve-400: oklch(71.1% .019 323.02); --color-mauve-500: oklch(54.2% .034 322.5); --color-mauve-600: oklch(43.5% .029 321.78); --color-mauve-700: oklch(36.4% .029 323.89); --color-mauve-800: oklch(26.3% .024 320.12); --color-mauve-900: oklch(21.2% .019 322.12); --color-mauve-950: oklch(14.5% .008 326); --color-olive-50: oklch(98.8% .003 106.5); --color-olive-100: oklch(96.6% .005 106.5); --color-olive-200: oklch(93% .007 106.5); --color-olive-300: oklch(88% .011 106.6); --color-olive-400: oklch(73.7% .021 106.9); --color-olive-500: oklch(58% .031 107.3); --color-olive-600: oklch(46.6% .025 107.3); --color-olive-700: oklch(39.4% .023 107.4); --color-olive-800: oklch(28.6% .016 107.4); --color-olive-900: oklch(22.8% .013 107.4); --color-olive-950: oklch(15.3% .006 107.1); --color-mist-50: oklch(98.7% .002 197.1); --color-mist-100: oklch(96.3% .002 197.1); --color-mist-200: oklch(92.5% .005 214.3); --color-mist-300: oklch(87.2% .007 219.6); --color-mist-400: oklch(72.3% .014 214.4); --color-mist-500: oklch(56% .021 213.5); --color-mist-600: oklch(45% .017 213.2); --color-mist-700: oklch(37.8% .015 216); --color-mist-800: oklch(27.5% .011 216.9); --color-mist-900: oklch(21.8% .008 223.9); --color-mist-950: oklch(14.8% .004 228.8); --color-taupe-50: oklch(98.6% .002 67.8); --color-taupe-100: oklch(96% .002 17.2); --color-taupe-200: oklch(92.2% .005 34.3); --color-taupe-300: oklch(86.8% .007 39.5); --color-taupe-400: oklch(71.4% .014 41.2); --color-taupe-500: oklch(54.7% .021 43.1); --color-taupe-600: oklch(43.8% .017 39.3); --color-taupe-700: oklch(36.7% .016 35.7); --color-taupe-800: oklch(26.8% .011 36.5); --color-taupe-900: oklch(21.4% .009 43.1); --color-taupe-950: oklch(14.7% .004 49.3); --color-black: #000; --color-white: #fff; --spacing: .25rem; --breakpoint-sm: 40rem; --breakpoint-md: 48rem; --breakpoint-lg: 64rem; --breakpoint-xl: 80rem; --breakpoint-2xl: 96rem; --container-3xs: 16rem; --container-2xs: 18rem; --container-xs: 20rem; --container-sm: 24rem; --container-md: 28rem; --container-lg: 32rem; --container-xl: 36rem; --container-2xl: 42rem; --container-3xl: 48rem; --container-4xl: 56rem; --container-5xl: 64rem; --container-6xl: 72rem; --container-7xl: 80rem; --text-xs: .75rem; --text-xs--line-height: calc(1 / .75) ; --text-sm: .875rem; --text-sm--line-height: calc(1.25 / .875) ; --text-base: 1rem; --text-base--line-height: calc(1.5 / 1) ; --text-lg: 1.125rem; --text-lg--line-height: calc(1.75 / 1.125) ; --text-xl: 1.25rem; --text-xl--line-height: calc(1.75 / 1.25) ; --text-2xl: 1.5rem; --text-2xl--line-height: calc(2 / 1.5) ; --text-3xl: 1.875rem; --text-3xl--line-height: calc(2.25 / 1.875) ; --text-4xl: 2.25rem; --text-4xl--line-height: calc(2.5 / 2.25) ; --text-5xl: 3rem; --text-5xl--line-height: 1; --text-6xl: 3.75rem; --text-6xl--line-height: 1; --text-7xl: 4.5rem; --text-7xl--line-height: 1; --text-8xl: 6rem; --text-8xl--line-height: 1; --text-9xl: 8rem; --text-9xl--line-height: 1; --font-weight-thin: 100; --font-weight-extralight: 200; --font-weight-light: 300; --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --font-weight-extrabold: 800; --font-weight-black: 900; --tracking-tighter: -.05em; --tracking-tight: -.025em; --tracking-normal: 0em; --tracking-wide: .025em; --tracking-wider: .05em; --tracking-widest: .1em; --leading-tight: 1.25; --leading-snug: 1.375; --leading-normal: 1.5; --leading-relaxed: 1.625; --leading-loose: 2; --radius-xs: .125rem; --radius-sm: .25rem; --radius-md: .375rem; --radius-lg: .5rem; --radius-xl: .75rem; --radius-2xl: 1rem; --radius-3xl: 1.5rem; --radius-4xl: 2rem; --shadow-2xs: 0 1px #0000000d; --shadow-xs: 0 1px 2px 0 #0000000d; --shadow-sm: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a; --shadow-md: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a; --shadow-lg: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a; --shadow-xl: 0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a; --shadow-2xl: 0 25px 50px -12px #00000040; --inset-shadow-2xs: inset 0 1px #0000000d; --inset-shadow-xs: inset 0 1px 1px #0000000d; --inset-shadow-sm: inset 0 2px 4px #0000000d; --drop-shadow-xs: 0 1px 1px #0000000d; --drop-shadow-sm: 0 1px 2px #00000026; --drop-shadow-md: 0 3px 3px #0000001f; --drop-shadow-lg: 0 4px 4px #00000026; --drop-shadow-xl: 0 9px 7px #0000001a; --drop-shadow-2xl: 0 25px 25px #00000026; --text-shadow-2xs: 0px 1px 0px #00000026; --text-shadow-xs: 0px 1px 1px #0003; --text-shadow-sm: 0px 1px 0px #00000013, 0px 1px 1px #00000013, 0px 2px 2px #00000013; --text-shadow-md: 0px 1px 1px #0000001a, 0px 1px 2px #0000001a, 0px 2px 4px #0000001a; --text-shadow-lg: 0px 1px 2px #0000001a, 0px 3px 2px #0000001a, 0px 4px 8px #0000001a; --ease-in: cubic-bezier(.4, 0, 1, 1) ; --ease-out: cubic-bezier(0, 0, .2, 1) ; --ease-in-out: cubic-bezier(.4, 0, .2, 1) ; --animate-spin: spin 1s linear infinite; --animate-ping: ping 1s cubic-bezier(0, 0, .2, 1) infinite; --animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite; --animate-bounce: bounce 1s infinite; @keyframes spin { to { transform: rotate(360deg) ; } } @keyframes ping { 75%, 100% { transform: scale(2) ; opacity: 0; } } @keyframes pulse { 50% { opacity: .5; } } @keyframes bounce { 0%, 100% { transform: translateY(-25%) ; animation-timing-function: cubic-bezier(.8, 0, 1, 1) ; } 50% { transform: none; animation-timing-function: cubic-bezier(0, 0, .2, 1) ; } } --blur-xs: 4px; --blur-sm: 8px; --blur-md: 12px; --blur-lg: 16px; --blur-xl: 24px; --blur-2xl: 40px; --blur-3xl: 64px; --perspective-dramatic: 100px; --perspective-near: 300px; --perspective-normal: 500px; --perspective-midrange: 800px; --perspective-distant: 1200px; --aspect-video: 16 / 9; --default-transition-duration: .15s; --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1) ; --default-font-family: --theme(--font-sans, initial) ; --default-font-feature-settings: --theme(--font-sans--font-feature-settings, initial) ; --default-font-variation-settings: --theme(--font-sans--font-variation-settings, initial) ; --default-mono-font-family: --theme(--font-mono, initial) ; --default-mono-font-feature-settings: --theme(--font-mono--font-feature-settings, initial) ; --default-mono-font-variation-settings: --theme(--font-mono--font-variation-settings, initial) ;
  }

  @theme default inline reference {
    --blur: 8px; --shadow: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a; --shadow-inner: inset 0 2px 4px 0 #0000000d; --drop-shadow: 0 1px 2px #0000001a, 0 1px 1px #0000000f; --radius: .25rem; --max-width-prose: 65ch;
  }
}

@layer base {
  *, :after, :before {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::-webkit-file-upload-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  html, :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: --theme(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: --theme(--default-font-feature-settings, normal);
    font-variation-settings: --theme(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }

  hr {
    color: inherit;
    border-top-width: 1px;
    height: 0;
  }

  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }

  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }

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

  b, strong {
    font-weight: bolder;
  }

  code, kbd, samp, pre {
    font-family: --theme(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: --theme(--default-mono-font-feature-settings, normal);
    font-variation-settings: --theme(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }

  small {
    font-size: 80%;
  }

  sub, sup {
    position: relative;
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
  }

  sub {
    bottom: -.25em;
  }

  sup {
    top: -.5em;
  }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }

  :-moz-focusring {
    outline: auto;
  }

  progress {
    vertical-align: baseline;
  }

  summary {
    display: list-item;
  }

  ol, ul, menu {
    list-style: none;
  }

  img, svg, video, canvas, audio, iframe, embed, object {
    display: block;
    vertical-align: middle;
  }

  img, video {
    max-width: 100%;
    height: auto;
  }

  button, input, select, optgroup, textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  ::-webkit-file-upload-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  :where(select:-webkit-any([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:-moz-any([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:-webkit-any([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  :where(select:-moz-any([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  ::-webkit-file-upload-button {
    margin-inline-end: 4px;
  }

  ::file-selector-button {
    margin-inline-end: 4px;
  }

  ::placeholder {
    opacity: 1;
  }

  @supports ( not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: color-mix(in oklab, currentcolor 50%, transparent);
    }
  }

  textarea {
    resize: vertical;
  }

  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  ::-webkit-date-and-time-value {
    text-align: inherit;
    min-height: 1lh;
  }

  ::-webkit-datetime-edit {
    display: inline-flex;
  }

  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }

  ::-webkit-datetime-edit {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-year-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-month-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-day-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-hour-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-minute-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-second-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-millisecond-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-meridiem-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }

  :-moz-ui-invalid {
    box-shadow: none;
  }

  button {
    appearance: button;
  }

  input:where([type="button"], [type="reset"], [type="submit"]) {
    appearance: button;
  }

  ::-webkit-file-upload-button {
    appearance: button;
  }

  ::file-selector-button {
    appearance: button;
  }

  ::-webkit-inner-spin-button {
    height: auto;
  }

  ::-webkit-outer-spin-button {
    height: auto;
  }

  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}

@layer utilities {
  @tailwind utilities;
}

/* node_modules/.bun/mapbox-gl@3.25.0/node_modules/mapbox-gl/dist/mapbox-gl.css */
.mapboxgl-map {
  overflow: hidden;
  position: relative;
  -webkit-tap-highlight-color: #0000;
  font: 12px / 20px Helvetica Neue, Arial, Helvetica, sans-serif;
}

.mapboxgl-canvas {
  position: absolute;
  top: 0;
  left: 0;
}

.mapboxgl-map:-webkit-full-screen {
  width: 100%;
  height: 100%;
}

.mapboxgl-canary {
  background-color: salmon;
}

.mapboxgl-canvas-container.mapboxgl-interactive, .mapboxgl-ctrl-group button.mapboxgl-ctrl-compass {
  cursor: grab;
  -webkit-user-select: none;
  user-select: none;
}

.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer {
  cursor: pointer;
}

.mapboxgl-canvas-container.mapboxgl-interactive:active, .mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active {
  cursor: grabbing;
}

.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate, .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas {
  touch-action: pan-x pan-y;
}

.mapboxgl-canvas-container.mapboxgl-touch-drag-pan, .mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas {
  touch-action: pinch-zoom;
}

.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan, .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas {
  touch-action: none;
}

.mapboxgl-ctrl-bottom, .mapboxgl-ctrl-bottom-left, .mapboxgl-ctrl-bottom-right, .mapboxgl-ctrl-left, .mapboxgl-ctrl-right, .mapboxgl-ctrl-top, .mapboxgl-ctrl-top-left, .mapboxgl-ctrl-top-right {
  position: absolute;
  pointer-events: none;
  z-index: 2;
}

.mapboxgl-ctrl-top-left {
  top: 0;
  left: 0;
}

.mapboxgl-ctrl-top {
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

.mapboxgl-ctrl-top-right {
  top: 0;
  right: 0;
}

.mapboxgl-ctrl-right {
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

.mapboxgl-ctrl-bottom-right {
  bottom: 0;
  right: 0;
}

.mapboxgl-ctrl-bottom {
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

.mapboxgl-ctrl-bottom-left {
  bottom: 0;
  left: 0;
}

.mapboxgl-ctrl-left {
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.mapboxgl-ctrl {
  clear: both;
  pointer-events: auto;
  transform: translate(0);
}

.mapboxgl-ctrl-top-left .mapboxgl-ctrl {
  float: left;
  margin: 10px 0 0 10px;
}

.mapboxgl-ctrl-top .mapboxgl-ctrl {
  float: left;
  margin: 10px 0;
}

.mapboxgl-ctrl-top-right .mapboxgl-ctrl {
  float: right;
  margin: 10px 10px 0 0;
}

.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl, .mapboxgl-ctrl-right .mapboxgl-ctrl {
  float: right;
  margin: 0 10px 10px 0;
}

.mapboxgl-ctrl-bottom .mapboxgl-ctrl {
  float: left;
  margin: 10px 0;
}

.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl, .mapboxgl-ctrl-left .mapboxgl-ctrl {
  float: left;
  margin: 0 0 10px 10px;
}

.mapboxgl-ctrl-group {
  background: #fff;
  border-radius: 4px;
}

.mapboxgl-ctrl-group:not(:empty) {
  box-shadow: 0 0 0 2px #0000001a;
}

@media (-ms-high-contrast: active) {
  .mapboxgl-ctrl-group:not(:empty) {
    box-shadow: 0 0 0 2px buttontext;
  }
}

.mapboxgl-ctrl-group button {
  display: block;
  outline: none;
  box-sizing: border-box;
  background-color: initial;
  cursor: pointer;
  overflow: hidden;
  border: 0;
  width: 32px;
  height: 32px;
  padding: 0;
}

.mapboxgl-ctrl-group button + button {
  border-top: 1px solid #ddd;
}

.mapboxgl-ctrl button .mapboxgl-ctrl-icon {
  display: block;
  background-position: 50%;
  background-repeat: no-repeat;
  width: 100%;
  height: 100%;
}

@media (-ms-high-contrast: active) {
  .mapboxgl-ctrl-icon {
    background-color: initial;
  }

  .mapboxgl-ctrl-group button + button {
    border-top: 1px solid buttontext;
  }
}

.mapboxgl-ctrl-attrib-button:focus, .mapboxgl-ctrl-group button:focus {
  box-shadow: 0 0 2px 2px #0096ff;
}

.mapboxgl-ctrl button:disabled {
  cursor: not-allowed;
}

.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon {
  opacity: .25;
}

.mapboxgl-ctrl-group button:first-child {
  border-radius: 4px 4px 0 0;
}

.mapboxgl-ctrl-group button:last-child {
  border-radius: 0 0 4px 4px;
}

.mapboxgl-ctrl-group button:only-child {
  border-radius: inherit;
}

.mapboxgl-ctrl button:not(:disabled):hover {
  background-color: #eee;
}

.mapboxgl-ctrl-group button:focus:focus-visible {
  box-shadow: 0 0 2px 2px #0096ff;
}

.mapboxgl-ctrl-group button:focus:not(:focus-visible) {
  box-shadow: none;
}

.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E");
}

.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E");
}

@media (-ms-high-contrast: active) {
  .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E");
  }

  .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E");
  }
}

@media (-ms-high-contrast: black-on-white) {
  .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E");
  }

  .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E");
  }
}

.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E");
}

.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E");
}

@media (-ms-high-contrast: active) {
  .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E");
  }

  .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E");
  }
}

@media (-ms-high-contrast: black-on-white) {
  .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E");
  }

  .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E");
  }
}

.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E");
}

@media (-ms-high-contrast: active) {
  .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E");
  }
}

@media (-ms-high-contrast: black-on-white) {
  .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E");
  }
}

.mapboxgl-ctrl button.mapboxgl-ctrl-arrow-up .mapboxgl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%23333' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.29289 11.7071C4.68342 12.0976 5.31658 12.0976 5.70711 11.7071L9 8.41421L12.2929 11.7071C12.6834 12.0976 13.3166 12.0976 13.7071 11.7071C14.0976 11.3166 14.0976 10.6834 13.7071 10.2929L9.70711 6.29289C9.31658 5.90237 8.68342 5.90237 8.29289 6.29289L4.29289 10.2929C3.90237 10.6834 3.90237 11.3166 4.29289 11.7071Z' fill='%23333333'/%3E%3C/svg%3E");
  background-size: 18px 18px;
}

.mapboxgl-ctrl button.mapboxgl-ctrl-arrow-down .mapboxgl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%23333' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.29289 6.29289C4.68342 5.90237 5.31658 5.90237 5.70711 6.29289L9 9.58579L12.2929 6.29289C12.6834 5.90237 13.3166 5.90237 13.7071 6.29289C14.0976 6.68342 14.0976 7.31658 13.7071 7.70711L9.70711 11.7071C9.31658 12.0976 8.68342 12.0976 8.29289 11.7071L4.29289 7.70711C3.90237 7.31658 3.90237 6.68342 4.29289 6.29289Z' fill='%23333333'/%3E%3C/svg%3E");
  background-size: 18px 18px;
}

.mapboxgl-ctrl button.mapboxgl-ctrl-indoor-toggle .mapboxgl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%23333' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M4.0017 3.0017L4.0017 15.0017L10.0017 15.0017V12.0017H12.0017V15.0017H14.0017L14.0017 3.0017C14.0097 2.86829 13.9894 2.73469 13.9419 2.60973C13.8945 2.48477 13.8211 2.37129 13.7266 2.27678C13.6321 2.18228 13.5186 2.10889 13.3937 2.06147C13.2687 2.01405 13.1351 1.99368 13.0017 2.0017L5.0017 2.0017C4.86829 1.99368 4.73469 2.01405 4.60973 2.06147C4.48477 2.10889 4.37129 2.18228 4.27678 2.27678C4.18228 2.37129 4.10889 2.48477 4.06147 2.60973C4.01405 2.73469 3.99368 2.86829 4.0017 3.0017ZM8.0017 14.0017H6.0017V12.0017H8.0017V14.0017ZM8.0017 10.0017H6.0017L6.0017 8.0017H8.0017V10.0017ZM8.0017 6.0017L6.0017 6.0017V4.0017H8.0017V6.0017ZM12.0017 10.0017H10.0017V8.0017H12.0017V10.0017ZM12.0017 6.0017H10.0017V4.0017L12.0017 4.0017V6.0017Z' fill='%23333333'/%3E%3C/svg%3E");
  background-size: 18px 18px;
}

@media (-ms-high-contrast: active) {
  .mapboxgl-ctrl button.mapboxgl-ctrl-indoor-toggle .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%23fff' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M4.0017 3.0017L4.0017 15.0017L10.0017 15.0017V12.0017H12.0017V15.0017H14.0017L14.0017 3.0017C14.0097 2.86829 13.9894 2.73469 13.9419 2.60973C13.8945 2.48477 13.8211 2.37129 13.7266 2.27678C13.6321 2.18228 13.5186 2.10889 13.3937 2.06147C13.2687 2.01405 13.1351 1.99368 13.0017 2.0017L5.0017 2.0017C4.86829 1.99368 4.73469 2.01405 4.60973 2.06147C4.48477 2.10889 4.37129 2.18228 4.27678 2.27678C4.18228 2.37129 4.10889 2.48477 4.06147 2.60973C4.01405 2.73469 3.99368 2.86829 4.0017 3.0017ZM8.0017 14.0017H6.0017V12.0017H8.0017V14.0017ZM8.0017 10.0017H6.0017L6.0017 8.0017H8.0017V10.0017ZM8.0017 6.0017L6.0017 6.0017V4.0017H8.0017V6.0017ZM12.0017 10.0017H10.0017V8.0017H12.0017V10.0017ZM12.0017 6.0017H10.0017V4.0017L12.0017 4.0017V6.0017Z' fill='%23333333'/%3E%3C/svg%3E");
  }
}

@media (-ms-high-contrast: black-on-white) {
  .mapboxgl-ctrl button.mapboxgl-ctrl-indoor-toggle .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%23000' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M4.0017 3.0017L4.0017 15.0017L10.0017 15.0017V12.0017H12.0017V15.0017H14.0017L14.0017 3.0017C14.0097 2.86829 13.9894 2.73469 13.9419 2.60973C13.8945 2.48477 13.8211 2.37129 13.7266 2.27678C13.6321 2.18228 13.5186 2.10889 13.3937 2.06147C13.2687 2.01405 13.1351 1.99368 13.0017 2.0017L5.0017 2.0017C4.86829 1.99368 4.73469 2.01405 4.60973 2.06147C4.48477 2.10889 4.37129 2.18228 4.27678 2.27678C4.18228 2.37129 4.10889 2.48477 4.06147 2.60973C4.01405 2.73469 3.99368 2.86829 4.0017 3.0017ZM8.0017 14.0017H6.0017V12.0017H8.0017V14.0017ZM8.0017 10.0017H6.0017L6.0017 8.0017H8.0017V10.0017ZM8.0017 6.0017L6.0017 6.0017V4.0017H8.0017V6.0017ZM12.0017 10.0017H10.0017V8.0017H12.0017V10.0017ZM12.0017 6.0017H10.0017V4.0017L12.0017 4.0017V6.0017Z' fill='%23333333'/%3E%3C/svg%3E");
  }
}

.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E");
}

.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E");
}

.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E");
}

.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E");
}

.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E");
}

.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E");
}

.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon {
  animation: mapboxgl-spin 2s linear infinite;
}

@media (-ms-high-contrast: active) {
  .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E");
  }

  .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E");
  }

  .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E");
  }

  .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E");
  }

  .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E");
  }

  .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E");
  }
}

@media (-ms-high-contrast: black-on-white) {
  .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E");
  }

  .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E");
  }
}

@keyframes mapboxgl-spin {
  0% {
    transform: rotate(0);
  }

  to {
    transform: rotate(1turn);
  }
}

a.mapboxgl-ctrl-logo {
  display: block;
  cursor: pointer;
  overflow: hidden;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  width: 88px;
  height: 23px;
  margin: 0 0 -4px -4px;
}

a.mapboxgl-ctrl-logo.mapboxgl-compact {
  width: 23px;
}

@media (-ms-high-contrast: active) {
  a.mapboxgl-ctrl-logo {
    background-color: initial;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E");
  }
}

@media (-ms-high-contrast: black-on-white) {
  a.mapboxgl-ctrl-logo {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E");
  }
}

.mapboxgl-ctrl.mapboxgl-ctrl-attrib {
  background-color: #ffffff80;
  margin: 0;
  padding: 0 5px;
}

@media screen {
  .mapboxgl-ctrl-attrib.mapboxgl-compact {
    position: relative;
    box-sizing: initial;
    background-color: #fff;
    border-radius: 12px;
    min-height: 20px;
    margin: 10px;
    padding: 2px 24px 2px 0;
  }

  .mapboxgl-ctrl-attrib.mapboxgl-compact-show {
    visibility: visible;
    padding: 2px 28px 2px 8px;
  }

  :-webkit-any(.mapboxgl-ctrl-bottom-left, .mapboxgl-ctrl-left, .mapboxgl-ctrl-top-left) > .mapboxgl-ctrl-attrib.mapboxgl-compact-show {
    border-radius: 12px;
    padding: 2px 8px 2px 28px;
  }

  :-moz-any(.mapboxgl-ctrl-bottom-left, .mapboxgl-ctrl-left, .mapboxgl-ctrl-top-left) > .mapboxgl-ctrl-attrib.mapboxgl-compact-show {
    border-radius: 12px;
    padding: 2px 8px 2px 28px;
  }

  :is(.mapboxgl-ctrl-bottom-left, .mapboxgl-ctrl-left, .mapboxgl-ctrl-top-left) > .mapboxgl-ctrl-attrib.mapboxgl-compact-show {
    border-radius: 12px;
    padding: 2px 8px 2px 28px;
  }

  .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner {
    display: none;
  }

  .mapboxgl-ctrl-attrib-button {
    display: none;
    cursor: pointer;
    position: absolute;
    box-sizing: border-box;
    outline: none;
    background-color: #ffffff80;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");
    border: 0;
    border-radius: 12px;
    width: 24px;
    height: 24px;
    top: 0;
    right: 0;
  }

  :-webkit-any(.mapboxgl-ctrl-bottom-left, .mapboxgl-ctrl-left, .mapboxgl-ctrl-top-left) .mapboxgl-ctrl-attrib-button {
    left: 0;
  }

  :-moz-any(.mapboxgl-ctrl-bottom-left, .mapboxgl-ctrl-left, .mapboxgl-ctrl-top-left) .mapboxgl-ctrl-attrib-button {
    left: 0;
  }

  :is(.mapboxgl-ctrl-bottom-left, .mapboxgl-ctrl-left, .mapboxgl-ctrl-top-left) .mapboxgl-ctrl-attrib-button {
    left: 0;
  }

  .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button, .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner {
    display: block;
  }

  .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button {
    background-color: #0000000d;
  }

  .mapboxgl-ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {
    bottom: 0;
    right: 0;
  }

  .mapboxgl-ctrl-right > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {
    right: 0;
  }

  .mapboxgl-ctrl-top-right > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {
    top: 0;
    right: 0;
  }

  .mapboxgl-ctrl-top-left > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {
    top: 0;
    left: 0;
  }

  .mapboxgl-ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {
    bottom: 0;
    left: 0;
  }

  .mapboxgl-ctrl-left > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {
    left: 0;
  }
}

@media screen and (-ms-high-contrast: active) {
  .mapboxgl-ctrl-attrib.mapboxgl-compact:after {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");
  }
}

@media screen and (-ms-high-contrast: black-on-white) {
  .mapboxgl-ctrl-attrib.mapboxgl-compact:after {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");
  }
}

.mapboxgl-ctrl-attrib a {
  color: #000000bf;
  text-decoration: none;
}

.mapboxgl-ctrl-attrib a:hover {
  color: inherit;
  text-decoration: underline;
}

.mapboxgl-ctrl-attrib .mapbox-improve-map {
  margin-left: 2px;
  font-weight: 700;
}

.mapboxgl-attrib-empty {
  display: none;
}

.mapboxgl-ctrl-scale {
  color: #333;
  box-sizing: border-box;
  white-space: nowrap;
  background-color: #ffffffbf;
  border: 2px solid #333;
  border-top: #333;
  padding: 0 5px;
  font-size: 10px;
}

.mapboxgl-popup {
  position: absolute;
  display: flex;
  will-change: transform;
  pointer-events: none;
  top: 0;
  left: 0;
}

.mapboxgl-popup-anchor-top, .mapboxgl-popup-anchor-top-left, .mapboxgl-popup-anchor-top-right {
  flex-direction: column;
}

.mapboxgl-popup-anchor-bottom, .mapboxgl-popup-anchor-bottom-left, .mapboxgl-popup-anchor-bottom-right {
  flex-direction: column-reverse;
}

.mapboxgl-popup-anchor-left {
  flex-direction: row;
}

.mapboxgl-popup-anchor-right {
  flex-direction: row-reverse;
}

.mapboxgl-popup-tip {
  z-index: 1;
  border: 10px solid #0000;
  width: 0;
  height: 0;
}

.mapboxgl-popup-anchor-top .mapboxgl-popup-tip {
  border-top: none;
  border-bottom-color: #fff;
  align-self:  center;
}

.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip {
  border-top: none;
  border-bottom-color: #fff;
  border-left: none;
  align-self:  flex-start;
}

.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip {
  border-top: none;
  border-bottom-color: #fff;
  border-right: none;
  align-self:  flex-end;
}

.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip {
  border-top-color: #fff;
  border-bottom: none;
  align-self:  center;
}

.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip {
  border-top-color: #fff;
  border-bottom: none;
  border-left: none;
  align-self:  flex-start;
}

.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip {
  border-top-color: #fff;
  border-bottom: none;
  border-right: none;
  align-self:  flex-end;
}

.mapboxgl-popup-anchor-left .mapboxgl-popup-tip {
  border-left: none;
  border-right-color: #fff;
  align-self:  center;
}

.mapboxgl-popup-anchor-right .mapboxgl-popup-tip {
  border-left-color: #fff;
  border-right: none;
  align-self:  center;
}

.mapboxgl-popup-close-button {
  position: absolute;
  cursor: pointer;
  background-color: initial;
  border: 0;
  border-radius: 0 3px 0 0;
  top: 0;
  right: 0;
}

.mapboxgl-popup-close-button:hover {
  background-color: #eee;
}

.mapboxgl-popup-content {
  position: relative;
  pointer-events: auto;
  background: #fff;
  border-radius: 3px;
  padding: 10px 10px 15px;
  box-shadow: 0 1px 2px #0000001a;
}

.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content {
  border-top-left-radius: 0;
}

.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content {
  border-top-right-radius: 0;
}

.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content {
  border-bottom-left-radius: 0;
}

.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content {
  border-bottom-right-radius: 0;
}

.mapboxgl-popup-track-pointer {
  display: none;
}

.mapboxgl-popup-track-pointer * {
  pointer-events: none;
  user-select: none;
}

.mapboxgl-map:hover .mapboxgl-popup-track-pointer {
  display: flex;
}

.mapboxgl-map:active .mapboxgl-popup-track-pointer {
  display: none;
}

.mapboxgl-marker {
  position: absolute;
  will-change: transform;
  opacity: 1;
  transition: opacity .2s;
  top: 0;
  left: 0;
}

.mapboxgl-user-location-dot, .mapboxgl-user-location-dot:before {
  background-color: #1da1f2;
  border-radius: 50%;
  width: 15px;
  height: 15px;
}

.mapboxgl-user-location-dot:before {
  content: "";
  position: absolute;
  animation: mapboxgl-user-location-dot-pulse 2s infinite;
}

.mapboxgl-user-location-dot:after {
  content: "";
  position: absolute;
  box-sizing: border-box;
  border: 2px solid #fff;
  border-radius: 50%;
  width: 19px;
  height: 19px;
  top: -2px;
  left: -2px;
  box-shadow: 0 0 3px #00000059;
}

.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading {
  width: 0;
  height: 0;
}

.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after, .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before {
  content: "";
  position: absolute;
  border-bottom: 7.5px solid #4aa1eb;
}

.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before {
  border-left: 7.5px solid #0000;
  transform: translateY(-28px)skewY(-20deg);
}

.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after {
  border-right: 7.5px solid #0000;
  transform: translate(7.5px, -28px)skewY(20deg);
}

@keyframes mapboxgl-user-location-dot-pulse {
  0% {
    transform: scale(1);
    opacity: 1;
  }

  70% {
    transform: scale(3);
    opacity: 0;
  }

  to {
    transform: scale(1);
    opacity: 0;
  }
}

.mapboxgl-user-location-dot-stale {
  background-color: #aaa;
}

.mapboxgl-user-location-dot-stale:after {
  display: none;
}

.mapboxgl-user-location-accuracy-circle {
  background-color: #1da1f233;
  border-radius: 100%;
  width: 1px;
  height: 1px;
}

.mapboxgl-crosshair, .mapboxgl-crosshair .mapboxgl-interactive, .mapboxgl-crosshair .mapboxgl-interactive:active {
  cursor: crosshair;
}

.mapboxgl-boxzoom {
  position: absolute;
  opacity: .5;
  background: #fff;
  border: 2px dotted #202020;
  width: 0;
  height: 0;
  top: 0;
  left: 0;
}

@media print {
  .mapbox-improve-map {
    display: none;
  }
}

.mapboxgl-scroll-zoom-blocker, .mapboxgl-touch-pan-blocker {
  color: #fff;
  text-align: center;
  position: absolute;
  display: flex;
  opacity: 0;
  pointer-events: none;
  background: #000000b3;
  justify-content: center;
  align-items:  center;
  width: 100%;
  height: 100%;
  transition: opacity .75s ease-in-out 1s;
  font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif;
  top: 0;
  left: 0;
}

.mapboxgl-scroll-zoom-blocker-show, .mapboxgl-touch-pan-blocker-show {
  opacity: 1;
  transition: opacity .1s ease-in-out;
}

.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page, .mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas {
  touch-action: pan-x pan-y;
}

.mapboxgl-ctrl button.mapboxgl-ctrl-level-button {
  text-align: center;
  font-size: 14px;
  font-weight: 600;
}

.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected {
  color: #000;
  background-color: #bccbd7;
}

.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected:hover {
  background-color: #ccc;
}

/* app/web/styles/video-post.css */
.ul-video {
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding: 24px 0;
}

.ul-video__head {
  display: grid;
  grid-template-columns: 220px 1fr;
  align-items:  start;
  gap: 28px;
}

.ul-video__poster {
  aspect-ratio: 2 / 3;
  overflow: hidden;
  background: var(--color-bg-soft, #f4f4f5);
  border-radius: 6px;
  width: 220px;
  box-shadow: 0 8px 24px #0000002e;
}

.ul-video__poster img {
  object-fit: cover;
  display: block;
  width: 100%;
  height: 100%;
}

.ul-video__info {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}

.ul-video__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.ul-video__chip {
  display: inline-flex;
  background: var(--color-bg-soft, #0000000d);
  color: var(--color-text-sub, #555);
  border-radius: 999px;
  align-items:  center;
  gap: 4px;
  padding: 3px 10px;
  font-size: 12px;
  line-height: 1.6;
}

.ul-video__chip--type {
  background: var(--color-primary, #2b6cb0);
  color: #fff;
}

.ul-video__chip--rating {
  color: #b45309;
  background: #f59e0b1f;
}

.ul-video__chip--rating .fa-star {
  color: #f59e0b;
}

.ul-video__genres {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.ul-video__tag {
  color: var(--color-text-sub, #666);
  border: 1px solid var(--color-border, #0000001a);
  border-radius: 4px;
  padding: 2px 8px;
  font-size: 12px;
}

.ul-video__row {
  color: var(--color-text-main, #333);
  display: flex;
  gap: 10px;
  font-size: 13px;
  line-height: 1.7;
}

.ul-video__row b {
  color: var(--color-text-sub, #666);
  flex-shrink: 0;
  min-width: 36px;
  font-weight: 500;
}

.ul-video__links {
  display: flex;
  gap: 14px;
  margin-top: 4px;
}

.ul-video__links a {
  color: var(--color-primary, #2b6cb0);
  text-decoration: none;
  display: inline-flex;
  align-items:  center;
  gap: 5px;
  font-size: 13px;
}

.ul-video__links a:hover {
  text-decoration: underline;
}

.ul-video__player-wrap {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #000;
  border-radius: 6px;
  width: 100%;
  box-shadow: 0 12px 36px #0003;
}

.ul-video__iframe, .ul-video__video {
  position: absolute;
  background: #000;
  border: 0;
  width: 100%;
  height: 100%;
  inset: 0;
}

.ul-video__video {
  object-fit: contain;
}

.ul-video__player-empty {
  display: flex;
  background: var(--color-bg-soft, #f3f4f6);
  color: var(--color-text-dim, #999);
  border: 1px dashed var(--color-border, #ddd);
  border-radius: 6px;
  flex-direction: column;
  justify-content: center;
  align-items:  center;
  gap: 10px;
  padding: 60px 24px;
}

.ul-video__player-empty i {
  font-size: 32px;
}

.ul-video__sources {
  display: flex;
  flex-wrap: wrap;
  align-items:  center;
  gap: 6px;
}

.ul-video__sources-label {
  color: var(--color-text-sub, #555);
  margin-right: 2px;
  font-size: 13px;
}

.ul-video__src {
  background: var(--color-bg-soft, #f3f4f6);
  color: var(--color-text-main, #222);
  border: 1px solid var(--color-border, #0000001a);
  cursor: pointer;
  border-radius: 4px;
  padding: 5px 14px;
  transition: all .15s;
  font-size: 12px;
}

.ul-video__src:hover {
  border-color: var(--color-primary, #2b6cb0);
}

.ul-video__src.is-active {
  background: var(--color-primary, #2b6cb0);
  color: #fff;
  border-color: var(--color-primary, #2b6cb0);
}

.ul-video__episodes {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ul-video__episodes-head {
  display: flex;
  color: var(--color-text-main, #222);
  align-items:  center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
}

.ul-video__episodes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
  gap: 8px;
}

.ul-video__ep {
  position: relative;
  display: flex;
  background: var(--color-bg-soft, #f3f4f6);
  color: var(--color-text-main, #222);
  border: 1px solid var(--color-border, #00000014);
  cursor: pointer;
  border-radius: 4px;
  flex-direction: column;
  justify-content: center;
  align-items:  center;
  gap: 2px;
  min-height: 44px;
  padding: 10px 6px;
  transition: all .15s;
  font-size: 14px;
  font-weight: 500;
}

.ul-video__ep:hover {
  border-color: var(--color-primary, #2b6cb0);
  color: var(--color-primary, #2b6cb0);
}

.ul-video__ep.is-active {
  background: var(--color-primary, #2b6cb0);
  color: #fff;
  border-color: var(--color-primary, #2b6cb0);
}

.ul-video__ep-no {
  font-variant-numeric: tabular-nums;
}

.ul-video__ep-title {
  opacity: .85;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
  font-size: 10px;
  font-weight: 400;
}

.ul-video__tips {
  display: flex;
  background: var(--color-bg-soft, #00000008);
  border-left: 3px solid var(--color-primary, #2b6cb0);
  color: var(--color-text-sub, #555);
  border-radius: 4px;
  align-items:  flex-start;
  gap: 10px;
  padding: 12px 16px;
  font-size: 13px;
  line-height: 1.7;
}

.ul-video__tips i {
  color: var(--color-primary, #2b6cb0);
  margin-top: 2px;
  font-size: 15px;
}

@media (max-width: 720px) {
  .ul-video__head {
    grid-template-columns: 120px 1fr;
    gap: 16px;
  }

  .ul-video__poster {
    width: 120px;
  }

  .ul-video__episodes-grid {
    grid-template-columns: repeat(auto-fill, minmax(56px, 1fr));
  }

  .ul-video__ep {
    min-height: 38px;
    font-size: 13px;
  }
}

/* app/web/app/globals.css */
html {
  overflow: hidden;
  height: 100%;
}

body {
  height: 100%;
  margin: 0;
}

.blog-main {
  background: inherit;
  overflow-y: scroll !important;
}

html.lightbox-active .blog-main {
  overflow-y: hidden !important;
}

html.lightbox-active, html.lightbox-active body {
  overflow: hidden !important;
}

.blog-main::-webkit-scrollbar {
  width: 10px;
}

.blog-main::-webkit-scrollbar-track {
  background: inherit;
}

.blog-main::-webkit-scrollbar-thumb {
  background: #0000001f;
  border-radius: 5px;
}

.blog-main::-webkit-scrollbar-thumb:hover {
  background: #00000040;
}

.dashboard-shell main.overflow-y-auto {
  overflow-y: scroll !important;
}

* {
  scrollbar-width: thin;
  scrollbar-color: #0003 transparent;
}

*::-webkit-scrollbar {
  width: 10px;
}

*::-webkit-scrollbar-track {
  background: none;
}

*::-webkit-scrollbar-thumb {
  background: #00000026;
  border-radius: 5px;
}

*::-webkit-scrollbar-thumb:hover {
  background: #0000004d;
}

.dashboard-shell main::-webkit-scrollbar {
  width: 10px;
}

.dashboard-shell main::-webkit-scrollbar-track {
  background: var(--color-bg-main, #f5f7fa);
}

.dashboard-shell main::-webkit-scrollbar-thumb {
  border: 2px solid var(--color-bg-main, #f5f7fa);
  background: #0000001f;
  border-radius: 5px;
}

.dashboard-shell main::-webkit-scrollbar-thumb:hover {
  background: #00000040;
}

.dashboard-shell main {
  scrollbar-color: #0000001f var(--color-bg-main, #f5f7fa);
}

* {
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}

:hover, :focus-within {
  scrollbar-color: #00000026 transparent;
}

*::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

*::-webkit-scrollbar-track {
  background: none;
}

*::-webkit-scrollbar-thumb {
  background: none;
  border-radius: 3px;
  transition: background .3s;
}

:hover::-webkit-scrollbar-thumb {
  background: #0000001f;
}

:hover::-webkit-scrollbar-thumb:hover {
  background: #00000040;
}

@font-face {
  font-family: Fugaz One;
  src: url("https://static.utterlog.com/fonts/fugaz-one-400.woff2") format(woff2);
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ubuntu;
  src: url("https://static.utterlog.com/fonts/ubuntu-400.woff2") format(woff2);
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ubuntu;
  src: url("https://static.utterlog.com/fonts/ubuntu-500.woff2") format(woff2);
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ubuntu;
  src: url("https://static.utterlog.com/fonts/ubuntu-700.woff2") format(woff2);
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Google Sans Code;
  src: url("https://static.utterlog.com/fonts/google-sans-code-400.woff2") format(woff2);
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Google Sans Code;
  src: url("https://static.utterlog.com/fonts/google-sans-code-700.woff2") format(woff2);
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root, [data-color="steel"] {
  --color-primary: #0052d9;
  --color-primary-hover: #0044b8;
  --color-primary-active: #003a9e;
  --color-bg-main: #fff;
  --color-bg-card: #fff;
  --color-bg-soft: #f5f7fa;
  --color-border: #e1e6eb;
  --color-divider: #eef2f5;
  --color-text-main: #0d1a2d;
  --color-text-sub: #5a6b7f;
  --color-text-dim: #9aa5b0;
  --color-focus-ring: #0052d9;
}

[data-color="blue"] {
  --color-primary: #5b9bd5;
  --color-primary-hover: #4a8bc7;
  --color-primary-active: #3d7cb5;
  --color-bg-main: #f5f8fc;
  --color-bg-card: #fff;
  --color-bg-soft: #eaf1fa;
  --color-border: #c8dae8;
  --color-divider: #e3edf5;
  --color-text-main: #1a2b3d;
  --color-text-sub: #5a7a94;
  --color-text-dim: #8eaab8;
  --color-focus-ring: #5b9bd5;
}

[data-color="green"] {
  --color-primary: #4caf73;
  --color-primary-hover: #3e9b62;
  --color-primary-active: #358753;
  --color-bg-main: #f6fbf8;
  --color-bg-card: #fff;
  --color-bg-soft: #eafbf1;
  --color-border: #bfe8cf;
  --color-divider: #dff5e7;
  --color-text-main: #1f3d2b;
  --color-text-sub: #4e7c64;
  --color-text-dim: #8faf9f;
  --color-focus-ring: #4caf73;
}

[data-color="mint"] {
  --color-primary: #00a88e;
  --color-primary-hover: #009078;
  --color-primary-active: #007a66;
  --color-bg-main: #f3fbf9;
  --color-bg-card: #fff;
  --color-bg-soft: #e6f7f3;
  --color-border: #b8e8dd;
  --color-divider: #d4f0e9;
  --color-text-main: #1a3330;
  --color-text-sub: #3d7068;
  --color-text-dim: #7eada4;
  --color-focus-ring: #00a88e;
}

[data-color="claude"] {
  --color-primary: #da7756;
  --color-primary-hover: #c4633f;
  --color-primary-active: #b05535;
  --color-bg-main: #faf9f6;
  --color-bg-card: #fff;
  --color-bg-soft: #f5f0eb;
  --color-border: #e8e0d8;
  --color-divider: #f2ede7;
  --color-text-main: #1a1410;
  --color-text-sub: #6b5b52;
  --color-text-dim: #9b8e85;
  --color-focus-ring: #da7756;
}

[data-color="ocean"], [data-theme="Azure"], [data-theme="azure"] {
  --color-primary: #0052d9;
  --color-primary-hover: #0044b8;
  --color-primary-active: #003a9e;
  --color-bg-main: #fff;
  --color-bg-card: #fff;
  --color-bg-soft: #f5f7fa;
  --color-border: #e1e6eb;
  --color-divider: #eef2f5;
  --color-text-main: #0d1a2d;
  --color-text-sub: #5a6b7f;
  --color-text-dim: #9aa5b0;
  --color-focus-ring: #0052d9;
}

[data-theme="Chred"], [data-theme="chred"] {
  --color-primary: #f53102;
  --color-primary-hover: #dc2c02;
  --color-primary-active: #b82301;
  --color-bg-main: #fff;
  --color-bg-card: #fff;
  --color-bg-soft: #fcf4f2;
  --color-border: #ece3e1;
  --color-divider: #f5efee;
  --color-text-main: #0d1a2d;
  --color-text-sub: #5a6b7f;
  --color-text-dim: #9aa5b0;
  --color-focus-ring: #f53102;
}

[data-color="dark"] {
  --color-primary: #7ca0c4;
  --color-primary-hover: #93b5d5;
  --color-primary-active: #5a86b2;
  --color-bg-main: #0f1117;
  --color-bg-card: #1a1d27;
  --color-bg-soft: #252830;
  --color-border: #353840;
  --color-divider: #2d3039;
  --color-text-main: #f0f1f3;
  --color-text-sub: #a0a8b4;
  --color-text-dim: #6b7280;
  --color-focus-ring: #7ca0c4;
}

@theme inline {
   --font-sans: "Noto Sans SC", "Inter", ui-sans-serif, system-ui, sans-serif; --font-serif: "Noto Serif SC", "Source Han Serif SC", "Georgia", ui-serif, serif; --font-mono: "Google Sans Code", "JetBrains Mono", "Fira Code", ui-monospace, monospace; --font-logo: "Ubuntu", "Fugaz One", sans-serif;
}

* {
  margin: 0;
  padding: 0;
}

html {
  overflow-x: hidden;
  max-width: 100vw;
}

body {
  color: var(--color-text-main);
  background: var(--color-bg-main);
  max-width: 100vw;
}

.bg-main {
  background-color: var(--color-bg-main);
}

.bg-card {
  background-color: var(--color-bg-card);
}

.bg-soft {
  background-color: var(--color-bg-soft);
}

.bg-primary {
  background-color: var(--color-primary);
}

.hover\:bg-primary-hover:hover {
  background-color: var(--color-primary-hover);
}

.bg-primary-active {
  background-color: var(--color-primary-active);
}

.text-main {
  color: var(--color-text-main);
}

.text-sub {
  color: var(--color-text-sub);
}

.text-dim {
  color: var(--color-text-dim);
}

.border-line {
  border-color: var(--color-border);
}

.border-divider {
  border-color: var(--color-divider);
}

.font-logo {
  font-family: Ubuntu, Fugaz One, sans-serif;
}

.blog-page-title {
  position: relative;
  display: flex;
  border-bottom: 1px solid var(--color-border, #e5e5e5);
  justify-content: space-between;
  align-items:  center;
  gap: 16px;
  margin: 0 0 24px;
  padding: 24px 32px;
}

.blog-page-title-rail {
  display: none;
}

.blog-page-title-main {
  display: flex;
  align-items:  center;
  gap: 10px;
  min-width: 0;
}

.blog-page-title-icon {
  display: inline-flex;
  color: var(--color-primary, #0052d9);
  flex: none;
  justify-content: center;
  align-items:  center;
  font-size: 24px;
}

.blog-page-title-copy {
  min-width: 0;
}

.blog-page-title-text {
  color: var(--color-text-main, #1a1a1a);
  letter-spacing: 0;
  overflow-wrap: anywhere;
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
}

.blog-page-title-subtitle {
  color: var(--color-text-dim, #999);
  margin-top: 4px;
  font-size: 13px;
  line-height: 1.4;
}

.blog-page-title-side {
  display: flex;
  flex: none;
  justify-content: flex-end;
  align-items:  center;
  gap: 8px;
}

.blog-page-title-meta {
  display: flex;
  border: 1px solid var(--color-border, #d9d9d9);
  color: var(--color-text-sub, #666);
  flex-wrap: wrap;
  align-items:  center;
  gap: 10px;
  padding: 6px 14px;
  font-size: 13px;
  line-height: 1.3;
}

.blog-page-title-meta strong {
  color: var(--color-text-main, #1a1a1a);
  font-weight: 600;
}

.blog-page-title-stat {
  white-space: nowrap;
}

.coding-page-title .blog-page-title-meta {
  background: none;
  border: 0;
  flex-wrap: nowrap;
  gap: 0;
  padding: 0;
  line-height: 1;
}

.coding-page-title .blog-page-title-copy, [data-theme="Azure"] .coding-page-title .blog-page-title-copy, [data-theme="Renascent"] .coding-page-title .blog-page-title-copy {
  display: flex;
  align-items: baseline;
  gap: 14px;
  min-width: 0;
}

.coding-page-title .blog-page-title-text, [data-theme="Azure"] .coding-page-title .blog-page-title-text, [data-theme="Renascent"] .coding-page-title .blog-page-title-text {
  font-family: Newsreader, Georgia, serif;
  font-weight: 400;
}

.coding-title-link, .coding-title-link:hover, .coding-title-link:focus, .coding-title-link:visited {
  color: inherit;
  text-decoration: none;
}

.coding-page-title .blog-page-title-subtitle {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: min(560px, 46vw);
  margin-top: 0;
}

[data-theme="Azure"] .coding-page-title .blog-page-title-subtitle, [data-theme="Renascent"] .coding-page-title .blog-page-title-subtitle {
  white-space: nowrap;
  margin-top: 0;
}

.coding-title-stat {
  display: inline-flex;
  border-right: 1px solid var(--color-border, #d9d9d9);
  color: var(--color-text-dim, #888);
  text-transform: uppercase;
  align-items: baseline;
  gap: 6px;
  padding: 0 14px;
  font-size: 11px;
  line-height: 1;
}

.coding-title-stat span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 132px;
}

.coding-title-stat:first-child {
  padding-left: 0;
}

.coding-title-stat:last-child {
  border-right: 0;
  padding-right: 0;
}

.coding-title-stat strong {
  color: var(--color-text-main, #1a1a1a);
  font-family: Newsreader, Georgia, serif;
  font-size: 24px;
  font-weight: 500;
  line-height: 1;
}

[data-theme="Azure"] .coding-page-title .blog-page-title-meta, [data-theme="Renascent"] .coding-page-title .blog-page-title-meta {
  background: none;
  border: 0;
  flex-wrap: nowrap;
  gap: 0;
  padding: 0;
  line-height: 1;
}

[data-theme="Azure"] .coding-title-stat, [data-theme="Renascent"] .coding-title-stat {
  line-height: 1;
}

@media (max-width: 768px) {
  .blog-page-title {
    flex-direction: column;
    align-items:  flex-start;
    gap: 12px;
    padding: 20px 16px;
  }

  .blog-page-title-side {
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .blog-page-title-meta {
    padding: 5px 10px;
    font-size: 12px;
  }

  .coding-page-title .blog-page-title-meta {
    padding: 0;
  }

  .coding-title-stat {
    margin-right: 10px;
    padding: 0 10px 0 0;
  }
}

.site-title {
  font-feature-settings: "palt";
  font-family: Alimama FangYuanTi VF, Noto Sans SC, Ubuntu, PingFang SC, Microsoft YaHei, sans-serif;
}

.text-primary-themed {
  color: var(--color-primary);
}

.hover\:text-primary-themed:hover {
  color: var(--color-primary-hover);
}

.focus-ring:focus {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-focus-ring) 25%, transparent);
  border-color: var(--color-focus-ring);
}

.focus-ring:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-focus-ring) 25%, transparent);
  border-color: var(--color-focus-ring);
}

.btn {
  display: inline-flex;
  outline: none;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  border: 1px solid #0000;
  border-radius: 4px;
  justify-content: center;
  align-items:  center;
  gap: .5rem;
  min-height: 48px;
  padding: .625rem 1rem;
  transition: background-color .15s, box-shadow .15s;
  font-size: .875rem;
  font-weight: 500;
  line-height: 1.5;
}

.btn:focus-visible {
  box-shadow: 0 0 0 2px var(--color-bg-card), 0 0 0 4px var(--color-focus-ring);
}

.btn:disabled {
  opacity: .5;
  pointer-events: none;
}

.btn-primary {
  background-color: var(--color-primary);
  color: #fff;
}

.btn-primary:hover {
  background-color: var(--color-primary-hover);
}

.btn-primary:active {
  background-color: var(--color-primary-active);
}

.btn-secondary {
  background-color: var(--color-bg-soft);
  color: var(--color-text-main);
  border: 1px solid var(--color-border);
}

.btn-secondary:hover {
  background-color: var(--color-divider);
}

.btn-danger {
  color: #fff;
  background-color: #dc2626;
}

.btn-danger:hover {
  background-color: #b91c1c;
}

.btn-ghost {
  color: var(--color-text-sub);
  background-color: #0000;
}

.btn-ghost:hover {
  background-color: var(--color-bg-soft);
  color: var(--color-text-main);
}

.btn-sm {
  min-height: 32px;
  padding: .375rem .75rem;
  font-size: .8125rem;
}

.btn-lg {
  gap: .625rem;
  min-height: 52px;
  padding: .75rem 1.25rem;
  font-size: .9375rem;
}

.btn[data-loading="true"] {
  cursor: wait;
}

.btn .btn-spinner {
  animation: btn-spin .7s linear infinite;
  display: inline-block;
  vertical-align: -.15em;
  border: 2px solid;
  border-top-color: #0000;
  border-radius: 50%;
  width: 1em;
  height: 1em;
}

@keyframes btn-spin {
  to {
    transform: rotate(360deg);
  }
}

.action-btn {
  display: inline-flex;
  border: 1px solid var(--color-border);
  background: var(--color-bg-card);
  cursor: pointer;
  color: var(--color-text-sub);
  border-radius: 4px;
  flex-shrink: 0;
  justify-content: center;
  align-items:  center;
  width: 30px;
  min-width: 30px;
  max-width: 30px;
  height: 30px;
  min-height: 30px;
  max-height: 30px;
  padding: 0;
  transition: background .15s, color .15s;
}

.action-btn:hover {
  background: var(--color-bg-soft);
  color: var(--color-text-main);
}

.action-btn.danger {
  color: #dc2626;
}

.action-btn.danger:hover {
  background: #fef2f2;
}

.archive-cat-card {
  transition: box-shadow .3s;
}

.archive-cat-card:hover {
  box-shadow: 0 4px 16px #00000014;
}

.archive-cat-card:hover > i:first-child {
  opacity: .1;
  transform: translateY(-50%)scale(1.25);
}

.archive-cat-card:after {
  content: "";
  position: absolute;
  backdrop-filter: blur(0px);
  pointer-events: none;
  z-index: 0;
  background: #fff0;
  transition: backdrop-filter .3s, background .3s;
  inset: 0;
}

.archive-cat-card:hover:after {
  backdrop-filter: blur(1.5px);
  background: #ffffff26;
}

.input {
  display: block;
  border: 1px solid var(--color-border);
  color: var(--color-text-main);
  background: var(--color-bg-card);
  border-radius: 1px;
  width: 100%;
  padding: .5rem .75rem;
  transition: border-color .15s, box-shadow .15s;
  font-size: .875rem;
}

.input::placeholder {
  color: var(--color-text-dim);
}

.input:focus {
  outline: none;
  border-color: var(--color-focus-ring);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-focus-ring) 20%, transparent);
}

.card {
  background-color: var(--color-bg-card);
  border: 1px solid var(--color-border);
  border-radius: 4px;
}

.card-hover:hover {
  box-shadow: 0 4px 12px #00000014;
}

.badge {
  display: inline-flex;
  border-radius: 3px;
  align-items:  center;
  padding: .125rem .625rem;
  font-size: .75rem;
  font-weight: 500;
}

.table {
  border-collapse: collapse;
  min-width: 100%;
}

.table th {
  text-align: left;
  color: var(--color-text-sub);
  text-transform: uppercase;
  letter-spacing: .05em;
  border-bottom: 1px solid var(--color-border);
  padding: .625rem .75rem;
  font-size: .75rem;
  font-weight: 500;
}

.table td {
  white-space: nowrap;
  color: var(--color-text-main);
  border-bottom: 1px solid var(--color-divider);
  padding: .75rem;
  font-size: .875rem;
}

:root {
  --claude-bg: #faf9f6;
  --claude-surface: #fff;
  --claude-primary: #da7756;
  --claude-primary-light: #e8956f;
  --claude-primary-dark: #c4633f;
  --claude-text: #1a1410;
  --claude-text-secondary: #6b5b52;
  --claude-text-muted: #9b8e85;
  --claude-border: #e8e0d8;
  --claude-tag: #f5f0eb;
  --claude-code: #f8f5f1;
  --claude-hover: #f2ede7;
}

.reply-mention:hover .reply-mention-card {
  display: block !important;
}

.comment-hint {
  transition: opacity .2s;
}

div:hover > .comment-hint {
  opacity: .75 !important;
}

.blog-image {
  position: relative;
  display: block;
  overflow: hidden;
  cursor: zoom-in;
  background: var(--color-bg-soft);
  border-radius: 0;
  min-height: 80px;
  margin: 1.5rem 0;
}

.blog-image img {
  display: block;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  background-color: var(--color-bg-soft);
  width: 100%;
}

.blog-image-loader {
  position: absolute;
  display: flex;
  z-index: 2;
  color: var(--color-text-dim);
  opacity: 1;
  pointer-events: none;
  justify-content: center;
  align-items:  center;
  transition: opacity .35s ease-out;
  inset: 0;
}

.blog-image.loaded .blog-image-loader {
  opacity: 0;
}

.blog-image-caption {
  position: absolute;
  z-index: 5;
  color: #fff;
  cursor: default;
  background: #0006;
  border-radius: 0;
  max-width: 70%;
  margin-bottom: 4px;
  padding: 8px;
  font-size: 13px;
  line-height: 1.4;
  bottom: 0;
  right: 0;
}

.image-grid {
  display: grid;
  overflow: hidden;
  border-radius: 0;
  gap: 6px;
  margin: 1.5rem 0;
}

.image-grid .blog-image {
  border-radius: 0;
  width: 100%;
  min-height: 0;
  margin: 0;
}

.image-grid .blog-image img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.image-grid-1 {
  max-width: 65%;
  margin-left: auto;
  margin-right: auto;
}

.image-grid-1 .blog-image img {
  aspect-ratio: auto;
  object-fit: contain;
}

.image-grid-2 {
  grid-template-columns: 1fr 1fr;
}

.image-grid-2 .blog-image img {
  aspect-ratio: 4 / 3;
}

.image-grid-3 {
  grid-template-columns: 1fr 1fr 1fr;
}

.image-grid-3 .blog-image img {
  aspect-ratio: 1;
}

.image-grid-4 {
  grid-template-columns: repeat(4, 1fr);
}

.image-grid-5 {
  grid-template-columns: repeat(6, 1fr);
}

.image-grid-5 .blog-image:nth-child(-n+2) {
  grid-column: span 3;
}

.image-grid-5 .blog-image:nth-child(n+3) {
  grid-column: span 2;
}

.image-grid-6 {
  grid-template-columns: repeat(3, 1fr);
}

.image-grid-7 {
  grid-template-columns: repeat(12, 1fr);
}

.image-grid-7 .blog-image:nth-child(-n+3) {
  grid-column: span 4;
}

.image-grid-7 .blog-image:nth-child(n+4) {
  grid-column: span 3;
}

.image-grid-8 {
  grid-template-columns: repeat(4, 1fr);
}

.image-grid-9 {
  grid-template-columns: repeat(3, 1fr);
}

.image-grid-10 {
  grid-template-columns: repeat(12, 1fr);
}

.image-grid-10 .blog-image:nth-child(-n+6) {
  grid-column: span 4;
}

.image-grid-10 .blog-image:nth-child(n+7) {
  grid-column: span 3;
}

.image-grid-overflow {
  grid-template-columns: 1fr 1fr 1fr;
}

@media (max-width: 640px) {
  .image-grid-3, .image-grid-4, .image-grid-5, .image-grid-6, .image-grid-7, .image-grid-8, .image-grid-9, .image-grid-10, .image-grid-overflow {
    grid-template-columns: 1fr 1fr;
  }

  .image-grid-5 .blog-image, .image-grid-7 .blog-image, .image-grid-10 .blog-image {
    grid-column: span 1 !important;
  }

  .image-grid-1 {
    max-width: 100%;
  }
}

@media (max-width: 400px) {
  .image-grid {
    grid-template-columns: 1fr !important;
  }

  .image-grid .blog-image img {
    aspect-ratio: 16 / 9;
  }

  .image-grid-5 .blog-image {
    grid-column: span 1 !important;
  }
}

.blog-image-exif-trigger {
  position: absolute;
  z-index: 4;
  display: flex;
  color: #fff;
  cursor: pointer;
  opacity: 0;
  background: #00000080;
  border: none;
  border-radius: 0;
  justify-content: center;
  align-items:  center;
  width: 28px;
  height: 28px;
  transition: opacity .2s;
  font-size: 12px;
  bottom: 8px;
  left: 8px;
}

.blog-image:hover .blog-image-exif-trigger {
  opacity: 1;
}

.blog-image-exif-panel {
  position: absolute;
  z-index: 5;
  backdrop-filter: blur(8px);
  color: #fff;
  white-space: nowrap;
  background: #000c;
  border-radius: 0;
  padding: 10px 14px;
  font-size: 12px;
  line-height: 1.6;
  bottom: 44px;
  left: 8px;
}

.blog-image-exif-panel .exif-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.blog-image-exif-panel .exif-label {
  color: #ffffff80;
  min-width: 48px;
  font-size: 10px;
}

.blog-image-exif-panel .exif-params {
  display: flex;
  border-top: 1px solid #ffffff1a;
  border-bottom: 1px solid #ffffff1a;
  gap: 10px;
  margin: 4px 0;
  padding: 4px 0;
  font-size: 13px;
  font-weight: 500;
}

.vi-overlay {
  position: fixed;
  z-index: 1000000;
  display: flex;
  animation: vi-in .32s cubic-bezier(.16, 1, .3, 1) both;
  will-change: opacity;
  background: #121418f5;
  flex-direction: column;
  padding: 5vh 1rem;
  inset: 0;
}

.vi-overlay.vi-closing {
  animation: vi-out .24s cubic-bezier(.4, 0, 1, 1) forwards;
}

@keyframes vi-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes vi-out {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

.vi-stage {
  display: flex;
  position: relative;
  flex: 1;
  justify-content: center;
  align-items:  center;
  height: 0;
  min-height: 0;
}

.vi-stage .vi-img {
  object-fit: contain;
  display: block;
  user-select: none;
  position: relative;
  z-index: 1;
  animation: vi-img-in .38s cubic-bezier(.16, 1, .3, 1) both;
  will-change: transform, opacity;
  border-radius: 0;
  max-width: 100%;
  max-height: 100%;
}

.vi-overlay.vi-closing .vi-img {
  animation: vi-img-close .24s cubic-bezier(.4, 0, 1, 1) forwards;
}

.vi-stage.vi-img-out .vi-img {
  animation: vi-img-out .3s cubic-bezier(.4, 0, 1, 1) forwards;
}

@keyframes vi-img-in {
  from {
    opacity: 0;
    transform: scale(.92);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes vi-img-close {
  from {
    opacity: 1;
    transform: scale(1);
  }

  to {
    opacity: 0;
    transform: scale(.95);
  }
}

@keyframes vi-img-out {
  from {
    opacity: 1;
    transform: translateY(0)scale(1);
  }

  to {
    opacity: 0;
    transform: translateY(16px)scale(.98);
  }
}

.vi-stage .vi-backstop {
  position: absolute;
  cursor: zoom-out;
  z-index: 0;
  inset: 0;
}

.vi-loading {
  position: absolute;
  color: #ffffffe0;
  overflow: visible;
  z-index: 1;
  pointer-events: none;
  width: 40px;
  height: 4px;
  margin: -2px -20px;
  top: 50%;
  left: 50%;
}

.vi-loading-react {
  animation: vi-loading-moving 1s ease-in-out infinite;
}

@keyframes vi-loading-moving {
  0% {
    width: 0%;
  }

  50% {
    width: 100%;
    transform: translate(0%);
  }

  100% {
    width: 0;
    transform: translate(100%);
  }
}

.vi-tools {
  position: absolute;
  bottom: calc(clamp(48px, 10vh, 120px)  + env(safe-area-inset-bottom));
  display: flex;
  color: #ffffffb8;
  z-index: 2;
  background: #00000042;
  border-radius: 0;
  justify-content: space-between;
  align-items:  center;
  max-width: 600px;
  margin: 0 auto;
  padding: 10px 12px;
  transition: background .18s, color .18s, box-shadow .18s;
  left: 1rem;
  right: 1rem;
}

.vi-tools:hover, .vi-tools:focus-within {
  color: #fff;
  background: #0000009e;
  box-shadow: 0 8px 24px #00000038;
}

.vi-count {
  font-variant-numeric: tabular-nums;
  text-align: center;
  min-width: 60px;
  font-size: 13px;
}

.vi-nav {
  display: flex;
  gap: 10px;
}

.vi-btn {
  display: flex;
  cursor: pointer;
  color: #ffffffad;
  background: #ffffff1a;
  border: none;
  border-radius: 0;
  justify-content: center;
  align-items:  center;
  width: 32px;
  height: 32px;
  transition: background .15s, color .15s;
}

.vi-tools:hover .vi-btn, .vi-tools:focus-within .vi-btn {
  color: #ffffffe6;
}

.vi-btn:hover {
  color: #fff;
  background: #fff6;
}

.vi-btn:focus-visible {
  color: #fff;
  background: #fff6;
}

.vi-btn:disabled {
  opacity: .35;
  cursor: not-allowed;
}

::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: var(--color-bg-soft);
  border-radius: 1px;
}

::-webkit-scrollbar-thumb {
  background: var(--color-text-dim);
  border-radius: 1px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--color-text-sub);
}

.hljs {
  color: #3c3836;
  background: #f8f5f1;
}

.hljs-comment, .hljs-quote {
  color: #928374;
  font-style: italic;
}

.hljs-keyword, .hljs-selector-tag, .hljs-addition {
  color: #9d0006;
}

.hljs-number, .hljs-string, .hljs-meta .hljs-meta-string, .hljs-literal, .hljs-doctag, .hljs-regexp {
  color: #b57614;
}

.hljs-title, .hljs-section, .hljs-name, .hljs-selector-id, .hljs-selector-class {
  color: #da7756;
}

.hljs-attribute, .hljs-tag .hljs-attr, .hljs-variable, .hljs-template-variable, .hljs-class .hljs-title, .hljs-type {
  color: #427b58;
}

.hljs-symbol, .hljs-bullet, .hljs-subst, .hljs-meta, .hljs-meta .hljs-keyword, .hljs-selector-attr, .hljs-selector-pseudo, .hljs-link {
  color: #af3a03;
}

.hljs-built_in, .hljs-deletion {
  color: #076678;
}

.hljs-formula {
  background: #f5f0eb;
}

.hljs-emphasis {
  font-style: italic;
}

.hljs-strong {
  font-weight: bold;
}

[data-color="dark"] .hljs {
  color: #e5e7eb;
  background: #1e2130;
}

[data-color="dark"] .hljs-comment, [data-color="dark"] .hljs-quote {
  color: #6b7280;
}

[data-color="dark"] .hljs-keyword {
  color: #f87171;
}

[data-color="dark"] .hljs-string, [data-color="dark"] .hljs-number {
  color: #fbbf24;
}

[data-color="dark"] .hljs-title, [data-color="dark"] .hljs-section {
  color: #60a5fa;
}

[data-color="dark"] .hljs-attribute, [data-color="dark"] .hljs-type {
  color: #34d399;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

.animate-spin {
  animation: spin 1s linear infinite;
}

@keyframes vinyl-spin {
  from {
    transform: rotate(0);
  }

  to {
    transform: rotate(360deg);
  }
}

.vinyl-spinning {
  animation: vinyl-spin 8s linear infinite;
}

.vinyl-paused {
  animation-play-state: paused;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateX(20px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

:root {
  --img-effect-duration: .5s;
}

:where([data-blog-image] img, img[data-blog-image]) {
  will-change: opacity, transform, filter, clip-path;
  backface-visibility: hidden;
}

img[data-blog-image][data-loaded="0"] {
  background-color: var(--color-bg-soft, #f0f0f0);
}

.md-download-card {
  --md-download-bg: #1a1a1a;
  --md-download-accent: #f5a623;
  --md-download-text: #fff;
  background: var(--md-download-bg);
  color: var(--md-download-text);
  display: flex;
  border-radius: 4px;
  align-items:  center;
  gap: 16px;
  margin: 16px 0;
  padding: 16px 20px;
}

.md-download-icon {
  background: var(--md-download-accent);
  color: var(--md-download-bg);
  display: flex;
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items:  center;
  width: 44px;
  height: 44px;
  font-size: 18px;
}

.md-download-info {
  flex: 1;
  min-width: 0;
}

.md-download-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
}

.md-download-desc {
  opacity: .7;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  overflow: hidden;
  -webkit-box-orient: vertical;
  margin-top: 2px;
  font-size: 12px;
  line-height: 1.5;
}

.md-download-btn {
  background: var(--md-download-accent);
  white-space: nowrap;
  border-radius: 6px;
  flex-shrink: 0;
  padding: 8px 20px;
  transition: filter .15s, transform .15s;
  font-size: 13px;
  font-weight: 600;
  color: var(--md-download-bg) !important;
  text-decoration: none !important;
}

.md-download-btn:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
  color: var(--md-download-bg) !important;
  text-decoration: none !important;
}

.md-download-btn:active {
  transform: translateY(0);
}

@media (max-width: 480px) {
  .md-download-card {
    flex-wrap: wrap;
    gap: 12px;
    padding: 14px;
  }

  .md-download-info {
    flex-basis: calc(100% - 56px);
  }

  .md-download-btn {
    text-align: center;
    flex-basis: 100%;
  }
}

.cover-zoom :where([data-blog-image] img, img[data-blog-image]) {
  transition: transform .6s cubic-bezier(.4,0,.2,1);
  transform: translate3d(0, 0, 0)scale(1);
}

.cover-zoom:hover :where([data-blog-image] img, img[data-blog-image]) {
  transform: translate3d(0, 0, 0)scale(1.04);
}

@media (prefers-reduced-motion: reduce) {
  .cover-zoom :where([data-blog-image] img, img[data-blog-image]) {
    transition: none !important;
    transform: none !important;
  }

  .cover-zoom:hover :where([data-blog-image] img, img[data-blog-image]) {
    transition: none !important;
    transform: none !important;
  }
}

html[data-img-effect="fade"] :where(img[data-blog-image][data-loaded="0"], [data-blog-image] img[data-loaded="0"], img[data-blog-image][data-loaded="1"]:not([data-img-visible="1"]), [data-blog-image] img[data-loaded="1"]:not([data-img-visible="1"])) {
  background-color: var(--color-bg-soft);
  filter: blur(20px);
  transition: opacity var(--img-effect-duration) ease-in-out, transform .6s cubic-bezier(.4, 0, .2, 1);
}

html[data-img-effect="fade"] :where(img[data-blog-image][data-loaded="1"][data-img-visible="1"], [data-blog-image] img[data-loaded="1"][data-img-visible="1"]) {
  filter: blur(0);
  opacity: 1;
  transition: filter var(--img-effect-duration) linear, transform .6s cubic-bezier(.4, 0, .2, 1);
}

.pixel-overlay {
  position: absolute;
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  grid-template-rows: repeat(10, 1fr);
  pointer-events: none;
  z-index: 2;
  inset: 0;
}

.pixel-tile {
  animation: pixel-reveal var(--img-effect-duration) forwards;
  animation-delay: calc(var(--delay, 0) * 50ms);
  background: #000000e6;
}

@keyframes pixel-reveal {
  to {
    background: none;
  }
}

html[data-img-effect="pixel"] :where([data-blog-image] img, img[data-blog-image]) {
  animation: none;
}

html[data-img-effect="scale"] :where([data-blog-image] img, img[data-blog-image])[data-img-effect-visible="1"] {
  animation: img-scale calc(var(--img-effect-duration) * 1.3) cubic-bezier(.34, 1.56, .64, 1) both;
}

html[data-img-effect="scale"] :where([data-blog-image] img, img[data-blog-image]):not([data-img-effect-visible]) {
  opacity: 0;
}

@keyframes img-scale {
  from {
    opacity: 0;
    transform: scale(.9);
    filter: blur(4px);
  }

  to {
    opacity: 1;
    transform: scale(1);
    filter: blur(0);
  }
}

html[data-img-effect="none"] :where([data-blog-image] img, img[data-blog-image]) {
  animation: none;
}

@keyframes lazy-skeleton-shimmer {
  0% {
    background-position: 100% 0;
  }

  100% {
    background-position: -100% 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-img-effect] :where([data-blog-image] img, img[data-blog-image]) {
    animation: none !important;
    opacity: 1 !important;
    filter: none !important;
    clip-path: none !important;
    transform: none !important;
  }
}

.post-hero-footprint-flags {
  position: absolute;
  z-index: 3;
  display: flex;
  pointer-events: auto;
  align-items:  center;
  gap: 6px;
  bottom: 16px;
  right: 16px;
}

.post-hero-footprint-flag {
  object-fit: cover;
  transform-origin: center;
  background: #fff;
  border: 1px solid #ffffffd9;
  border-radius: 50%;
  width: 50px;
  height: 50px;
  transition: transform .28s, box-shadow .28s;
  box-shadow: 0 6px 18px #00000047;
}

.post-hero-footprint-flag:hover {
  transform: scale(1.12);
  box-shadow: 0 8px 24px #00000057;
}

.post-hero-footprint-more {
  display: inline-flex;
  color: #fff;
  background: #00000073;
  border: 1px solid #ffffff47;
  justify-content: center;
  align-items:  center;
  min-width: 28px;
  height: 21px;
  padding: 0 7px;
  font-size: 11px;
  font-weight: 600;
  box-shadow: 0 6px 18px #00000038;
}

@media (max-width: 640px) {
  .post-hero-footprint-flags {
    bottom: 12px;
    right: 12px;
  }

  .post-hero-footprint-flag {
    width: 42px;
    height: 42px;
  }
}

.footprint-page {
  background: var(--color-bg-card, #fff);
}

.footprint-page-body {
  padding: 0 32px 32px;
}

.footprint-page .blog-page-title-side {
  width: min(420px, 42vw);
  max-width: 100%;
}

.footprint-search {
  display: flex;
  border: 1px solid var(--color-border, #ddd);
  background: var(--color-bg-soft, #fafafa);
  align-items:  center;
  gap: 8px;
  width: min(420px, 100%);
  height: 42px;
  padding: 0 10px;
}

.footprint-search input {
  outline: 0;
  color: var(--color-text-main, #111);
  background: none;
  border: 0;
  flex: 1;
  min-width: 0;
  font-size: 14px;
}

.footprint-search button {
  border: 1px solid var(--color-primary, #0052d9);
  color: #fff;
  background: var(--color-primary, #0052d9);
  cursor: pointer;
  height: 28px;
  padding: 0 12px;
  font-size: 12px;
}

.footprint-disabled, .footprint-empty, .footprint-map-placeholder {
  display: flex;
  border: 1px dashed var(--color-border, #ddd);
  color: var(--color-text-dim, #888);
  background: var(--color-bg-soft, #fafafa);
  justify-content: center;
  align-items:  center;
  gap: 8px;
  min-height: 120px;
  margin-bottom: 20px;
  font-size: 13px;
}

.footprint-map {
  border: 1px solid var(--color-border, #ddd);
  width: 100%;
  height: min(56vh, 520px);
  min-height: 320px;
  margin-bottom: 24px;
}

.footprint-map-marker {
  display: flex;
  background: var(--color-primary, #0052d9);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary, #0052d9) 28%, transparent), 0 8px 24px #00000047;
  cursor: pointer;
  border: 3px solid #fff;
  border-radius: 999px;
  justify-content: center;
  align-items:  center;
  width: 16px;
  height: 16px;
}

.footprint-mapbox-popup {
  max-width: min(360px, 100vw - 36px);
}

.footprint-mapbox-popup .mapboxgl-popup-content {
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--color-border, #ddd) 78%, #fff);
  color: var(--color-text-main, #111);
  background: var(--color-bg-card, #fff);
  border-radius: 4px;
  padding: 0;
  box-shadow: 0 14px 34px #0f172a29;
}

.footprint-mapbox-popup .mapboxgl-popup-close-button {
  z-index: 2;
  color: var(--color-text-dim, #888);
  border-radius: 999px;
  width: 22px;
  height: 22px;
  font-size: 18px;
  line-height: 20px;
  top: 7px;
  right: 8px;
}

.footprint-mapbox-popup .mapboxgl-popup-close-button:hover {
  color: var(--color-text-main, #111);
  background: var(--color-bg-soft, #f5f5f5);
}

.footprint-map-popup {
  min-width: 260px;
}

.footprint-map-popup-card {
  display: block;
  color: inherit;
  text-decoration: none;
  border-top: 1px solid var(--color-border, #e5e7eb);
  background: var(--color-bg-card, #fff);
  min-width: 0;
  padding: 16px 18px 14px;
}

.footprint-map-popup-card:first-child {
  border-top: 0;
}

.footprint-map-popup-card:hover {
  background: color-mix(in srgb, var(--color-primary, #0052d9) 5%, var(--color-bg-card, #fff));
}

.footprint-map-popup-title {
  display: block;
  overflow: hidden;
  color: var(--color-text-main, #111);
  text-overflow: ellipsis;
  white-space: nowrap;
  padding-right: 22px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
}

.footprint-map-popup-meta {
  display: flex;
  color: var(--color-text-sub, #666);
  justify-content: space-between;
  align-items:  center;
  gap: 14px;
  min-width: 0;
  margin-top: 9px;
  font-size: 13px;
}

.footprint-map-popup-location {
  display: flex;
  align-items:  center;
  gap: 7px;
  min-width: 0;
}

.footprint-map-popup-location img {
  object-fit: cover;
  flex: none;
  width: 24px;
  height: 16px;
  box-shadow: 0 0 0 1px #0f172a14;
}

.footprint-map-popup-location span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.footprint-map-popup-meta time {
  color: var(--color-text-dim, #9ca3af);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  flex: none;
}

.footprint-timeline-wrap {
  position: relative;
}

.footprint-link-lines {
  position: absolute;
  z-index: 5;
  color: var(--color-primary, #0052d9);
  overflow: visible;
  pointer-events: none;
  width: 100%;
  height: 100%;
  inset: 0;
}

.footprint-link-line {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-dasharray: 6 6;
  stroke-linecap: round;
  opacity: .82;
}

.footprint-timeline {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 18px;
}

.footprint-card {
  position: relative;
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--color-border, #ddd);
  background: var(--color-bg-card, #fff);
  transition: box-shadow .2s, transform .2s;
}

.footprint-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px #0f172a14;
}

.footprint-card.is-linkable {
  cursor: pointer;
}

.footprint-card.is-active {
  z-index: 4;
  box-shadow: 0 8px 24px #0f172a1a;
}

.footprint-card-pulse {
  position: absolute;
  z-index: 6;
  color: var(--color-primary, #0052d9);
  pointer-events: none;
  width: 58px;
  height: 58px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.footprint-card-pulse svg {
  display: block;
  stroke: currentColor;
  filter: drop-shadow(0 2px 8px #0052d933);
  width: 100%;
  height: 100%;
}

.footprint-card-cover {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--color-bg-soft, #f5f5f5);
}

.footprint-card-cover img {
  display: block;
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.footprint-card-order {
  position: absolute;
  color: #ffffffe6;
  text-shadow: 0 2px 8px #00000059;
  font-size: 34px;
  font-weight: 900;
  line-height: 1;
  bottom: 4px;
  right: 8px;
}

.footprint-card-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 16px 16px;
}

.footprint-card-body strong {
  display: block;
  overflow: hidden;
  color: var(--color-text-main, #111);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
}

.footprint-card-title {
  display: block;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.footprint-card-meta {
  display: flex;
  justify-content: space-between;
  align-items:  center;
  gap: 12px;
  min-width: 0;
}

.footprint-card-location {
  display: flex;
  color: var(--color-text-sub, #666);
  text-align: left;
  background: none;
  border: 0;
  flex: auto;
  align-items:  center;
  gap: 6px;
  min-width: 0;
  padding: 0;
  font-size: 12px;
}

.footprint-card-location span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}

.footprint-card-location img {
  object-fit: cover;
  flex: none;
  width: 22px;
  height: 15px;
}

.footprint-card-location i {
  color: var(--color-primary, #0052d9);
  flex: none;
  font-size: 11px;
}

.footprint-card-meta time {
  color: var(--color-text-dim, #999);
  font-variant-numeric: tabular-nums;
  flex: none;
  font-size: 12px;
  line-height: 1;
}

@media (max-width: 720px) {
  .footprint-page-body {
    padding: 0 18px 18px;
  }

  .footprint-page .blog-page-title-side {
    width: 100%;
  }

  .footprint-map {
    height: 360px;
  }
}

.coding-page {
  --coding-content-width: min(1520px, calc(100% - 96px));
  background: var(--color-bg-card, #fff);
  color: var(--color-text-main, #111);
}

.coding-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 260px);
  border-bottom: 1px solid var(--color-border, #d4d4d4);
  background-color: var(--color-bg-card, #fff);
  background-image: linear-gradient(#00000006 1px, #0000 1px), linear-gradient(90deg, #00000006 1px, #0000 1px);
  background-size: 12px 12px;
  align-items:  end;
  gap: 28px;
  padding: 14px 32px 44px;
}

.coding-hero-copywrap {
  min-width: 0;
}

.coding-eyebrow, .coding-section-head span, .coding-day-title, .coding-event-code, .coding-heatmap-legend, .coding-profile-kicker, .coding-repo-meta, .coding-section-head time {
  letter-spacing: 0;
  font-family: Google Sans Code, ui-monospace, SFMono-Regular, Menlo, monospace;
}

.coding-eyebrow {
  display: inline-flex;
  border: 1px solid var(--color-border, #d4d4d4);
  color: var(--color-primary, #3a52b8);
  background: #ffffffb8;
  align-items:  center;
  margin-bottom: 22px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 700;
}

.coding-hero-title {
  display: grid;
  color: var(--color-text-main, #111);
  letter-spacing: 0;
  gap: 10px;
  max-width: 1040px;
  margin: 0;
  font-family: Newsreader, Georgia, serif;
  font-weight: 400;
  line-height: 1;
}

.coding-hero-title span {
  font-size: 72px;
}

.coding-hero-title em {
  color: #8f2f24;
  font-size: 42px;
  font-style: italic;
  font-weight: 300;
  line-height: 1.08;
}

.coding-hero-title em, .coding-section-head h3 em {
  color: #8f2f24;
  font-style: italic;
  font-weight: 300;
}

.coding-hero-copy {
  display: grid;
  color: var(--color-text-sub, #555);
  gap: 4px;
  max-width: 720px;
  margin: 18px 0 0;
  font-family: Newsreader, Georgia, serif;
  font-size: 22px;
  font-weight: 300;
  line-height: 1.45;
}

.coding-hero-aside {
  display: grid;
  color: var(--color-text-sub, #555);
  text-align: right;
  text-transform: uppercase;
  justify-items: end;
  gap: 6px;
  padding-bottom: 4px;
  font-family: Google Sans Code, ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
}

.coding-hero-aside strong {
  color: var(--color-text-main, #111);
  text-transform: none;
  font-family: Newsreader, Georgia, serif;
  font-size: 54px;
  font-weight: 400;
  line-height: 1;
}

.coding-hero-aside small {
  color: var(--color-text-dim, #888c93);
  font-size: 11px;
}

.coding-notice {
  display: flex;
  border: 1px solid var(--color-border, #d4d4d4);
  background: var(--color-bg-soft, #f5f5f5);
  color: var(--color-text-sub, #555);
  align-items:  center;
  gap: 10px;
  margin: 24px 32px 0;
  padding: 14px 16px;
  font-size: 14px;
  line-height: 1.6;
}

.coding-notice i {
  color: var(--color-primary, #3a52b8);
}

.coding-section, .coding-grid {
  width: var(--coding-content-width);
  margin-inline-start: auto;
  margin-inline-end: auto;
}

.coding-section {
  padding: 38px 0;
}

.coding-section-head {
  display: flex;
  justify-content: space-between;
  align-items:  flex-start;
  gap: 24px;
  margin-bottom: 28px;
}

.coding-section-head.compact {
  margin-bottom: 18px;
}

.coding-section-head span, .coding-section-head time {
  color: var(--color-text-sub, #555);
  font-size: 12px;
  font-weight: 500;
}

.coding-section-head h3 {
  letter-spacing: 0;
  margin: 8px 0 0;
  font-family: Newsreader, Georgia, serif;
  font-size: 34px;
  font-weight: 400;
  line-height: 1.12;
}

.coding-heatmap-side {
  display: flex;
  flex: none;
  justify-content: flex-end;
  align-items:  center;
}

.coding-heatmap-avatar {
  display: block;
  border: 1px solid var(--color-border, #d4d4d4);
  object-fit: cover;
  width: 52px;
  height: 52px;
}

.coding-heatmap-scroll {
  overflow-x: auto;
  width: 100%;
  padding-bottom: 4px;
}

.coding-heatmap {
  display: flex;
  gap: 2px;
  width: 100%;
}

.coding-heatmap-week {
  display: flex;
  flex-direction: column;
  flex: 1 0 0;
  gap: 2px;
  min-width: 0;
}

.coding-heatmap-cell {
  display: block;
  aspect-ratio: 1;
  background: #e9edf3;
  width: 100%;
}

.coding-heatmap-cell.level-blank {
  background: none;
}

.coding-heatmap-cell.level-1 {
  background: #d6e2f3;
}

.coding-heatmap-cell.level-2 {
  background: #9db8da;
}

.coding-heatmap-cell.level-3 {
  background: #5f86c4;
}

.coding-heatmap-cell.level-4 {
  background: var(--color-primary, #3a52b8);
}

.coding-heatmap-legend {
  display: flex;
  color: var(--color-text-sub, #555);
  align-items:  center;
  gap: 6px;
  margin-top: 14px;
  font-size: 11px;
}

.coding-heatmap-legend i {
  background: #e9edf3;
  width: 11px;
  height: 11px;
}

.coding-heatmap-legend i.level-1 {
  background: #d6e2f3;
}

.coding-heatmap-legend i.level-2 {
  background: #9db8da;
}

.coding-heatmap-legend i.level-3 {
  background: #5f86c4;
}

.coding-heatmap-legend i.level-4 {
  background: var(--color-primary, #3a52b8);
}

.coding-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
  border-top: 1px solid var(--color-border, #d4d4d4);
  gap: 44px;
}

.coding-grid > .coding-section {
  width: 100%;
  margin: 0;
}

.coding-day {
  margin-bottom: 28px;
}

.coding-day-title {
  color: var(--color-text-main, #111);
  margin-bottom: 10px;
  font-size: 12px;
  font-weight: 700;
}

.coding-event, .coding-repo {
  color: inherit;
  text-decoration: none;
}

.coding-event {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) 52px;
  border-top: 1px solid var(--color-border, #d4d4d4);
  align-items:  center;
  gap: 12px;
  min-height: 44px;
}

.coding-event:last-child {
  border-bottom: 1px solid var(--color-border, #d4d4d4);
}

.coding-event-code {
  display: inline-flex;
  border: 1px solid var(--color-border, #d4d4d4);
  color: var(--color-primary, #3a52b8);
  border-radius: 999px;
  justify-content: center;
  align-items:  center;
  width: -moz-fit-content;
  width: fit-content;
  min-width: 34px;
  height: 24px;
  font-size: 11px;
  font-weight: 700;
}

.coding-event-code.code-push {
  color: var(--color-primary, #3a52b8);
  background: #3a52b814;
  border-color: #3a52b847;
}

.coding-event-code.code-com {
  color: #111827;
  background: #1118270f;
  border-color: #11182733;
}

.coding-event-code.code-cmt {
  color: #92400e;
  background: #b4530914;
  border-color: #b4530947;
}

.coding-event-code.code-pr {
  color: #6b21a8;
  background: #7e22ce14;
  border-color: #7e22ce47;
}

.coding-event-code.code-rev {
  color: #0f766e;
  background: #0d948814;
  border-color: #0d948847;
}

.coding-event-code.code-iss {
  color: #b91c1c;
  background: #dc262612;
  border-color: #dc262642;
}

.coding-event-code.code-new {
  color: #15803d;
  background: #16a34a14;
  border-color: #16a34a47;
}

.coding-event-code.code-del {
  color: #be123c;
  background: #f43f5e14;
  border-color: #f43f5e47;
}

.coding-event-code.code-fork {
  color: #4b5563;
  background: #4b556314;
  border-color: #4b55633d;
}

.coding-event-code.code-star {
  color: #a16207;
  background: #ca8a041a;
  border-color: #ca8a044d;
}

.coding-event-text {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-width: 0;
}

.coding-event-text strong, .coding-event-text em {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.coding-event-text strong {
  flex: 0 auto;
  font-size: 13px;
  font-weight: 500;
}

.coding-event-text em {
  color: var(--color-text-sub, #555);
  min-width: 0;
  font-size: 13px;
  font-style: normal;
}

.coding-event time {
  color: var(--color-text-dim, #888c93);
  text-align: right;
  font-family: Google Sans Code, ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
}

.coding-repos {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.coding-repo {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  border-top: 1px solid var(--color-border, #d4d4d4);
  gap: 12px;
  padding: 16px 0;
}

.coding-repo:last-child {
  border-bottom: 1px solid var(--color-border, #d4d4d4);
}

.coding-repo h4 {
  overflow: hidden;
  color: var(--color-text-main, #111);
  text-overflow: ellipsis;
  white-space: nowrap;
  margin: 0;
  font-family: Newsreader, Georgia, serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.1;
}

.coding-repo p {
  overflow: hidden;
  color: var(--color-text-sub, #555);
  text-overflow: ellipsis;
  white-space: nowrap;
  margin: 6px 0 0;
  font-size: 13px;
  line-height: 1.5;
}

.coding-repo-meta {
  display: flex;
  color: var(--color-text-dim, #888c93);
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items:  center;
  gap: 14px;
}

.coding-repo-meta span {
  display: inline-flex;
  color: inherit;
  border: 0;
  align-items:  center;
  gap: 5px;
  padding: 0;
  font-size: 11px;
  line-height: 1.2;
}

.coding-repo-meta i {
  color: var(--color-text-dim, #888c93);
  font-size: 10px;
}

.coding-projects-section {
  border-top: 1px solid var(--color-border, #d4d4d4);
}

.coding-projects {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
  gap: 32px 44px;
}

.coding-project {
  border-top: 1px solid var(--color-border, #d4d4d4);
  min-width: 0;
}

.coding-project-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  color: inherit;
  text-decoration: none;
  gap: 18px;
  padding: 18px 0;
}

.coding-project h4 {
  overflow: hidden;
  color: var(--color-text-main, #111);
  text-overflow: ellipsis;
  white-space: nowrap;
  margin: 0;
  font-family: Newsreader, Georgia, serif;
  font-size: 28px;
  font-weight: 400;
  line-height: 1.1;
}

.coding-project p {
  overflow: hidden;
  color: var(--color-text-sub, #555);
  text-overflow: ellipsis;
  white-space: nowrap;
  margin: 7px 0 0;
  font-size: 13px;
  line-height: 1.5;
}

.coding-project-actions {
  border-bottom: 1px solid var(--color-border, #d4d4d4);
}

.coding-project-actions .coding-event {
  grid-template-columns: 52px minmax(0, 1fr) 52px;
  min-height: 40px;
}

.coding-project-empty {
  display: flex;
  border-top: 1px solid var(--color-border, #d4d4d4);
  color: var(--color-text-dim, #888c93);
  align-items:  center;
  min-height: 40px;
  font-size: 13px;
}

.coding-log-section {
  border-top: 1px solid var(--color-border, #d4d4d4);
}

.coding-log {
  display: flex;
  flex-direction: column;
  gap: 54px;
}

.coding-log-bucket {
  display: flex;
  flex-direction: column;
  gap: 36px;
}

.coding-log-bucket-head {
  display: flex;
  border-bottom: 1px dashed var(--color-border, #d4d4d4);
  align-items: baseline;
  gap: 10px;
  padding-bottom: 10px;
}

.coding-log-bucket-head strong {
  letter-spacing: .02em;
  color: var(--color-text-main, #1a1a1a);
  font-size: 16px;
  font-weight: 700;
}

.coding-log-bucket-head span {
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--color-text-dim, #888);
  font-size: 11px;
}

.coding-log-day {
  min-width: 0;
}

.coding-log-day-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 24px;
  margin-bottom: 20px;
}

.coding-log-day-kicker {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
  font-family: Google Sans Code, ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px;
  line-height: 1.4;
}

.coding-log-day-kicker strong {
  color: var(--color-text-main, #111);
  font-weight: 700;
}

.coding-log-day-kicker span, .coding-log-day-head time {
  color: var(--color-text-dim, #888c93);
  font-weight: 500;
}

.coding-log-day-head time {
  text-align: right;
  font-family: Google Sans Code, ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
}

.coding-log-day-head p {
  grid-column: 1 / -1;
  color: var(--color-text-sub, #555);
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
}

.coding-log-repos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 42px 48px;
}

.coding-log-repo {
  min-width: 0;
}

.coding-log-repo-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  border-bottom: 1px solid var(--color-border, #d4d4d4);
  color: inherit;
  text-decoration: none;
  align-items:  center;
  gap: 18px;
  padding-bottom: 10px;
}

.coding-log-repo-name {
  overflow: hidden;
  color: var(--color-text-main, #111);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: Google Sans Code, ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.35;
}

.coding-log-counts {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items:  center;
  gap: 6px;
}

.coding-log-counts .coding-event-code {
  min-width: 0;
  padding: 0 9px;
}

.coding-log-repo-summary {
  color: var(--color-text-sub, #555);
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.6;
}

.coding-log-events {
  margin-top: 12px;
}

.coding-log-events .coding-event {
  grid-template-columns: 52px minmax(0, 1fr) 52px;
  min-height: 40px;
}

.coding-empty {
  display: flex;
  border: 1px dashed var(--color-border, #d4d4d4);
  color: var(--color-text-dim, #888c93);
  align-items:  center;
  min-height: 120px;
  padding: 16px;
  font-size: 13px;
}

@media (max-width: 900px) {
  .coding-page {
    --coding-content-width: calc(100% - 36px);
  }

  .coding-hero {
    grid-template-columns: 1fr;
    padding: 18px 20px 34px;
  }

  .coding-hero-title {
    gap: 12px;
  }

  .coding-hero-title span {
    font-size: 54px;
  }

  .coding-hero-title em {
    font-size: 32px;
  }

  .coding-hero-copy {
    font-size: 20px;
  }

  .coding-hero-aside {
    text-align: left;
    justify-items: start;
  }

  .coding-section, .coding-grid {
    width: var(--coding-content-width);
  }

  .coding-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .coding-projects {
    grid-template-columns: 1fr;
  }

  .coding-log-repos {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .coding-log-day-head {
    grid-template-columns: 1fr;
  }

  .coding-log-day-head time {
    text-align: left;
  }
}

@media (max-width: 560px) {
  .coding-hero-title {
    gap: 10px;
  }

  .coding-hero-title span {
    font-size: 42px;
  }

  .coding-hero-title em {
    font-size: 25px;
  }

  .coding-event, .coding-log-events .coding-event {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .coding-event time {
    display: none;
  }

  .coding-event-text {
    flex-direction: column;
    align-items:  flex-start;
    gap: 2px;
  }

  .coding-project-head, .coding-log-repo-head {
    grid-template-columns: 1fr;
  }

  .coding-log-counts, .coding-repo-meta {
    justify-content: flex-start;
  }

  .coding-projects {
    grid-template-columns: minmax(0, 1fr);
  }
}

.friend-link-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}

.friend-link-compact-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
}

.friend-link-card-item, .friend-link-compact-item {
  color: inherit;
  text-decoration: none;
  background: #fff;
  border: 1px solid #e5e5e5;
  min-width: 0;
  transition: border-color .15s, box-shadow .15s, transform .15s;
}

.friend-link-card-item:hover, .friend-link-compact-item:hover {
  border-color: var(--color-primary, #0052d9);
  box-shadow: 0 2px 12px #0052d914;
}

.friend-link-card-item {
  display: flex;
  align-items:  center;
  gap: 14px;
  padding: 16px 20px;
}

.friend-link-compact-item {
  display: flex;
  align-items:  center;
  gap: 10px;
  padding: 10px 12px;
}

.friend-link-logo {
  object-fit: cover;
  background: #f5f5f5;
  flex: none;
  width: 44px;
  height: 44px;
}

.friend-link-compact-item .friend-link-logo {
  width: 30px;
  height: 30px;
}

.friend-link-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #1a1a1a;
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
}

.friend-link-description {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #888;
  margin-top: 2px;
  font-size: 12px;
}

.friend-link-external {
  color: #ccc;
  flex: none;
  font-size: 12px;
}

.blog-prose .utter-moment-embed, .utter-moment-embed {
  --moment-accent: var(--color-primary, #0052d9);
  border: 1px solid #0052d92e;
  border-left: 4px solid var(--moment-accent);
  color: inherit;
  overflow: hidden;
  background: linear-gradient(135deg, #0052d90f, #fffffff2);
  margin: 22px 0;
  padding: 18px 20px;
}

.utter-moment-embed__head {
  display: flex;
  color: inherit;
  text-decoration: none;
  align-items:  center;
  gap: 9px;
}

.utter-moment-embed__head:hover {
  color: var(--moment-accent);
}

.utter-moment-embed__icon {
  display: inline-flex;
  background: var(--moment-accent);
  color: #fff;
  justify-content: center;
  align-items:  center;
  width: 28px;
  height: 28px;
  font-size: 13px;
}

.utter-moment-embed__label {
  letter-spacing: .08em;
  font-size: 13px;
  font-weight: 700;
}

.utter-moment-embed__meta {
  color: #8a94a6;
  margin-left: auto;
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, monospace;
  font-size: 12px;
  font-weight: 500;
}

.utter-moment-embed__content {
  color: #1f2937;
  white-space: pre-wrap;
  word-break: break-word;
  margin-top: 14px;
  font-size: 15px;
  line-height: 1.85;
}

.utter-moment-embed__images {
  position: relative;
  display: grid;
  gap: 4px;
  margin-top: 14px;
}

.utter-moment-embed__images--1 {
  grid-template-columns: 1fr;
}

.utter-moment-embed__images--2, .utter-moment-embed__images--3, .utter-moment-embed__images--4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.utter-moment-embed__images img {
  display: block;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  width: 100%;
}

.utter-moment-embed__more {
  position: absolute;
  color: #fff;
  background: #0000009e;
  padding: 3px 8px;
  font-size: 12px;
  bottom: 8px;
  right: 8px;
}

.utter-moment-embed__footer {
  display: flex;
  color: #64748b;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
  font-size: 12px;
}

.utter-moment-embed__footer span {
  background: #ffffffb3;
  border: 1px solid #94a3b840;
  padding: 3px 8px;
}

.utter-moment-embed--loading, .utter-moment-embed--missing {
  background: #f8fafc;
  border-left-color: #94a3b8;
}

.blog-prose .github-repo-card, .github-repo-card {
  --github-card-height: 176px;
  --github-language-color: #94a3b8;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--github-card-height);
  height: var(--github-card-height);
  color: #0f172a;
  text-decoration: none;
  overflow: hidden;
  background: linear-gradient(135deg, #fff 0%, #f8fafc 100%);
  border: 1px solid #0f172a1f;
  gap: 0;
  margin: 24px 0;
  padding: 0;
  transition: border-color .18s, box-shadow .18s;
  box-shadow: 0 12px 30px #0f172a0f;
}

.blog-prose a.github-repo-card, .blog-prose a.github-repo-card:hover, .blog-prose a.github-repo-card *, [data-theme] .blog-prose a.github-repo-card, [data-theme] .blog-prose a.github-repo-card:hover, [data-theme] .blog-prose a.github-repo-card * {
  text-decoration: none !important;
  text-decoration-line: none !important;
}

.blog-prose .github-repo-card:hover, .github-repo-card:hover {
  border-color: #0052d952;
  box-shadow: 0 18px 42px #0f172a1a;
}

.github-repo-card__content {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 18px;
}

.github-repo-card__kicker {
  display: inline-flex;
  color: #0052d9;
  letter-spacing: .04em;
  align-items:  center;
  gap: 7px;
  width: -moz-fit-content;
  width: fit-content;
  margin-bottom: 10px;
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, monospace;
  font-size: 12px;
  font-weight: 700;
}

.github-repo-card__title {
  overflow: hidden;
  color: #0f172a;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 20px;
  font-weight: 750;
  line-height: 1.28;
}

.github-repo-card__desc {
  overflow: hidden;
  color: #475569;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin: 10px 0 14px;
  font-size: 14px;
  line-height: 1.65;
}

.github-repo-card__meta {
  display: flex;
  overflow: hidden;
  color: #64748b;
  flex-wrap: nowrap;
  gap: 8px;
  margin-top: auto;
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, monospace;
  font-size: 12px;
}

.github-repo-card__meta span {
  display: inline-flex;
  background: #ffffffc2;
  border: 1px solid #94a3b847;
  align-items:  center;
  gap: 4px;
  padding: 4px 8px;
}

.github-repo-card__loading {
  display: inline-flex;
  color: #0052d9;
  background: #0052d90d;
  border: 1px solid #0052d929;
  align-items:  center;
  gap: 8px;
  width: -moz-fit-content;
  width: fit-content;
  margin: auto 0;
  padding: 5px 10px;
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, monospace;
  font-size: 12px;
  line-height: 1;
}

.github-repo-card__status {
  display: inline-flex;
  color: #64748b;
  background: #ffffffb8;
  border: 1px solid #94a3b847;
  align-items:  center;
  gap: 7px;
  width: -moz-fit-content;
  width: fit-content;
  margin: auto 0;
  padding: 5px 10px;
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, monospace;
  font-size: 12px;
  line-height: 1;
}

.github-repo-card__spinner {
  animation: github-repo-card-spin .75s linear infinite;
  border: 2px solid #0052d92e;
  border-top-color: #0052d9;
  border-radius: 999px;
  width: 14px;
  height: 14px;
}

@keyframes github-repo-card-spin {
  to {
    transform: rotate(360deg);
  }
}

.github-repo-card__visual {
  position: relative;
  overflow: hidden;
  display: grid;
  background: #f8fafc;
  border: 0;
  border-left: 1px solid #94a3b833;
  align-self: stretch;
  place-items:  center;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.github-repo-card__avatar-shell {
  display: flex;
  color: #0f172a;
  overflow: hidden;
  flex: 0 0 78px;
  justify-content: center;
  align-items:  center;
  width: 78px;
  height: 78px;
  margin: auto;
  font-size: 38px;
}

.blog-prose .github-repo-card__avatar, .github-repo-card__avatar, [data-theme] .blog-prose .github-repo-card__avatar {
  display: block;
  object-fit: cover;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  margin: 0 !important;
}

.github-repo-card__language-bar {
  position: absolute;
  display: flex;
  overflow: hidden;
  background: var(--github-language-color);
  z-index: 2;
  height: 5px;
  bottom: 0;
  left: 0;
  right: 0;
}

.github-repo-card__language-bar span {
  display: block;
  min-width: 1px;
  height: 100%;
}

.blog-prose .x-post-embed, .x-post-embed {
  margin: 24px 0;
}

.x-post-embed :where(.twitter-tweet) {
  margin: 0 auto !important;
}

.blog-prose .x-post-embed__fallback, .x-post-embed__fallback {
  display: flex;
  color: #0f172a;
  background: #fff;
  border: 1px solid #0f172a1f;
  align-items:  center;
  gap: 14px;
  padding: 18px 20px;
  text-decoration: none !important;
}

.x-post-embed__fallback span {
  display: inline-flex;
  color: #111827;
  align-items:  center;
  gap: 7px;
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, monospace;
  font-size: 12px;
  font-weight: 700;
}

.x-post-embed__fallback strong {
  font-size: 15px;
  font-weight: 650;
}

.x-post-embed.is-loaded .x-post-embed__fallback {
  display: none;
}

@media (max-width: 1200px) {
  .friend-link-compact-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .friend-link-card-grid, .friend-link-compact-grid {
    grid-template-columns: 1fr;
  }

  .blog-prose .github-repo-card, .github-repo-card {
    grid-template-columns: 1fr;
    gap: 14px;
    height: auto;
    padding: 0;
  }

  .github-repo-card__title {
    white-space: normal;
    font-size: 17px;
  }

  .github-repo-card__visual {
    aspect-ratio: auto;
    border: 1px solid #94a3b82e;
    width: 100%;
    height: 96px;
    min-height: 0;
  }

  .github-repo-card__avatar-shell {
    width: 54px;
    height: 54px;
    font-size: 28px;
  }
}
