@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/figtree-latin-400-normal.g7Dtegnw.woff2)format("woff2"),url(/_astro/figtree-latin-400-normal.BD4aNku5.woff)format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/figtree-latin-500-normal.BWnGEVsr.woff2)format("woff2"),url(/_astro/figtree-latin-500-normal.B_yy1phn.woff)format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/figtree-latin-600-normal.Cv_xCTDl.woff2)format("woff2"),url(/_astro/figtree-latin-600-normal.BM_oTo4n.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff")}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-opsz-normal.D9N6E8K1.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-opsz-normal.IcJDqblK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-opsz-normal.Cre6nC2_.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ground:#f3f5f0;--surface:#fff;--ink:#16241d;--ink-2:#33423a;--muted:#4a5a50;--line:#cdd4cb;--placeholder:#dde3da;--accent:#8e1f3c;--error:#b42318;--error-tint:#fef3f2;--on-dark:#f3f5f0;--on-dark-muted:#b9c6bc;--on-dark-line:#3a4a41;--display:"Bricolage Grotesque Variable", "Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;--body:Figtree, "Helvetica Neue", Arial, sans-serif;--mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--content:1120px;--gutter:24px;--radius:4px}@media (width<=719px){:root{--gutter:16px}}*{box-sizing:border-box}[hidden]{display:none!important}html{background:var(--ground);color:var(--ink);font-family:var(--body);-webkit-text-size-adjust:100%;font-size:16px;line-height:1.5}body{flex-direction:column;min-height:100dvh;margin:0;display:flex;overflow-x:hidden}main{flex:1 0 auto}a{color:var(--ink)}a:hover{color:var(--accent)}h1,h2,h3{font-family:var(--display);letter-spacing:-.01em;margin:0;font-weight:700}p{margin:0}img,svg{max-width:100%;display:block}button,input,select{font:inherit;color:inherit}input[type=radio],input[type=checkbox]{accent-color:var(--ink)}.wrap{max-width:var(--content);padding-left:var(--gutter);padding-right:var(--gutter);margin:0 auto}.eyebrow{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:13px}.mono{font-family:var(--mono);color:var(--muted);font-size:13px}.lead{max-width:640px;color:var(--ink-2);font-size:18px}.muted{color:var(--muted)}.visually-hidden{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.site-header{border-bottom:1px solid var(--line)}.site-header .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:13px;padding-bottom:13px;display:flex}.brand{font-family:var(--display);letter-spacing:-.01em;align-items:center;gap:12px;padding:10px 0;font-size:24px;font-weight:700;text-decoration:none;display:inline-flex}.brand__mark{flex:none;width:60px;height:60px}.site-nav{flex-wrap:wrap;gap:28px;font-weight:500;display:flex}.site-nav a{padding:10px 0;text-decoration:none}.menu-button{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:44px;height:44px;display:none}@media (width<=719px){.site-header .wrap{padding-top:8px;padding-bottom:8px}.brand{padding:4px 0;font-size:22px}.brand__mark{width:48px;height:48px}.menu-button{display:flex}.site-nav{flex-direction:column;flex:100%;gap:0;padding-bottom:8px;display:none}.site-nav[data-open]{display:flex}.site-nav a{border-top:1px solid var(--line);padding:12px 0}}.site-footer{border-top:1px solid var(--line);margin-top:auto}.site-footer .wrap{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:28px;padding-bottom:28px;font-size:14px;display:flex}.site-footer__about{flex-direction:column;gap:6px;display:flex}.site-footer nav{flex-wrap:wrap;gap:0 24px;display:flex}.site-footer a{color:var(--muted);padding:12px 0}@media (width<=599px){.site-footer nav{grid-template-columns:1fr 1fr;width:100%;display:grid}}.prose{padding-bottom:48px}.prose>*{max-width:640px}.prose h2{margin-top:28px}.prose p{margin-top:8px}.page-head{flex-direction:column;gap:14px;padding-top:40px;padding-bottom:32px;display:flex}.page-head h1{letter-spacing:-.02em;font-size:clamp(34px,5vw,56px);line-height:1.05}.breadcrumb{font-family:var(--mono);color:var(--muted);font-size:13px}.breadcrumb a{color:var(--muted)}@media (width<=719px){.page-head{gap:6px;padding-top:20px;padding-bottom:12px}.page-head h1{font-size:32px}}.pills{flex-wrap:wrap;gap:8px;display:flex}.pill{border:1px solid var(--ink);border-radius:999px;align-items:center;padding:5px 12px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.pill--accent{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.tag{border:1px solid var(--ink);border-radius:999px;padding:3px 10px;font-size:13px;font-weight:500}.button{border:1.5px solid var(--ink);border-radius:var(--radius);min-height:48px;color:var(--ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:0 24px;font-weight:600;text-decoration:none;display:inline-flex}.button--primary{border-color:var(--accent);background:var(--accent);color:#fff;min-height:52px;font-size:17px}.button--primary:hover{color:#fff}.button--on-dark{border-color:var(--on-dark);color:var(--on-dark)}.button--on-dark:hover{color:var(--on-dark);background:var(--on-dark-line)}.thanks__text{max-width:640px;margin:0 0 28px}.thanks__links{flex-wrap:wrap;align-items:stretch;gap:12px;display:flex}.thanks__links .button{text-align:center;min-height:52px;padding:12px 24px;font-size:16px;line-height:1.25}@media (width<=599px){.thanks__links{flex-direction:column}.thanks__links .button{width:100%}}.columns{flex-wrap:wrap;align-items:flex-start;gap:40px;display:flex}.columns__main{flex:999 520px;min-width:0}.columns__side{flex:220px;min-width:0}.sponsored-label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:12px}.offline-note{padding:6px var(--gutter);color:var(--muted);text-align:center;border-bottom:1px solid var(--line);margin:0;font-size:12px}.toast{z-index:60;width:max-content;max-width:calc(100% - 2 * var(--gutter));border-radius:var(--radius);background:var(--ink);color:var(--on-dark);margin:0;padding:12px 18px;font-weight:500;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast__action{min-height:44px;color:var(--on-dark);font:inherit;cursor:pointer;background:0 0;border:0;margin:-12px -10px -12px 6px;padding:0 12px;font-weight:700;text-decoration:underline}.heart{min-width:44px;min-height:44px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:8px;padding:0;font-weight:600;display:inline-flex}.heart svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linejoin:round;width:24px;height:24px}.heart[aria-pressed=true]{color:var(--accent)}.heart[aria-pressed=true] svg{fill:currentColor}.heart:hover svg{stroke-width:2.5px}.heart:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}.heart--labeled{border:1.5px solid var(--ink);border-radius:999px;padding:0 16px 0 12px}.heart--labeled[aria-pressed=true]{border-color:var(--accent)}.suggest{flex:320px;min-width:0;display:flex;position:relative}.suggest>input{flex:auto;width:100%}.suggest__box{z-index:40;background:var(--surface);border:1.5px solid var(--ink);border-radius:var(--radius);text-align:left;max-height:min(70vh,480px);padding:6px 0;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #16241d1f}.suggest__group{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:10px 16px 4px;font-size:12px}.suggest__option{cursor:pointer;min-height:44px;color:var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;padding:10px 16px;display:flex}.suggest__option[aria-selected=true],.suggest__option:hover{background:var(--ground);box-shadow:inset 3px 0 0 var(--accent)}.suggest__name{font-weight:600}.suggest__detail{color:var(--muted);font-size:14px}.site-nav__install{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;min-height:44px;padding:10px 0;text-decoration:underline}.install-hint{z-index:55;width:min(560px, calc(100% - 2 * var(--gutter)));border-radius:var(--radius);background:var(--ink);color:var(--on-dark);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 8px 12px 16px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #16241d40}.install-hint[hidden]{display:none}.install-hint__text{flex:220px;align-items:flex-start;gap:8px;margin:0;font-size:15px;line-height:1.4;display:flex}.install-hint__share{flex:none;margin-top:1px}.install-hint__go{min-height:44px}.install-hint__close{width:44px;height:44px;color:var(--on-dark);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.tabbar{display:none}html.is-app .tabbar{transform:translateY(var(--vv-bottom-shift,0px));z-index:50;padding:4px max(8px, env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px, env(safe-area-inset-left));background:var(--surface);border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}html.is-app .tabbar a{min-height:52px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:500;text-decoration:none;display:flex}html.is-app .tabbar svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}html.is-app .tabbar [aria-current=page]{color:var(--accent)}html.is-app .tabbar [aria-current=page] svg{fill:currentColor;fill-opacity:.12}html.is-app body{padding-bottom:calc(60px + env(safe-area-inset-bottom))}html.is-app .site-header,html.is-app .site-footer,.appbar{display:none}html.is-app .appbar{transform:translateY(var(--vv-top,0px));z-index:60;padding:env(safe-area-inset-top) max(8px, env(safe-area-inset-right)) 0 max(8px, env(safe-area-inset-left));background:var(--ground);border-bottom:1px solid var(--line);grid-template-rows:48px;grid-template-columns:44px 1fr 44px;align-items:center;display:grid;position:sticky;top:0}html.is-app .appbar__title{text-align:center;text-overflow:ellipsis;white-space:nowrap;grid-column:2;font-size:17px;font-weight:600;transition:opacity .15s;overflow:hidden}html.is-app .appbar__title[data-under-heading]{opacity:0}html.is-app .appbar__back{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;grid-column:1;place-items:center;padding:0;display:grid}html.is-app .appbar__back[hidden]{display:none}html.is-app .appbar__brand{padding-left:max(var(--gutter), env(safe-area-inset-left));font-family:var(--display);grid-column:1/-1;align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}html.is-app .appbar__brand img{border-radius:7px}html.is-app main>:first-child{margin-top:0}html.is-app .site-header .wrap,html.is-app main .wrap,html.is-app .site-footer .wrap{padding-left:max(var(--gutter), env(safe-area-inset-left));padding-right:max(var(--gutter), env(safe-area-inset-right))}html.is-app .menu-button,html.is-app .site-nav{display:none!important}html.is-app .toast,html.is-app .install-hint{bottom:calc(72px + env(safe-area-inset-bottom))}html.is-app a,html.is-app button,html.is-app label,html.is-app summary{-webkit-tap-highlight-color:transparent}html.is-app button,html.is-app nav,html.is-app .tabbar,html.is-app summary,html.is-app .button,html.is-app [role=option]{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html.is-app:before{content:"";transform:translateY(var(--vv-top,0px));z-index:70;height:env(safe-area-inset-top);background:var(--ground);pointer-events:none;position:fixed;top:0;left:0;right:0}html.is-app{scroll-padding-top:calc(env(safe-area-inset-top) + 60px)}html.is-app [data-get-app-link],html.is-app .breadcrumb,.app-only{display:none}html.is-app .app-only{display:revert}html.is-app .web-only,html.is-app[data-keyboard] .tabbar{display:none}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
