@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}@property --sky-top{syntax:"<color>";inherits:true;initial-value:#4fb3ff}@property --sky-bottom{syntax:"<color>";inherits:true;initial-value:#cfeeff}@property --sky-glow{syntax:"<color>";inherits:true;initial-value:#fff}:root{--font:"Bricolage Grotesque Variable", "Bricolage Grotesque", ui-sans-serif, system-ui, -apple-system, sans-serif;--step--1:clamp(.82rem, .79rem + .15vw, .9rem);--step-0:clamp(1rem, .96rem + .2vw, 1.1rem);--step-1:clamp(1.15rem, 1.05rem + .5vw, 1.4rem);--step-2:clamp(1.45rem, 1.2rem + 1.1vw, 2.1rem);--step-3:clamp(2rem, 1.5rem + 2.2vw, 3.2rem);--step-4:clamp(2.9rem, 1.6rem + 6.2vw, 6.6rem);--tracking-tight:-.035em;--r-sm:10px;--r-md:18px;--r-lg:28px;--r-pill:999px;--ease-spring:cubic-bezier(.2, .8, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--dur:.32s;--page:76rem;--tower-w:min(100% - 2rem, 46rem);--gutter:clamp(1rem, 3vw, 2rem);--ink:#111318;--paper:#fffdf7;--brand:#fd5652;--brand-ink:#fff;--amber:#ffb703;--lemon:#ffd23f;--mint:#3ddc97;--ground:#111318;--on-ground:#f4f2ff;--on-ground-soft:#f4f2ffad;--sky-top:#4fb3ff;--sky-bottom:#cfeeff;--sky-glow:#fff;--text:#111318;--text-soft:#111318a8;--surface:#ffffffb8;--surface-strong:#ffffffeb;--stroke:#11131824;--stroke-strong:#11131880;--shadow:0 18px 40px -22px #11131873;--window-off:#1113183d;--window-on:#ffffffd9;--window-on-edge:#ffffff73;--window-glow:transparent;--cloud:#fff;--cloud-opacity:.92;--stars-opacity:0;--celestial:#ffd23f;--celestial-glow:#ffd23f73;--celestial-x:84%;--celestial-y:12%;--celestial-size:clamp(64px, 9vw, 120px);--ghost-fill:#ffffff80;--ghost-stroke:#111318}:root[data-time=dusk]{--sky-top:#2b1e5e;--sky-bottom:#ff9f68;--sky-glow:#ffcf99;--text:#fff7f0;--text-soft:#fff7f0b8;--surface:#ffffff1f;--surface-strong:#1e163ccc;--stroke:#fff3;--stroke-strong:#fff9;--shadow:0 18px 40px -22px #0009;--window-off:#11131861;--window-on:#fff6d2;--window-on-edge:#ffd98a;--window-glow:#ffdc7899;--cloud:#ffd3b6;--cloud-opacity:.55;--stars-opacity:.35;--celestial:#ff6a3d;--celestial-glow:#ff6a3d66;--celestial-x:78%;--celestial-y:34%;--ghost-fill:#ffffff1a;--ghost-stroke:#fff7f0}:root[data-time=night]{--sky-top:#05081a;--sky-bottom:#1a2150;--sky-glow:#3a3f8a;--text:#f4f2ff;--text-soft:#f4f2ffb3;--surface:#ffffff14;--surface-strong:#0e122cd9;--stroke:#ffffff29;--stroke-strong:#fff9;--shadow:0 18px 40px -22px #000c;--window-off:#05081a8c;--window-on:#fff8dc;--window-on-edge:#ffe17a;--window-glow:#ffeca0cc;--cloud:#2c3470;--cloud-opacity:.6;--stars-opacity:1;--celestial:#f4f2ff;--celestial-glow:#f4f2ff47;--celestial-x:80%;--celestial-y:14%;--ghost-fill:#ffffff0f;--ghost-stroke:#f4f2ff}*,:before,:after{box-sizing:border-box}html{color:var(--text);background:var(--sky-bottom);font-family:var(--font);-webkit-text-size-adjust:100%;text-rendering:optimizelegibility;scroll-behavior:smooth;font-size:100%;line-height:1.45;transition:--sky-top .7s,--sky-bottom .7s,--sky-glow .7s,color .4s}body{min-height:100dvh;font-size:var(--step-0);margin:0;font-weight:450;overflow-x:clip}h1,h2,h3,p,ul,ol,figure{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}button{font:inherit;color:inherit;cursor:pointer}img,svg{max-width:100%;display:block}:focus-visible{outline:3px solid var(--brand);outline-offset:3px;border-radius:4px}::selection{background:var(--lemon);color:var(--ink)}.wrap{z-index:1;width:min(var(--page), 100% - 2 * var(--gutter));margin-inline:auto;position:relative}.tower-col{width:var(--tower-w);margin-inline:auto}.display{letter-spacing:var(--tracking-tight);text-wrap:balance;font-weight:800;line-height:.92}.kicker{font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);align-items:center;gap:.5em;font-weight:700;display:inline-flex}.kicker:before{content:"";background:var(--brand);border-radius:50%;width:.55em;height:.55em}.btn{border:2px solid var(--ink);border-radius:var(--r-pill);background:var(--brand);min-height:2.9rem;color:var(--brand-ink);letter-spacing:-.01em;transition:transform var(--dur) var(--ease-spring), box-shadow var(--dur) var(--ease-spring), background var(--dur) ease;box-shadow:0 4px 0 0 var(--ink);align-items:center;gap:.5em;padding:.65rem 1.25rem;font-weight:750;text-decoration:none;display:inline-flex}.btn:hover{box-shadow:0 6px 0 0 var(--ink);transform:translateY(-2px)}.btn:active{box-shadow:0 1px 0 0 var(--ink);transform:translateY(2px)}.btn--ghost{background:var(--surface);color:var(--text);border-color:var(--stroke-strong);box-shadow:none;backdrop-filter:blur(8px)}.btn--ghost:hover{box-shadow:none;background:var(--surface-strong)}.pill{border:1.5px solid var(--stroke);border-radius:var(--r-pill);background:var(--surface);font-size:var(--step--1);letter-spacing:.01em;-webkit-backdrop-filter:blur(10px);align-items:center;gap:.45em;padding:.35rem .8rem;font-weight:700;display:inline-flex}.tabular{font-variant-numeric:tabular-nums}.skip{z-index:100;border-radius:var(--r-pill);background:var(--ink);color:#fff;padding:.6rem 1rem;font-weight:700;text-decoration:none;transition:transform .2s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip:focus{transform:none}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.prose{max-width:40rem;font-size:var(--step-1);line-height:1.5}.prose p+p{margin-top:1em}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;transition:none}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.sky[data-astro-cid-m7vhzqk3]{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.sky-gradient[data-astro-cid-m7vhzqk3]{background:radial-gradient(60vmax 40vmax at var(--celestial-x) var(--celestial-y), var(--sky-glow), transparent 60%), linear-gradient(180deg, var(--sky-top) 0%, var(--sky-bottom) 100%);transition:--sky-top .7s,--sky-bottom .7s,--sky-glow .7s;position:absolute;inset:0}.stars[data-astro-cid-m7vhzqk3]{width:100%;height:100%;opacity:var(--stars-opacity);transition:opacity .9s;position:absolute;inset:0}.stars[data-astro-cid-m7vhzqk3] circle[data-astro-cid-m7vhzqk3]{fill:#fff;transform-box:fill-box;transform-origin:50%;animation:4s ease-in-out infinite twinkle}.celestial[data-astro-cid-m7vhzqk3]{left:var(--celestial-x);top:var(--celestial-y);width:var(--celestial-size);height:var(--celestial-size);background:var(--celestial);box-shadow:0 0 60px 22px var(--celestial-glow);transition:left .9s var(--ease-spring), top .9s var(--ease-spring), background .7s ease, box-shadow .7s ease;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.celestial[data-astro-cid-m7vhzqk3]:after{content:"";opacity:0;background:radial-gradient(18% 18% at 32% 40%,#11131824,#0000 70%),radial-gradient(12% 12% at 60% 66%,#1113181f,#0000 70%),radial-gradient(9% 9% at 68% 30%,#1113181a,#0000 70%);border-radius:50%;transition:opacity .7s;position:absolute;inset:0}:root[data-time=night] .celestial[data-astro-cid-m7vhzqk3]:after{opacity:1}.clouds[data-astro-cid-m7vhzqk3]{position:absolute;inset:0}.cloud[data-astro-cid-m7vhzqk3]{left:0;top:var(--y);width:calc(11rem * var(--s));height:calc(3.6rem * var(--s));background:var(--cloud);opacity:var(--cloud-opacity);transform:translateX(var(--x));animation:drift var(--t) linear infinite;animation-delay:var(--d);filter:drop-shadow(0 10px 18px #1113180f);border-radius:999px;transition:background .7s,opacity .7s;position:absolute}.cloud[data-astro-cid-m7vhzqk3]:before,.cloud[data-astro-cid-m7vhzqk3]:after{content:"";background:inherit;border-radius:50%;position:absolute;bottom:35%}.cloud[data-astro-cid-m7vhzqk3]:before{aspect-ratio:1;width:42%;left:18%}.cloud[data-astro-cid-m7vhzqk3]:after{aspect-ratio:1;width:34%;bottom:40%;left:46%}@keyframes drift{0%{transform:translate(-30vw)}to{transform:translate(115vw)}}@keyframes twinkle{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}@media (prefers-reduced-motion:reduce){.cloud[data-astro-cid-m7vhzqk3]{animation:none}.stars[data-astro-cid-m7vhzqk3] circle[data-astro-cid-m7vhzqk3]{opacity:.8;animation:none}}.header[data-astro-cid-nen7h5rs]{z-index:50;pointer-events:none;background:linear-gradient(180deg, var(--sky-top) 0%, color-mix(in srgb, var(--sky-top) 70%, transparent) 55%, transparent 100%);margin-bottom:-1.4rem;padding:.85rem 0 1.4rem;transition:--sky-top .7s;position:sticky;top:0}.header-inner[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:1rem;display:flex}.header-inner[data-astro-cid-nen7h5rs]>[data-astro-cid-nen7h5rs]{pointer-events:auto}.wordmark[data-astro-cid-nen7h5rs]{border:1.5px solid var(--stroke);border-radius:var(--r-pill);color:#202b37;-webkit-backdrop-filter:blur(10px);transition:transform var(--dur) var(--ease-spring), background var(--dur) ease;background:#ffffffe0;align-items:center;gap:.5rem;padding:.4rem .85rem .4rem .7rem;text-decoration:none;display:inline-flex}.wordmark[data-astro-cid-nen7h5rs]:hover{background:#fff;transform:translateY(-1px)rotate(-1deg)}.logo[data-astro-cid-nen7h5rs]{width:auto;height:1.7rem}.mark[data-astro-cid-nen7h5rs]{width:1.85rem;height:1.85rem;display:none}.header-right[data-astro-cid-nen7h5rs]{align-items:center;gap:.5rem;display:flex}.week-pill[data-astro-cid-nen7h5rs]{gap:.5em}.week-pill[data-astro-cid-nen7h5rs] .dot[data-astro-cid-nen7h5rs]{background:var(--mint);border-radius:50%;width:.55em;height:.55em;animation:2.4s ease-out infinite ping;box-shadow:0 0 #3ddc9799}.icon-btn[data-astro-cid-nen7h5rs]{border:1.5px solid var(--stroke);background:var(--surface);width:2.6rem;height:2.6rem;color:var(--text);-webkit-backdrop-filter:blur(10px);transition:transform var(--dur) var(--ease-spring), background var(--dur) ease;border-radius:50%;place-items:center;text-decoration:none;display:inline-grid}.icon-btn[data-astro-cid-nen7h5rs]:hover{background:var(--surface-strong);transform:translateY(-1px)}.theme-toggle[data-astro-cid-nen7h5rs] svg[data-astro-cid-nen7h5rs]{transition:transform .5s var(--ease-spring), opacity .3s ease;grid-area:1/1}.icon-sun[data-astro-cid-nen7h5rs]{opacity:0;transform:rotate(-90deg)scale(.6)}.icon-moon[data-astro-cid-nen7h5rs],:root[data-time=night] .icon-sun[data-astro-cid-nen7h5rs]{opacity:1;transform:rotate(0)scale(1)}:root[data-time=night] .icon-moon[data-astro-cid-nen7h5rs]{opacity:0;transform:rotate(90deg)scale(.6)}@keyframes ping{0%{box-shadow:0 0 #3ddc97b3}70%,to{box-shadow:0 0 0 8px #3ddc9700}}@media (width<=40rem){.week-pill[data-astro-cid-nen7h5rs]{display:none}}@media (width<=24rem){.logo[data-astro-cid-nen7h5rs]{display:none}.mark[data-astro-cid-nen7h5rs]{display:block}.wordmark[data-astro-cid-nen7h5rs]{padding:.35rem}}.footer[data-astro-cid-jo6i4kqk]{font-size:var(--step--1);opacity:.75;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;padding:1.25rem 0 .5rem;font-weight:600;display:flex}.footer[data-astro-cid-jo6i4kqk] nav[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;gap:.5rem 1.1rem;display:flex}.footer[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{text-decoration:none}.footer[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{text-underline-offset:.18em;text-decoration:underline}
