@font-face{font-family:Readex Pro Variable;font-style:normal;font-display:swap;font-weight:160 700;src:url(/_astro/readex-pro-arabic-wght-normal.DiwT_uOQ.woff2)format("woff2-variations");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Readex Pro Variable;font-style:normal;font-display:swap;font-weight:160 700;src:url(/_astro/readex-pro-vietnamese-wght-normal.Do5Nl5oc.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:Readex Pro Variable;font-style:normal;font-display:swap;font-weight:160 700;src:url(/_astro/readex-pro-latin-ext-wght-normal.CsYMu49W.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:Readex Pro Variable;font-style:normal;font-display:swap;font-weight:160 700;src:url(/_astro/readex-pro-latin-wght-normal.-ekFhJJC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff");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: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");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff)format("woff");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: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");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{--paper:#fff;--paper-2:#f4f4f6;--paper-3:#ececf0;--ink:#0b0b0f;--ink-2:#3f4049;--graphite:#5b5d68;--rule:#e6e6ea;--rule-strong:#d1d1d8;--signal:#d42227;--signal-hover:#b81c21;--signal-ink:#fff;--signal-wash:#d4222714;--darkroom:#0b0b0f;--darkroom-2:#17171d;--on-dark:#f4f4f5;--on-dark-2:#a1a1aa;--ok:#1f7a46;--warn:#8a5a0b;--focus:var(--signal);color-scheme:light;--font-display:"Readex Pro Variable", "Readex Pro", "Segoe UI", "Noto Sans Arabic", Tahoma, sans-serif;--font-text:"Readex Pro Variable", "Readex Pro", "Segoe UI", "Noto Sans Arabic", Tahoma, sans-serif;--font-mono:"IBM Plex Mono", "Readex Pro Variable", "Readex Pro", ui-monospace, Consolas, monospace;--step--2:clamp(.75rem, .73rem + .1vw, .8rem);--step--1:clamp(.84rem, .82rem + .12vw, .9rem);--step-0:clamp(1.0625rem, 1.03rem + .16vw, 1.125rem);--step-1:clamp(1.25rem, 1.17rem + .4vw, 1.45rem);--step-2:clamp(1.5rem, 1.36rem + .7vw, 1.9rem);--step-3:clamp(1.85rem, 1.6rem + 1.2vw, 2.5rem);--step-4:clamp(2.2rem, 1.8rem + 2vw, 3.25rem);--step-5:clamp(2.5rem, 1.9rem + 3vw, 4.1rem);--step-6:clamp(2.6rem, 1.8rem + 4.2vw, 4.4rem);--lh-tight:1.18;--lh-snug:1.35;--lh-text:1.75;--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4rem;--s-9:6rem;--s-10:10rem;--section:clamp(3rem, 2.4rem + 3vw, 6rem);--max:75rem;--measure:62ch;--gutter:clamp(1rem, .6rem + 1.6vw, 1.5rem);--header-h:4.5rem;--gap:clamp(.75rem, .6rem + .5vw, 1rem);--r-0:0;--r-1:12px;--r-2:24px;--r-3:32px;--r-pill:999px;--hair:1px solid var(--rule);--lift:0 1px 2px #0b0b0f0d, 0 12px 32px -16px #0b0b0f33;--dur-1:.14s;--dur-2:.26s;--dur-3:.56s;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0b0b0f;--paper-2:#17171d;--paper-3:#202028;--ink:#f4f4f5;--ink-2:#d4d4d8;--graphite:#a1a1aa;--rule:#26262e;--rule-strong:#3a3a44;--signal:#ff5a5f;--signal-hover:#ff7276;--signal-ink:#160405;--signal-wash:#ff5a5f1f;--darkroom:#17171d;--darkroom-2:#202028;--ok:#4ade80;--warn:#fbbf24;--lift:0 1px 2px #0008, 0 12px 32px -16px #000c;color-scheme:dark}}:root[data-theme=dark]{--paper:#0b0b0f;--paper-2:#17171d;--paper-3:#202028;--ink:#f4f4f5;--ink-2:#d4d4d8;--graphite:#a1a1aa;--rule:#26262e;--rule-strong:#3a3a44;--signal:#ff5a5f;--signal-hover:#ff7276;--signal-ink:#160405;--signal-wash:#ff5a5f1f;--darkroom:#17171d;--darkroom-2:#202028;--ok:#4ade80;--warn:#fbbf24;--lift:0 1px 2px #0008, 0 12px 32px -16px #000c;color-scheme:dark}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 1rem);background:var(--paper)}body{background:var(--paper);min-height:100dvh;color:var(--ink);font-family:var(--font-text);font-size:var(--step-0);line-height:var(--lh-text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-weight:350;overflow-x:clip}img,picture,svg,video{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-underline-offset:.25em;text-decoration-thickness:1px}p,li,h1,h2,h3,h4,blockquote{overflow-wrap:break-word}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:var(--lh-tight);letter-spacing:-.012em;text-wrap:balance}p{text-wrap:pretty}::selection{background:var(--signal);color:var(--signal-ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}[hidden]{display:none!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{inset-inline-start:var(--s-4);z-index:100;background:var(--ink);color:var(--paper);padding:var(--s-3) var(--s-4);border-radius:var(--r-pill);font-weight:500;text-decoration:none;position:absolute;top:-100px}.skip-link:focus{top:var(--s-3)}.ltr,bdi.ltr{direction:ltr;unicode-bidi:isolate;display:inline-block}.mono{font-family:var(--font-mono);letter-spacing:0;font-weight:400}.muted{color:var(--graphite)}.signal{color:var(--signal)}.wrap{width:min(100% - 2 * var(--gutter), var(--max));margin-inline:auto}.wrap-narrow{width:min(100% - 2 * var(--gutter), 46rem);margin-inline:auto}.section{padding-block:var(--section)}.section-tight{padding-block:calc(var(--section) * .55)}.rule-top{border-top:0}.stack>*+*{margin-top:var(--flow,var(--s-4))}.measure{max-width:var(--measure)}.display{font-family:var(--font-display);font-size:var(--step-6);letter-spacing:-.02em;font-weight:700;line-height:1.12}.h1{font-size:var(--step-5);letter-spacing:-.02em}.h2{font-size:var(--step-4)}.h3{font-size:var(--step-2)}.h4{font-size:var(--step-1)}.lead{font-size:var(--step-1);color:var(--graphite);max-width:46ch;font-weight:350;line-height:1.65}.eyebrow{align-items:center;gap:var(--s-2);font-size:var(--step--1);color:var(--graphite);font-weight:450;display:inline-flex}.eyebrow:before{content:"";background:var(--signal);border-radius:3px;block-size:.5rem;inline-size:.5rem}.kicker{font-size:var(--step--1);color:var(--graphite)}.btn{--btn-bg:var(--ink);--btn-fg:var(--paper);--btn-bd:transparent;justify-content:center;align-items:center;gap:var(--s-2);background:var(--btn-bg);min-height:3rem;color:var(--btn-fg);border:1px solid var(--btn-bd);border-radius:var(--r-pill);font-weight:500;font-size:var(--step-0);cursor:pointer;transition:background var(--dur-1) var(--ease-out), color var(--dur-1), transform var(--dur-1), box-shadow var(--dur-2);padding:.7rem 1.4rem;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{--btn-bg:var(--ink-2)}.btn:active{transform:scale(.98)}.btn-primary{--btn-bg:var(--signal);--btn-fg:var(--signal-ink)}.btn-primary:hover{--btn-bg:var(--signal-hover);box-shadow:0 10px 24px -12px var(--signal)}.btn-ghost{--btn-bg:var(--paper-2);--btn-fg:var(--ink)}.btn-ghost:hover{--btn-bg:var(--paper-3)}.btn .arrow{transition:transform var(--dur-2) var(--ease-out)}.btn:hover .arrow{transform:translate(-3px)}html[dir=ltr] .btn:hover .arrow{transform:translate(3px)}.btn[disabled],.btn[aria-disabled=true]{opacity:.55;pointer-events:none}.btn-row{gap:var(--s-3);flex-wrap:wrap;align-items:center;display:flex}.link-arrow{gap:var(--s-2);color:var(--ink);align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.link-arrow:hover{color:var(--signal)}.icon{inline-size:var(--icon-size,1.1em);block-size:var(--icon-size,1.1em);vertical-align:-.18em;flex:none;display:inline-flex}.icon svg{stroke-width:2px;block-size:100%;inline-size:100%}[dir=rtl] .icon-dir svg{transform:scaleX(-1)}a:hover>.icon-dir,.btn:hover>.icon-dir{transform:translate(3px)}[dir=rtl] a:hover>.icon-dir,[dir=rtl] .btn:hover>.icon-dir{transform:translate(-3px)}.icon-dir{transition:transform var(--dur-2) var(--ease-out)}.stamp{white-space:nowrap;font-size:var(--step--1);border-radius:var(--r-pill);background:var(--paper-3);color:var(--ink-2);align-items:center;gap:.45em;padding:.45em .8em;font-weight:500;line-height:1;display:inline-flex}.stamp .glyph{--icon-size:1em}.stamp[data-status=shipped],.stamp[data-status=available]{color:var(--ok);background:color-mix(in oklab, var(--ok) 12%, transparent)}.stamp[data-status=testing]{color:var(--warn);background:color-mix(in oklab, var(--warn) 12%, transparent)}.stamp[data-status=concept],.stamp[data-status=coming-soon]{color:var(--ink-2);background:var(--paper-3)}.stamp[data-status=archived]{color:var(--graphite);background:var(--paper-3);text-decoration:line-through 1px}.ledger{gap:var(--s-2);display:grid}.ledger-row{gap:var(--s-2) var(--s-5);padding:var(--s-4) var(--s-5);background:var(--paper-2);border-radius:var(--r-2);transition:background var(--dur-1), transform var(--dur-2) var(--ease-out);grid-template-columns:minmax(6.5rem,auto) 1fr auto;align-items:center;text-decoration:none;display:grid}a.ledger-row:hover{background:var(--paper-3)}a.ledger-row:hover .ledger-title{color:var(--signal)}.ledger-date{font-family:var(--font-mono);font-size:var(--step--1);color:var(--graphite);text-align:start;direction:ltr}.ledger-title{font-family:var(--font-display);font-size:var(--step-1);transition:color var(--dur-1);font-weight:600;line-height:1.35;display:block}.ledger-meta{font-size:var(--step--1);color:var(--graphite);margin-top:var(--s-1);display:block}@media (width<=40rem){.ledger-row{padding:var(--s-4);grid-template-columns:1fr auto}.ledger-row .ledger-date{grid-column:1/-1}}.section-head{gap:var(--s-3);margin-bottom:var(--s-6);display:grid}@media (width>=64rem){.section-head.split{align-items:end;gap:var(--s-7);grid-template-columns:1fr 1fr}}.section-index{font-size:var(--step--1);color:var(--graphite);font-weight:450}.darkroom{--paper:var(--darkroom);--paper-2:#1d1d24;--paper-3:#27272f;--ink:var(--on-dark);--ink-2:#d4d4d8;--graphite:var(--on-dark-2);--rule:#2a2a32;--rule-strong:#3f3f48;--signal:#ff5a5f;--signal-hover:#ff7276;--signal-ink:#160405;--ok:#4ade80;--warn:#fbbf24;background:var(--darkroom);color:var(--on-dark);isolation:isolate;color-scheme:dark;position:relative}.grain:after{content:none}.grid{gap:var(--gap);display:grid}@media (width>=48rem){.grid-2,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (width>=64rem){.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}}.panel,.panel-quiet{background:var(--paper-2);border-radius:var(--r-3);padding:clamp(1.4rem,1rem + 1.5vw,2.25rem)}.tile{gap:var(--s-3);background:var(--paper-2);border-radius:var(--r-3);transition:transform var(--dur-2) var(--ease-out), background var(--dur-1);flex-direction:column;padding:clamp(1.4rem,1rem + 1.5vw,2.25rem);text-decoration:none;display:flex;position:relative;overflow:hidden}a.tile:hover{transform:translateY(-3px)}a.tile:hover .tile-title{color:var(--signal)}.tile-title{font-family:var(--font-display);font-size:var(--step-3);transition:color var(--dur-1);font-weight:700;line-height:1.15}.tile-num{font-family:var(--font-mono);font-size:var(--step--1);color:var(--graphite)}.tile-dark{background:var(--darkroom);color:var(--on-dark)}.tile-red{background:var(--signal);color:var(--signal-ink)}.figure-num{font-family:var(--font-display);font-weight:700;font-size:var(--step-5);letter-spacing:-.02em;font-variant-numeric:lining-nums tabular-nums;direction:ltr;unicode-bidi:isolate;line-height:1;display:inline-block}.fn-ref{font-family:var(--font-mono);vertical-align:super;color:var(--signal);padding-inline:.15em;font-size:.6em;line-height:0;text-decoration:none}.fn-ref:hover{text-decoration:underline}.form,.form-row{gap:var(--s-5);display:grid}@media (width>=40rem){.form-row.two{grid-template-columns:1fr 1fr}}.field{gap:var(--s-2);display:grid}.field label,.field legend{font-weight:500;font-size:var(--step--1);color:var(--ink-2)}.field .hint{color:var(--graphite);font-weight:350}.input,.select,.textarea{background:var(--paper);border:1px solid var(--rule-strong);border-radius:var(--r-1);width:100%;min-height:3.1rem;color:var(--ink);transition:border-color var(--dur-1), box-shadow var(--dur-1);padding:.75rem 1rem}.textarea{resize:vertical;min-height:8rem;line-height:1.6}.input:hover,.select:hover,.textarea:hover{border-color:var(--graphite)}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{border-color:var(--ink);box-shadow:0 0 0 4px var(--signal-wash);outline:none}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--signal)}.field-error{color:var(--signal);font-size:var(--step--1)}.check{gap:var(--s-3);font-size:var(--step--1);color:var(--ink-2);align-items:flex-start;display:flex}.check input{block-size:1.15rem;inline-size:1.15rem;accent-color:var(--signal);flex:none;margin-top:.3em}.hp{block-size:1px;inline-size:1px;inset-inline-start:-10000px;overflow:hidden;position:absolute!important}.form-status{padding:var(--s-4) var(--s-5);border-radius:var(--r-2);background:var(--paper-3)}.form-status[data-kind=ok]{background:color-mix(in oklab, var(--ok) 14%, var(--paper))}.form-status[data-kind=error]{background:var(--signal-wash)}.form-note{font-size:var(--step--1);color:var(--graphite)}.prose{max-width:var(--measure)}.prose>*+*{margin-top:1.1em}.prose h2{font-size:var(--step-3);margin-top:1.8em}.prose h3{font-size:var(--step-2);margin-top:1.5em}.prose ul,.prose ol{padding-inline-start:1.3em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--signal)}.prose blockquote{background:var(--paper-2);border-radius:var(--r-2);padding:var(--s-5) var(--s-6);font-size:var(--step-1);color:var(--ink);border-inline-start:4px solid var(--signal);font-weight:600;line-height:1.5}.prose code{font-family:var(--font-mono);background:var(--paper-2);direction:ltr;unicode-bidi:isolate;border-radius:6px;padding:.1em .4em;font-size:.88em}.prose pre{text-align:left;background:var(--darkroom);color:var(--on-dark);padding:var(--s-5);border-radius:var(--r-2);font-size:var(--step--1);direction:ltr;line-height:1.6;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose a{color:var(--signal)}.prose hr{border:0;border-top:var(--hair);margin-block:2.5em}.prose table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--step--1);background:var(--paper-2);border-radius:var(--r-2);padding:var(--s-2) var(--s-4);display:block;overflow-x:auto}.prose th,.prose td{border-bottom:var(--hair);text-align:start;vertical-align:top;padding:.7em .5em}.prose tr:last-child td{border-bottom:0}.prose th,.prose strong{font-weight:600}.faq{gap:var(--s-2);display:grid}.faq details{background:var(--paper-2);border-radius:var(--r-2);padding-inline:var(--s-5)}.faq summary{cursor:pointer;padding:var(--s-4) 0;justify-content:space-between;gap:var(--s-4);font-weight:500;font-size:var(--step-0);align-items:center;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"";background:var(--signal);block-size:1.25rem;inline-size:1.25rem;transition:transform var(--dur-2) var(--ease-out);flex:none;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M12 5v14'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M12 5v14'/%3E%3C/svg%3E") 50%/contain no-repeat}.effort{vertical-align:middle;gap:3px;display:inline-flex}.effort i{border:1.5px solid;border-radius:50%;block-size:.5em;inline-size:.5em}.effort i.on{background:currentColor}.list-x{padding-inline-start:0;list-style:none}.list-x li{padding-inline-start:1.75em;position:relative}.list-x li:before{content:"";inset-inline-start:0;background:var(--signal);block-size:1em;inline-size:1em;position:absolute;top:.35em;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E") 50%/contain no-repeat}.fit-head{align-items:center;gap:var(--s-2);display:flex}.fit-yes{color:var(--ok)}.fit-no{color:var(--signal)}.list-check{padding-inline-start:0;list-style:none}.list-check li{padding-inline-start:1.75em;position:relative}.list-check li:before{content:"";inset-inline-start:0;background:var(--ok);block-size:1.1em;inline-size:1.1em;position:absolute;top:.3em;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat}.faq details[open] summary:after{transform:rotate(45deg)}.faq details>div{padding-bottom:var(--s-5);color:var(--ink-2);max-width:var(--measure)}.chips{gap:var(--s-2);flex-wrap:wrap;display:flex}.chip{border-radius:var(--r-pill);background:var(--paper-2);min-height:2.75rem;font-size:var(--step--1);align-items:center;gap:var(--s-2);color:var(--ink-2);transition:background var(--dur-1);border:0;padding:.4rem 1rem;line-height:1.2;text-decoration:none;display:inline-flex}.chip[aria-pressed=true],.chip[aria-current=true]{background:var(--ink);color:var(--paper)}.chip:hover{background:var(--paper-3)}.chip[aria-pressed=true]:hover{background:var(--ink-2)}.chip .count{font-family:var(--font-mono);opacity:.7;font-size:.85em}.tag{font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-2);background:var(--paper-3);border-radius:var(--r-pill);direction:ltr;unicode-bidi:isolate;padding:.25em .65em;display:inline-block}.crumbs ol{gap:var(--s-2);font-size:var(--step--1);color:var(--graphite);flex-wrap:wrap;padding:0;list-style:none;display:flex}.crumbs li+li:before{content:"/";color:var(--rule-strong);margin-inline-end:var(--s-2)}.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--signal)}.js [data-reveal]{opacity:0;transition:opacity var(--dur-3) var(--ease-out), transform var(--dur-3) var(--ease-out);transform:translateY(14px)}.js [data-reveal].is-in{opacity:1;transform:none}@view-transition{navigation:auto}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.site-header,.site-footer,.no-print{display:none!important}body{color:#000;background:#fff}}:lang(ar) .eyebrow,:lang(ar) .col-title,:lang(ar) .mono,:lang(ar) h1,:lang(ar) h2,:lang(ar) h3,:lang(ar) .display,:lang(ar) .h1{letter-spacing:0}.icon svg *{transform-box:fill-box;transform-origin:50%}.icon[data-icon=compass] path,.icon[data-icon=clock] path{transform-box:view-box;transform-origin:12px 12px}.icon[data-icon=hammer] svg{transform-origin:20% 80%}.icon[data-icon=flask] svg{transform-origin:50% 100%}.icon[data-icon=megaphone] svg{transform-origin:25%}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=hammer] svg,.icon.icon-play[data-icon=hammer] svg{animation:.8s cubic-bezier(.65,0,.35,1) ic-swing}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=flask] svg,.icon.icon-play[data-icon=flask] svg{animation:.7s cubic-bezier(.65,0,.35,1) ic-wiggle}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=flask] path:nth-of-type(2),.icon.icon-play[data-icon=flask] path:nth-of-type(2){animation:.6s cubic-bezier(.65,0,.35,1) .1s backwards ic-draw}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=megaphone] svg,.icon.icon-play[data-icon=megaphone] svg{animation:.7s cubic-bezier(.65,0,.35,1) ic-shout}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=bot] svg,.icon.icon-play[data-icon=bot] svg{animation:.6s cubic-bezier(.34,1.56,.64,1) ic-hop}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=bot] path:nth-of-type(4),.icon.icon-play[data-icon=bot] path:nth-of-type(4),:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=bot] path:nth-of-type(5),.icon.icon-play[data-icon=bot] path:nth-of-type(5){animation:.5s .15s ic-blink}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=bot] path:first-of-type,.icon.icon-play[data-icon=bot] path:first-of-type{animation:.5s cubic-bezier(.65,0,.35,1) ic-draw}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=sparkles] path:first-of-type,.icon.icon-play[data-icon=sparkles] path:first-of-type{animation:.8s cubic-bezier(.34,1.56,.64,1) ic-twinkle}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=sparkles] path:nth-of-type(n+2),.icon.icon-play[data-icon=sparkles] path:nth-of-type(n+2),:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=sparkles] circle,.icon.icon-play[data-icon=sparkles] circle{animation:.6s .25s backwards ic-fade}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=trending-up] path,.icon.icon-play[data-icon=trending-up] path{animation:.7s cubic-bezier(.65,0,.35,1) ic-draw}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=layout] rect:first-of-type,.icon.icon-play[data-icon=layout] rect:first-of-type{animation:.5s cubic-bezier(.34,1.56,.64,1) ic-pop}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=layout] rect:nth-of-type(2),.icon.icon-play[data-icon=layout] rect:nth-of-type(2){animation:.5s cubic-bezier(.34,1.56,.64,1) 80ms backwards ic-pop}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=layout] rect:nth-of-type(3),.icon.icon-play[data-icon=layout] rect:nth-of-type(3){animation:.5s cubic-bezier(.34,1.56,.64,1) .16s backwards ic-pop}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=graduation-cap] svg,.icon.icon-play[data-icon=graduation-cap] svg{animation:.7s cubic-bezier(.34,1.56,.64,1) ic-cap}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=lightbulb] path:first-of-type,.icon.icon-play[data-icon=lightbulb] path:first-of-type{animation:.9s ic-glow}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=circle-check] path,.icon.icon-play[data-icon=circle-check] path{animation:.5s cubic-bezier(.65,0,.35,1) ic-draw}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=check] path,.icon.icon-play[data-icon=check] path{animation:.45s cubic-bezier(.65,0,.35,1) ic-draw}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=compass] path,.icon.icon-play[data-icon=compass] path{animation:.9s cubic-bezier(.34,1.56,.64,1) ic-needle}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=clock] path,.icon.icon-play[data-icon=clock] path{animation:.9s cubic-bezier(.65,0,.35,1) ic-tick}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=wrench] svg,.icon.icon-play[data-icon=wrench] svg{animation:.7s cubic-bezier(.65,0,.35,1) ic-turn}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=workflow] path,.icon.icon-play[data-icon=workflow] path{animation:.6s cubic-bezier(.65,0,.35,1) .1s backwards ic-draw}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=workflow] rect,.icon.icon-play[data-icon=workflow] rect{animation:.45s cubic-bezier(.34,1.56,.64,1) ic-pop}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=archive] rect,.icon.icon-play[data-icon=archive] rect{animation:.6s cubic-bezier(.34,1.56,.64,1) ic-lid}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=download] path:nth-of-type(-n+2),.icon.icon-play[data-icon=download] path:nth-of-type(-n+2){animation:.6s cubic-bezier(.34,1.56,.64,1) ic-drop}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=up] svg,.icon.icon-play[data-icon=up] svg{animation:.6s cubic-bezier(.34,1.56,.64,1) ic-rise}:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=mail] svg,.icon.icon-play[data-icon=mail] svg,:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=quote] svg,.icon.icon-play[data-icon=quote] svg,:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=file-text] svg,.icon.icon-play[data-icon=file-text] svg,:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=book-open] svg,.icon.icon-play[data-icon=book-open] svg,:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=calculator] svg,.icon.icon-play[data-icon=calculator] svg,:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=rocket] svg,.icon.icon-play[data-icon=rocket] svg,:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=pen] svg,.icon.icon-play[data-icon=pen] svg,:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=plus] svg,.icon.icon-play[data-icon=plus] svg,:is(a,button,summary,.card,.tile,.panel,.project,.course,.service,.article,.cell-link):hover .icon[data-icon=x] svg,.icon.icon-play[data-icon=x] svg{animation:.45s cubic-bezier(.34,1.56,.64,1) ic-pop}.icon-dir{transition:transform .45s cubic-bezier(.34,1.56,.64,1)}.js [data-reveal]{transition:opacity .7s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0s), transform .9s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0s);transform:translateY(22px)scale(.985)}.js [data-reveal].is-in{transform:none}@supports (animation-timeline:scroll()){.read-progress{inset-inline:0;z-index:60;background:var(--brand-orange,var(--signal));transform-origin:0;height:3px;animation:linear both read-grow;position:fixed;top:0}[dir=rtl] .read-progress{transform-origin:100%}}@media (hover:hover){:is(.card,.project,.article,.course,.service,.lab-grid .cell-link){transition:transform .5s cubic-bezier(.34,1.56,.64,1),box-shadow .4s,background-color .2s}:is(.project,.article,.course,.service,.lab-grid .cell-link):hover{transform:translateY(-4px);box-shadow:0 22px 44px -26px #10161959}.card:hover{transform:translateY(-3px)}}@keyframes ic-swing{0%{transform:rotate(0)}30%{transform:rotate(-24deg)}60%{transform:rotate(12deg)}80%{transform:rotate(-4deg)}to{transform:rotate(0)}}@keyframes ic-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}50%{transform:rotate(8deg)}75%{transform:rotate(-4deg)}}@keyframes ic-shout{0%,to{transform:none}20%{transform:rotate(-10deg)scale(1.08)}40%{transform:rotate(6deg)scale(1.08)}60%{transform:rotate(-4deg)}}@keyframes ic-hop{0%,to{transform:none}40%{transform:translateY(-3px)}}@keyframes ic-blink{0%,to{transform:none}50%{transform:scaleY(.1)}}@keyframes ic-draw{0%{stroke-dasharray:1;stroke-dashoffset:1px}to{stroke-dasharray:1;stroke-dashoffset:0}}@keyframes ic-twinkle{0%{transform:scale(.6)rotate(-20deg)}60%{transform:scale(1.12)rotate(6deg)}to{transform:none}}@keyframes ic-fade{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}@keyframes ic-pop{0%{transform:scale(.6)}70%{transform:scale(1.12)}to{transform:none}}@keyframes ic-cap{0%,to{transform:none}45%{transform:translateY(-3px)rotate(-8deg)}}@keyframes ic-glow{0%,to{fill:#ffd43b00}40%{fill:#ffd43bb3}}@keyframes ic-needle{0%{transform:rotate(0)}40%{transform:rotate(-60deg)}75%{transform:rotate(18deg)}to{transform:rotate(0)}}@keyframes ic-tick{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ic-turn{0%,to{transform:rotate(0)}40%{transform:rotate(-28deg)}70%{transform:rotate(8deg)}}@keyframes ic-lid{0%,to{transform:none}40%{transform:translateY(-3px)rotate(-4deg)}}@keyframes ic-drop{0%{opacity:0;transform:translateY(-4px)}60%{opacity:1;transform:translateY(2px)}to{transform:none}}@keyframes ic-rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes read-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.marquee{min-width:0;max-width:100%;overflow:hidden;-webkit-mask:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.marquee-track{gap:var(--mq-gap,var(--s-8));width:max-content;padding-block:var(--s-3);direction:ltr;display:flex}.marquee-track>ul{gap:var(--mq-gap,var(--s-8));margin:0;padding:0;list-style:none;display:flex}.marquee-track{animation:40s linear infinite marquee}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes marquee{to{transform:translateX(calc(-50% - var(--mq-gap,var(--s-8)) / 2))}}[data-spotlight]{isolation:isolate;position:relative;overflow:hidden}.spot{z-index:1;pointer-events:none;opacity:0;background:radial-gradient(520px circle at var(--mx,50%) var(--my,50%), #ffffff12, transparent 45%);transition:opacity .35s;position:absolute;inset:0}[data-spotlight]:hover>.spot{opacity:1}.to-top{inset-inline-end:clamp(1rem,3vw,2rem);z-index:55;cursor:pointer;color:#f6f5f0;opacity:0;pointer-events:none;background:#101619;border:0;border-radius:50%;place-items:center;block-size:3rem;inline-size:3rem;transition:opacity .3s,transform .45s cubic-bezier(.34,1.56,.64,1);display:grid;position:fixed;bottom:clamp(1rem,3vw,2rem);transform:translateY(12px)scale(.9);box-shadow:0 12px 30px -12px #10161999}.to-top.is-on{opacity:1;pointer-events:auto;transform:none}.to-top:focus-visible{outline:2px solid var(--signal);outline-offset:3px}.toc a[aria-current=true]{color:var(--signal);font-weight:600}@view-transition{navigation:auto}.site-header{view-transition-name:site-header}::view-transition-old(root){animation:.28s cubic-bezier(.4,0,1,1) both vt-out}::view-transition-new(root){animation:.5s cubic-bezier(.22,1,.36,1) both vt-in}@keyframes vt-out{to{opacity:0;transform:scale(.985)}}@keyframes vt-in{0%{opacity:0;transform:translateY(18px)}}.icon3d{inline-size:var(--i3d);block-size:var(--i3d);flex:none;place-items:center;display:inline-grid}.icon3d picture,.icon3d img{object-fit:contain;block-size:100%;inline-size:100%;display:block}.icon3d img{filter:drop-shadow(0 18px 22px #1016192e);transition:transform .6s cubic-bezier(.34,1.56,.64,1),filter .4s}.icon3d{animation:6s ease-in-out infinite i3d-float}:is(a,.card,.service,.project,.course,.svc):nth-child(2n) .icon3d{animation-delay:-2s}:is(a,.card,.service,.project,.course,.svc):nth-child(3n) .icon3d{animation-delay:-4s}:is(a,button,.card,.tile,.project,.course,.service,.article,.svc):hover .icon3d img{filter:drop-shadow(0 26px 26px #1016193d);transform:translateY(-6px)rotate(-6deg)scale(1.08)}@keyframes i3d-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.wa-fab[data-astro-cid-uchulhbi]{z-index:56;inset-inline-start:clamp(1rem,3vw,2rem);color:#fff;background:#1a7f4b;border-radius:999px;align-items:center;gap:.5rem;block-size:3.25rem;padding-inline:.95rem;font-weight:600;text-decoration:none;transition:transform .45s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;display:inline-flex;position:fixed;bottom:clamp(1rem,3vw,2rem);box-shadow:0 14px 34px -14px #0b3d24cc}.wa-fab[data-astro-cid-uchulhbi] svg[data-astro-cid-uchulhbi]{flex:none;block-size:1.45rem;inline-size:1.45rem}.wa-fab[data-astro-cid-uchulhbi]:hover{transform:translateY(-3px)scale(1.03);box-shadow:0 18px 38px -14px #0b3d24}.wa-fab[data-astro-cid-uchulhbi]:focus-visible{outline:2px solid var(--signal);outline-offset:3px}.wa-label[data-astro-cid-uchulhbi]{font-size:var(--step--1)}@media (width<=40rem){.wa-fab[data-astro-cid-uchulhbi]{padding-inline:.9rem}.wa-label[data-astro-cid-uchulhbi]{display:none}}@media print{.wa-fab[data-astro-cid-uchulhbi]{display:none}}.sp[data-astro-cid-6xoupbfm]{inline-size:min(40rem,100% - 2rem);color:var(--ink);background:0 0;border:0;margin:10vh auto auto;padding:0}.sp[data-astro-cid-6xoupbfm]::backdrop{backdrop-filter:blur(6px);background:#10161973}.sp-box[data-astro-cid-6xoupbfm]{background:var(--paper-2,#fff);border:1px solid var(--rule);border-radius:1.25rem;overflow:hidden;box-shadow:0 30px 80px -30px #10161999}.sp-field[data-astro-cid-6xoupbfm]{border-bottom:1px solid var(--rule);color:var(--graphite);align-items:center;gap:.75rem;padding:1rem 1.2rem;display:flex}.sp-field[data-astro-cid-6xoupbfm] input[data-astro-cid-6xoupbfm]::-webkit-search-cancel-button{display:none}.sp-field[data-astro-cid-6xoupbfm] input[data-astro-cid-6xoupbfm]{font:inherit;font-size:var(--step-1);color:var(--ink);background:0 0;border:0;outline:0;flex:1;min-inline-size:0}.sp-kbd[data-astro-cid-6xoupbfm],.sp-foot[data-astro-cid-6xoupbfm] kbd[data-astro-cid-6xoupbfm]{font:inherit;border:1px solid var(--rule-strong);color:var(--graphite);background:var(--paper);border-radius:.4rem;padding:.1rem .45rem;font-size:.72rem}.sp-results[data-astro-cid-6xoupbfm]{max-block-size:min(60vh,28rem);margin:0;padding:.5rem;list-style:none;overflow:auto}.sp-results[data-astro-cid-6xoupbfm] a{color:inherit;border-radius:.8rem;grid-template-columns:1fr auto;gap:.15rem .8rem;padding:.7rem .85rem;text-decoration:none;display:grid}.sp-results[data-astro-cid-6xoupbfm] a[aria-selected=true],.sp-results[data-astro-cid-6xoupbfm] a:hover{background:var(--paper-3)}.sp-results[data-astro-cid-6xoupbfm] .t{font-weight:600}.sp-results[data-astro-cid-6xoupbfm] .k{background:var(--paper-3);color:var(--graphite);border-radius:1rem;grid-row:span 2;align-self:center;padding:.15rem .55rem;font-size:.72rem}.sp-results[data-astro-cid-6xoupbfm] a[aria-selected=true] .k{background:var(--btn-orange,var(--signal));color:#fff}.sp-results[data-astro-cid-6xoupbfm] .d{font-size:var(--step--1);color:var(--graphite);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sp-empty[data-astro-cid-6xoupbfm]{text-align:center;color:var(--graphite);margin:0;padding:1.5rem}.sp-foot[data-astro-cid-6xoupbfm]{border-top:1px solid var(--rule);color:var(--graphite);align-items:center;gap:.35rem;margin:0;padding:.6rem 1rem;font-size:.75rem;display:flex}@media (prefers-reduced-motion:no-preference){.sp[data-astro-cid-6xoupbfm][open] .sp-box[data-astro-cid-6xoupbfm]{animation:.28s cubic-bezier(.22,1,.36,1) sp-in}}@keyframes sp-in{0%{opacity:0;transform:translateY(-8px)scale(.98)}}@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:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-arabic-arabic-400-normal.CyU-ddYS.woff2)format("woff2"),url(/_astro/ibm-plex-sans-arabic-arabic-400-normal.EA1o-u_Q.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-arabic-arabic-500-normal.C4MQITzh.woff2)format("woff2"),url(/_astro/ibm-plex-sans-arabic-arabic-500-normal.DPXcppbm.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-arabic-arabic-600-normal.0pRdybE_.woff2)format("woff2"),url(/_astro/ibm-plex-sans-arabic-arabic-600-normal.MJZ0liF5.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-arabic-arabic-700-normal.DrtBj6UE.woff2)format("woff2"),url(/_astro/ibm-plex-sans-arabic-arabic-700-normal.9rXc6cUL.woff)format("woff")}.logo[data-astro-cid-f7espo7c]{color:var(--ink);align-items:center;gap:.6rem;min-height:44px;text-decoration:none;display:inline-flex}.logo-mark[data-astro-cid-f7espo7c]{place-items:center;padding-bottom:6px;display:inline-grid;position:relative}.logo-bar[data-astro-cid-f7espo7c]{bottom:0;background:var(--signal);border-radius:2px;height:3px;position:absolute;inset-inline:2px}.logo-word[data-astro-cid-f7espo7c]{font-family:var(--font-text);letter-spacing:.08em;direction:ltr;font-size:1.05rem;font-weight:600}.logo[data-astro-cid-f7espo7c]:hover .logo-bar[data-astro-cid-f7espo7c]{transition:inset var(--dur-2) var(--ease-out);inset-inline:-2px}.site-header[data-astro-cid-nen7h5rs]{z-index:50;background:color-mix(in oklab, var(--paper) 86%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(14px);transition:box-shadow var(--dur-2), transform .45s cubic-bezier(.22,1,.36,1);position:sticky;top:0}.site-header[data-astro-cid-nen7h5rs][data-scrolled]{box-shadow:0 1px 0 var(--rule)}.site-header[data-astro-cid-nen7h5rs][data-hidden]{transform:translateY(-100%)}.search-btn[data-astro-cid-nen7h5rs]{border-radius:var(--r-pill);border:1px solid var(--rule);background:var(--paper-2);min-height:2.75rem;color:var(--ink-2);cursor:pointer;font:inherit;align-items:center;gap:.45rem;padding-inline:.8rem;display:inline-flex}.search-btn[data-astro-cid-nen7h5rs]:hover{border-color:var(--rule-strong);color:var(--ink)}.search-btn[data-astro-cid-nen7h5rs] .kbd[data-astro-cid-nen7h5rs]{border:1px solid var(--rule-strong);color:var(--graphite);direction:ltr;border-radius:.35rem;padding:.05rem .4rem;font-size:.7rem}@media (width<=64rem){.search-btn[data-astro-cid-nen7h5rs] .kbd[data-astro-cid-nen7h5rs]{display:none}.search-btn[data-astro-cid-nen7h5rs]{justify-content:center;inline-size:2.75rem;padding-inline:0}}.bar[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:var(--s-4);min-height:var(--header-h);display:flex}.primary[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{background:var(--paper-2);border-radius:var(--r-pill);gap:2px;padding:5px;list-style:none;display:flex}.primary[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{min-height:38px;font-size:var(--step--1);color:var(--graphite);border-radius:var(--r-pill);transition:color var(--dur-1), background var(--dur-1);align-items:center;padding-inline:.95rem;text-decoration:none;display:inline-flex}.primary[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--ink)}.primary[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--ink);background:var(--paper);box-shadow:0 1px 3px #0b0b0f1a}.actions[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--s-1);display:flex}.lang[data-astro-cid-nen7h5rs]{font-size:var(--step--1);min-height:44px;color:var(--graphite);border-radius:var(--r-pill);align-items:center;padding:.5rem .75rem;text-decoration:none;display:inline-flex}.lang[data-astro-cid-nen7h5rs]:hover{color:var(--ink);background:var(--paper-2)}.theme[data-astro-cid-nen7h5rs]{block-size:44px;inline-size:44px;color:var(--graphite);background:0 0;border:0;border-radius:50%;place-items:center;display:inline-grid}.theme[data-astro-cid-nen7h5rs]:hover{color:var(--ink);background:var(--paper-2)}.cta[data-astro-cid-nen7h5rs]{min-height:2.75rem;font-size:var(--step--1);margin-inline-start:var(--s-2);padding:.5rem 1.15rem}.menu-btn[data-astro-cid-nen7h5rs]{background:var(--paper-2);block-size:44px;inline-size:44px;color:var(--ink);border:0;border-radius:50%;place-items:center;display:none}@media (width<=60rem){.primary[data-astro-cid-nen7h5rs],.lang[data-astro-cid-nen7h5rs],.cta[data-astro-cid-nen7h5rs]{display:none}.menu-btn[data-astro-cid-nen7h5rs]{display:inline-grid}}.sheet[data-astro-cid-nen7h5rs]{background:var(--paper);block-size:100dvh;max-block-size:100dvh;inline-size:100%;max-inline-size:100%;color:var(--ink);border:0;margin:0;padding:0}.sheet[data-astro-cid-nen7h5rs]::backdrop{background:#0006}.sheet[data-astro-cid-nen7h5rs][open]{animation:sheet-in var(--dur-2) var(--ease-out)}@keyframes sheet-in{0%{opacity:0;transform:translateY(-8px)}}.sheet-inner[data-astro-cid-nen7h5rs]{min-height:100%;padding:0 var(--gutter) var(--s-6);flex-direction:column;display:flex}.sheet-top[data-astro-cid-nen7h5rs]{min-height:var(--header-h);justify-content:space-between;align-items:center;display:flex}.sheet-list[data-astro-cid-nen7h5rs]{margin-top:var(--s-3);gap:var(--s-2);padding:0;list-style:none;display:grid}.sheet-list[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--s-4);padding:var(--s-4) var(--s-5);background:var(--paper-2);border-radius:var(--r-2);font-size:var(--step-1);font-weight:600;line-height:1.2;text-decoration:none;display:flex}.sheet-list[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{background:var(--ink);color:var(--paper)}.sheet-list[data-astro-cid-nen7h5rs] .n[data-astro-cid-nen7h5rs]{font-size:var(--step--1);color:var(--graphite);font-weight:400}.sheet-foot[data-astro-cid-nen7h5rs]{padding-top:var(--s-6);gap:var(--s-3);margin-top:auto;display:grid}.lang-lg[data-astro-cid-nen7h5rs]{text-align:center;padding:var(--s-3)}.nl-form[data-astro-cid-c5a5jkvp]{gap:var(--s-3);max-width:34rem;display:grid}.nl-row[data-astro-cid-c5a5jkvp]{gap:var(--s-3);grid-template-columns:1fr;align-items:end;display:grid}@media (width>=30rem){.nl-row[data-astro-cid-c5a5jkvp]{grid-template-columns:1fr auto}}.nl-btn[data-astro-cid-c5a5jkvp]{min-height:3rem}.nl-field[data-astro-cid-c5a5jkvp] input[data-astro-cid-c5a5jkvp]{text-align:left}.site-footer[data-astro-cid-jo6i4kqk]{padding-block:var(--section) var(--gutter)}.nl[data-astro-cid-jo6i4kqk]{gap:var(--s-5);background:var(--paper-2);border-radius:var(--r-3);margin-bottom:var(--gap);padding:clamp(1.4rem,1rem + 2vw,2.75rem);display:grid}@media (width>=64rem){.nl[data-astro-cid-jo6i4kqk]{align-items:center;gap:var(--s-8);grid-template-columns:1fr 1fr}}.nl-copy[data-astro-cid-jo6i4kqk]{gap:var(--s-2);display:grid}.nl[data-astro-cid-jo6i4kqk] .form-note[data-astro-cid-jo6i4kqk]{margin-top:var(--s-3)}.foot-card[data-astro-cid-jo6i4kqk]{border-radius:var(--r-3);padding:clamp(1.4rem,1rem + 2vw,2.75rem)}.cols[data-astro-cid-jo6i4kqk]{gap:var(--s-6);padding-bottom:var(--s-6);grid-template-columns:1fr 1fr;display:grid}@media (width>=48rem){.cols[data-astro-cid-jo6i4kqk]{grid-template-columns:repeat(4,1fr)}}@media (width>=72rem){.cols[data-astro-cid-jo6i4kqk]{grid-template-columns:1.6fr repeat(4,1fr)}}.brand[data-astro-cid-jo6i4kqk]{gap:var(--s-3);grid-column:1/-1;align-content:start;display:grid}@media (width>=72rem){.brand[data-astro-cid-jo6i4kqk]{grid-column:auto}}.brand-mark[data-astro-cid-jo6i4kqk]{color:var(--on-dark);border-bottom:3px solid var(--signal);width:fit-content;padding-bottom:6px;display:inline-block}.tagline[data-astro-cid-jo6i4kqk]{font-size:var(--step-2);font-weight:700;line-height:1.3}.small[data-astro-cid-jo6i4kqk]{font-size:var(--step--1);max-width:34ch;color:var(--on-dark-2)}.col-title[data-astro-cid-jo6i4kqk]{font-weight:500;font-size:var(--step--1);color:var(--on-dark-2);margin-bottom:var(--s-3)}nav[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk],.base-links[data-astro-cid-jo6i4kqk]{gap:var(--s-1);padding:0;list-style:none;display:grid}nav[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk],.base-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--on-dark);opacity:.85;padding-block:.35rem;text-decoration:none;display:inline-block}nav[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover,.base-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--signal);opacity:1}.base[data-astro-cid-jo6i4kqk]{justify-content:space-between;gap:var(--s-4);padding-top:var(--s-5);font-size:var(--step--1);color:var(--on-dark-2);border-top:1px solid #ffffff1a;flex-wrap:wrap;display:flex}.base-links[data-astro-cid-jo6i4kqk]{gap:var(--s-2) var(--s-5);flex-wrap:wrap;display:flex}
