@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-opsz-normal.CfYZpDVp.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-opsz-normal.BFQXbQ-f.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-opsz-normal.BmPQvyvo.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-opsz-normal.BM0NlUE_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-opsz-normal.Ci9T9ieq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-opsz-normal.DpK-iCPk.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-opsz-normal.BwkfbSeq.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-opsz-normal.BjhtXyW2.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-opsz-normal.BQn1nviT.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-opsz-normal.s-izfB6B.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-opsz-italic.DTr-ymY4.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-opsz-italic.CSPGnFdO.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-opsz-italic.kJKFiXvB.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--paper: 255 255 255;--raised: 255 255 255;--gray-50: 251 251 253;--gray-100: 245 245 247;--gray-200: 232 232 237;--gray-300: 210 210 215;--gray-400: 134 134 139;--gray-500: 110 110 115;--gray-600: 81 81 84;--gray-700: 66 66 69;--gray-800: 44 44 46;--gray-900: 29 29 31;--gray-950: 17 17 19;--accent: 65 105 225;--accent-50: 239 243 253;--accent-100: 223 230 251;--accent-200: 191 205 246;--accent-600: 47 86 204;--success: 22 163 74;--shadow-card: 0 1px 2px rgb(0 0 0 / .04), 0 4px 16px -8px rgb(0 0 0 / .08);--shadow-lift: 0 1px 2px rgb(0 0 0 / .04), 0 14px 34px -14px rgb(15 23 42 / .18)}:root[data-theme=dark]{color-scheme:dark;--paper: 15 15 17;--raised: 26 26 30;--gray-50: 20 20 23;--gray-100: 28 28 32;--gray-200: 42 42 47;--gray-300: 64 64 70;--gray-400: 120 120 127;--gray-500: 152 152 159;--gray-600: 174 174 180;--gray-700: 200 200 205;--gray-800: 222 222 226;--gray-900: 245 245 247;--gray-950: 255 255 255;--accent: 134 160 255;--accent-50: 24 30 54;--accent-100: 34 43 78;--accent-200: 52 66 120;--accent-600: 164 185 255;--success: 74 222 128;--shadow-card: 0 0 0 1px rgb(255 255 255 / .02);--shadow-lift: 0 14px 34px -14px rgb(0 0 0 / .7)}:root{--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.36, .64, 1);--ease-spring-bouncy: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .16s;--duration-base: .32s;--duration-slow: .62s;--color-accent: rgb(var(--accent))}@supports (transition-timing-function: linear(0,1)){:root{--ease-spring: linear(0, .019, .067, .136, .217, .304, .393, .479, .561, .636, .705, .765, .817, .862, .9, .931, .956, .976, .992, 1.003, 1.012, 1.017, 1.021, 1.023, 1.023, 1.023, 1.022, 1.02, 1.018, 1.016, 1.014, 1.012, 1.01, 1.008, 1.007, 1.005, 1.004, 1.003, 1.002, 1.002, 1);--ease-spring-bouncy: linear(0, .03, .105, .208, .325, .445, .56, .666, .759, .838, .903, .953, .992, 1.019, 1.037, 1.048, 1.053, 1.053, 1.05, 1.046, 1.04, 1.033, 1.027, 1.021, 1.016, 1.011, 1.007, 1.004, 1.002, 1, .999, .998, .997, .997, .997, .997, .998, .998, .998, .999, 1)}}@media(prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}::view-transition-old(root){animation:vt-fade-out .18s var(--ease-out) both}::view-transition-new(root){animation:vt-fade-in .36s var(--ease-out) 60ms both}::view-transition-group(tab-indicator){animation-duration:.52s;animation-timing-function:var(--ease-spring)}@keyframes vt-fade-out{to{opacity:0}}@keyframes vt-fade-in{0%{opacity:0}}@media(prefers-reduced-motion:no-preference){.enter{animation:enter-rise var(--duration-slow) var(--ease-out) both;animation-delay:var(--enter-delay, 0ms)}}@keyframes enter-rise{0%{opacity:0;transform:translateY(10px)}}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){[data-reveal]{animation:reveal-rise linear both;animation-timeline:view();animation-range:cover 0% cover 18%}}}@keyframes reveal-rise{0%{opacity:0;transform:translateY(18px) scale(.985)}}.pressable{-webkit-tap-highlight-color:transparent;transition-property:transform,color,background-color,border-color,box-shadow;transition-duration:var(--duration-slow),var(--duration-fast),var(--duration-fast),var(--duration-fast),var(--duration-base);transition-timing-function:var(--ease-spring),var(--ease-out),var(--ease-out),var(--ease-out),var(--ease-out)}.pressable:active{transform:scale(.96);transition-duration:80ms}.link-grow{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1.5px;transition:background-size var(--duration-base) var(--ease-out)}.link-grow:focus-visible{background-size:100% 1.5px}@media(hover:hover){.link-grow:hover{background-size:100% 1.5px}}.link-grow:active{background-size:100% 1.5px}.prose a{text-underline-offset:2px;text-decoration-color:rgb(var(--accent) / .35);transition:text-underline-offset var(--duration-base) var(--ease-spring),text-decoration-color var(--duration-base) var(--ease-out),color var(--duration-fast) var(--ease-out)}@media(hover:hover){.prose a:hover{text-underline-offset:4px;text-decoration-color:currentColor}}.prose a:active{text-decoration-color:currentColor}.nudge-arrow{display:inline-block;transition:transform var(--duration-slow) var(--ease-spring-bouncy)}@media(hover:hover){:hover>.nudge-arrow{transform:translate(3px)}}:active>.nudge-arrow{transform:translate(3px)}@media(prefers-reduced-motion:no-preference){.check-icon{animation:icon-pop .56s var(--ease-spring-bouncy) both}.link-icon{animation:icon-fade-in .24s var(--ease-out) both}:is(.copy-link-btn,.copy-article-link-btn,.heading-copy-btn){position:relative}:is(.copy-link-btn,.copy-article-link-btn,.heading-copy-btn):has(.check-icon:not(.hidden)):after{content:"";position:absolute;inset:0;border-radius:9999px;border:1.5px solid rgb(var(--success) / .5);animation:ripple .7s var(--ease-out) both;pointer-events:none}}@keyframes icon-pop{0%{opacity:0;transform:scale(.4) rotate(-12deg)}}@keyframes icon-fade-in{0%{opacity:0;transform:scale(.85)}}@keyframes ripple{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.8)}}html{scroll-padding-top:5rem}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}.prose :is(h2,h3):target{animation:target-glow 1.8s var(--ease-out) .2s backwards;border-radius:.375rem}.tweet-card:target{animation:target-ring 1.8s var(--ease-out) .2s backwards}}@keyframes target-glow{0%,30%{background-color:rgb(var(--accent) / .1);box-shadow:0 0 0 6px rgb(var(--accent) / .1)}to{background-color:rgb(var(--accent) / 0);box-shadow:0 0 0 6px rgb(var(--accent) / 0)}}@keyframes target-ring{0%,30%{box-shadow:0 0 0 3px rgb(var(--accent) / .35),0 10px 30px rgb(var(--accent) / .12)}to{box-shadow:0 0 0 3px rgb(var(--accent) / 0),0 1px 2px #0000000d}}@media(prefers-reduced-motion:reduce){.pressable:active,:hover>.nudge-arrow,:active>.nudge-arrow{transform:none}}.theme-toggle[data-astro-cid-xr2nj7un]{display:grid;place-items:center;width:40px;height:40px;border-radius:9999px;color:rgb(var(--gray-500));cursor:pointer}@media(hover:hover){.theme-toggle[data-astro-cid-xr2nj7un]:hover{color:rgb(var(--gray-900));background-color:rgb(var(--gray-100))}}.theme-toggle[data-astro-cid-xr2nj7un] svg[data-astro-cid-xr2nj7un]{width:18px;height:18px}.icon-sun[data-astro-cid-xr2nj7un]{display:none}[data-theme=dark] .icon-sun[data-astro-cid-xr2nj7un]{display:block}[data-theme=dark] .icon-moon[data-astro-cid-xr2nj7un]{display:none}.site-header[data-astro-cid-57m2wulp]{view-transition-name:site-header;position:sticky;top:0;z-index:40;background-color:rgb(var(--paper))}@supports (backdrop-filter: blur(1px)){.site-header[data-astro-cid-57m2wulp]{background-color:rgb(var(--paper) / .72);backdrop-filter:saturate(180%) blur(20px)}}.wordmark[data-astro-cid-57m2wulp]{letter-spacing:-.017em}.menu-toggle[data-astro-cid-57m2wulp] button{display:grid;place-items:center;width:44px;height:44px;margin:-13px -13px -13px 0;-webkit-tap-highlight-color:transparent}.tab[data-astro-cid-57m2wulp]{position:relative;display:flex;align-items:center;color:rgb(var(--gray-900));transition:color var(--duration-fast) var(--ease-out);-webkit-tap-highlight-color:transparent}.tab[data-astro-cid-57m2wulp].active{color:var(--color-accent)}@media(max-width:1023px){.tab[data-astro-cid-57m2wulp]{padding:.45rem 0;font-family:Newsreader Variable,Newsreader,Georgia,serif;font-size:1.7rem;font-weight:500;letter-spacing:-.014em}.tab[data-astro-cid-57m2wulp]:active{color:rgb(var(--gray-500))}}@media(min-width:1024px){.tab[data-astro-cid-57m2wulp]{padding:.875rem 1.1rem;border:1px solid transparent;font-size:.9rem;color:rgb(var(--gray-600))}.tab[data-astro-cid-57m2wulp]:hover{color:rgb(var(--gray-900))}.tab[data-astro-cid-57m2wulp].active{color:var(--color-accent)}}.tab-indicator[data-astro-cid-57m2wulp]{display:none}@media(min-width:1024px){.tab-indicator[data-astro-cid-57m2wulp]{display:block;position:absolute;left:1.1rem;right:1.1rem;bottom:-1px;height:2px;border-radius:2px;background:currentColor;opacity:.25;transform:scaleX(0);transition:transform var(--duration-slow) var(--ease-spring),opacity var(--duration-base) var(--ease-out)}@media(hover:hover){.tab[data-astro-cid-57m2wulp]:hover .tab-indicator[data-astro-cid-57m2wulp]{transform:scaleX(1)}}.tab[data-astro-cid-57m2wulp].active .tab-indicator[data-astro-cid-57m2wulp]{opacity:1;transform:scaleX(1);view-transition-name:tab-indicator}}@media(max-width:1023px)and (prefers-reduced-motion:no-preference){.nav-menu{animation:menu-drop var(--duration-base) var(--ease-out) both}.nav-menu li[data-astro-cid-57m2wulp]{animation:menu-item var(--duration-slow) var(--ease-spring) both}.nav-menu li[data-astro-cid-57m2wulp]:nth-child(2){animation-delay:20ms}.nav-menu li[data-astro-cid-57m2wulp]:nth-child(3){animation-delay:45ms}.nav-menu li[data-astro-cid-57m2wulp]:nth-child(4){animation-delay:70ms}.nav-menu li[data-astro-cid-57m2wulp]:nth-child(5){animation-delay:95ms}.nav-menu li[data-astro-cid-57m2wulp]:nth-child(6){animation-delay:.12s}.nav-menu li[data-astro-cid-57m2wulp]:nth-child(7){animation-delay:145ms}.nav-menu li[data-astro-cid-57m2wulp]:nth-child(8){animation-delay:.17s}.nav-menu li[data-astro-cid-57m2wulp]:nth-child(9){animation-delay:195ms}}@keyframes menu-drop{0%{opacity:0;transform:translateY(-6px)}}@keyframes menu-item{0%{opacity:0;transform:translateY(-8px)}}html{overflow-y:scroll;font-size:93.75%}html,body{font-family:Inter Variable,Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:-.009em}body{background-color:rgb(var(--paper));color:rgb(var(--gray-900));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}::-moz-selection{background-color:rgb(var(--accent) / .2)}::selection{background-color:rgb(var(--accent) / .2)}:focus-visible{outline:2px solid rgb(var(--accent) / .65);outline-offset:2px}.font-display{font-optical-sizing:auto;text-wrap:balance}img{content-visibility:auto}.prose :not(pre)>code{background-color:rgb(var(--gray-100));color:rgb(var(--gray-800));padding:.15rem .4rem;border-radius:.375rem;font-size:.875em;font-weight:500;border:1px solid rgb(var(--gray-200))}.prose code:before,.prose code:after{content:""!important}.prose .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:2em;margin-bottom:2em}.prose .table-scroll>table{margin-top:0;margin-bottom:0}
