@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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.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-wght-normal.CcLUaPy7.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-wght-normal.DLoelf7F.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}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.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}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.I4S5GZfc.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.BmXc_FBt.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.GZpp1pK2.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.D8KDMBhC.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.DrnZ1wKl.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.B_7UjwxQ.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}@font-face{font-display:swap}:root{--bg:#f6f3ec;--fg:#1c1a17;--card:#fffdf8;--muted:#f1ede4;--mfg:#6b6862;--bd:#eae5da;--brand:#4a45e0;--bmut:#ece9fd;--bfg:#fff;--ink:#1c1a17;--ease-signature:cubic-bezier(.65, 0, .35, 1);--ease-arrival:cubic-bezier(.16, 1, .3, 1);--rail:212px;--head:64px;--gutter:clamp(16px, 3vw, 44px);--font-display:"Bricolage Grotesque Variable", "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--font-sans:"Geist Variable", "Geist", ui-sans-serif, system-ui, sans-serif;--font-mono:"Geist Mono Variable", "Geist Mono", ui-monospace, monospace}html[data-theme=dark]{--bg:oklch(17% .006 60);--fg:oklch(97% .006 80);--card:oklch(21% .006 60);--muted:oklch(26% .006 60);--mfg:oklch(72% .012 70);--bd:oklch(100% 0 0/.12);--brand:oklch(70% .16 277);--bmut:oklch(30% .07 277);--bfg:oklch(98.5% 0 0);color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{background:var(--bg);background-image:radial-gradient(color-mix(in srgb, var(--fg) 11%, transparent) 1px, transparent 1px);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;background-position:12px 12px;background-size:24px 24px;margin:0;transition:background .35s,color .35s;overflow-x:clip}a{color:var(--brand);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}::selection{color:#fff;background:#4a45e0}:where(a,button,input,[tabindex]):focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid}.lp-skip{z-index:100;background:var(--fg);color:var(--bg);transition:transform .18s var(--ease-arrival);border-radius:8px;padding:10px 16px;font-size:14px;font-weight:500;position:absolute;top:8px;left:8px;transform:translateY(-200%)}.lp-skip:focus{text-decoration:none;transform:none}.lp-logo .lp-page{transform-box:view-box;transform-origin:24px 39px;transform:rotate(var(--r));animation:lp-fan .9s var(--d) var(--ease-signature) both}.lp-logo:hover .lp-page,.lp-hov:hover .lp-page{animation-name:lp-fan-hover}@keyframes lp-fan{0%{transform:rotate(var(--r))}45%{transform:rotate(0)}to{transform:rotate(var(--r))}}@keyframes lp-fan-hover{0%{transform:rotate(var(--r))}45%{transform:rotate(0)}to{transform:rotate(var(--r))}}@keyframes lp-rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes lp-toast{0%{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%)}}@keyframes lp-bob{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes lp-draw{to{stroke-dashoffset:0}}@keyframes lp-fade{0%{opacity:0}to{opacity:1}}@keyframes lp-x{0%{transform:translate(0)}to{transform:translate(280px)}}@keyframes lp-y{0%{transform:translateY(0)}to{transform:translateY(-140px)}}@keyframes lp-slide{0%{transform:translate(0)}to{transform:translate(262px)}}.lp-curve{stroke-dasharray:1;stroke-dashoffset:1px;animation:lp-draw 1.4s var(--ease-signature) .3s forwards}.lp-late{opacity:0;animation:.6s 1.5s forwards lp-fade}.lp-run{animation-delay:1.9s!important}[data-reveal][data-shown]{animation:lp-rise .8s var(--ease-arrival) both}.lp-door{isolation:isolate;position:relative}.lp-door:before{content:"";transform-origin:bottom;transition:transform .42s var(--ease-arrival);z-index:-1;background:#4a45e0;position:absolute;inset:0;transform:scaleY(0)}.lp-door:hover:before,.lp-door:focus-visible:before{transform:scaleY(1)}.lp-door:hover,.lp-door:hover *,.lp-door:focus-visible,.lp-door:focus-visible *{color:#fff!important}.lp-door .lp-arrow{transition:transform .42s var(--ease-arrival)}.lp-door:hover .lp-arrow,.lp-door:focus-visible .lp-arrow{transform:translate(14px)}.lp-hs{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding-inline:var(--gutter);scroll-padding-inline:var(--gutter);scrollbar-width:none;align-items:stretch;gap:14px;display:flex;overflow:auto hidden}.lp-hs::-webkit-scrollbar{display:none}.lp-sw{flex:var(--grow,1) 1 0;min-width:0;transition:flex-grow .5s var(--ease-arrival), min-width .5s var(--ease-arrival)}.lp-sw:hover,.lp-sw:focus-visible{flex-grow:4.5;min-width:236px}.lp-sw .lp-swx{white-space:nowrap;opacity:0;gap:4px;transition:opacity .3s .12s;display:grid;position:absolute;bottom:14px;left:14px}.lp-swx__t{font-family:var(--font-mono);font-size:12px}.lp-swx__h{font-family:var(--font-mono);opacity:.7;font-size:11px}.lp-swx__u{opacity:.78;margin-top:4px;font-size:12.5px}.lp-sw:hover .lp-swx,.lp-sw:focus-visible .lp-swx{opacity:1}@media (width<=700px){.lp-sw .lp-swx{opacity:1}}.lp-body{padding-left:var(--rail);position:relative}.lp-guides{inset:0;left:var(--rail);pointer-events:none;z-index:2;grid-template-columns:var(--gutter) 1fr 1fr var(--gutter);mix-blend-mode:difference;display:grid;position:absolute}.lp-ruler{top:var(--head);z-index:3;pointer-events:none;background-image:repeating-linear-gradient(90deg, color-mix(in srgb, var(--fg) 30%, transparent) 0 1px, transparent 1px 96px), repeating-linear-gradient(90deg, color-mix(in srgb, var(--fg) 14%, transparent) 0 1px, transparent 1px 24px);border-bottom:1px solid var(--bd);background-repeat:no-repeat;background-size:100% 14px,100% 6px;background-color:var(--bg);height:14px;position:sticky}.lp-crop{background:linear-gradient(var(--fg), var(--fg)) center / 1px 100% no-repeat, linear-gradient(var(--fg), var(--fg)) center / 100% 1px no-repeat;width:13px;height:13px;position:absolute}@media (width<=1040px){.lp-rail{display:none!important}.lp-body{padding-left:0!important}.lp-guides{left:0!important}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.lp-logo .lp-page,.lp-logo:hover .lp-page,.lp-hov:hover .lp-page{animation:none}[data-reveal],[data-reveal][data-shown]{opacity:1;animation:none}.lp-door:before,.lp-door .lp-arrow,.lp-sw,.lp-sw .lp-swx{transition:none}.lp-hs{scroll-snap-type:none}.lp-curve{stroke-dashoffset:0;animation:none}.lp-late{opacity:1;animation:none}.lp-anim{animation:none!important}}.lp-vh{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lp-clearspace{display:contents}.lp-clearspace[hidden]{display:none}.lp-hs-nav{flex:none;align-self:end;gap:8px;display:flex}.lp-hs-nav button{width:38px;height:38px;color:inherit;font-family:var(--font-display);cursor:pointer;opacity:.75;background:0 0;border:1px solid;border-radius:10px;place-items:center;font-size:16px;transition:opacity .15s,background .15s,color .15s;display:grid}.lp-hs-nav button:hover:not(:disabled){opacity:1;background:color-mix(in srgb, currentColor 14%, transparent)}.lp-hs-nav button:disabled{opacity:.28;cursor:default}@media (prefers-reduced-motion:reduce){.lp-hs-nav button{transition:none}}.lp-tap{padding-block:5px;display:inline-block}:root{--chart-2-on-dark:#d69a74;--chart-3-on-dark:#7eb095}.lp-strip{border-radius:22px 22px 0 0;align-items:stretch;height:min(52vh,520px);min-height:300px;margin-top:clamp(30px,5vh,56px);display:flex;overflow:hidden}@media (width<=700px){.lp-strip{flex-direction:column;height:auto;min-height:0}.lp-sw{flex:none;min-height:74px}.lp-sw:hover,.lp-sw:focus-visible{flex-grow:0;min-width:0}.lp-sw .lp-swx{white-space:normal;padding:14px;position:static}}.lp-hero-h1{font-family:var(--font-display);letter-spacing:-.05em;white-space:nowrap;margin:0;font-size:clamp(32px,9.4cqw,190px);font-weight:800;line-height:.86}@media (width<=560px){.lp-hero-h1{white-space:normal;text-wrap:balance;font-size:clamp(30px,13cqw,64px)}}::view-transition-old(root){animation:lp-turn-out .42s var(--ease-signature) both}::view-transition-new(root){animation:lp-turn-in .46s var(--ease-signature) 60ms both}@keyframes lp-turn-out{to{opacity:0;transform:translateY(-10px)}}@keyframes lp-turn-in{0%{opacity:0;transform:translateY(14px)}}::view-transition-group(chrome-header),::view-transition-group(chrome-rail){animation-duration:.28s;animation-timing-function:var(--ease-signature)}::view-transition-old(chrome-header),::view-transition-old(chrome-rail){animation:10ms linear both lp-chrome-retire}::view-transition-new(chrome-header),::view-transition-new(chrome-rail){opacity:1;mix-blend-mode:normal;animation:none}@keyframes lp-chrome-retire{to{opacity:0}}@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root),::view-transition-group(chrome-header),::view-transition-group(chrome-rail){animation:none!important}}.lp-shot{scroll-snap-align:start;flex:none;gap:10px;width:min(86vw,940px);margin:0;display:grid}.lp-shot__frame{border:1px solid var(--bd);background:var(--muted);border-radius:16px;line-height:0;display:block;overflow:hidden}.lp-shot__frame img{width:100%;height:auto;display:block}.lp-shot__cap{font-family:var(--font-mono);color:var(--mfg);justify-content:space-between;align-items:baseline;gap:16px;font-size:11px;display:flex}.lp-shot__cap a{color:var(--brand);white-space:nowrap;padding-block:6px;display:inline-block}.lp-menu-btn{border:1px solid var(--bd);background:var(--card);width:38px;height:38px;color:var(--fg);cursor:pointer;border-radius:9px;flex:none;place-items:center;display:none}@media (width<=1040px){.lp-menu-btn{display:grid}}@media (width>=1041px){.lp-menu-btn,.lp-mobile-nav,.lp-scrim{display:none!important}}.lp-burger{gap:4px;width:16px;display:grid}.lp-burger span{height:1.5px;transition:transform .24s var(--ease-arrival), opacity .16s linear;background:currentColor;border-radius:1px;display:block}[aria-expanded=true] .lp-burger span:first-child{transform:translateY(5.5px)rotate(45deg)}[aria-expanded=true] .lp-burger span:nth-child(2){opacity:0}[aria-expanded=true] .lp-burger span:nth-child(3){transform:translateY(-5.5px)rotate(-45deg)}.lp-scrim{z-index:60;background:color-mix(in srgb, var(--fg) 38%, transparent);backdrop-filter:blur(2px);animation:.2s both lp-fade;position:fixed;inset:0}.lp-scrim[hidden]{display:none!important}.lp-mobile-nav{z-index:61;width:min(82vw,320px);padding:18px 16px calc(18px + env(safe-area-inset-bottom));overscroll-behavior:contain;background:var(--card);border-right:1px solid var(--bd);animation:lp-drawer .32s var(--ease-arrival) both;flex-direction:column;gap:2px;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;box-shadow:0 0 60px -20px #00000073}.lp-mobile-nav[hidden]{display:none!important}@keyframes lp-drawer{0%{transform:translate(-100%)}}.lp-mobile-nav__head{justify-content:space-between;align-items:center;gap:12px;padding:4px 8px 14px;display:flex}.lp-menu-close{border:1px solid var(--bd);width:34px;height:34px;color:var(--fg);cursor:pointer;background:0 0;border-radius:9px;place-items:center;font-size:13px;display:grid}.lp-mobile-nav a{color:var(--fg);border-radius:10px;grid-template-columns:26px 1fr;align-items:center;gap:10px;padding:13px 10px;font-size:15.5px;font-weight:500;text-decoration:none;display:grid}.lp-mobile-nav a[aria-current=page]{background:var(--brand);color:#fff}.lp-mobile-nav__foot{font-family:var(--font-mono);color:var(--mfg);gap:4px;margin-top:auto;padding:18px 10px 0;font-size:10.5px;display:grid}.lp-mobile-nav__foot a{color:var(--mfg);font-family:var(--font-mono);grid-template-columns:none;padding:5px 0;font-size:10.5px;font-weight:400;display:inline-block}body:has(.lp-mobile-nav:not([hidden])){overflow:hidden}@media (prefers-reduced-motion:reduce){.lp-mobile-nav,.lp-scrim{animation:none}.lp-burger span{transition: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}@media (width>=720px){.lp-chapter-label{display:inline!important}}@media (width>=1041px){.lp-menu-btn{display:none!important}}@media (width<=1040px){.lp-menu-btn{display:inline-flex!important}[data-inspect-toggle]{display:none!important}.lp-chip{display:none}}
