@font-face{font-family:Neue Montreal;src:url(../fonts/NeueMontreal/PPNeueMontreal-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Neue Montreal;src:url(../fonts/NeueMontreal/PPNeueMontreal-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Neue Montreal;src:url(../fonts/NeueMontreal/PPNeueMontreal-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Neue Montreal;src:url(../fonts/NeueMontreal/PPNeueMontreal-Semibold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Neue Montreal;src:url(../fonts/NeueMontreal/PPNeueMontreal-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Reckless Standard M;src:url(../fonts/Reckless/RecklessStandardM-Light.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Reckless Standard M;src:url(../fonts/Reckless/RecklessStandardM-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Reckless Standard M;src:url(../fonts/Reckless/RecklessStandardM-RegularItalic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Reckless Standard M;src:url(../fonts/Reckless/RecklessStandardM-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Reckless Standard M;src:url(../fonts/Reckless/RecklessStandardM-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Reckless Standard S;src:url(../fonts/Reckless/RecklessStandardS-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Reckless Standard S;src:url(../fonts/Reckless/RecklessStandardS-RegularItalic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Reckless Standard S;src:url(../fonts/Reckless/RecklessStandardS-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Reckless Standard S;src:url(../fonts/Reckless/RecklessStandardS-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}:root{--color-primary:#4f2d7f;--color-primary-dark:#3f2168;--color-primary-medium:#5f3996;--color-primary-hover:#3f2168;--color-primary-muted:#7a5d9b;--color-secondary:#b07d94;--color-secondary-hover:#9a6b80;--color-accent:#d5479d;--color-warm:#c9a68d;--color-warm-muted:#d4bba8;--color-taupe:#a39686;--color-sage:#8a9a8e;--bg-page:#fafaf7;--bg-section-alt:#f4f2ec;--bg-alt:#f4f2ec;--bg-stage:#edeae3;--bg-card:#fff;--bg-card-soft:#f5f2ec;--bg-purple-tint:#f4f2fc;--text-default:#1a1a1a;--text-muted:#5a5a5a;--text-soft:#8a8a8a;--text-on-primary:#fff;--text-link:var(--color-primary);--border-default:#e5e5e5;--border-soft:#e5e0d5;--border-strong:#c4c4c4;--bg-code:#f5f2ec;--code-fg:#2f2f2f;--code-keyword:#3f2168;--code-string:#5f3996;--code-punctuation:#8f8c89;--code-comment:#8b7e6f;--code-border:var(--border-soft);--foreground:var(--text-default);--header-bg:var(--bg-page);--header-bg-scrolled:rgba(250,250,247,.85);--tag-bg:var(--bg-purple-tint);--tag-fg:var(--color-primary);--primary-tint-08:rgba(79,45,127,.08);--primary-tint-12:rgba(79,45,127,.12);--mark-bg:#fdffb6;--mark-fg:#1a1a1a;--table-scroll-shadow:rgba(0,0,0,.12);--font-display:"Reckless Standard M",Georgia,"Times New Roman",serif;--font-prose:"Reckless Standard S",Georgia,"Times New Roman",serif;--font-website:"Neue Montreal",system-ui,-apple-system,sans-serif;--font-mono:"SF Mono","Fira Code",Consolas,monospace;--font-sans:var(--font-website);--font-serif:var(--font-prose);--color-darkgrey:var(--text-default);--color-midgrey:var(--text-soft);--color-secondary-text:var(--text-muted);--color-lightgrey:var(--bg-section-alt);--color-border:var(--border-default);--color-wash:var(--bg-code);--text-display-xl-size:clamp(3rem,5.5vw,4.5rem);--text-display-xl-leading:1;--text-display-xl-tracking:-0.02em;--text-display-l-size:clamp(2rem,3.3vw,3rem);--text-display-l-leading:1.08;--text-display-l-tracking:-0.018em;--text-display-m-size:clamp(1.5rem,2.2vw,2rem);--text-display-m-leading:1.15;--text-display-m-tracking:-0.015em;--text-display-s-size:1.75rem;--text-display-s-leading:1.15;--text-display-s-tracking:-0.012em;--text-body-l-size:1.1875rem;--text-body-l-leading:1.55;--text-body-l-tracking:-0.005em;--text-body-m-size:1.0625rem;--text-body-m-leading:1.6;--text-body-m-tracking:-0.005em;--text-body-s-size:1rem;--text-body-s-leading:1.6;--text-body-s-tracking:-0.005em;--text-mono-m-size:0.9375rem;--text-mono-m-leading:1.55;--text-mono-m-tracking:0;--text-eyebrow-size:0.8125rem;--text-eyebrow-weight:500;--text-eyebrow-leading:1.2;--text-eyebrow-tracking:0.04em;--text-prose-l-size:1.25rem;--text-prose-l-leading:1.6;--text-prose-l-tracking:0;--text-prose-m-size:1.125rem;--text-prose-m-leading:1.7;--text-prose-m-tracking:0;--section-pad-s:clamp(5rem,8vw,7rem);--section-pad-m:clamp(7rem,10vw,10rem);--section-pad-l:clamp(9rem,14vw,14rem);--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--prose-max:38rem;--content-max:64rem;--wide-max:82rem;--stage-padding:clamp(4rem,6vw,6rem);--page-pad:1.5rem;--gutter:1rem;--shadow-xs:0 1px 2px rgba(0,0,0,.04);--shadow-sm:0 1px 3px rgba(0,0,0,.05);--shadow-md:0 8px 24px rgba(0,0,0,.08);--shadow-lg:0 16px 48px rgba(0,0,0,.12);--radius-pill:9999px;--radius-card:12px;--radius-button:8px;--radius-code:4px;--duration-fast:150ms;--duration-base:300ms;--duration-slow:600ms;--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1)}@media (min-width:768px){:root{--page-pad:2rem;--gutter:1.5rem}}@media (min-width:1280px){:root{--gutter:2rem}}:root.dark-mode,:root.dark-mode body{color-scheme:dark}:root.dark-mode{--color-primary:#7c5cb8;--color-primary-dark:#6f4aa8;--color-primary-medium:#9a82cf;--color-primary-hover:#8e72c6;--color-primary-muted:#b9a3da;--color-secondary:#c79bae;--color-secondary-hover:#d6b0c0;--bg-page:#16151a;--bg-section-alt:#1e1c24;--bg-alt:#1e1c24;--bg-stage:#252330;--bg-card:#1e1c24;--bg-card-soft:#252330;--bg-purple-tint:#241b33;--text-default:#f4f2ec;--text-muted:#b8b4ac;--text-soft:#8d897f;--text-on-primary:#fff;--text-link:#c3b0e0;--border-default:#34313d;--border-soft:#2c2a35;--border-strong:#4a4753;--bg-code:#1c1b22;--code-fg:#e6e3db;--code-keyword:#c3b0e0;--code-string:#d8b3df;--code-punctuation:#9b978f;--code-comment:#8d897f;--header-bg:var(--bg-page);--header-bg-scrolled:rgba(22,21,26,.85);--tag-bg:#241b33;--tag-fg:#c3b0e0;--primary-tint-08:rgba(124,92,184,.12);--primary-tint-12:rgba(124,92,184,.18);--mark-bg:rgba(195,176,224,.28);--mark-fg:#f4f2ec;--table-scroll-shadow:rgba(0,0,0,.5);--shadow-xs:0 1px 2px rgba(0,0,0,.3);--shadow-sm:0 1px 3px rgba(0,0,0,.35);--shadow-md:0 8px 24px rgba(0,0,0,.45);--shadow-lg:0 16px 48px rgba(0,0,0,.55)}@media (prefers-color-scheme:dark){:root.auto-color{--color-primary:#7c5cb8;--color-primary-dark:#6f4aa8;--color-primary-medium:#9a82cf;--color-primary-hover:#8e72c6;--color-primary-muted:#b9a3da;--color-secondary:#c79bae;--color-secondary-hover:#d6b0c0;--bg-page:#16151a;--bg-section-alt:#1e1c24;--bg-alt:#1e1c24;--bg-stage:#252330;--bg-card:#1e1c24;--bg-card-soft:#252330;--bg-purple-tint:#241b33;--text-default:#f4f2ec;--text-muted:#b8b4ac;--text-soft:#8d897f;--text-on-primary:#fff;--text-link:#c3b0e0;--border-default:#34313d;--border-soft:#2c2a35;--border-strong:#4a4753;--bg-code:#1c1b22;--code-fg:#e6e3db;--code-keyword:#c3b0e0;--code-string:#d8b3df;--code-punctuation:#9b978f;--code-comment:#8d897f;--header-bg:var(--bg-page);--header-bg-scrolled:rgba(22,21,26,.85);--tag-bg:#241b33;--tag-fg:#c3b0e0;--primary-tint-08:rgba(124,92,184,.12);--primary-tint-12:rgba(124,92,184,.18);--mark-bg:rgba(195,176,224,.28);--mark-fg:#f4f2ec;--table-scroll-shadow:rgba(0,0,0,.5);--shadow-xs:0 1px 2px rgba(0,0,0,.3);--shadow-sm:0 1px 3px rgba(0,0,0,.35);--shadow-md:0 8px 24px rgba(0,0,0,.45);--shadow-lg:0 16px 48px rgba(0,0,0,.55);color-scheme:dark}}.text-display-xl{font-size:var(--text-display-xl-size);line-height:var(--text-display-xl-leading);letter-spacing:var(--text-display-xl-tracking)}.text-display-l,.text-display-xl{font-family:var(--font-display);font-weight:400}.text-display-l{font-size:var(--text-display-l-size);line-height:var(--text-display-l-leading);letter-spacing:var(--text-display-l-tracking)}.text-display-m{font-family:var(--font-display);font-size:var(--text-display-m-size);font-weight:400;line-height:var(--text-display-m-leading);letter-spacing:var(--text-display-m-tracking)}.text-display-s,.text-display-s-italic{font-family:var(--font-display);font-size:var(--text-display-s-size);font-weight:400;line-height:var(--text-display-s-leading);letter-spacing:var(--text-display-s-tracking)}.text-display-s-italic{font-style:italic}.text-body-l{font-size:var(--text-body-l-size);line-height:var(--text-body-l-leading);letter-spacing:var(--text-body-l-tracking)}.text-body-l,.text-body-m{font-family:var(--font-website);font-weight:400}.text-body-m{font-size:var(--text-body-m-size);line-height:var(--text-body-m-leading);letter-spacing:var(--text-body-m-tracking)}.text-body-s{font-family:var(--font-website);font-size:var(--text-body-s-size);font-weight:400;line-height:var(--text-body-s-leading);letter-spacing:var(--text-body-s-tracking)}.text-mono-m{font-family:var(--font-mono);font-size:var(--text-mono-m-size);font-weight:400;line-height:var(--text-mono-m-leading);letter-spacing:var(--text-mono-m-tracking)}.text-eyebrow{font-family:var(--font-website);font-size:var(--text-eyebrow-size);font-weight:var(--text-eyebrow-weight);line-height:var(--text-eyebrow-leading);letter-spacing:var(--text-eyebrow-tracking);text-transform:uppercase}.text-prose-l{font-size:var(--text-prose-l-size);line-height:var(--text-prose-l-leading);letter-spacing:var(--text-prose-l-tracking)}.text-prose-l,.text-prose-m{font-family:var(--font-prose);font-weight:400}.text-prose-m{font-size:var(--text-prose-m-size);line-height:var(--text-prose-m-leading);letter-spacing:var(--text-prose-m-tracking)}.hljs{color:var(--code-fg);background:transparent}.hljs-comment,.hljs-quote{color:var(--code-comment);font-style:italic}.hljs-built_in,.hljs-class .hljs-title,.hljs-keyword,.hljs-name,.hljs-selector-tag,.hljs-tag,.hljs-title.class_,.hljs-type{color:var(--code-keyword)}.hljs-attr,.hljs-bullet,.hljs-link,.hljs-literal,.hljs-meta-string,.hljs-number,.hljs-string,.hljs-symbol,.hljs-template-tag,.hljs-template-variable,.hljs-variable{color:var(--code-string)}.hljs-operator,.hljs-punctuation{color:var(--code-punctuation)}.hljs-deletion,.hljs-meta{color:var(--code-comment)}.hljs-function,.hljs-params,.hljs-title,.hljs-title.function_{color:var(--code-fg)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}body{line-height:1}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{display:block;max-width:100%;height:auto}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{margin:.67em 0;font-size:2em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:var(--mark-bg);color:var(--mark-fg)}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}kbd{padding:3px 5px;font-family:var(--font-mono);font-size:.85em;background:var(--bg-card-soft);border:1px solid var(--border-default);border-radius:6px;box-shadow:inset 0 -1px 0 var(--border-default)}button,input,optgroup,select,textarea{margin:0;color:inherit;font:inherit}button{overflow:visible;border:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{color:var(--text-default);font-family:var(--font-website);font-size:var(--text-body-m-size);line-height:var(--text-body-m-leading);font-weight:400;font-style:normal;letter-spacing:-.01em;text-rendering:optimizeLegibility;background:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}::-moz-selection{text-shadow:none;background:var(--bg-purple-tint);color:var(--text-default)}::selection{text-shadow:none;background:var(--bg-purple-tint);color:var(--text-default)}hr{position:relative;display:block;width:100%;margin:2.5em 0 3.5em;padding:0;height:1px;border:0;border-top:1px solid var(--border-soft)}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{margin:0;padding:0;border:0}textarea{resize:vertical}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0}ol,ul{max-width:100%}li{padding-left:.3em;line-height:1.6em}li+li{margin-top:.5em}dt{float:left;margin:0 20px 0 0;width:120px;color:var(--text-muted);font-weight:500;text-align:right}dd{margin:0 0 5px;text-align:left}blockquote{margin:1.5em 0;padding:0 1.6em;border-left:3px solid var(--border-soft)}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{text-decoration:none}a,h1,h2,h3,h4,h5,h6{color:var(--text-default)}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.15;font-family:var(--font-display);font-weight:400;text-rendering:optimizeLegibility;letter-spacing:-.015em}h1{margin:0 0 .5em;font-size:2.5rem;letter-spacing:-.018em}h2{font-size:2rem}h2,h3{margin:1.5em 0 .5em}h3{font-size:1.5rem}h4{font-size:1.25rem}h4,h5{margin:1.5em 0 .5em}h5{font-size:1.125rem}h6{margin:1.5em 0 .5em;font-size:1rem}.pswp{position:absolute;top:0;left:0;z-index:3999999;display:none;width:100%;height:100%;overflow:hidden;touch-action:none;outline:none;backface-visibility:hidden;-webkit-text-size-adjust:100%}.pswp img{max-width:none}.pswp--animate_opacity{opacity:.001;transition:opacity 333ms cubic-bezier(.4,0,.22,1);will-change:opacity}.pswp--open{display:block}.pswp--zoom-allowed .pswp__img{cursor:zoom-in}.pswp--zoomed-in .pswp__img{cursor:grab}.pswp--dragging .pswp__img{cursor:grabbing}.pswp__bg{background-color:rgba(0,0,0,.85);opacity:0;transition:opacity 333ms cubic-bezier(.4,0,.22,1);transform:translateZ(0);backface-visibility:hidden;will-change:opacity}.pswp__bg,.pswp__scroll-wrap{position:absolute;top:0;left:0;width:100%;height:100%}.pswp__scroll-wrap{overflow:hidden}.pswp__container,.pswp__zoom-wrap{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none;backface-visibility:hidden}.pswp__container,.pswp__img{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.pswp__zoom-wrap{position:absolute;width:100%;transition:transform 333ms cubic-bezier(.4,0,.22,1);transform-origin:left top}.pswp--animated-in .pswp__bg,.pswp--animated-in .pswp__zoom-wrap{transition:none}.pswp__item{right:0;bottom:0;overflow:hidden}.pswp__img,.pswp__item{position:absolute;top:0;left:0}.pswp__img{width:auto;height:auto}.pswp__img--placeholder{backface-visibility:hidden}.pswp__img--placeholder--blank{background:#000}.pswp--ie .pswp__img{top:0;left:0;width:100%!important;height:auto!important}.pswp__error-msg{position:absolute;top:50%;left:0;width:100%;margin-top:-8px;font-size:14px;line-height:16px;color:var(--color-secondary-text);text-align:center}.pswp__error-msg a{color:var(--color-secondary-text);text-decoration:underline}.pswp__button{position:relative;display:block;float:right;width:44px;height:44px;padding:0;margin:0;overflow:visible;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background:none;border:0;box-shadow:none;transition:opacity .2s}.pswp__button:focus,.pswp__button:hover{opacity:1}.pswp__button:active{outline:none;opacity:.9}.pswp__button::-moz-focus-inner{padding:0;border:0}.pswp__ui--over-close .pswp__button--close{opacity:1}.pswp__button,.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{width:44px;height:44px;background:url(../images/default-skin.png) 0 0 no-repeat;background-size:264px 88px}@media (min-resolution:1.1dppx),(min-resolution:105dpi){.pswp--svg .pswp__button,.pswp--svg .pswp__button--arrow--left:before,.pswp--svg .pswp__button--arrow--right:before{background-image:url(../images/default-skin.svg)}.pswp--svg .pswp__button--arrow--left,.pswp--svg .pswp__button--arrow--right{background:none}}.pswp__button--close{background-position:0 -44px}.pswp__button--share{background-position:-44px -44px}.pswp__button--fs{display:none}.pswp--supports-fs .pswp__button--fs{display:block}.pswp--fs .pswp__button--fs{background-position:-44px 0}.pswp__button--zoom{display:none;background-position:-88px 0}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__button--zoom{background-position:-132px 0}.pswp--touch .pswp__button--arrow--left,.pswp--touch .pswp__button--arrow--right{visibility:hidden}.pswp__button--arrow--left,.pswp__button--arrow--right{position:absolute;top:50%;width:70px;height:100px;margin-top:-50px;background:none}.pswp__button--arrow--left{left:0}.pswp__button--arrow--right{right:0}.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{position:absolute;top:35px;width:32px;height:30px;content:""}.pswp__button--arrow--left:before{left:6px;background-position:-138px -44px}.pswp__button--arrow--right:before{right:6px;background-position:-94px -44px}.pswp__counter{position:absolute;top:0;left:0;height:44px;padding:0 15px;font-size:11px;font-weight:700;line-height:44px;color:#fff;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pswp__caption{position:absolute;bottom:0;left:0;width:100%;min-height:44px}.pswp__caption__center{max-width:420px;padding:25px 15px 30px;margin:0 auto;font-size:11px;line-height:1.6;color:#fff;text-align:center}.pswp__caption__center .post-caption-title{margin-bottom:7px;font-size:15px;font-weight:500;text-transform:uppercase}.pswp__caption__center .post-caption-meta-item+.post-caption-meta-item:before{padding:0 4px;content:"\02022"}.pswp__caption--empty{display:none}.pswp__caption--fake{visibility:hidden}.pswp__preloader{position:absolute;top:0;left:50%;width:44px;height:44px;margin-left:-22px;opacity:0;transition:opacity .25s ease-out;direction:ltr;will-change:opacity}.pswp__preloader__icn{width:20px;height:20px;margin:12px}.pswp__preloader--active{opacity:1}.pswp__preloader--active .pswp__preloader__icn{background:url(../images/preloader.gif) 0 0 no-repeat}.pswp--css_animation .pswp__preloader--active{opacity:1}.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn{animation:clockwise .5s linear infinite}.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut{animation:donut-rotate 1s cubic-bezier(.4,0,.22,1) infinite}.pswp--css_animation .pswp__preloader__icn{position:absolute;top:15px;left:15px;width:14px;height:14px;margin:0;background:none;opacity:.75}.pswp--css_animation .pswp__preloader__cut{position:relative;width:7px;height:14px;overflow:hidden}.pswp--css_animation .pswp__preloader__donut{position:absolute;top:0;left:0;box-sizing:border-box;width:14px;height:14px;margin:0;background:none;border-color:#fff #fff transparent transparent;border-style:solid;border-width:2px;border-radius:50%}@media screen and (max-width:1024px){.pswp__preloader{position:relative;top:auto;left:auto;float:right;margin:0}}@keyframes clockwise{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes donut-rotate{0%{transform:rotate(0)}50%{transform:rotate(-140deg)}to{transform:rotate(0)}}.pswp__ui{z-index:1550;visibility:visible;opacity:1;-webkit-font-smoothing:auto}.pswp__top-bar{position:absolute;top:0;left:0;width:100%;height:44px}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right,.pswp__caption,.pswp__top-bar{backface-visibility:hidden;transition:opacity 333ms cubic-bezier(.4,0,.22,1);will-change:opacity}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right{visibility:visible}.pswp__ui--idle .pswp__button--arrow--left,.pswp__ui--idle .pswp__button--arrow--right,.pswp__ui--idle .pswp__top-bar{opacity:0}.pswp__ui--hidden .pswp__button--arrow--left,.pswp__ui--hidden .pswp__button--arrow--right,.pswp__ui--hidden .pswp__caption,.pswp__ui--hidden .pswp__top-bar{opacity:.001}.pswp__ui--one-slide .pswp__button--arrow--left,.pswp__ui--one-slide .pswp__button--arrow--right,.pswp__ui--one-slide .pswp__counter{display:none}.pswp__element--disabled{display:none!important}.pswp--minimal--dark .pswp__top-bar{background:none}.viewport{position:relative;display:flex;flex-direction:column;min-height:100vh}.site-content{flex-grow:1}.outer{position:relative;padding:0 var(--page-pad)}.inner{margin:0 auto;max-width:var(--wide-max);width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.gh-banner{background:var(--bg-purple-tint)}.gh-banner-link{display:block;padding:.625rem 1rem;text-align:center;font-family:var(--font-website);font-size:13px;color:var(--text-default);transition:color var(--duration-fast) var(--ease-out)}.gh-banner-link:hover{color:var(--color-primary)}.gh-banner-cta{text-decoration:underline;text-underline-offset:2px}.gh-head{position:sticky;top:0;z-index:100;background:var(--header-bg);border-bottom:1px solid transparent;transition:background-color var(--duration-base) var(--ease-in-out),border-color var(--duration-base) var(--ease-in-out)}.gh-head.is-scrolled{background:var(--header-bg-scrolled);border-bottom-color:var(--border-default);backdrop-filter:saturate(140%) blur(12px)}.gh-head a{text-decoration:none}.gh-head-inner{display:flex;align-items:center;gap:1.5rem;height:64px;max-width:var(--wide-max);margin:0 auto;padding:0 var(--page-pad)}.gh-head-logo{display:inline-flex;align-items:center;flex-shrink:0}.gh-head-logo img{width:auto;height:26px;display:block}:root.dark-mode .gh-head-logo img,:root.dark-mode .site-footer-brand img{filter:brightness(0) invert(.92)}@media (prefers-color-scheme:dark){:root.auto-color .gh-head-logo img,:root.auto-color .site-footer-brand img{filter:brightness(0) invert(.92)}}.gh-nav{display:none;margin-left:1.5rem}@media (min-width:1024px){.gh-nav{display:flex;align-items:center}}.gh-nav-list{display:flex;align-items:center;gap:1.5rem;margin:0;padding:0;list-style:none;transform:translateY(3px)}@media (min-width:1536px){.gh-nav-list{gap:1.75rem}}.gh-nav-item{position:relative}.gh-nav-item,.gh-nav-link{display:inline-flex;align-items:center;margin:0;padding:0}.gh-nav-link{gap:.25rem;font-family:var(--font-website);font-size:13px;font-weight:500;line-height:1;color:var(--text-muted);background:transparent;border:0;cursor:pointer;white-space:nowrap;transition:color var(--duration-fast) var(--ease-out)}.gh-nav-item:focus-within .gh-nav-link,.gh-nav-item:hover .gh-nav-link,.gh-nav-link:hover{color:var(--text-default)}.gh-nav-chevron{width:10px;height:10px;color:var(--text-soft);transition:transform var(--duration-fast) var(--ease-out)}.gh-nav-item:focus-within .gh-nav-chevron,.gh-nav-item:hover .gh-nav-chevron{transform:rotate(180deg)}.gh-dropdown{position:absolute;left:0;top:100%;z-index:50;margin-top:.5rem;width:16rem;padding:.5rem;background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-card);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity var(--duration-fast) var(--ease-out),visibility var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.gh-dropdown:before{content:"";position:absolute;top:-.5rem;left:0;right:0;height:.5rem}.gh-nav-item:focus-within .gh-dropdown,.gh-nav-item:hover .gh-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.gh-dropdown-row{display:block;width:100%;padding:.5rem .75rem;border-radius:6px;font-family:var(--font-website);font-size:13px;line-height:1.3;color:var(--text-default);transition:background-color var(--duration-fast) var(--ease-out)}.gh-dropdown-row:hover{background:var(--bg-section-alt)}.gh-dropdown-row .gh-ext{margin-left:.25rem;opacity:.6}.gh-head-cta{display:flex;align-items:center;gap:.75rem;margin-left:auto}.gh-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;background:transparent;border-radius:6px;color:var(--text-muted);cursor:pointer;transition:color var(--duration-fast) var(--ease-out)}.gh-icon-btn:hover{color:var(--text-default)}.gh-icon-btn svg{width:18px;height:18px}.gh-head-login{display:none;font-family:var(--font-website);font-size:13px;font-weight:500;color:var(--text-muted);white-space:nowrap;transition:color var(--duration-fast) var(--ease-out)}.gh-head-login:hover{color:var(--text-default)}@media (min-width:1280px){.gh-head-login{display:inline-flex}}.gh-stargazer{display:none;align-items:center}.gh-stargazer img{height:22px;width:auto;display:block}@media (min-width:1280px){.gh-stargazer{display:inline-flex}}.gh-head-cta .gh-btn{display:none}@media (min-width:480px){.gh-head-cta .gh-btn{display:inline-flex}}.gh-burger{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-right:-8px;border:0;background:transparent;border-radius:6px;color:var(--text-default);cursor:pointer}@media (min-width:1024px){.gh-burger{display:none}}.gh-burger span,.gh-burger span:after,.gh-burger span:before{content:"";display:block;width:20px;height:2px;background:currentColor;border-radius:2px;transition:transform var(--duration-fast) var(--ease-out),opacity var(--duration-fast) var(--ease-out)}.gh-burger span{position:relative}.gh-burger span:before{position:absolute;top:-6px}.gh-burger span:after{position:absolute;top:6px}.gh-head-open .gh-burger span{background:transparent}.gh-head-open .gh-burger span:before{top:0;transform:rotate(45deg)}.gh-head-open .gh-burger span:after{top:0;transform:rotate(-45deg)}.gh-mobile-menu{display:none;border-top:1px solid var(--border-default);background:var(--header-bg);max-height:calc(100vh - 64px);overflow-y:auto}.gh-head-open .gh-mobile-menu{display:block}@media (min-width:1024px){.gh-mobile-menu{display:none!important}}.gh-mobile-menu-inner{max-width:var(--wide-max);margin:0 auto;padding:1.5rem var(--page-pad) 2rem}.gh-mobile-section+.gh-mobile-section{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border-soft)}.gh-mobile-heading{font-size:var(--text-eyebrow-size);letter-spacing:var(--text-eyebrow-tracking);text-transform:uppercase;color:var(--text-soft);margin:0 0 .5rem}.gh-mobile-heading,.gh-mobile-link{display:block;font-family:var(--font-website);font-weight:500}.gh-mobile-link{font-size:15px;color:var(--text-default);padding:.5rem 0}.gh-mobile-sublink{display:block;font-family:var(--font-website);font-size:14px;color:var(--text-muted);padding:.375rem 0}.gh-mobile-cta{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-default)}.gh-mobile-cta .gh-btn{width:100%}.gh-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:2.5rem;padding:0 1rem;border:0;border-radius:var(--radius-button);font-family:var(--font-website);font-size:.9375rem;font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;text-decoration:none;transition:transform var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.gh-btn:hover{transform:translateY(-1px)}.gh-btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg-page),0 0 0 4px var(--color-primary)}.gh-btn-primary{background:var(--color-primary);color:var(--text-on-primary)}.gh-btn-primary:hover{background:var(--color-primary-hover);color:var(--text-on-primary)}.gh-btn-secondary{background:var(--bg-card);color:var(--text-default);border:1px solid var(--border-default)}.gh-btn-secondary:hover{border-color:var(--text-default);color:var(--text-default)}.gh-btn-lg{height:3rem;padding:0 1.5rem;font-size:1rem}.site-main{padding-bottom:clamp(4rem,8vw,7rem)}.posts{padding-top:clamp(2rem,5vw,3.5rem)}.post-feed{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:clamp(1.5rem,4vw,2.5rem);margin-top:2.5rem}.post-card{position:relative;grid-column:span 2;display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border-soft);border-radius:var(--radius-card);overflow:hidden;word-break:break-word;transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.post-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-default)}.post-card-image-link{position:relative;overflow:hidden;display:block}.post-card-image-link:after{content:"";display:block;padding-bottom:55%}.post-card[class*=post-access-] .post-card-image-link:after{background-color:rgba(0,0,0,.5);backdrop-filter:blur(3px)}.post-card.keep-ratio[class*=post-access-] .post-card-image-link:after{position:absolute;inset:0;padding-bottom:0}.post-card.keep-ratio:not(.post-card-large):not(.post-card-full) .post-card-image-link:after{padding-bottom:0}.post-card-image{position:absolute;inset:0;width:100%;height:100%;background:var(--bg-section-alt) no-repeat center center;-o-object-fit:cover;object-fit:cover}.post-card.keep-ratio:not(.post-card-large):not(.post-card-full) .post-card-image{position:static}.post-card-access{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;gap:4px;font-family:var(--font-website);font-size:.9375rem;font-weight:600;color:#fff}.post-card-content{flex-grow:1;display:flex;flex-direction:column;padding:1.5rem}.post-card-content-link{position:relative;display:block;color:var(--text-default)}.post-card-content-link:hover{text-decoration:none}.post-card-tags{display:flex;align-items:center;gap:8px;margin:0 0 .75rem;font-family:var(--font-website);font-size:var(--text-eyebrow-size);font-weight:500;letter-spacing:var(--text-eyebrow-tracking);text-transform:uppercase;line-height:1}.post-card-featured{display:inline-flex;align-items:center;gap:4px;color:var(--color-secondary-hover);background-color:color-mix(in srgb,var(--color-secondary) 16%,transparent);padding:5px 10px;border-radius:var(--radius-pill)}.post-card-featured svg{width:11px;height:11px;fill:var(--color-secondary-hover)}.post-card-primary-tag{color:var(--tag-fg);background-color:var(--tag-bg);padding:5px 10px;border-radius:var(--radius-pill)}.post-card-title{margin:0;font-family:var(--font-display);font-size:1.375rem;font-weight:400;line-height:1.2;letter-spacing:-.012em;color:var(--text-default)}.post-card-content-link:hover .post-card-title{color:var(--color-primary)}.post-card-title svg{width:14px;height:14px;margin-top:-3px;margin-left:-1px}.post-card-excerpt{display:-webkit-box;overflow-y:hidden;margin-top:.75rem;max-width:720px;font-family:var(--font-website);font-size:var(--text-body-s-size);line-height:var(--text-body-s-leading);color:var(--text-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;word-break:break-word}.post-card:not(.post-card-large):not(.post-card-full):not(.dynamic):not(.no-image) .post-card-excerpt{-webkit-line-clamp:2}:is(.tag-template,.author-template) .post-card-excerpt{margin-top:6px}:is(.tag-template,.author-template) .post-card-large .post-card-excerpt{display:block;overflow-y:auto}.post-card-meta{margin-top:auto;padding-top:1rem;font-family:var(--font-website);font-size:.8125rem;color:var(--text-soft)}.post-card-meta,.post-card-meta>*{display:flex;align-items:center;gap:6px}.post-card-meta>*+:not(script):before{display:inline-block;width:2px;height:2px;margin:0 2px;content:"";background-color:var(--text-soft);border-radius:50%}.post-card-meta .sep{margin:0 4px}.author-profile-image{display:block;width:100%;height:100%;background:var(--bg-stage);border-radius:100%;-o-object-fit:cover;object-fit:cover}.author-list{display:flex;margin:0 0 0 4px;padding:0;list-style:none}.author-list-item{position:relative;flex-shrink:0;margin:0;padding:0}@media (min-width:1001px){.post-card-large{grid-column:span 6;display:grid;grid-template-columns:repeat(3,1fr)}.post-card-large .post-card-image-link{position:relative;grid-column:span 2;margin-bottom:0}.post-card-large .post-card-content{grid-column:span 1;justify-content:center;padding:2.5rem}.post-card-large.no-image .post-card-content{grid-column:span 3}.post-card-large .post-card-image{position:absolute;width:100%;height:100%}.post-card-large .post-card-title{font-size:1.75rem;line-height:1.1}.post-card-large .post-card-excerpt{margin-top:1rem;-webkit-line-clamp:3}.post-card-full{grid-column:span 6}.post-card.dynamic{grid-column:span 3}}.pagination{display:none;grid-template-columns:1fr auto 1fr;align-items:center;margin-top:6vmin}html.no-infinite-scroll .pagination{display:grid}.pagination a{font-family:var(--font-website);font-size:1.0625rem;font-weight:500;color:var(--text-default)}.pagination a:hover{color:var(--color-primary)}.pagination .page-number{grid-column-start:2;color:var(--text-soft)}.pagination .older-posts{grid-column-start:3;text-align:right}@media (max-width:767px){.pagination .page-number{display:none}}.article{word-break:break-word}.post-template .article{padding:max(6vmin,40px) 0 max(8vmin,64px)}.post-template .article-header{padding:0 0 max(5vmin,32px)}.page-template .article-header{padding:max(10vmin,56px) 0 max(3vmin,24px)}.breadcrumb{margin-bottom:1.5rem;font-family:var(--font-website);font-size:var(--text-body-s-size)}.breadcrumb p{margin:0;color:var(--text-soft)}.breadcrumb .breadcrumb-home{color:var(--text-muted)}.breadcrumb .breadcrumb-home:hover{color:var(--color-primary)}.breadcrumb .breadcrumb-current{color:var(--text-default)}.article-tag{margin-bottom:1rem;font-family:var(--font-website);font-size:var(--text-eyebrow-size);font-weight:500;letter-spacing:var(--text-eyebrow-tracking);text-transform:uppercase}.article-tag.post-card-tags{display:flex;align-items:center;gap:8px}.article-tag .post-card-primary-tag a{color:var(--tag-fg)}.article-title{margin-bottom:0;font-family:var(--font-display);font-size:var(--text-display-l-size);font-weight:400;line-height:var(--text-display-l-leading);letter-spacing:var(--text-display-l-tracking);color:var(--text-default)}.article-excerpt{margin-top:1.25rem;max-width:var(--content-max);font-family:var(--font-website);font-size:var(--text-body-l-size);line-height:var(--text-body-l-leading);letter-spacing:var(--text-body-l-tracking);color:var(--text-muted)}.gh-canvas .article-image{grid-column:hero-start/hero-end;width:100%;margin:max(5vmin,32px) 0 0}.image-full .article-image{grid-column:full-start/full-end}.image-small .article-image{grid-column:main-start/main-end}.gh-canvas .article-image img{display:block;margin-left:auto;margin-right:auto;width:100%;border-radius:var(--radius-card)}.image-full .article-image img{border-radius:0}.article-byline{display:flex;justify-content:space-between;margin:max(20px,4vmin) 0 0}.article-byline-content{flex-grow:1;display:flex;align-items:center}.article-byline-content .author-list{justify-content:flex-start;padding:0 14px 0 0}.article-byline-meta{font-family:var(--font-website);color:var(--text-soft);font-size:.875rem;line-height:1.3}.article-byline-meta .author-name{margin:0 0 4px;font-family:var(--font-website);font-size:1rem;font-weight:600;color:var(--text-default);letter-spacing:-.005em}.byline-meta-updated{color:var(--text-soft)}.article-byline-meta .bull{display:inline-block;margin:0 2px}.author-avatar{display:block;overflow:hidden;margin:0 -4px;width:min(48px,12vmin);height:min(48px,12vmin);border:2px solid var(--bg-page);border-radius:50%;background-color:var(--border-default);color:var(--text-soft)}.page-template .article-title{margin-bottom:0}.gh-canvas,.kg-width-full.kg-content-wide{--gap:max(4vmin,20px);--main:min(var(--content-width,720px),100% - var(--gap) * 2);--hero:minmax(0,calc(var(--content-width, 720px)*0.1));--wide-extra:minmax(0,calc(var(--content-width, 720px)*0.1));--full:minmax(var(--gap),1fr);display:grid;grid-template-columns:[full-start] var(--full) [wide-start] var(--wide-extra) [hero-start] var(--hero) [main-start] var(--main) [main-end] var(--hero) [hero-end] var(--wide-extra) [wide-end] var(--full) [full-end]}.gh-canvas>*{grid-column:main-start/main-end}.kg-content-wide>div,.kg-width-wide{grid-column:wide-start/wide-end}.kg-width-full{grid-column:full-start/full-end}.kg-width-full img{width:100%}.gh-content>*+*{margin-top:max(3.2vmin,24px);margin-bottom:0}.gh-content>.kg-width-full+.kg-width-full:not(.kg-width-full.kg-card-hascaption+.kg-width-full){margin-top:0}.gh-content>:is(h1,h2,h3,h4,h5,h6):not(:first-child){margin:2em 0 0}.gh-content>:is(h1,h2,h3,h4,h5,h6)+*{margin-top:1.25rem!important}.gh-content>blockquote,.gh-content>hr{position:relative;margin-top:max(4.8vmin,32px)}.gh-content>blockquote+*,.gh-content>hr+*{margin-top:max(4.8vmin,32px)!important}.gh-content>blockquote:not([class]),.gh-content>dl,.gh-content>ol,.gh-content>p,.gh-content>ul{font-family:var(--font-prose);font-weight:400;font-size:var(--text-prose-m-size);line-height:var(--text-prose-m-leading);letter-spacing:var(--text-prose-m-tracking);color:var(--text-default)}.gh-content>p img{margin:0 auto}.gh-content>dl,.gh-content>ol,.gh-content>ul{padding-left:1.9em}.gh-content>ul{list-style:disc}.gh-content>ol{list-style:decimal}.gh-content li+li{margin-top:.5rem}.gh-content ol ol li{list-style-type:lower-alpha}.gh-content ol ol ol li{list-style-type:lower-roman}.gh-content strong{font-weight:500;color:var(--text-default)}.gh-content em{font-style:italic}.gh-content>:is(h1,h2,h3,h4,h5,h6){margin:0;font-family:var(--font-display);font-weight:400;color:var(--text-default)}.gh-content>h1{font-size:var(--text-display-l-size);line-height:var(--text-display-l-leading);letter-spacing:var(--text-display-l-tracking)}.gh-content>h2{font-size:var(--text-display-m-size);line-height:var(--text-display-m-leading);letter-spacing:var(--text-display-m-tracking)}.gh-content>h3{font-size:var(--text-display-s-size);line-height:var(--text-display-s-leading);letter-spacing:var(--text-display-s-tracking)}.gh-content>h4{font-size:1.375rem;line-height:1.3;letter-spacing:-.01em}.gh-content>h5{font-size:1.1875rem;line-height:1.35;letter-spacing:-.005em}.gh-content>h6{font-size:1.0625rem;line-height:1.4;letter-spacing:0;font-weight:500}.gh-content a{color:var(--color-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;word-break:break-word;transition:color var(--duration-fast) var(--ease-out)}.gh-content a:hover{color:var(--color-primary-hover)}:root.dark-mode .gh-content a,:root.dark-mode .gh-content a:hover{color:var(--text-link)}@media (prefers-color-scheme:dark){:root.auto-color .gh-content a,:root.auto-color .gh-content a:hover{color:var(--text-link)}}.gh-content>blockquote:not([class]){position:relative;padding:0;border-left:0;font-family:var(--font-display);font-style:italic;font-size:var(--text-display-s-size);line-height:var(--text-display-s-leading);letter-spacing:var(--text-display-s-tracking);color:var(--text-default)}.gh-content>blockquote:not([class]):before{content:"";position:absolute;left:-1.5em;top:0;bottom:0;width:.3rem;border-radius:2px;background:var(--color-primary)}.kg-blockquote-alt{font-family:var(--font-display);font-style:italic;color:var(--text-muted)}.gh-content :not(pre)>code{vertical-align:middle;padding:.15em .4em;font-weight:400!important;font-size:.9em;line-height:1em}.gh-content :not(pre)>code,.gh-content pre{font-family:var(--font-mono);color:var(--code-fg);background:var(--bg-code);border:1px solid var(--code-border);border-radius:var(--radius-code)}.gh-content pre{overflow:auto;padding:var(--space-4) var(--space-5);font-size:var(--text-mono-m-size);line-height:var(--text-mono-m-leading);letter-spacing:var(--text-mono-m-tracking)}.gh-content pre code{padding:0;border:0;background:transparent;color:inherit;font-size:inherit}.gh-content pre[class*=language-]{padding:var(--space-4) var(--space-5);font-family:var(--font-mono);font-size:var(--text-mono-m-size);line-height:var(--text-mono-m-leading);letter-spacing:var(--text-mono-m-tracking)}.gh-content pre[class*=language-] code[class*=language-]{font-family:var(--font-mono);font-size:inherit;text-shadow:none}.gh-content .gh-codeblock{position:relative;overflow:hidden;background:var(--bg-code);border:1px solid var(--code-border);border-radius:var(--radius-code)}.gh-content .gh-codeblock>pre{margin:0;border:0;border-radius:0;background:transparent}.gh-codeblock-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--code-border)}.gh-codeblock-lang{font-family:var(--font-mono);font-size:var(--text-mono-m-size);line-height:1;color:var(--text-soft)}.gh-codeblock-copy{display:inline-flex;align-items:center;gap:.375rem;margin:0;padding:.25rem .5rem;font-family:var(--font-website);font-size:.75rem;line-height:1;color:var(--text-muted);background:transparent;border:0;border-radius:var(--radius-button);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.gh-codeblock-copy:hover{background:var(--bg-card);color:var(--text-default)}.gh-codeblock-copy svg{display:block;width:14px;height:14px}.gh-content table:not(.gist table){display:inline-block;overflow-x:auto;max-width:100%;width:auto;border-spacing:0;border-collapse:collapse;font-family:var(--font-website);font-size:var(--text-body-s-size);white-space:nowrap;vertical-align:top;-webkit-overflow-scrolling:touch;background:radial-gradient(ellipse at left,var(--table-scroll-shadow) 0,transparent 75%) 0,radial-gradient(ellipse at right,var(--table-scroll-shadow) 0,transparent 75%) 100%;background-attachment:scroll,scroll;background-size:10px 100%,10px 100%;background-repeat:no-repeat}.gh-content table:not(.gist table) td:first-child{background-image:linear-gradient(to right,var(--bg-page) 50%,rgba(250,250,247,0) 100%);background-size:20px 100%;background-repeat:no-repeat}.gh-content table:not(.gist table) td:last-child{background-image:linear-gradient(to left,var(--bg-page) 50%,rgba(250,250,247,0) 100%);background-position:100% 0;background-size:20px 100%;background-repeat:no-repeat}.gh-content table:not(.gist table) th{color:var(--text-default);font-family:var(--font-website);font-size:var(--text-eyebrow-size);font-weight:600;letter-spacing:var(--text-eyebrow-tracking);text-align:left;text-transform:uppercase;background-color:var(--bg-card-soft)}.gh-content table:not(.gist table) td,.gh-content table:not(.gist table) th{padding:6px 12px;border:1px solid var(--border-default)}.gh-content .kg-card+:not(.kg-card),.gh-content :not(.kg-card):not([id])+.kg-card{margin-top:6vmin}.kg-embed-card{display:flex;flex-direction:column;align-items:center;width:100%}.kg-image-card img{margin:auto;border-radius:var(--radius-card)}.kg-width-full .kg-image-card img,.kg-width-full img{border-radius:0}.kg-gallery-image,.kg-image[width][height]{cursor:pointer}.gh-content .kg-callout-card,.kg-gallery-image img{border-radius:var(--radius-card)}.gh-content .kg-callout-card .kg-callout-text{font-family:var(--font-prose);font-weight:400;font-size:1.0625rem;line-height:1.6;color:var(--text-default)}.gh-content .kg-callout-card .kg-callout-emoji{font-size:1.3em;line-height:1.4}.gh-content .kg-callout-card-accent a{text-decoration:underline;color:var(--color-primary)}.gh-content .kg-toggle-card{border:1px solid var(--border-soft);border-radius:var(--radius-card)}.gh-content .kg-toggle-card .kg-toggle-heading-text{font-family:var(--font-display);font-weight:400;font-size:1.25rem;color:var(--text-default)}.gh-content .kg-toggle-card .kg-toggle-content>ol,.gh-content .kg-toggle-card .kg-toggle-content>p,.gh-content .kg-toggle-card .kg-toggle-content>ul{font-family:var(--font-prose);font-weight:400;font-size:1.0625rem;line-height:1.6;color:var(--text-default)}.gh-content .kg-toggle-card .kg-toggle-content>ol,.gh-content .kg-toggle-card .kg-toggle-content>ul{padding-left:1.9em}.gh-content .kg-button-card .kg-btn{font-family:var(--font-website);font-weight:500;border-radius:var(--radius-button);transition:background-color var(--duration-fast) var(--ease-in-out)}.gh-content .kg-button-card .kg-btn-accent{background:var(--color-primary);color:var(--text-on-primary)}.gh-content .kg-button-card .kg-btn-accent:hover{background:var(--color-primary-hover)}.kg-card.kg-header-card.kg-style-dark{background:var(--color-primary)}.kg-header-card.kg-style-light{background:var(--bg-card-soft)}.kg-header-card h2.kg-header-card-header{font-family:var(--font-display);font-weight:400}.kg-header-card h3.kg-header-card-subheader{font-family:var(--font-website);color:var(--text-muted)}.kg-header-card.kg-style-dark h2.kg-header-card-header,.kg-header-card.kg-style-dark h3.kg-header-card-subheader{color:var(--text-on-primary)}.gh-content .kg-product-card .kg-product-card-title{font-family:var(--font-display);font-weight:400}.gh-content .kg-product-card .kg-product-card-description>ol,.gh-content .kg-product-card .kg-product-card-description>p,.gh-content .kg-product-card .kg-product-card-description>ul{font-family:var(--font-prose);font-size:1.0625rem;line-height:1.6;color:var(--text-muted)}.gh-content .kg-product-card .kg-product-card-description>ol,.gh-content .kg-product-card .kg-product-card-description>ul{padding-left:1.9em}.gh-content .kg-product-card-rating-star svg{fill:var(--color-warm)}.kg-audio-card,.kg-bookmark-card a.kg-bookmark-container,.kg-file-card .kg-file-card-container{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-sm)}.kg-bookmark-title,.kg-file-card-title{font-family:var(--font-website);color:var(--text-default)}.kg-bookmark-description{font-family:var(--font-website);color:var(--text-muted)}.kg-bookmark-metadata,.kg-file-card-caption{font-family:var(--font-website);color:var(--text-soft)}.kg-video-card video{border-radius:var(--radius-card)}figcaption{padding:1.5rem 1.5rem 0;text-align:center;font-family:var(--font-website);color:var(--text-soft);font-size:.875rem;line-height:1.4}figcaption strong{color:var(--text-muted)}figcaption a{color:var(--color-primary);text-decoration:underline}.kg-width-full.kg-card-hascaption{display:grid;grid-template-columns:inherit}.kg-width-wide.kg-card-hascaption img{grid-column:wide-start/wide-end}.kg-width-full.kg-card-hascaption img{grid-column:1/-1}.kg-width-full.kg-card-hascaption figcaption{grid-column:main-start/main-end}iframe.instagram-media{margin:6vmin auto 0!important}iframe.instagram-media+script+:not([id]){margin-top:6vmin}.footnotes-sep{margin-bottom:30px}.footnotes{font-family:var(--font-website);font-size:.9375rem;color:var(--text-muted)}.footnotes p{margin:0}.footnote-backref{font-size:.85rem;font-weight:700;text-decoration:none!important;box-shadow:none!important}.article-comments{margin:6vmin 0 0}.footer-cta{position:relative;grid-column:main-start/main-end;background-color:var(--bg-purple-tint);border:1px solid var(--border-soft);border-radius:var(--radius-card);padding:clamp(1.5rem,4vw,2.5rem);margin-bottom:6rem}.footer-cta-title{margin:0 0 .75rem;font-family:var(--font-display);font-size:var(--text-display-m-size);font-weight:400;line-height:var(--text-display-m-leading);letter-spacing:var(--text-display-m-tracking);color:var(--text-default)}.footer-cta-subtitle{margin:0 0 1.25rem;font-family:var(--font-website);font-size:var(--text-body-m-size);line-height:var(--text-body-m-leading);color:var(--text-muted)}.footer-form{display:flex;flex-wrap:wrap;gap:.75rem;width:100%}.footer-form input{flex:1 1 240px;background-color:var(--bg-card);border-radius:var(--radius-button);border:1px solid var(--border-default);padding:.75rem 1rem;font-family:var(--font-website);font-size:var(--text-body-m-size);color:var(--text-default)}.footer-form input::-moz-placeholder{color:var(--text-soft)}.footer-form input::placeholder{color:var(--text-soft)}.footer-form input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--primary-tint-12)}.footer-form button{display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);border:0;border-radius:var(--radius-button);padding:.75rem 1.5rem;color:var(--text-on-primary);font-family:var(--font-website);font-size:var(--text-body-m-size);font-weight:500;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-in-out)}.footer-form button:hover{background:var(--color-primary-hover)}.footer-cta small{display:block;margin-top:.75rem;font-family:var(--font-website);font-size:var(--text-body-s-size);color:var(--text-soft)}.read-more-wrap{margin-top:2.4vmin}.footer-cta+.read-more-wrap{margin-top:max(10vmin,64px)}.read-more{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:clamp(1.5rem,4vw,2.5rem)}.read-more .post-card-tags{display:none}@media (max-width:1000px){.read-more{grid-template-columns:repeat(4,1fr)}.read-more .post-card:nth-child(3){display:none}}@media (max-width:700px){.read-more{grid-template-columns:repeat(2,1fr)}.read-more .post-card:nth-child(2){display:none}}.comments{display:flex;flex-direction:column;align-items:center;margin:60px 0 44px}.comments-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:32px;width:100%;max-width:720px}.comments h2{width:100%;max-width:720px;font-family:var(--font-display);font-weight:400;font-size:var(--text-display-s-size)}.comments .comment-count{color:var(--text-muted);font-weight:500;white-space:nowrap}.comments #ghost-comments-root{width:100%;max-width:720px}.author-profile-pic{display:block;width:80px;height:80px;-o-object-fit:cover;object-fit:cover;margin:0 0 1.5rem;background:var(--bg-stage);border-radius:50%}.author-profile-footer{margin-top:16px;font-family:var(--font-website)}.author-profile-location{font-weight:600;color:var(--text-default)}.author-profile-meta{display:flex;gap:10px;margin-top:4px}.author-profile-social-link{font-size:.875rem;color:var(--text-muted)}.author-profile-social-link:hover{color:var(--text-default)}.author-profile-social-link svg{width:16px;height:16px}@media (min-width:1001px){.author-template .post-card-large .post-card-content:only-child,.tag-template .post-card-large .post-card-content:only-child{grid-column:span 3;max-width:720px}}.tag-template .post-card-large .post-card-image-link{order:2}.tag-template .post-card-large .post-card-content{order:1}.error-content{padding:14vw 4vw 2vw}.error-message{padding-bottom:10vw;text-align:center}.error-code{font-size:12vw;line-height:1;letter-spacing:-.02em;color:var(--color-primary)}.error-code,.error-description{margin:0;font-family:var(--font-display);font-weight:400}.error-description{color:var(--text-default);font-size:var(--text-display-s-size);line-height:1.2;letter-spacing:var(--text-display-s-tracking)}.error-link{display:inline-block;margin-top:1rem;font-family:var(--font-website);font-size:var(--text-body-m-size);font-weight:500;color:var(--color-primary)}.error-link:hover{color:var(--color-primary-hover)}.site-wrapper{display:flex;flex-direction:column;min-height:100vh}.site-header.no-image{padding:1.5rem 0;border-bottom:1px solid var(--border-default);color:var(--text-default)}.site-nav-main .inner{max-width:var(--wide-max)}.site-nav-center{display:flex;justify-content:center}.site-nav-logo{display:inline-flex;align-items:center;color:var(--text-default);font-family:var(--font-display);font-size:1.25rem}.site-nav-logo img{height:26px;width:auto}.error-stack{max-width:var(--content-max);margin:0 auto;font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted)}.error-stack-list{list-style:none;margin:1.5rem 0 0;padding:0}.error-stack-list li+li{margin-top:1rem}.error-stack-function{color:var(--text-default);font-weight:600;font-style:normal}.error-stack-file{color:var(--text-muted)}@media (min-width:940px){.error-content .post-card{margin-bottom:0;padding-bottom:0;border-bottom:none}}@media (max-width:800px){.error-content{padding-top:24vw}.error-code{font-size:7rem}.error-message{padding-bottom:16vw}}@media (max-width:500px){.error-content{padding-top:28vw}}.site-footer{background:var(--bg-section-alt);padding-top:clamp(4rem,8vw,7rem);margin-top:clamp(4rem,8vw,7rem)}.page-template .site-footer{margin-top:0}.site-footer-top{max-width:var(--wide-max);margin:0 auto;padding:0 var(--page-pad);display:grid;gap:3rem}@media (min-width:1024px){.site-footer-top{grid-template-columns:1.2fr 4fr}}.site-footer-brand img{height:26px;width:auto;display:block}.site-footer-tagline{margin:1.5rem 0 0;max-width:20rem;font-family:var(--font-website);font-size:var(--text-body-s-size);line-height:var(--text-body-s-leading);color:var(--text-muted)}.site-footer-social{margin-top:1.5rem;display:flex;align-items:center;gap:.5rem}.site-footer-social a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-pill);color:var(--text-soft);transition:color var(--duration-fast) var(--ease-out)}.site-footer-social a:hover{color:var(--text-default)}.site-footer-social svg{width:16px;height:16px;fill:currentColor}.site-footer-cols{display:grid;grid-template-columns:repeat(2,1fr);-moz-column-gap:2rem;column-gap:2rem;row-gap:2.5rem}@media (min-width:768px){.site-footer-cols{grid-template-columns:repeat(3,1fr)}}@media (min-width:1024px){.site-footer-cols{grid-template-columns:repeat(5,1fr)}}.site-footer-heading{margin:0 0 1rem;font-family:var(--font-display);font-size:1.25rem;font-weight:400;line-height:1.2;letter-spacing:-.012em;color:var(--text-default)}.site-footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.site-footer-col li{margin:0;padding:0}.site-footer-link{display:inline-flex;align-items:center;min-height:40px;font-family:var(--font-website);font-size:.9375rem;color:var(--text-muted);background:transparent;padding:0;text-align:left;cursor:pointer;transition:color var(--duration-fast) var(--ease-out)}.site-footer-link:hover{color:var(--text-default)}.site-footer-link .gh-ext{margin-left:4px;opacity:.7}.site-footer-legal{margin-top:3rem;border-top:1px solid var(--border-default)}.site-footer-legal-inner{max-width:var(--wide-max);margin:0 auto;padding:1.5rem var(--page-pad);display:flex;flex-direction:column;align-items:flex-start;gap:1rem}@media (min-width:640px){.site-footer-legal-inner{flex-direction:row;align-items:center;justify-content:space-between}}.site-footer-copyright{margin:0;font-family:var(--font-website);font-size:var(--text-body-s-size);color:var(--text-soft)}.site-footer-legal ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;-moz-column-gap:1.5rem;column-gap:1.5rem;row-gap:.5rem}.gh-content iframe{max-width:100%}.gh-content iframe[src*=vimeo],.gh-content iframe[src*=youtube-nocookie],.gh-content iframe[src*=youtube],.kg-embed-card iframe{width:100%;aspect-ratio:16/9;height:auto}@media (max-width:767px){.post-feed{grid-template-columns:1fr}.post-card{grid-column:1/-1}.article-excerpt{margin-top:.875rem;font-size:var(--text-body-m-size)}.article-byline-content{flex-direction:column;align-items:flex-start;gap:12px}}@media (max-width:650px){.gh-content .kg-callout-card .kg-callout-text,.gh-content .kg-toggle-card .kg-toggle-content>ol,.gh-content .kg-toggle-card .kg-toggle-content>p,.gh-content .kg-toggle-card .kg-toggle-content>ul,.gh-content>blockquote:not([class]),.gh-content>dl,.gh-content>ol,.gh-content>p,.gh-content>ul{font-size:1.0625rem}.gh-content>blockquote:not([class]):before{left:min(-4vmin,-20px)}}