:root{--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono: "Source Code Pro", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--w-wide: 80rem;--w-narrow: 48rem;--space-s: clamp(1.5rem, .667rem + 2.083vw, 2rem);--space-m: clamp(2rem, .333rem + 5.556vw, 3rem);--space-l: clamp(3rem, 1.333rem + 5.556vw, 4rem);--space-xl: clamp(4rem, .667rem + 11.111vw, 6rem);--space-gutter: min(4vw, 1rem);--space-grid: clamp(1.5rem, 3.125vw, 2rem);--space-surface-x: clamp(1rem, 5.556vw - .667rem, 2rem);--space-surface-y: clamp(1.5rem, .25rem + 4.167vw, 2.25rem);--color-white: oklch(100% 0 0);--color-gray-50: oklch(98.5% 0 0);--color-gray-100: oklch(96.7% .001 286.375);--color-gray-200: oklch(92% .004 286.32);--color-gray-300: oklch(87.1% .006 286.286);--color-gray-400: oklch(70.5% .015 286.067);--color-gray-500: oklch(55.2% .016 285.938);--color-gray-600: oklch(44.2% .017 285.786);--color-gray-700: oklch(37% .013 285.805);--color-gray-800: oklch(27.4% .006 286.033);--color-gray-900: oklch(21% .006 285.885);--color-gray-950: oklch(14.1% .005 285.823);--bg-page: var(--color-gray-50);--bg-surface: var(--color-white);--bg-strong: var(--color-gray-800);--text: var(--color-gray-700);--text-strong: var(--color-gray-900);--text-on-strong: var(--color-gray-200);--text-strong-on-strong: var(--color-white);--border: var(--color-gray-800);--border-strong: var(--color-gray-800);--on-accent: var(--color-white);--accent-subtle: color-mix(in srgb, var(--ghost-accent-color), white 75%);--accent-hover: color-mix(in oklch, var(--ghost-accent-color), white 10%);--accent-hover-on-strong: color-mix( in oklch, var(--ghost-accent-color), black 8% )}[data-theme=dark]{--bg-page: var(--color-gray-950);--bg-surface: var(--color-gray-900);--bg-strong: var(--color-gray-800);--text: var(--color-gray-200);--text-strong: var(--color-white);--border: var(--color-gray-700);--border-strong: var(--color-gray-600);--accent-subtle: color-mix(in srgb, var(--ghost-accent-color), black 65%);--accent-hover: color-mix(in oklch, var(--ghost-accent-color), black 8%)}/*! Based on modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize */*,:before,:after{box-sizing:border-box}html{line-height:1.15;-webkit-text-size-adjust:100%;tab-size:4}body{margin:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:700}code,kbd,samp,pre{font-family:var(--font-mono, monospace);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentcolor;border-collapse:collapse}embed,iframe,object{max-width:100%}video,img{height:auto;max-width:100%}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{cursor:pointer;-webkit-appearance:button}textarea{resize:vertical}textarea:not([rows]){min-height:10em}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:target{scroll-margin-block:5ex}summary{display:list-item}html{font-family:var(--gh-font-body, var(--font-sans));font-size:100%}body{line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-page);color:var(--text)}a{text-decoration:none;color:inherit}a:focus-visible{outline:thin dotted}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;font-family:var(--gh-font-heading, var(--font-sans));font-weight:700;line-height:1.15;color:var(--text-strong)}.button{position:relative;display:inline-flex;gap:.25em;align-items:center;justify-content:center;padding:.875em 1.875em;white-space:nowrap;transition:background-color .16s ease;font-size:1rem;line-height:1.15;font-weight:600;text-decoration:none;box-shadow:none;border:0;border-radius:0;background:var(--ghost-accent-color);color:var(--on-accent)}.button svg{flex-shrink:0;width:1em;height:1em;overflow:visible;fill:currentColor}.button:is(:hover,:focus-visible,:active){outline:0;background:var(--accent-hover)}.button.button-link{padding:.25em;transition:opacity .16s ease;font-weight:400;background:none;color:inherit}.button.button-link:has(svg:only-child){padding:0;width:1.875em;height:1.875em;font-size:1rem}.button.button-link:is(:hover,:focus-visible,:active){opacity:.8}.button.button-icon{width:2em;height:2em;padding:0;font-size:1.25rem;transition:color .16s ease;border-radius:50%;background-color:transparent;color:inherit}.button.button-icon svg{position:relative;z-index:1}.button.button-icon:is(:hover,:focus-visible,:active){color:var(--on-accent)}.button.button-icon:before{content:"";position:absolute;inset:0;transform:scale(.8);opacity:0;transition:transform .26s cubic-bezier(.2,.8,.2,1),opacity .18s ease;border-radius:inherit;background-color:var(--ghost-accent-color)}.button.button-icon:hover:is(:hover,:focus-visible,:active):before{transform:scale(1);opacity:1}.menu,.actions{list-style:none;margin:0;padding:0}.menu-item,.action-item{margin:0}:where(.menu,.actions) a:not(.button){transition:opacity .16s ease;text-decoration:none;font-weight:600;color:inherit}:where(.menu,.action) a:not(.button):is(:hover,:focus-visible,:active){opacity:.8}.grid:not(.grid-masonry){display:grid;gap:var(--space-grid)}.grid-masonry{margin-left:calc(-.5 * var(--space-grid));margin-right:calc(-.5 * var(--space-grid))}.grid-masonry:after{clear:both}.grid-masonry:before,.grid-masonry:after{content:"";display:table}.grid-sizer{width:100%}.grid-masonry .grid-item{float:left;width:100%;margin-bottom:var(--space-grid);padding-left:calc(.5 * var(--space-grid));padding-right:calc(.5 * var(--space-grid));opacity:0;transition:opacity .18s linear}.grid-masonry .grid-item.is-visible{opacity:1}.grid-item:has(.card-auto){container:card-grid-auto / inline-size}@media(min-width:480px){.grid-4-col{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.grid-4-col:has(>:nth-child(4)){grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media(min-width:768px){.grid-3-col{grid-template-columns:repeat(3,1fr)}.grid-masonry :is(.grid-sizer,.grid-item){width:50%}}.card{display:flex;flex-direction:column;height:100%;border:2px solid var(--border);background-color:var(--bg-surface)}.card-image{position:relative;display:block;width:100%;aspect-ratio:3 / 2;margin:0;border-width:0 0 2px;border-color:var(--border);border-style:solid}.card-image.is-square{aspect-ratio:1 / 1}.card-image img{display:block;position:relative;width:100%;height:100%;object-fit:cover;filter:grayscale(0%);transition:filter .24s cubic-bezier(.65,.05,.36,1)}a.card-image:is(:hover,:focus-visible,:active) img{filter:grayscale(100%)}.card-body{position:relative;flex-grow:1}.card-title{color:var(--text-strong)}.card-meta{font-family:var(--font-mono)}.card-meta a{transition:opacity .16s ease}.card-meta a:is(:hover,:focus-visible,:active){opacity:.8}.card.card-featured{border-color:var(--border-strong);background-color:var(--bg-strong);color:var(--text-on-strong)}[data-theme=dark] .card.card-featured{--border-strong: var(--ghost-accent-color);--bg-strong: var(--ghost-accent-color)}.card.card-featured .card-image{border-color:var(--border-strong)}.card.card-featured .card-title{color:var(--text-strong-on-strong)}@container card-grid-auto (min-width: 450px){.card-auto{flex-direction:row}.card-auto .card-image{width:40%;min-height:12rem;flex-shrink:0;border-width:0 2px 0 0}}.sr-only{border-width:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.avatar{position:relative;aspect-ratio:1 / 1;border:2px solid var(--border);box-shadow:-.5rem .5rem 0 0 var(--border)}.avatar img{display:block;width:100%;height:100%;object-fit:cover}.tags{display:flex;flex-wrap:wrap;column-gap:1em;font-family:var(--font-mono);font-weight:600}.tags a:before{content:"#"}.social{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style:none}.site{position:relative;display:flex;flex-direction:column;min-height:100vh;overflow:hidden}#main{flex-grow:1;padding-bottom:var(--space-xl)}.gutter{padding-inline:var(--space-gutter)}.container-narrow{margin-inline:auto;max-width:var(--w-narrow)}.container-wide{margin-inline:auto;max-width:var(--w-wide)}.navbar{position:relative;z-index:1;min-height:4rem}.navbar-branding{position:relative;display:flex;flex-direction:column;gap:.75em;align-items:center;padding-top:3rem;padding-bottom:var(--space-l);text-align:center}.navbar-logo-image{display:block;max-width:18.75rem}.navbar-title{max-width:24rem;margin:0;font-size:clamp(1.25rem,.833rem + 1.389vw,1.5rem);line-height:1.15;font-weight:600;color:var(--text-strong)}.navbar-title a{display:inline-flex;position:relative;padding:.5em 1.25em;border:2px solid var(--border)}.navbar-tagline{max-width:30rem;margin:0;font-family:var(--font-mono);font-size:.875rem;letter-spacing:-.025em}.navbar-menu{position:absolute;left:0;top:0;z-index:2;display:flex;justify-content:space-between;width:100%;padding:.5rem}.actions{display:flex;align-items:center;gap:.25em;color:var(--text-strong)}.actions:nth-child(2){gap:1em}.actions:only-child{justify-content:space-between;width:100%}:is(.action-item-signin,.action-item-account) svg{display:none}@media(max-width:767px){.action-item-subscribe{display:none}:is(.action-item-signin,.action-item-account) .button{padding:0;width:1.875em;height:1.875em}:is(.action-item-signin,.action-item-account) .label{display:none}:is(.action-item-signin,.action-item-account) svg{display:inline-flex}}.intro{--intro-title-size: clamp(2rem, .333rem + 5.556vw, 3rem);--intro-body-size: clamp(1.125rem, .8125rem + 1.042vw, 1.3125rem);--intro-cta-size: clamp(1rem, .792rem + .694vw, 1.125rem);--intro-pad-x: clamp(1rem, 5.556vw - .667rem, 2rem);--intro-pad-y: clamp(1.5rem, 5.556vw - .167rem, 2.5rem);margin:0 auto var(--space-l);text-align:center}.intro-body{display:flex;flex-direction:column;align-items:center}.intro-title{max-width:48rem;margin:0;font-size:var(--intro-title-size)}.intro-text{max-width:42rem;font-size:var(--intro-body-size)}.intro-text:not(:first-child){margin-top:1em}.intro-cta .button{margin:1.5em 0 0;font-size:var(--intro-cta-size)}.intro:has(.intro-image){display:flex;flex-direction:column;border:2px solid var(--border);background-color:var(--bg-surface);text-align:left}.intro-image{flex-shrink:0;border-width:0 0 2px;border-color:var(--border);border-style:solid}.intro-image img{display:block;width:100%;height:100%;object-fit:cover}.intro:has(.intro-image) .intro-body{align-items:flex-start;flex-grow:1;padding:var(--intro-pad-y) var(--intro-pad-x)}.intro:has(.intro-image) .intro-cta{margin-top:auto}@media(min-width:768px){.intro:has(.intro-image){--intro-title-size: clamp(2rem, 6.25vw - 1rem, 3rem);--intro-body-size: clamp(1.125rem, .5625rem + 1.172vw, 1.3125rem);--intro-cta-size: clamp(1rem, .625rem + .781vw, 1.125rem);--intro-pad-x: var(--space-grid);--intro-pad-y: clamp(2.5rem, 9.375vw - 2rem, 4rem);flex-direction:row}.intro-image{width:calc(50% - var(--space-grid) / 2);border-width:0 2px 0 0}}.swiper{display:block;position:relative;z-index:1;margin-left:auto;margin-right:auto;padding:0;list-style:none;overflow:hidden}.swiper-wrapper{box-sizing:content-box;position:relative;z-index:1;display:flex;width:100%;height:100%;transition-property:transform;transition-timing-function:initial}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-slide{display:block;position:relative;flex-shrink:0;width:100%;height:100%;transition-property:transform;background-color:var(--bg-page)}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);backface-visibility:hidden}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide-active{pointer-events:auto}.swiper-pagination{display:flex;justify-content:center;gap:max(1.25%,.5rem);text-align:center;transition:opacity .3s}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet{transition:.3s}.swiper-pagination-bullet:only-child{display:none!important}.featured-items{position:relative;margin-bottom:var(--space-l);background-color:var(--bg-page)}.featured-item{--feat-title-size: clamp(2rem, 1.167rem + 2.778vw, 2.5rem);--feat-meta-size: clamp(.875rem, .667rem + .694vw, 1rem);--feat-pad-x: clamp(1rem, 5.556vw - .667rem, 2rem);--feat-pad-y: clamp(1.5rem, 5.556vw - .167rem, 2.5rem);display:flex;flex-direction:column;align-items:center}.featured-item-image{position:relative;width:100%;aspect-ratio:3 / 2;border:2px solid var(--border)}.featured-item-image img{display:block;position:relative;width:100%;height:100%;object-fit:cover}.featured-item-image svg{position:absolute;inset:0;background-color:var(--bg-surface)}.featured-item-body{position:relative;width:96%;margin:-4rem auto 0;padding:0 0 .5rem .5rem}.featured-item-content{width:100%;position:relative;max-width:42rem;margin:0 auto;padding:var(--feat-pad-y) var(--feat-pad-x);border:2px solid var(--border);box-shadow:-.5rem .5rem 0 0 var(--border);background-color:var(--bg-surface)}.featured-item-title{margin:0;font-size:var(--feat-title-size)}.featured-item-meta,.featured-item-tags{margin:1em 0 0;font-family:var(--font-mono);font-size:var(--feat-meta-size)}:where(.featured-item-meta,.featured-item-tags) a{transition:opacity .16s ease}:where(.featured-item-meta,.featured-item-tags) a:is(:hover,:focus-visible,:active){opacity:.8}.featured-item:has(.featured-item-visibility) :where(.featured-item-meta,.featured-item-tags):nth-last-child(2){padding-right:2rem}.featured-item-visibility{position:absolute;bottom:var(--feat-pad-y);right:var(--feat-pad-x);line-height:1;font-size:1.125rem;text-align:right}.featured-item-visibility svg{width:1em;height:1em;fill:currentColor;overflow:visible}.featured-pagination{margin-top:var(--space-s);line-height:1}.featured-pagination .swiper-pagination-bullet{width:clamp(2.5rem,8.333vw,4rem);height:.5rem;background:var(--border)}.featured-pagination .swiper-pagination-bullet-active{background:var(--ghost-accent-color)}@media(min-width:768px){.featured-item{--feat-title-size: clamp(2rem, .5rem + 3.125vw, 3rem);--feat-pad-x: clamp(1.5rem, 3.125vw, 2rem);--feat-pad-y: clamp(2rem, .5rem + 3.125vw, 2.5rem);flex-direction:row-reverse}.featured-item-image{width:75%;flex-shrink:0}.featured-item-body{width:75%;z-index:1;margin-left:0;margin-right:-50%;margin-top:-2rem}.featured-item-content{margin:0}}.post-feed{--post-title-size: clamp(1.5rem, .25rem + 4.167vw, 2.25rem);--post-body-size: clamp(1rem, .792rem + .694vw, 1.125rem);--post-meta-size: clamp(.875rem, .667rem + .694vw, 1rem);--post-pad-x: clamp(1rem, 5.556vw - .667rem, 2rem);--post-pad-y: clamp(1.5rem, .25rem + 4.167vw, 2.25rem)}.post-card .card-body{padding:var(--post-pad-y) var(--post-pad-x)}.post-card .card-title{margin:0;font-size:var(--post-title-size)}.post-card .card-text{margin:1.25em 0 0;font-size:var(--post-body-size)}.post-card .card-text.dots:after{content:"\2026"}.post-card .card-meta{margin:1.25em 0 0;font-size:var(--post-meta-size)}.post-card:has(.post-card-visibility) .card-meta:nth-last-child(2){padding-right:2rem}.post-card-visibility{font-size:1.125rem;line-height:1;margin:1rem 0 0;text-align:right}.post-card-visibility svg{width:1em;height:1em;fill:currentColor;overflow:visible}.post-card .card-meta+.post-card-visibility{position:absolute;bottom:var(--post-pad-y);right:var(--post-pad-x);margin:0}@media(min-width:768px){.post-feed{--post-title-size: clamp(1.5rem, 4.6875vw - .75rem, 2.25rem);--post-meta-size: clamp(.875rem, .5rem + .781vw, 1rem);--post-pad-x: clamp(1.5rem, 3.125vw, 2rem);--post-pad-y: clamp(1.875rem, .75rem + 2.344vw, 2.25rem)}}.post-full{--post-title-size: clamp(2rem, 1.167rem + 2.778vw, 2.5rem);--post-meta-size: clamp(.875rem, .667rem + .694vw, 1rem);--post-pad-x: clamp(1rem, 5.556vw - .667rem, 2rem);--post-pad-y: clamp(1.5rem, 5.556vw - .167rem, 2.5rem)}.post-header{margin:0 auto var(--space-l)}.post.is-page .post-header,.post:not(:has(.post-header-image)) .post-header{--post-title-size: clamp(2rem, .333rem + 5.556vw, 3rem);margin-bottom:var(--space-m);text-align:center}.post-header-image{position:relative;margin:0;width:100%}.post.is-page .post-header-image{margin-bottom:var(--space-m)}.post-header.is-vertical .post-header-image{aspect-ratio:2 / 3}.post-header.is-horizontal .post-header-image{aspect-ratio:3 / 2}.post-header img{display:block;position:relative;width:100%}.post-header:where(.is-vertical,.is-horizontal) img{height:100%;object-fit:cover}.post-title{margin:0;font-size:var(--post-title-size)}.post-caption{position:absolute;right:0;top:0;margin:0;padding:.25em .5em;font-family:var(--font-mono);font-size:.875rem;text-shadow:0 1px 2px rgba(0,0,0,.2);background:#0000004d;color:var(--text-on-strong)}.post-header:has(.post-header-image) .post-header-body{position:relative;width:96%;margin:-4rem auto 0;padding:0 0 .5rem .5rem}.post-header:has(.post-header-image) .post-header-content{width:100%;position:relative;max-width:48rem;margin:0 auto;padding:var(--post-pad-y) var(--post-pad-x);border:2px solid var(--border);box-shadow:-.5rem .5rem 0 0 var(--border);background-color:var(--bg-surface)}.post-date,.post-meta{font-family:var(--font-mono);font-size:var(--post-meta-size)}.post-date{margin:0 0 1em}.post-meta{margin:1em 0 0}.post-meta a{transition:opacity .16s ease}.post-meta a:is(:hover,:focus-visible,:active){opacity:.8}.post-footer{margin-top:var(--space-l)}.post-share{display:flex;align-items:center;gap:.5em;flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--post-meta-size)}.post-share .button.button-icon{font-size:clamp(1rem,.792rem + .694vw,1.125rem)}.post-tags-list{margin-top:1.25em;font-size:var(--post-meta-size)}.post-tags-title{font-weight:400}.post-tags-list a{transition:opacity .16s ease}.post-tags-list a:is(:hover,:focus-visible,:active){opacity:.8}.post-url-copy-btn:after{content:attr(aria-label);display:none;position:absolute;left:50%;bottom:100%;transform:translate(-50%,-.25rem);font-family:var(--font-mono);font-size:.75rem;color:var(--text-strong);white-space:nowrap}.post-url-copy-btn.is-visible-tooltip:after{display:block}@media(min-width:768px){.post-header:where(.is-horizontal,.is-vertical){--post-title-size: clamp(2rem, .5rem + 3.125vw, 3rem);--post-pad-x: clamp(1.5rem, 3.125vw, 2rem);--post-pad-y: clamp(2rem, .5rem + 3.125vw, 2.5rem)}.post-header:where(.is-horizontal,.is-vertical) .container-wide{display:flex;flex-direction:row-reverse;align-items:center}.post-header.is-horizontal .post-header-image{width:75%;flex-shrink:0}.post-header.is-horizontal .post-header-body{width:75%;z-index:1;margin-left:0;margin-right:-50%;margin-top:-2rem}.post-header.is-vertical .post-header-image{width:51.25%;flex-shrink:0}.post-header.is-vertical .post-header-body{width:56.25%;z-index:1;margin-left:0;margin-right:-7.5%;margin-top:-2rem}}.post-authors{margin-top:var(--space-l)}.author-box{display:flex;flex-direction:column;gap:1.5rem}.author-box+.author-box{margin-top:var(--space-m)}.author-image{flex-shrink:0;height:6rem;margin-bottom:.5rem;margin-left:.5rem;width:6rem}.author-content{flex-grow:1}.author-name{margin:0;font-size:clamp(1.125rem,.8125rem + 1.042vw,1.3125rem)}.author-bio{margin:.5em 0 0;font-size:.9375rem}.author-links{column-gap:.5rem;row-gap:.25rem;margin:1rem 0 0}.author-links .button.button-icon{font-size:1rem}@media(min-width:480px){.author-box{flex-direction:row}}.post-teaser{position:relative}.post-teaser:before{content:"";position:absolute;left:0;right:0;bottom:0;height:90%;background:-webkit-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 20%,var(--bg-page) 100%);background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 20%,var(--bg-page) 100%)}.post-gate{margin-top:var(--space-m)}.post-gate .container-narrow{padding:clamp(2rem,.333rem + 5.556vw,3rem) clamp(1rem,5.556vw - .667rem,2rem);text-align:center;border:2px solid var(--border);background-color:var(--bg-surface)}.post-gate-title{margin:0;font-size:clamp(1.5rem,.667rem + 2.778vw,2rem);text-wrap:balance}.post-gate-text{margin:1.25em 0 0;font-size:clamp(1rem,.792rem + .694vw,1.125rem)}.post-gate-cta{margin:1.5em 0 0}.post-gate-note{margin:1em 0 0;font-size:clamp(.875rem,.667rem + .694vw,1rem)}.post-gate-note a{color:var(--text-strong);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.1em}.post-gate-note a:is(:hover,:focus-visible,:active){text-decoration-color:var(--ghost-accent-color);text-decoration-thickness:2px}.post-body{--main: min(var(--w-narrow), 100% - var(--space-gutter) * 2);--wide: minmax(0, calc((var(--w-wide) - var(--w-narrow)) / 2));--full: minmax(var(--space-gutter), 1fr);display:grid;grid-template-columns:[full-start] var(--full) [wide-start] var(--wide) [main-start] var(--main) [main-end] var(--wide) [wide-end] var(--full) [full-end];font-size:clamp(1rem,.625rem + .781vw,1.125rem);line-height:1.667}.post-body>*{grid-column:main;margin-top:1em;margin-bottom:0}.post-body>:first-child{margin-top:0}.post-body>:where(pre,table,.responsive-table),.post-body>:where(pre,table,.responsive-table)+*{margin-top:1.5rem}.post-body>:where(h1,h2,h3,h4,h5,h6,hr,blockquote,iframe),.post-body>:where(hr,blockquote,iframe)+*{margin-top:3rem}.post-body :where(h1,h2,h3,h4,h5,h6)+:where(h1,h2,h3,h4,h5,h6){margin-top:1.5rem}.post-body :not(.kg-card)+.kg-card,.post-body .kg-card+:not(.kg-card),.post-body .kg-width-full+.kg-card:not(.kg-width-full),.post-body .kg-card:not(.kg-width-full)+.kg-width-full{margin-top:2.5rem}.post-body>.kg-width-full+.kg-width-full:not(.kg-width-full.kg-card-hascaption+.kg-width-full){margin-top:0}.post-body a:not(.button){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.1em}.post-body a:where(:hover,:focus-visible,:active){text-decoration-color:var(--ghost-accent-color);text-decoration-thickness:2px}.post-body h1{font-size:clamp(2rem,1.167rem + 2.778vw,2.5rem)}.post-body h2{font-size:clamp(1.5rem,.667rem + 2.778vw,2rem)}.post-body h3{font-size:clamp(1.3125rem,1rem + 1.042vw,1.5rem)}.post-body h4{font-size:clamp(1.125rem,.8125rem + 1.042vw,1.3125rem)}.post-body h5{font-size:clamp(1rem,.792rem + .694vw,1.125rem)}.post-body h6{font-size:clamp(.875rem,.667rem + .694vw,1rem)}.post-body :where(ul,ol){padding:0 0 0 1.5rem}.post-body ul{list-style:disc}.post-body ul>li::marker{color:var(--ghost-accent-color)}.post-body :where(li,dd){margin:0 0 .5rem}.post-body :where(li,dd):last-child{margin-bottom:0}.post-body dt{font-weight:600;color:var(--text-strong)}mark,ins{padding:.1em .15em;text-decoration:none;border-radius:.125rem;background:var(--accent-subtle);color:var(--text-strong)}figure{margin-inline:0}figure img{display:block}figcaption{max-width:75ch;margin:.5em 0 0;font-family:var(--font-mono);font-size:.8em;line-height:1.5;text-align:left}.kg-width-full figcaption{padding-inline:var(--space-gutter)}figcaption p{margin:.5em 0 0}.kg-image-card .kg-image{display:block;margin-inline:auto}label{display:block;font-size:.9em;font-weight:600;line-height:1.5;margin-bottom:.5em}input:is([type=text],[type=password],[type=email],[type=tel],[type=number],[type=search],[type=url]),select,textarea{background:var(--bg-surface);border:1px solid var(--border);box-shadow:none;color:var(--text);display:block;font-size:1rem;font-weight:400;line-height:1.5;max-width:100%;padding:.625em .75em;width:100%}blockquote{margin-inline:0;font-family:var(--font-mono);font-size:clamp(1.125rem,.8125rem + 1.042vw,1.3125rem);line-height:1.4;text-align:left;color:var(--text-strong)}blockquote:not(.kg-blockquote-alt){padding:0 0 0 1em;border-left:3px solid var(--ghost-accent-color)}.kg-blockquote-alt{padding:1.5rem 1rem;border:1px solid var(--border);box-shadow:-.5rem .5rem 0 0 var(--border)}blockquote p{margin:.5rem 0 0}blockquote p:first-child{margin-top:0}blockquote :where(small,cite){display:block;margin-top:.75rem;font-size:.75em;font-style:normal;font-weight:400}:not(pre)>code{white-space:normal}pre{overflow:auto;padding:1.25em;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;font-size:.9em;line-height:1.5;background:var(--bg-strong);color:var(--text-on-strong)}table{font-size:.9em;line-height:1.5;text-align:left}:where(th,td){min-width:5rem;padding:.5em;border:1px solid var(--border)}th{font-weight:600;color:var(--text-strong)}caption{max-width:75ch;margin:0 0 .5em;font-family:var(--font-mono);font-size:.89em;font-style:normal;line-height:1.5;text-align:left}.responsive-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.responsive-table>table{min-width:100%;margin:0}hr{width:clamp(3.5rem,8.75vw,5rem);height:2px;margin-inline:auto;border:0;background-color:var(--border)}.kg-width-wide,.kg-content-wide>div{grid-column:wide-start / wide-end}.kg-width-full{grid-column:full-start / full-end}.kg-width-full.kg-content-wide{display:grid;grid-template-columns:[full-start] var(--full) [wide-start] var(--wide) [main-start] var(--main) [main-end] var(--wide) [wide-end] var(--full) [full-end]}.kg-content-wide>div{grid-column:wide-start / wide-end}:where(.kg-width-wide,.kg-width-full) img{width:100%}.kg-button-card{display:flex;align-items:center;width:100%}.kg-button-card.kg-align-center{justify-content:center}.kg-button-card.kg-align-left{justify-content:flex-start}.kg-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.25em;height:unset;padding:.875em 1.875em;transition:background-color .16s ease;font-size:1rem;line-height:1.15;font-weight:600;border-radius:0}a.kg-btn{text-decoration:none}.kg-btn.kg-btn-accent{background:var(--ghost-accent-color);color:var(--on-accent)}.kg-btn.kg-btn-accent:is(:hover,:focus-visible,:active){outline:0;background:var(--accent-hover)}#main :is(.kg-product-card-button,.kg-header-card-button,.kg-signup-card-button,.kg-cta-button){height:unset;padding:.875em 1.875em;border-radius:0;font-family:var(--gh-font-body, var(--font-sans));font-size:1rem;font-weight:600;line-height:1.15}.kg-bookmark-card{width:100%}a.kg-bookmark-container{display:flex;flex-direction:column;width:100%;min-height:140px;overflow:hidden;text-decoration:none;border:1px solid var(--border);color:inherit}.kg-bookmark-thumbnail{position:relative;flex-grow:1;min-height:160px;min-width:33%;border-color:var(--border);border-style:solid;border-width:1px 0 0}.kg-bookmark-thumbnail img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.kg-bookmark-content{display:flex;flex-direction:column;flex-grow:1;justify-content:start;gap:.9375rem;padding:1.25em}.kg-bookmark-title{margin:0;font-size:1.3125rem;font-weight:700;line-height:1.15;color:var(--text-strong)}.kg-bookmark-description{display:-webkit-box;max-height:4.5em;overflow-y:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:1rem;font-weight:400;line-height:1.5}.kg-bookmark-metadata{display:flex;align-items:center;width:100%;font-size:.875rem;line-height:1.5}.kg-bookmark-icon{width:1.5rem;height:1.5rem;margin-right:.75em;border-radius:3px}.kg-bookmark-author{color:inherit}.kg-bookmark-publisher{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kg-bookmark-publisher:before{content:"\b7";margin-inline:.375rem}@media only screen and (min-width:480px){a.kg-bookmark-container{flex-direction:row}.kg-bookmark-thumbnail{min-height:0;border-width:0 0 0 1px}}.kg-gallery-container{display:flex;flex-direction:column;gap:.5rem;overflow:hidden}.kg-gallery-row{display:flex;flex-direction:row;justify-content:center;gap:.5rem}.kg-gallery-image img{display:block;width:100%;height:100%;margin:0;cursor:zoom-in}#main .kg-file-card-container{font-family:var(--gh-font-body, var(--font-sans));border-radius:0;border-color:var(--border);color:var(--text)}#main .kg-audio-card{box-shadow:inset 0 0 0 1px var(--border);border-radius:0;color:var(--text)}#main .kg-video-container{border-radius:0}#main :where(.kg-file-card-title,.kg-audio-title){color:var(--text-strong);font-family:var(--gh-font-heading, var(--font-sans));font-size:1.125rem;line-height:1.15}#main .kg-callout-card{border-radius:0;padding:1.25em}#main .kg-callout-card-white{box-shadow:inset 0 0 0 1px var(--border);background-color:var(--bg-surface)}#main .kg-callout-card-accent a:is(:hover,:focus-visible,:active){text-decoration-thickness:2px}#main .kg-cta-card,#main .kg-cta-image-container img{border-radius:0}#main .kg-cta-sponsor-label{font-family:var(--font-mono);font-size:.8em;font-weight:400}#main .kg-product-card-container{font-family:var(--gh-font-body, var(--font-sans));border-radius:0;box-shadow:inset 0 0 0 1px var(--border);background-color:var(--bg-surface);color:var(--text)}#main .kg-product-card-description :where(p,ol,ul){font-size:.9em;opacity:1}#main .kg-toggle-card{border-radius:0;box-shadow:inset 0 0 0 1px var(--border)}#main .kg-toggle-card-icon svg{color:var(--text)}.kg-header-card-image,.kg-signup-card-image{display:block}#main .kg-header-card.kg-style-dark{background-color:var(--bg-strong)}#main .kg-header-card.kg-style-light{background-color:var(--bg-surface)}#main :where(.kg-header-card-heading,.kg-signup-card-heading){max-width:var(--w-narrow)}#main :where(.kg-header-card-subheading,.kg-signup-card-subheading){max-width:var(--w-narrow);font-weight:400}#main .kg-signup-card-form:not(:first-child){margin-top:1.5em}#main :where(.kg-signup-card-fields,.kg-signup-card-input){border-radius:0}#main .kg-signup-card-disclaimer{font-size:.9em;line-height:1.5}@media(min-width:641px){#main .kg-layout-split.kg-content-wide :where(.kg-header-card-text,.kg-signup-card-text){padding-left:var(--space-gutter);padding-right:0}#main .kg-layout-split.kg-swapped.kg-content-wide :where(.kg-header-card-text,.kg-signup-card-text){padding-left:0;padding-right:var(--space-gutter)}}.comments{margin-top:var(--space-xl)}.comments .container-narrow{border-bottom:2px solid var(--border)}.comments-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;column-gap:2rem;row-gap:.25rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--border)}.comments-title{margin:0;font-size:1.25rem}.comments-count{margin:0;font-family:var(--font-mono);font-size:.875rem}.more-posts{--post-title-size: 1.3125rem;--post-meta-size: .875rem;--post-pad-x: 1rem;--post-pad-y: 1.5rem;margin-top:var(--space-xl)}.more-posts-title{margin:0 0 var(--space-m);text-align:center;font-size:clamp(1.5rem,.667rem + 2.778vw,2rem)}.more-posts .card-meta{margin-top:.75rem}.more-posts .post-card-visibility{font-size:1em}.pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-top:var(--space-grid);text-align:center}.page-number{grid-column:2;justify-self:center;font-family:var(--font-mono);font-size:.875rem;font-weight:500}:is(.next,.prev){display:inline-flex;align-items:center;justify-content:center;padding:.25em;transition:color .16s ease;font-size:2rem}.prev{grid-column:1;justify-self:start}.next{grid-column:3;justify-self:end}:is(.next,.prev) svg{flex-shrink:0;width:1em;height:1em;overflow:visible;clip-path:inset(0% 0% 0% 0%);transition:transform .32s cubic-bezier(.165,.84,.44,1),clip-path .42s cubic-bezier(.165,.84,.44,1);fill:currentColor}:is(.next,.prev):is(:hover,:focus-visible,:active){color:var(--ghost-accent-color)}.prev:is(:hover,:focus-visible,:active) svg{transform:translate(-.25em);clip-path:inset(0% 20% 0% 0%)}.next:is(:hover,:focus-visible,:active) svg{transform:translate(.25em);clip-path:inset(0% 0% 0% 20%)}.post-nav{margin-top:var(--space-xl)}.post-nav .container-narrow{display:flex;flex-direction:column;border-top:2px solid var(--border);border-bottom:2px solid var(--border)}.post-nav-next,.post-nav-prev{--icon-size: 2rem;--gap: 1rem;display:flex;flex:1 1 0%;width:100%;padding-block:clamp(1.5rem,.667rem + 2.083vw,2rem) clamp(2rem,.333rem + 5.556vw,3rem)}.post-nav-next{justify-content:flex-end;text-align:right}.post-nav-prev+.post-nav-next{border-width:2px 0 0;border-style:solid;border-color:var(--border)}.post-nav-title{display:flex;gap:var(--gap);align-items:flex-start}.post-nav-title svg{position:relative;width:var(--icon-size);height:var(--icon-size);flex:0 0 var(--icon-size);margin-top:calc((1lh - var(--icon-size)) / 2);overflow:visible;clip-path:inset(0% 0% 0% 0%);transition:color .16s ease,transform .32s cubic-bezier(.165,.84,.44,1),clip-path .42s cubic-bezier(.165,.84,.44,1);fill:currentColor}.post-nav-label{margin-bottom:.5em;font-family:var(--font-mono);font-weight:400;font-size:.875rem}.post-nav-prev .post-nav-label{margin-left:calc(var(--icon-size) + var(--gap))}.post-nav-next .post-nav-label{margin-right:calc(var(--icon-size) + var(--gap))}.post-nav-title h3{margin:0;font-size:clamp(1.3125rem,1rem + 1.042vw,1.5rem)}.post-nav-prev:is(:hover,:focus-visible,:active) svg{transform:translate(-.25em);clip-path:inset(0% 20% 0% 0%);color:var(--ghost-accent-color)}.post-nav-next:is(:hover,:focus-visible,:active) svg{transform:translate(.25em);clip-path:inset(0% 0% 0% 20%);color:var(--ghost-accent-color)}@media(min-width:640px){.post-nav .container-narrow{flex-direction:row}.post-nav-prev+.post-nav-next{border-width:0 0 0 2px}.post-nav-prev .post-nav-link{padding-right:1.5rem}.post-nav-next .post-nav-link{padding-left:1.5rem}}@media(min-width:960px){.post-nav-next,.post-nav-prev{--icon-size: 3rem;--gap: 1.25rem}.post-nav-prev .post-nav-link{margin-left:-4.25rem}.post-nav-next .post-nav-link{margin-right:-4.25rem}}.archive-header{width:100%;max-width:42rem;margin:0 auto var(--space-l);text-align:center}.archive-header:has(.avatar){display:flex;flex-direction:column;gap:var(--space-grid);align-items:center}.archive-image{width:10rem;flex-shrink:0;margin-bottom:.5rem;margin-left:.5rem}.archive-count{margin:0 0 .5em;font-family:var(--font-mono);font-size:clamp(.875rem,.667rem + .694vw,1rem)}.archive-title{margin:0;font-size:clamp(1.5rem,.667rem + 2.778vw,2rem)}.archive-description{margin:1rem 0 0;font-size:clamp(1rem,.792rem + .694vw,1.125rem)}.archive-links{column-gap:.5rem;row-gap:.25rem;justify-content:center;margin:1.5rem 0 0}@media(min-width:640px){.archive-header:has(.avatar){flex-direction:row;align-items:flex-start;justify-content:center;text-align:left}.archive-header:has(.avatar) .archive-content{flex-grow:1;max-width:30rem}.archive-header:has(.avatar) .archive-links{justify-content:flex-start}}@media(min-width:768px){.archive-image{width:14rem}}@media(min-width:1024px){.archive-header:has(.avatar){justify-content:flex-end;max-width:62rem}}:is(.tag-card,.author-card) .card-body{padding:1.375rem 1rem 1.5rem}:is(.tag-card,.author-card) .card-meta{margin:0 0 .75em;font-size:.875rem}:is(.tag-card,.author-card) .card-title{margin:0;font-size:1.5rem}:is(.tag-card,.author-card) .card-text{margin:1em 0 0}.author-card .card-links{column-gap:.5rem;row-gap:.25rem;margin:1em 0 0}.author-card .button.button-icon{font-size:1rem}.footer .container-wide{display:flex;flex-direction:column;column-gap:3rem;row-gap:1.5rem;align-items:center;width:100%;padding-block:1.5rem 3rem;text-align:center;border-top:2px solid var(--border)}.footer-social{display:flex;gap:.5em;justify-content:center;flex-wrap:wrap}.footer-copyright{padding-top:.5em;font-size:.875rem;line-height:1.5}.footer-copyright a{transition:opacity .16s ease}.footer-copyright a:is(:hover,:focus-visible,:active){opacity:.8}.footer-nav{padding-top:.5em}.footer-nav .menu{display:flex;flex-wrap:wrap;justify-content:center;column-gap:2em;row-gap:.5em;color:var(--text-strong)}@media only screen and (min-width:640px){.footer .container-wide{flex-direction:row;align-items:flex-start;justify-content:space-between;text-align:left}.footer-social{justify-content:flex-end}.footer-nav{flex:2}.footer-nav .menu{justify-content:flex-start}.footer:has(.footer-nav) .container-wide{flex-wrap:wrap}.footer:has(.footer-nav) .footer-copyright{width:100%}.footer:not(:has(.footer-nav)) .footer-social{flex-wrap:nowrap}.footer:not(:has(.footer-nav)) .footer-copyright{order:-1}}.sidebar{position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);visibility:hidden;z-index:1000;width:100%;max-width:30rem;max-height:100vh;transition:transform .28s cubic-bezier(.22,1,.36,1),visibility 0s linear .28s;will-change:transform;backface-visibility:hidden;-webkit-overflow-scrolling:touch;box-shadow:2px 0 0 0 var(--border);background:var(--bg-surface);color:var(--text)}.sidebar-overlay{position:absolute;inset:0;transform:translateZ(0);z-index:100;visibility:hidden;opacity:0;transition:opacity 80ms cubic-bezier(.22,1,.36,1),visibility 0s linear 80ms;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-image:linear-gradient(to bottom right,#0003,#0000001a)}.sidebar-opened{overflow:hidden}.sidebar-opened .sidebar{transform:translate(0);visibility:visible;transition:transform .28s cubic-bezier(.22,1,.36,1)}.sidebar-opened .sidebar-overlay{visibility:visible;opacity:1;transition:opacity .28s cubic-bezier(.22,1,.36,1)}.sidebar-scroll{position:relative;overflow:auto;height:100%;-webkit-overflow-scrolling:touch}.sidebar-content{display:flex;flex-direction:column;min-height:100%}.sidebar-top{display:flex;justify-content:flex-end;border-bottom:2px solid var(--border);color:var(--text-strong)}.sidebar-top-content{border-left:2px solid var(--border);padding:.5rem}.sidebar-body{display:flex;flex-direction:column;gap:2rem;flex-grow:1;justify-content:space-between;padding:clamp(2rem,.333rem + 5.556vw,3rem) var(--space-gutter)}.sidebar-nav{font-size:clamp(1.25rem,.833rem + 1.389vw,1.5rem);color:var(--text-strong)}.sidebar-nav .menu-item{margin-bottom:.5em}.sidebar-tags{flex-direction:column;align-items:flex-start;gap:.5em;font-family:var(--font-mono);font-size:clamp(1rem,.792rem + .694vw,1.125rem);font-weight:600}.sidebar-tags a{transition:opacity .16s ease}.sidebar-tags a:is(:hover,:focus-visible,:active){opacity:.8}.sidebar-bottom{padding:clamp(1.5rem,.667rem + 2.083vw,2rem) var(--space-gutter);border-top:2px solid var(--border)}.sidebar-bottom .button{width:100%}.error-template .post-body{text-align:center}.error-template .post .post-header{margin-bottom:1.5rem}.error-template p:has(.button){margin-top:1.5em}@keyframes pulsate{0%{transform:scale(.1);opacity:0}50%{opacity:1}to{transform:scale(1.2);opacity:0}}body.hidden-scroll{overflow:hidden}.sl-overlay{display:none;position:fixed;inset:0;z-index:1035;background:var(--bg-surface)}.sl-wrapper{position:fixed;left:0;top:0;z-index:1040;width:100%;height:100%}.sl-close,.sl-prev,.sl-next{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;font-size:1.125rem;line-height:1;border:0;background:0;color:var(--text-strong)}.sl-close svg,.sl-prev svg,.sl-next svg{flex-shrink:0;width:1em;height:1em;fill:currentColor}.sl-close{display:none;position:fixed;right:0;top:0;z-index:1060}.sl-navigation{display:none;width:100%}.sl-next,.sl-prev{display:block;position:fixed;top:50%;transform:translateY(-50%);z-index:1060}.sl-next{right:0}.sl-counter{display:none;position:fixed;left:var(--space-gutter);bottom:var(--space-gutter);z-index:1060;font-family:var(--font-mono);font-size:.875rem}.sl-image{position:fixed;-ms-touch-action:none;touch-action:none;z-index:10000}.sl-image img{display:block;margin:0;padding:0;border:0}.sl-spinner{display:none;position:fixed;top:50%;left:50%;width:2.5rem;height:2.5rem;z-index:1007;opacity:0;margin:-1.25rem 0 0 -1.25rem;animation:pulsate 1s ease-out infinite;border:5px solid var(--ghost-accent-color);border-radius:100%}.sl-scrollbar-measure{overflow:scroll;position:absolute;top:-9999px;width:50px;height:50px}.sl-transition{transition:transform ease .2s}
