@font-face{font-feature-settings:"liga","ss03","ss02","ss01","onum";font-family:Space Grotesk;font-weight:300 400 500 600 700;src:url(/assets/fonts/SpaceGrotestk.woff2) format("woff2 supports variations"),url(/assets/fonts/SpaceGrotesk.woff2) format("woff2-variations")}:root{--color-inherit:inherit;--color-current:currentColor;--color-transparent:transparent;--color-black:#000;--color-white:#fff;--color-slate-50:#f8fafc;--color-slate-100:#f1f5f9;--color-slate-200:#e2e8f0;--color-slate-300:#cbd5e1;--color-slate-400:#94a3b8;--color-slate-500:#64748b;--color-slate-600:#475569;--color-slate-700:#334155;--color-slate-800:#1e293b;--color-slate-900:#0f172a;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--color-zinc-50:#fafafa;--color-zinc-100:#f4f4f5;--color-zinc-200:#e4e4e7;--color-zinc-300:#d4d4d8;--color-zinc-400:#a1a1aa;--color-zinc-500:#71717a;--color-zinc-600:#52525b;--color-zinc-700:#3f3f46;--color-zinc-800:#27272a;--color-zinc-900:#18181b;--color-neutral-50:#fafafa;--color-neutral-100:#f5f5f5;--color-neutral-200:#e5e5e5;--color-neutral-300:#d4d4d4;--color-neutral-400:#a3a3a3;--color-neutral-500:#737373;--color-neutral-600:#525252;--color-neutral-700:#404040;--color-neutral-800:#262626;--color-neutral-900:#171717;--color-stone-50:#fafaf9;--color-stone-100:#f5f5f4;--color-stone-200:#e7e5e4;--color-stone-300:#d6d3d1;--color-stone-400:#a8a29e;--color-stone-500:#78716c;--color-stone-600:#57534e;--color-stone-700:#44403c;--color-stone-800:#292524;--color-stone-900:#1c1917;--color-red-50:#fef2f2;--color-red-100:#fee2e2;--color-red-200:#fecaca;--color-red-300:#fca5a5;--color-red-400:#f87171;--color-red-500:#ef4444;--color-red-600:#dc2626;--color-red-700:#b91c1c;--color-red-800:#991b1b;--color-red-900:#7f1d1d;--color-orange-50:#fff7ed;--color-orange-100:#ffedd5;--color-orange-200:#fed7aa;--color-orange-300:#fdba74;--color-orange-400:#fb923c;--color-orange-500:#f97316;--color-orange-600:#ea580c;--color-orange-700:#c2410c;--color-orange-800:#9a3412;--color-orange-900:#7c2d12;--color-amber-50:#fffbeb;--color-amber-100:#fef3c7;--color-amber-200:#fde68a;--color-amber-300:#fcd34d;--color-amber-400:#fbbf24;--color-amber-500:#f59e0b;--color-amber-600:#d97706;--color-amber-700:#b45309;--color-amber-800:#92400e;--color-amber-900:#78350f;--color-yellow-50:#fefce8;--color-yellow-100:#fef9c3;--color-yellow-200:#fef08a;--color-yellow-300:#fde047;--color-yellow-400:#facc15;--color-yellow-500:#eab308;--color-yellow-600:#ca8a04;--color-yellow-700:#a16207;--color-yellow-800:#854d0e;--color-yellow-900:#713f12;--color-lime-50:#f7fee7;--color-lime-100:#ecfccb;--color-lime-200:#d9f99d;--color-lime-300:#bef264;--color-lime-400:#a3e635;--color-lime-500:#84cc16;--color-lime-600:#65a30d;--color-lime-700:#4d7c0f;--color-lime-800:#3f6212;--color-lime-900:#365314;--color-green-50:#f0fdf4;--color-green-100:#dcfce7;--color-green-200:#bbf7d0;--color-green-300:#86efac;--color-green-400:#4ade80;--color-green-500:#22c55e;--color-green-600:#16a34a;--color-green-700:#15803d;--color-green-800:#166534;--color-green-900:#14532d;--color-emerald-50:#ecfdf5;--color-emerald-100:#d1fae5;--color-emerald-200:#a7f3d0;--color-emerald-300:#6ee7b7;--color-emerald-400:#34d399;--color-emerald-500:#10b981;--color-emerald-600:#059669;--color-emerald-700:#047857;--color-emerald-800:#065f46;--color-emerald-900:#064e3b;--color-teal-50:#f0fdfa;--color-teal-100:#ccfbf1;--color-teal-200:#99f6e4;--color-teal-300:#5eead4;--color-teal-400:#2dd4bf;--color-teal-500:#14b8a6;--color-teal-600:#0d9488;--color-teal-700:#0f766e;--color-teal-800:#115e59;--color-teal-900:#134e4a;--color-cyan-50:#ecfeff;--color-cyan-100:#cffafe;--color-cyan-200:#a5f3fc;--color-cyan-300:#67e8f9;--color-cyan-400:#22d3ee;--color-cyan-500:#06b6d4;--color-cyan-600:#0891b2;--color-cyan-700:#0e7490;--color-cyan-800:#155e75;--color-cyan-900:#164e63;--color-sky-50:#f0f9ff;--color-sky-100:#e0f2fe;--color-sky-200:#bae6fd;--color-sky-300:#7dd3fc;--color-sky-400:#38bdf8;--color-sky-500:#0ea5e9;--color-sky-600:#0284c7;--color-sky-700:#0369a1;--color-sky-800:#075985;--color-sky-900:#0c4a6e;--color-blue-50:#eff6ff;--color-blue-100:#dbeafe;--color-blue-200:#bfdbfe;--color-blue-300:#93c5fd;--color-blue-400:#60a5fa;--color-blue-500:#3b82f6;--color-blue-600:#2563eb;--color-blue-700:#1d4ed8;--color-blue-800:#1e40af;--color-blue-900:#1e3a8a;--color-indigo-50:#eef2ff;--color-indigo-100:#e0e7ff;--color-indigo-200:#c7d2fe;--color-indigo-300:#a5b4fc;--color-indigo-400:#818cf8;--color-indigo-500:#6366f1;--color-indigo-600:#4f46e5;--color-indigo-700:#4338ca;--color-indigo-800:#3730a3;--color-indigo-900:#312e81;--color-violet-50:#f5f3ff;--color-violet-100:#ede9fe;--color-violet-200:#ddd6fe;--color-violet-300:#c4b5fd;--color-violet-400:#a78bfa;--color-violet-500:#8b5cf6;--color-violet-600:#7c3aed;--color-violet-700:#6d28d9;--color-violet-800:#5b21b6;--color-violet-900:#4c1d95;--color-purple-50:#faf5ff;--color-purple-100:#f3e8ff;--color-purple-200:#e9d5ff;--color-purple-300:#d8b4fe;--color-purple-400:#c084fc;--color-purple-500:#a855f7;--color-purple-600:#9333ea;--color-purple-700:#7e22ce;--color-purple-800:#6b21a8;--color-purple-900:#581c87;--color-fuchsia-50:#fdf4ff;--color-fuchsia-100:#fae8ff;--color-fuchsia-200:#f5d0fe;--color-fuchsia-300:#f0abfc;--color-fuchsia-400:#e879f9;--color-fuchsia-500:#d946ef;--color-fuchsia-600:#c026d3;--color-fuchsia-700:#a21caf;--color-fuchsia-800:#86198f;--color-fuchsia-900:#701a75;--color-pink-50:#fdf2f8;--color-pink-100:#fce7f3;--color-pink-200:#fbcfe8;--color-pink-300:#f9a8d4;--color-pink-400:#f472b6;--color-pink-500:#ec4899;--color-pink-600:#db2777;--color-pink-700:#be185d;--color-pink-800:#9d174d;--color-pink-900:#831843;--color-rose-50:#fff1f2;--color-rose-100:#ffe4e6;--color-rose-200:#fecdd3;--color-rose-300:#fda4af;--color-rose-400:#fb7185;--color-rose-500:#f43f5e;--color-rose-600:#e11d48;--color-rose-700:#be123c;--color-rose-800:#9f1239;--color-rose-900:#881337;--color-lightBlue-50:#f0f9ff;--color-lightBlue-100:#e0f2fe;--color-lightBlue-200:#bae6fd;--color-lightBlue-300:#7dd3fc;--color-lightBlue-400:#38bdf8;--color-lightBlue-500:#0ea5e9;--color-lightBlue-600:#0284c7;--color-lightBlue-700:#0369a1;--color-lightBlue-800:#075985;--color-lightBlue-900:#0c4a6e;--color-warmGray-50:#fafaf9;--color-warmGray-100:#f5f5f4;--color-warmGray-200:#e7e5e4;--color-warmGray-300:#d6d3d1;--color-warmGray-400:#a8a29e;--color-warmGray-500:#78716c;--color-warmGray-600:#57534e;--color-warmGray-700:#44403c;--color-warmGray-800:#292524;--color-warmGray-900:#1c1917;--color-trueGray-50:#fafafa;--color-trueGray-100:#f5f5f5;--color-trueGray-200:#e5e5e5;--color-trueGray-300:#d4d4d4;--color-trueGray-400:#a3a3a3;--color-trueGray-500:#737373;--color-trueGray-600:#525252;--color-trueGray-700:#404040;--color-trueGray-800:#262626;--color-trueGray-900:#171717;--color-coolGray-50:#f9fafb;--color-coolGray-100:#f3f4f6;--color-coolGray-200:#e5e7eb;--color-coolGray-300:#d1d5db;--color-coolGray-400:#9ca3af;--color-coolGray-500:#6b7280;--color-coolGray-600:#4b5563;--color-coolGray-700:#374151;--color-coolGray-800:#1f2937;--color-coolGray-900:#111827;--color-blueGray-50:#f8fafc;--color-blueGray-100:#f1f5f9;--color-blueGray-200:#e2e8f0;--color-blueGray-300:#cbd5e1;--color-blueGray-400:#94a3b8;--color-blueGray-500:#64748b;--color-blueGray-600:#475569;--color-blueGray-700:#334155;--color-blueGray-800:#1e293b;--color-blueGray-900:#0f172a;--space-size-4xs:clamp(0.125rem,calc(0.12rem + 0.03vw),0.21rem);--space-size-3xs:clamp(0.25rem,calc(0.24rem + 0.06vw),0.31rem);--space-size-2xs:clamp(0.5rem,calc(0.48rem + 0.13vw),0.63rem);--space-size-xs:clamp(0.75rem,calc(0.71rem + 0.19vw),0.94rem);--space-size-s:clamp(1rem,calc(0.95rem + 0.25vw),1.25rem);--space-size-m:clamp(1.5rem,calc(1.43rem + 0.38vw),1.88rem);--space-size-l:clamp(2rem,calc(1.9rem + 0.5vw),2.5rem);--space-size-xl:clamp(3rem,calc(2.85rem + 0.75vw),3.75rem);--space-size-2xl:clamp(4rem,calc(3.8rem + 1vw),5rem);--space-size-3xl:clamp(6rem,calc(5.7rem + 1.5vw),7.5rem);--text-size-2xs:clamp(0.56rem,calc(0.72rem - 0.14vw),0.69rem);--text-size-xs:clamp(0.83rem,0.83rem,0.83rem);--text-size-s:clamp(1rem,calc(0.95rem + 0.25vw),1.25rem);--text-size-m:clamp(1.2rem,calc(1.07rem + 0.68vw),1.88rem);--text-size-l:clamp(1.44rem,calc(1.17rem + 1.37vw),2.81rem);--text-size-xl:clamp(1.73rem,calc(1.23rem + 2.49vw),4.22rem);--text-size-2xl:clamp(2.07rem,calc(1.22rem + 4.25vw),6.33rem);--text-size-3xl:clamp(2.49rem,calc(1.09rem + 7vw),9.49rem);--font-family-sans:Avenir,Montserrat,Corbel,"URW Gothic",source-sans-pro,sans-serif;--font-family-mono:"Space Grotesk",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--screen-sm:640px;--screen-md:768px;--screen-lg:1024px;--screen-xl:1280px;--screen-2xl:1536px;--screen-3xl:1920px}*,:after,:before{box-sizing:border-box}blockquote,body,dd,dl,figure,h1,h2,h3,h4,p{margin:0}[role=list]{list-style:none;margin:0;padding:0}html:focus-within{scroll-behavior:smooth}body{line-height:1.75;min-height:100vh;min-height:100dvh;text-rendering:optimizeSpeed}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}img,picture{display:block;height:auto;max-width:100%}button,input,select,textarea{font:inherit}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}:root{--color-primary:var(--color-neutral-200);--color-secondary:var(--color-neutral-800);--color-decoration:var(--color-amber-200);--color-subtle:var(--color-zinc-400);--color-disabled:var(--color-neutral-400)}.inverse{--color-secondary:var(--color-neutral-100);--color-primary:var(--color-neutral-800);--color-decoration:var(--color-yellow-400);--color-subtle:var(--color-zinc-600);--color-disabled:var(--color-neutral-600)}@media (prefers-color-scheme:light){:root{--color-secondary:var(--color-neutral-100);--color-primary:var(--color-neutral-800);--color-decoration:var(--color-yellow-400);--color-subtle:var(--color-zinc-600);--color-disabled:var(--color-neutral-600)}.inverse{--color-primary:var(--color-neutral-200);--color-secondary:var(--color-neutral-800);--color-decoration:var(--color-amber-200);--color-subtle:var(--color-zinc-400);--color-disabled:var(--color-neutral-400)}}[data-color-scheme=light]{--color-secondary:var(--color-neutral-100);--color-primary:var(--color-neutral-800);--color-decoration:var(--color-yellow-400);--color-subtle:var(--color-zinc-600);--color-disabled:var(--color-neutral-600)}[data-color-scheme=dark],[data-color-scheme=light] .inverse{--color-primary:var(--color-neutral-200);--color-secondary:var(--color-neutral-800);--color-decoration:var(--color-amber-200);--color-subtle:var(--color-zinc-400);--color-disabled:var(--color-neutral-400)}body{background-color:var(--color-secondary);color:var(--color-primary);font-family:var(--font-family-sans);font-size:var(--text-size-s);text-underline-offset:var(--space-size-4xs)}h1,h2,h3,h4,h5{font-weight:700;line-height:1.2;margin:0}h1{word-wrap:normal;font-size:var(--text-size-xl);line-height:1.3;text-align:center;text-underline-offset:var(--space-size-3xs)}h2{font-size:var(--text-size-l)}h2,h3{text-underline-offset:var(--space-size-3xs)}h3{font-size:var(--text-size-m)}a{color:inherit;text-decoration:underline}a:hover{text-decoration-color:var(--color-decoration)}a:visited{color:inherit}a[target=_blank]{display:inline-block;padding-right:1.5ch;position:relative}a[target=_blank]:after{-webkit-font-smoothing:antialiased;content:" \f08e";display:inline-block;font-family:font awesome\ 6 free;font-size:var(--text-size-xs);font-style:normal;font-variant:normal;font-weight:900;padding:0 .3ch;position:absolute;right:0;text-rendering:auto;vertical-align:super;width:2ch}nav{--vertical-spacing:var(--space-size-m);font-size:var(--text-size-s)}header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding-bottom:var(--space-size-s);padding-top:var(--space-size-s)}p{line-height:1.6;max-width:60ch}footer{padding:var(--space-size-l) 0 var(--space-size-s);width:100%}:focus-visible{border-radius:5px;outline:1px solid var(--color-primary);outline-offset:4px}aside{background-color:var(--color-secondary);color:var(--color-primary);padding:var(--space-size-s);width:100%}.grid{grid-gap:var(--grid-spacing,1rem);display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--grid-col-width,250px),1fr))}.grid[data-cols="3"]{--grid-col-width:clamp(12rem,30%,15rem)}.row{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--vertical-spacing,1rem)}.row[data-spacing=between]{justify-content:space-between}.sidebar{display:flex;flex-wrap:wrap;gap:var(--vertical-spacing,1rem)}.sidebar>*{flex-grow:1;flex-shrink:1}[class*=stack]>*+*{-webkit-margin-before:var(--vertical-spacing,1.5rem);margin-block-start:var(--vertical-spacing,1.5rem)}.stack-4xs>*+*{--vertical-spacing:var(--space-size-4xs)}.stack-3xs>*+*{--vertical-spacing:var(--space-size-3xs)}.stack-2xs>*+*{--vertical-spacing:var(--space-size-2xs)}.stack-xs>*+*{--vertical-spacing:var(--space-size-xs)}.stack-sm>*+*{--vertical-spacing:var(--space-size-s)}.stack-md>*+*{--vertical-spacing:var(--space-size-m)}.stack-lg>*+*{--vertical-spacing:var(--space-size-l)}.stack-xl>*+*{--vertical-spacing:var(--space-size-xl)}.stack-2xl>*+*{--vertical-spacing:var(--space-size-2xl)}[class*=wrapper]{margin-left:auto;margin-right:auto;max-width:var(--wrapper-size,var(--screen-3xl));padding-left:var(--wrapper-padding,var(--space-size-3xl));padding-right:var(--wrapper-padding,var(--space-size-3xl))}.wrapper-xs{--wrapper-size:clamp(20rem,calc(10rem + 20vw),40rem);--wrapper-padding:var(--space-size-xs)}.wrapper-sm{--wrapper-size:var(--screen-sm);--wrapper-padding:var(--space-size-s)}.wrapper-md{--wrapper-size:var(--screen-md);--wrapper-padding:var(--space-size-m)}.wrapper-lg{--wrapper-size:var(--screen-lg);--wrapper-padding:var(--space-size-l)}.box,.circle{aspect-ratio:1;height:auto}.circle{border-radius:100%;display:block;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center}.space-between{justify-content:space-between}article .published{color:var(--color-subtle);display:inline-block;font-size:var(--text-size-s);font-style:italic;font-weight:300}article img{-webkit-margin-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-inline-start:auto}article figure img{aspect-ratio:4/3;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center}article ol,article ul{list-style:initial;padding:0 var(--space-size-m)}article .p-summary{display:none}section[data-section=author]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-size-m);justify-content:space-between}section[data-section=author] h2{flex-grow:1;width:100%}section[data-section=author] p{flex-basis:0;flex-grow:999;min-inline-size:70%}section[data-section=author] picture{flex-basis:7rem;flex-grow:1}.blog-nav{border-top:1px solid var(--color-primary);padding-top:var(--space-size-2xs)}.blogroll .blogroll-item{border:1px solid var(--color-primary);padding:var(--space-size-xs)}.blogroll .blogroll-item a{margin-right:2ch}header>*{flex-grow:1}.color-scheme{border:0;display:flex;flex-grow:1;gap:var(--space-size-xs);justify-content:center;justify-self:flex-end;padding:0}.color-scheme input[name=color-scheme],.color-scheme legend{clip:rect(0 0 0 0);position:absolute}.color-scheme label{cursor:pointer}.color-scheme label:has(:not(:checked)){color:var(--color-disabled)}.color-scheme label:has(:focus-visible){border-radius:5%;outline:1px solid var(--color-primary);outline-offset:4px}.color-scheme label:before{-webkit-font-smoothing:antialiased;font-family:font awesome\ 6 free;font-size:var(--text-size-s);font-style:normal;font-variant:normal;font-weight:900;text-rendering:auto}.color-scheme label:has([value=dark]):before{content:"\f186"}.color-scheme label:has([value=light]):before{content:"\f185"}.color-scheme label:has(:checked):before{text-shadow:var(--color-decoration) 1px 0 10px}.home h1:before,.home h2:before,.home h3:before{content:none}.home h1{font-size:var(--text-size-3xl)}.home h2{font-size:var(--text-size-xl)}.home picture{margin-left:auto;margin-right:auto;max-width:clamp(8rem,calc(1.09rem + 10vw),12rem)}.home time{color:var(--color-subtle);display:block;font-size:var(--text-size-s);font-style:italic;font-weight:300}.home p{max-width:50ch}.fa-li{display:inline-block;position:static}.overlaps{gap:0;max-width:30rem;padding-left:1rem;row-gap:var(--space-size-2xs)}.overlaps>*{-webkit-margin-start:-1rem;display:inline-block;margin-inline-start:-1rem;max-width:3rem}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}code[class*=language],pre[class*=language]{white-space:pre-wrap}[data-section=responses] a[target=_blank]{display:inline;padding:0;position:static}[data-section=responses] a[target=_blank]:after{display:none}.rss{flex-grow:0}.rss img,.rss svg{aspect-ratio:1;height:auto;vertical-align:middle;width:20px}.rss:hover svg{background-color:var(--color-primary);color:var(--color-secondary)}.site-title{font-size:var(--text-size-xl);letter-spacing:clamp(-.2rem,1vw,-.5rem);line-height:1;text-decoration:none}.site-title:focus,.site-title:focus-visible,.site-title:hover{outline:0 transparent;-webkit-text-decoration:underline solid var(--color-primary) 2px;text-decoration:underline solid var(--color-primary) 2px}li:has(a[rel=tag]){-webkit-margin-end:1ch;display:inline-block;margin-inline-end:1ch}li:has(a[rel=tag]):not(:last-child):after{content:","}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.my-size-xs{margin-bottom:clamp(.75rem,calc(.71rem + .19vw),.94rem);margin-top:clamp(.75rem,calc(.71rem + .19vw),.94rem)}.mx-auto{margin-left:auto;margin-right:auto}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.contents{display:contents}.h-auto{height:auto}.h-full{height:100%}.w-full{width:100%}.max-w-\[45ch\]{max-width:45ch}.flex-grow{flex-grow:1}.basis-\[50ch\]{flex-basis:50ch}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.items-center{align-items:center}.self-end{align-self:flex-end}.border{border-width:1px}.text-center{text-align:center}.font-normal{font-weight:400}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}