@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.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:Saira Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 125%;src:url(/_astro/saira-vietnamese-standard-normal.Dabr_kLY.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:Saira Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 125%;src:url(/_astro/saira-latin-ext-standard-normal.3Ba4ICIc.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:Saira Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 125%;src:url(/_astro/saira-latin-standard-normal.X2eA-qfZ.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{--etj-bg:#17181c;--etj-surface:#1c1e23;--etj-surface-2:#0d1117;--etj-surface-hover:#22252c;--etj-border:#262a31;--etj-border-strong:#343a44;--etj-border-emphasis:#4a515c;--etj-fg:#d0d0d5;--etj-fg-strong:#f4f5f7;--etj-muted:#9aa0aa;--etj-accent:#33b377;--etj-accent-hover:#5ccc93;--etj-accent-solid:#063;--etj-accent-solid-hover:#008040;--etj-accent-contrast:#fff;--etj-accent-soft:#0a2418;--etj-success:#10b981;--etj-warning:#f59e0b;--etj-danger:#ef4444;--etj-info:#3b82f6;--etj-code-bg:#272a32;--etj-inline-code-bg:#23262e;--etj-radius:.25rem;--etj-radius-sm:.25rem;--etj-font-sans:"Inter Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--etj-font-mono:"JetBrains Mono Variable", ui-monospace, "SFMono-Regular", monospace;--etj-content-width:72rem;--etj-header-height:3.5rem;--etj-font-display:"Saira Variable", var(--etj-font-sans);--etj-display-weight:800;--etj-display-stretch:82%;--etj-display-tracking:-.01em}:root[data-theme=light]{--etj-bg:#fbfcfc;--etj-surface:#fff;--etj-surface-2:#f3f5f7;--etj-surface-hover:#eceff3;--etj-border:#e2e6ea;--etj-border-strong:#cdd3da;--etj-border-emphasis:#8a919c;--etj-fg:#1b1e24;--etj-fg-strong:#0b0d10;--etj-muted:#5b6270;--etj-accent:#063;--etj-accent-hover:#004d26;--etj-accent-solid:#063;--etj-accent-solid-hover:#004d26;--etj-accent-contrast:#fff;--etj-accent-soft:#dcf2e5;--etj-code-bg:#f6f7f9;--etj-inline-code-bg:#eef0f3}*,:before,:after{box-sizing:border-box}html{color-scheme:dark;background:var(--etj-bg);color:var(--etj-fg);font-family:var(--etj-font-sans);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;scroll-padding-top:calc(var(--etj-header-height) + .75rem)}html[data-theme=light]{color-scheme:light}body{flex-direction:column;min-height:100dvh;margin:0;font-size:1rem;line-height:1.65;display:flex;overflow-x:clip}main{width:min(100% - 2rem, var(--etj-content-width));flex:1;margin-inline:auto;padding-block:3rem 5rem}h1,h2,h3,h4{color:var(--etj-fg-strong);letter-spacing:-.01em;margin:0 0 .5em;line-height:1.2}h1{font-size:clamp(2rem,4vw,2.75rem);font-weight:700}h2{background-image:linear-gradient(90deg, var(--etj-accent-solid), transparent);background-position:0 100%;background-repeat:no-repeat;background-size:14rem 3px;margin-top:2.5em;padding-bottom:.65rem;font-size:clamp(1.35rem,2.5vw,1.75rem);font-weight:600}h3{margin-top:1.75em;font-size:1.15rem;font-weight:600}p{margin:0 0 1em}a{color:var(--etj-accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--etj-accent-hover)}:focus-visible{outline:2px solid var(--etj-accent);outline-offset:2px;border-radius:var(--etj-radius-sm)}::selection{background:var(--etj-accent-solid);color:var(--etj-accent-contrast)}hr{border:0;border-top:1px solid var(--etj-border);margin:2.5rem 0}img{max-width:100%;height:auto}blockquote{border-left:3px solid var(--etj-accent);color:var(--etj-muted);margin:1.5rem 0;padding:.25rem 0 .25rem 1rem}code:not(pre code){font-family:var(--etj-font-mono);border-radius:var(--etj-radius-sm);background:var(--etj-inline-code-bg);color:var(--etj-accent-hover);border:1px solid var(--etj-border-strong);margin-block:.125rem;padding:.2em .4em;font-size:.785em;font-weight:500}pre:not(.expressive-code *){border-radius:var(--etj-radius);background:var(--etj-code-bg);border:1px solid var(--etj-border-emphasis);margin:1.5rem 0;padding:.75rem 1rem;line-height:1.75;overflow-x:auto}pre:not(.expressive-code *)>code{all:unset;font-family:var(--etj-font-mono);font-size:.875rem}pre.astro-code{background-color:var(--etj-code-bg)}pre.astro-code span{color:var(--shiki-light)}:root[data-theme=dark] pre.astro-code span{color:var(--shiki-dark)}:root{--fb-code-block-bg-color:var(--etj-code-bg);--fb-ec-caption-bg-color:var(--etj-surface);--fb-ec-caption-bb-color:var(--etj-border);--fb-ec-language-color:var(--etj-muted)}.expressive-code{--ec-brdRad:calc(var(--etj-radius) - var(--ec-brdWd,1px))}.expressive-code pre{border:1px solid var(--etj-border-emphasis)}table{border-collapse:separate;border-spacing:0;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--etj-accent) 40%, transparent) transparent;width:100%;max-width:100%;margin:1.5rem 0;font-size:.95rem;line-height:1.6;display:table;overflow-x:auto}table::-webkit-scrollbar{height:6px}table::-webkit-scrollbar-track{background:color-mix(in srgb, var(--etj-border) 30%, transparent);border-radius:var(--etj-radius-sm)}table::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--etj-accent) 40%, transparent);border-radius:var(--etj-radius-sm)}table::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--etj-accent) 60%, transparent)}th,td{border-bottom:1px solid var(--etj-border-emphasis);border-right:1px solid color-mix(in srgb, var(--etj-fg) 8%, transparent);text-align:left;vertical-align:middle;padding:.75rem 1rem}th:last-child,td:last-child{border-right:0}thead th{background:linear-gradient(135deg, color-mix(in srgb, var(--etj-accent-solid) 15%, transparent), color-mix(in srgb, var(--etj-accent-solid) 8%, transparent));color:var(--etj-fg-strong);font-weight:600;position:relative}thead th:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--etj-accent-solid) 30%, transparent), transparent);height:1px;position:absolute;inset:auto 0 0}tbody tr:nth-child(2n){background:var(--etj-surface)}tbody tr:hover{background:color-mix(in srgb, var(--etj-accent) 5%, transparent)}td code,th code{white-space:nowrap}:root[data-theme=light] thead th{background:linear-gradient(135deg, color-mix(in srgb, var(--etj-accent-solid) 12%, transparent), color-mix(in srgb, var(--etj-accent-solid) 6%, transparent))}:root[data-theme=light] tbody tr:nth-child(2n){background:var(--etj-surface-2)}:root[data-theme=light] tbody tr:hover{background:color-mix(in srgb, var(--etj-accent) 8%, transparent)}@media (width<=50rem){table{font-size:.875rem;display:block;overflow-x:auto}th,td{padding:.5rem .75rem}}.lede{color:var(--etj-muted);max-width:46rem;font-size:1.15rem}.section{margin-top:clamp(3.5rem,8vw,6rem)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.5rem;display:flex}.section-head h2{margin:0 0 .6rem}.section-head p{max-width:44rem;color:var(--etj-muted);margin:0}.section-head>a{color:var(--etj-muted);font-size:.9rem}.section-head>a:hover{color:var(--etj-fg-strong)}.card-grid{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;margin:2rem 0;display:grid}.card{border:1px solid var(--etj-border);border-radius:var(--etj-radius);background:var(--etj-surface);color:var(--etj-fg);padding:1.25rem;text-decoration:none;transition:border-color .12s,background .12s;display:block}a.card:hover{border-color:var(--etj-accent);background:var(--etj-surface-hover);color:var(--etj-fg)}.card h3{margin:0 0 .35rem;font-size:1.05rem}.card p{color:var(--etj-muted);margin:0;font-size:.92rem}.button{border-radius:var(--etj-radius);border:1px solid color-mix(in srgb, var(--etj-accent-hover) 55%, var(--etj-accent-solid));background:var(--etj-accent-solid);color:var(--etj-accent-contrast);font:inherit;cursor:pointer;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s;display:inline-flex}.button:hover{background:var(--etj-accent-solid-hover);border-color:var(--etj-accent-hover);color:var(--etj-accent-contrast)}.button.secondary{color:var(--etj-fg);border-color:var(--etj-border-emphasis);background:0 0}.button.secondary:hover{border-color:var(--etj-accent);background:var(--etj-surface);color:var(--etj-fg)}.button.ghost{color:var(--etj-muted);background:0 0;border-color:#0000}.button.ghost:hover{background:var(--etj-surface);color:var(--etj-fg)}.badge{border-radius:var(--etj-radius-sm);border:1px solid var(--etj-border);background:var(--etj-surface);color:var(--etj-muted);align-items:center;padding:.1rem .5rem;font-size:.75rem;font-weight:600;line-height:1.6;display:inline-flex}.badge.accent{border-color:color-mix(in srgb, var(--etj-accent) 45%, transparent);background:color-mix(in srgb, var(--etj-accent) 12%, transparent);color:var(--etj-accent-hover)}.badge.success{border-color:color-mix(in srgb, var(--etj-success) 45%, transparent);background:color-mix(in srgb, var(--etj-success) 12%, transparent);color:var(--etj-success)}.badge.warning{border-color:color-mix(in srgb, var(--etj-warning) 45%, transparent);background:color-mix(in srgb, var(--etj-warning) 12%, transparent);color:var(--etj-warning)}.badge.danger{border-color:color-mix(in srgb, var(--etj-danger) 45%, transparent);background:color-mix(in srgb, var(--etj-danger) 12%, transparent);color:var(--etj-danger)}.aside{--aside-accent:var(--etj-info);border:1px solid color-mix(in srgb, var(--aside-accent) 25%, transparent);border-left:3px solid var(--aside-accent);border-radius:var(--etj-radius);background:color-mix(in srgb, var(--aside-accent) 8%, var(--etj-bg));margin:1.5rem 0;padding:.875rem 1.125rem;position:relative;overflow:hidden;box-shadow:0 2px 8px #0003}.aside:before{content:"";background:linear-gradient(90deg, transparent, var(--aside-accent), transparent);opacity:.6;height:1px;position:absolute;inset:0 0 auto}.aside>:first-child{margin-top:0}.aside>:last-child{margin-bottom:0}.aside-title{color:var(--aside-accent);letter-spacing:.05em;text-transform:uppercase;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.9rem;font-weight:700;line-height:1.4;display:flex}.aside-title:after{content:"";background:linear-gradient(90deg, var(--aside-accent), transparent);opacity:.3;flex-grow:1;height:1px;margin-left:.75rem}.aside-icon{flex-shrink:0}.aside a{color:var(--aside-accent);text-underline-offset:.2em;text-decoration-color:#0000}.aside a:hover{color:var(--aside-accent);text-decoration-color:var(--aside-accent);text-decoration-thickness:2px}.aside code{background:color-mix(in srgb, var(--aside-accent) 10%, var(--etj-surface));border:1px solid color-mix(in srgb, var(--aside-accent) 22%, transparent);color:var(--etj-fg)}.aside pre{background:color-mix(in srgb, var(--aside-accent) 6%, var(--etj-code-bg));border-color:color-mix(in srgb, var(--aside-accent) 22%, transparent)}.aside pre code{background:0 0;border:0;padding:0}.aside.tip{--aside-accent:var(--etj-success)}.aside.caution{--aside-accent:var(--etj-warning)}.aside.danger{--aside-accent:var(--etj-danger)}:root[data-theme=light] .aside{background:color-mix(in srgb, var(--aside-accent) 5%, var(--etj-bg));box-shadow:0 2px 8px #0000000f}input,select,textarea{font:inherit;color:var(--etj-fg);background:var(--etj-surface);border:1px solid var(--etj-border);border-radius:var(--etj-radius);width:100%;padding:.5rem .7rem}input::placeholder,textarea::placeholder{color:var(--etj-muted)}input:focus,select:focus,textarea:focus{outline:2px solid var(--etj-accent);outline-offset:1px;border-color:var(--etj-accent)}.muted{color:var(--etj-muted)}.sr-only{clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:0;padding:0;overflow:hidden;position:absolute!important}@media (width<=720px){main{padding-block:2rem 3.5rem}}footer:where(.astro-jo6i4kqk){border-top:1px solid var(--etj-border);background:var(--etj-surface-2);color:var(--etj-muted);font-size:.85rem}.inner:where(.astro-jo6i4kqk){width:min(100% - 2rem, var(--etj-content-width));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;margin-inline:auto;padding-block:1.25rem;display:flex}footer:where(.astro-jo6i4kqk) p:where(.astro-jo6i4kqk){margin:0}.footer-links:where(.astro-jo6i4kqk){text-align:right;flex-direction:column;align-items:flex-end;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}footer:where(.astro-jo6i4kqk) a:where(.astro-jo6i4kqk){color:var(--etj-muted);align-items:center;gap:.4rem;text-decoration:none;display:inline-flex}footer:where(.astro-jo6i4kqk) a:where(.astro-jo6i4kqk):hover{color:var(--etj-fg-strong)}header:where(.astro-nen7h5rs){z-index:50;min-height:var(--etj-header-height);border-bottom:1px solid var(--etj-border);background:var(--etj-surface-2);transition:background-color .18s;position:sticky;top:0}header:where(.astro-nen7h5rs).is-scrolled{background-color:color-mix(in srgb, var(--etj-surface-2) 82%, transparent);backdrop-filter:blur(10px)saturate(1.1)}@supports not (backdrop-filter:blur(1px)){header:where(.astro-nen7h5rs).is-scrolled{background-color:var(--etj-surface-2)}}nav:where(.astro-nen7h5rs){min-height:var(--etj-header-height);width:min(100% - 2rem, var(--etj-content-width));flex-wrap:wrap;align-items:center;gap:1rem;margin-inline:auto;padding-block:.5rem;display:flex;position:relative}.brand:where(.astro-nen7h5rs){font-family:var(--etj-font-display);font-weight:var(--etj-display-weight);font-stretch:var(--etj-display-stretch);letter-spacing:var(--etj-display-tracking);color:var(--etj-fg-strong);font-size:1.05rem;text-decoration:none}.links:where(.astro-nen7h5rs){flex-wrap:wrap;gap:.15rem;display:flex}.actions:where(.astro-nen7h5rs){flex-wrap:wrap;align-items:center;gap:.85rem;margin-inline-start:auto;display:flex}.actions:where(.astro-nen7h5rs) a:where(.astro-nen7h5rs){border-radius:var(--etj-radius-sm);width:2rem;height:2rem;color:var(--etj-muted);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.actions:where(.astro-nen7h5rs) a:where(.astro-nen7h5rs):hover{background:var(--etj-surface-hover);color:var(--etj-fg-strong)}.menu-toggle:where(.astro-nen7h5rs){border:1px solid var(--etj-border);border-radius:var(--etj-radius);width:2rem;height:2rem;color:var(--etj-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;display:none}.menu-toggle:where(.astro-nen7h5rs):hover{border-color:var(--etj-accent);color:var(--etj-fg-strong)}.menu-icon:where(.astro-nen7h5rs){fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:1rem;height:1rem}.menu-icon--close:where(.astro-nen7h5rs),header:where(.astro-nen7h5rs)[data-menu-open] .menu-icon--open:where(.astro-nen7h5rs){display:none}header:where(.astro-nen7h5rs)[data-menu-open] .menu-icon--close:where(.astro-nen7h5rs){display:block}.links a{border-radius:var(--etj-radius-sm);color:var(--etj-muted);padding:.35rem .6rem;font-size:.9rem;text-decoration:none}.links a:hover{background:var(--etj-surface-hover);color:var(--etj-fg-strong)}.links a.active{color:var(--etj-accent-hover);background:var(--etj-surface)}@media (width<=50rem){nav:where(.astro-nen7h5rs){grid-template-columns:1fr auto;grid-template-areas:"brand actions";gap:.35rem 1rem;padding-block:.6rem;display:grid}.brand:where(.astro-nen7h5rs){grid-area:brand}.actions:where(.astro-nen7h5rs){grid-area:actions;margin-inline-start:0}.links:where(.astro-nen7h5rs){border:1px solid var(--etj-border);border-radius:0 0 var(--etj-radius) var(--etj-radius);background:var(--etj-surface-2);border-top:0;flex-flow:column;gap:.15rem;padding:.5rem;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 10px 24px #00000040}header:where(.astro-nen7h5rs)[data-menu-open] .links:where(.astro-nen7h5rs){display:flex}html[data-theme=light] .links:where(.astro-nen7h5rs){box-shadow:0 10px 24px #0000001f}.links a{width:100%;padding:.55rem .6rem;font-size:.95rem;display:grid}.menu-toggle:where(.astro-nen7h5rs){display:inline-flex}}
