@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--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-orange-300:oklch(83.7% .128 66.29);--color-orange-800:oklch(47% .157 37.304);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-yellow-300:oklch(90.5% .182 98.111);--color-rose-300:oklch(81% .117 11.638);--color-rose-700:oklch(51.4% .222 16.935);--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);--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{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:var(--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:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}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:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}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{vertical-align:middle;display:block}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}::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:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){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 components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.start{inset-inline-start:var(--spacing)}}:root{--color-bg:var(--color-stone-100);--color-bg-subtle:var(--color-stone-200);--color-text:var(--color-stone-700);--color-heading:var(--color-stone-800);--color-text-muted:var(--color-stone-500);--color-border:var(--color-stone-200);--color-link:var(--color-red-600);--color-link-hover:var(--color-red-700);--color-accent:var(--color-red-600);--color-code-bg:var(--color-stone-200);--color-code-inline-bg:var(--color-stone-200)}@media(prefers-color-scheme:dark){:root{--color-bg:var(--color-stone-900);--color-bg-subtle:var(--color-stone-800);--color-text:var(--color-stone-300);--color-heading:var(--color-stone-100);--color-text-muted:var(--color-stone-400);--color-border:var(--color-stone-600);--color-link:var(--color-red-400);--color-link-hover:var(--color-red-400);--color-accent:var(--color-red-500);--color-code-bg:var(--color-stone-800);--color-code-inline-bg:var(--color-stone-800)}}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}body{min-height:100svh;line-height:var(--leading-body);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--step-0);color:var(--color-text);background-color:var(--color-bg);padding-left:3.5vw;padding-right:3.5vw}h1,h2,h3,h4{text-wrap:balance;color:var(--color-heading)}h1,h2{line-height:var(--leading-display)}h3{line-height:var(--leading-heading)}h4{line-height:var(--leading-subheading)}h1{font-size:var(--step-5);font-weight:700}h2{font-size:var(--step-4);font-weight:700}h3{font-size:var(--step-3);font-weight:700}h4{font-size:var(--step-2);font-weight:700}p{text-wrap:pretty}p em{font-size:calc(var(--step-0) + .02em);vertical-align:top;font-weight:400;display:inline-block}a{color:currentColor}img,picture,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}ul[role=list],ol[role=list]{padding:0;list-style:none}:root{--step--2:clamp(1.0104rem, .9513rem + .2956vw, 1.1028rem);--step--1:clamp(1.0785rem, .9752rem + .5166vw, 1.24rem);--step-0:clamp(1.1509rem, .9946rem + .7812vw, 1.395rem);--step-1:clamp(1.228rem, 1.0094rem + 1.0928vw, 1.5695rem);--step-2:clamp(1.3103rem, 1.0189rem + 1.4568vw, 1.7655rem);--step-3:clamp(1.3981rem, 1.0216rem + 1.8823vw, 1.9863rem);--step-4:clamp(1.4914rem, 1.0158rem + 2.3781vw, 2.2346rem);--step-5:clamp(1.5917rem, 1.0015rem + 2.9507vw, 2.5138rem);--step-6:clamp(1.6974rem, .9739rem + 3.6179vw, 2.828rem);--step-7:clamp(1.8109rem, .9336rem + 4.3863vw, 3.1816rem);--step-8:clamp(1.9322rem, .8781rem + 5.2705vw, 3.5792rem);--leading-body:clamp(1.25, 1.2152rem + .1739vw, 1.35);--leading-display:clamp(1, .9652rem + .1739vw, 1.1);--leading-heading:clamp(1.05, 1.0152rem + .1739vw, 1.15);--leading-subheading:clamp(1.1, 1.0652rem + .1739vw, 1.2);--space-3xs:clamp(.2906rem, .2906rem + 0vw, .2906rem);--space-2xs:clamp(.5231rem, .4859rem + .186vw, .5813rem);--space-xs:clamp(.8138rem, .7766rem + .186vw, .8719rem);--space-s:clamp(1.0463rem, .9719rem + .372vw, 1.1625rem);--space-m:clamp(1.5694rem, 1.4578rem + .558vw, 1.7438rem);--space-l:clamp(2.0925rem, 1.9437rem + .744vw, 2.325rem);--space-xl:clamp(3.1388rem, 2.9156rem + 1.116vw, 3.4875rem);--space-2xl:clamp(4.185rem, 3.8874rem + 1.488vw, 4.65rem);--space-3xl:clamp(6.2775rem, 5.8311rem + 2.232vw, 6.975rem);--space-3xs-2xs:clamp(.2906rem, .1046rem + .93vw, .5813rem);--space-2xs-xs:clamp(.5231rem, .2999rem + 1.116vw, .8719rem);--space-xs-s:clamp(.8138rem, .5906rem + 1.116vw, 1.1625rem);--space-s-m:clamp(1.0463rem, .5999rem + 2.232vw, 1.7438rem);--space-m-l:clamp(1.5694rem, 1.0858rem + 2.418vw, 2.325rem);--space-l-xl:clamp(2.0925rem, 1.1997rem + 4.464vw, 3.4875rem);--space-xl-2xl:clamp(3.1388rem, 2.1716rem + 4.836vw, 4.65rem);--space-2xl-3xl:clamp(4.185rem, 2.3994rem + 8.928vw, 6.975rem);--space-s-l:clamp(1.0463rem, .2279rem + 4.092vw, 2.325rem)}.offset{grid-template-columns:3fr 2fr;display:grid}@media(max-width:40rem){.offset{grid-template-columns:1fr}.offset>:last-child{display:none}}.stack{flex-direction:column;justify-content:flex-start;display:flex}.stack>*+*{margin-block-start:var(--stack-space,var(--space-s))}.cluster{gap:var(--cluster-space,var(--space-s));flex-wrap:wrap;align-items:center;display:flex}.sidebar{gap:var(--sidebar-gap,var(--space-s-l));flex-wrap:wrap;display:flex}.sidebar>:first-child{flex-basis:var(--sidebar-width,15rem);flex-grow:1}.sidebar>:last-child,.sidebar--right>:first-child{flex-grow:999;flex-basis:0;min-inline-size:50%}.sidebar--right>:last-child{flex-basis:var(--sidebar-width,15rem);flex-grow:1}.switcher{gap:var(--switcher-space,var(--space-s));flex-wrap:wrap;display:flex}.switcher>*{flex-grow:1;flex-basis:calc((var(--switcher-threshold,30rem) - 100%) * 999)}.center{box-sizing:content-box;max-inline-size:var(--center-max-width,47rem);margin-inline:auto}.site-header__inner{justify-content:space-between;align-items:center;gap:var(--space-m);border-bottom:1px solid var(--color-border);padding-block:var(--space-s);display:flex}.site-header__brand{font-size:var(--step-4);color:inherit;font-weight:700;text-decoration:none}.site-header__nav{gap:var(--space-m);padding:0;list-style:none;display:flex}.site-header__nav a{font-size:var(--step--1);color:var(--color-text-muted);text-decoration:none}.site-header__nav a:hover{color:var(--color-accent)}.site-header__social{align-items:center;gap:var(--space-xs);display:flex}.site-header__social a{color:var(--color-text-muted);text-decoration:none;transition:color .15s;display:flex}.site-header__social a:hover{color:var(--color-accent)}.site-header__social svg{width:1.75em;height:1.75em}.site-footer{font-size:var(--step--1);color:var(--color-text-muted);margin-block-start:var(--space-xl)}.site-footer__about{border-block-start:1px solid var(--color-border);padding-block-start:var(--space-m-l);padding-block-end:var(--space-m-l)}.site-footer__about:after{content:"";clear:both;display:table}.site-footer__portrait{float:left;width:12rem;margin:0 var(--space-m) var(--space-xs) 0;border-radius:.35em;position:relative;overflow:hidden}@media(min-width:876px){.site-footer__portrait{width:20%}}.site-footer__portrait:after{content:"";background:linear-gradient(160deg,#ffa3a359,#e4001466);position:absolute;inset:0}@supports (color:color-mix(in lab,red,red)){.site-footer__portrait:after{background:linear-gradient(160deg,color-mix(in srgb,var(--color-red-300) 35%,transparent),color-mix(in srgb,var(--color-red-600) 40%,transparent))}}.site-footer__portrait:after{mix-blend-mode:color}.site-footer__portrait img{filter:saturate(.3)contrast(1.05);width:100%;display:block}@media(prefers-color-scheme:dark){.site-footer__portrait:after{background:linear-gradient(160deg,#ffa3a373,#e4001480)}@supports (color:color-mix(in lab,red,red)){.site-footer__portrait:after{background:linear-gradient(160deg,color-mix(in srgb,var(--color-red-300) 45%,transparent),color-mix(in srgb,var(--color-red-600) 50%,transparent))}}.site-footer__portrait img{filter:saturate(.3)contrast(1.15)brightness(.85)}}.site-footer__about-label{font-size:var(--step--1);color:var(--color-text-muted)}.site-footer__about-name{font-size:var(--step-2);color:var(--color-heading);font-weight:700}.site-footer__inner{text-align:center;justify-content:space-between;align-items:center;gap:var(--space-s);border-block-start:1px solid var(--color-border);padding-block:var(--space-m-l);flex-wrap:wrap}.site-footer a{color:inherit;text-decoration:none}.site-footer a:hover{color:var(--color-accent)}.post-card{gap:var(--space-xs);display:grid}.post-card__title{font-size:var(--step-3);font-weight:700;line-height:var(--leading-heading)}.post-card__title a{color:var(--color-heading);text-decoration:none}.post-card__title a:hover{color:var(--color-accent)}.post-card__description{color:var(--color-text-muted);font-size:var(--step-0)}.post-card__meta{font-size:var(--step--1);color:var(--color-text-muted)}.post-card__read-more{font-size:var(--step--1);color:var(--color-link);text-underline-offset:.15em;text-decoration:underline}.post-card__read-more:hover{color:var(--color-link-hover)}.prose{--prose-space:var(--space-s)}.prose>*+*{margin-block-start:var(--prose-space)}.prose h2{font-size:var(--step-3);margin-block-start:var(--space-m-l);font-weight:700}.prose h3{font-size:var(--step-2);margin-block-start:var(--space-m-l);font-weight:700}.prose h4{font-size:var(--step-1);margin-block-start:var(--space-s-m);font-weight:700}.prose p{line-height:var(--leading-body)}.prose a{color:var(--color-link);text-underline-offset:.15em;text-decoration:underline}.prose a:hover{color:var(--color-link-hover);text-decoration-thickness:2px}.prose strong{font-weight:700}.prose ul,.prose ol{padding-inline-start:var(--space-m)}@media(min-width:876px){.prose ul,.prose ol{padding-inline-start:0}}.prose ul{list-style-type:disc}.prose ol{list-style-type:decimal}.prose li+li{margin-block-start:var(--space-2xs)}.prose blockquote{border-inline-start:3px solid var(--color-accent);padding-inline-start:var(--space-s);font-style:italic}.prose code{background-color:var(--color-code-bg);border-radius:.25em;padding:.15em .3em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85em}.prose pre{padding:var(--space-s) var(--space-m);border-radius:.5em;overflow-x:auto}@media(min-width:876px){.prose pre{margin-left:calc(-1 * var(--space-m));margin-right:calc(-1 * var(--space-m))}}.prose pre code{background:0 0;padding:0}.prose table{border-collapse:collapse;width:100%;font-size:var(--step--1);display:block;overflow-x:auto}.prose th,.prose td{padding:var(--space-2xs) var(--space-xs);border-block-end:1px solid var(--color-border);text-align:start}.prose th{font-weight:700}.prose hr{border:none;border-block-start:1px solid var(--color-border);margin-block:var(--space-l)}.prose pre{color:var(--color-text);background-color:var(--color-code-bg)}.prose pre code{color:inherit}code .token.comment,code .token.prolog,code .token.doctype,code .token.cdata{color:var(--color-stone-500);font-style:italic}code .token.punctuation{color:var(--color-stone-600)}code .token.property,code .token.tag,code .token.boolean,code .token.number,code .token.constant,code .token.symbol{color:var(--color-amber-800)}code .token.deleted{color:var(--color-red-700)}code .token.selector,code .token.attr-name,code .token.string,code .token.char,code .token.builtin,code .token.inserted{color:var(--color-orange-800)}code .token.operator,code .token.entity,code .token.url{color:var(--color-stone-600)}code .token.atrule,code .token.attr-value,code .token.keyword{color:var(--color-red-800)}code .token.function,code .token.class-name{color:var(--color-rose-700)}code .token.regex,code .token.important,code .token.variable{color:var(--color-amber-700)}@media(prefers-color-scheme:dark){code .token.comment,code .token.prolog,code .token.doctype,code .token.cdata{color:var(--color-stone-300);font-style:italic}code .token.punctuation{color:var(--color-stone-300)}code .token.property,code .token.tag,code .token.boolean,code .token.number,code .token.constant,code .token.symbol{color:var(--color-amber-300)}code .token.deleted{color:var(--color-red-400)}code .token.selector,code .token.attr-name,code .token.string,code .token.char,code .token.builtin,code .token.inserted{color:var(--color-orange-300)}code .token.operator,code .token.entity,code .token.url{color:var(--color-amber-200)}code .token.atrule,code .token.attr-value,code .token.keyword{color:var(--color-red-300)}code .token.function,code .token.class-name{color:var(--color-rose-300)}code .token.regex,code .token.important,code .token.variable{color:var(--color-yellow-300)}}
