@font-face{font-family:Mukta;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/mukta-latin-400-normal.DXND9OdD.woff2)format("woff2"),url(/_astro/mukta-latin-400-normal.DWf8bB-R.woff)format("woff")}@font-face{font-family:Mukta;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/mukta-latin-600-normal.5TtPlXMC.woff2)format("woff2"),url(/_astro/mukta-latin-600-normal.DDl5VSnm.woff)format("woff")}@font-face{font-family:Mukta;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/mukta-latin-700-normal.CI4CvK0O.woff2)format("woff2"),url(/_astro/mukta-latin-700-normal.B651Istf.woff)format("woff")}@font-face{font-family:Pregraph Sign;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/teko-latin-wght-normal.H1GeW4pj.woff2)format("woff2-variations");size-adjust:110%;ascent-override:72%;descent-override:28%;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:Pregraph Sign;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/teko-latin-ext-wght-normal.meKWhz-b.woff2)format("woff2-variations");size-adjust:110%;ascent-override:72%;descent-override:28%;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}:root{--paper:#fff;--platform:#eff1f3;--ink:#000;--ink-2:#464a4f;--ink-3:#74797f;--rule:#d6d9dc;--yellow:#fc0;--on-yellow:#000;--focus:#0057d9;--warn:#9a5200;--foundations:#6a4fd1;--programming:#0b8457;--algorithms:#d1342b;--theory:#b07400;--systems:#1f5fd0;--data:#0687a0;--ai:#c0307f;--web:#d4600a;--infra:#56606b;--mobile:#5b8a0a;--security:#8b5a2b;--sign:"Pregraph Sign", "Arial Narrow", sans-serif;--text:"Mukta", system-ui, sans-serif;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#0f1114;--platform:#191c21;--ink:#f5f5f5;--ink-2:#b7bbc1;--ink-3:#888d94;--rule:#2c3038;--focus:#7fb0ff;--warn:#f0b252;--foundations:#a491f5;--programming:#3fcf96;--algorithms:#ff7466;--theory:#ecb546;--systems:#6aa2ff;--data:#3ccbe0;--ai:#f07ac1;--web:#ff9d55;--infra:#a9b4c0;--mobile:#a5d84e;--security:#dba06a;color-scheme:dark}}[data-area=foundations]{--line:var(--foundations)}[data-area=programming]{--line:var(--programming)}[data-area=algorithms]{--line:var(--algorithms)}[data-area=theory]{--line:var(--theory)}[data-area=systems]{--line:var(--systems)}[data-area=data]{--line:var(--data)}[data-area=ai]{--line:var(--ai)}[data-area=web]{--line:var(--web)}[data-area=infra]{--line:var(--infra)}[data-area=mobile]{--line:var(--mobile)}[data-area=security]{--line:var(--security)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.6}h1,h2,h3{font-family:var(--sign);margin:0;font-stretch:82%;line-height:1.08}h1{font-size:clamp(2.2rem,6vw,3.4rem);font-weight:600}h2{font-size:1.6rem;font-weight:600}h3{font-size:1.15rem;font-weight:600}p{margin:0}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button{font:inherit;color:inherit;cursor:pointer}.num{font-variant-numeric:tabular-nums}.quiet{color:var(--ink-2)}.faint{color:var(--ink-3)}.skip{z-index:50;background:var(--yellow);color:var(--on-yellow);padding:8px 12px;font-weight:700;position:absolute;top:-48px;left:16px}.skip:focus{top:8px}.board{background:var(--yellow);color:var(--on-yellow);outline-offset:-8px;font-family:var(--sign);text-transform:uppercase;letter-spacing:.01em;border:3px solid #000;outline:1.5px solid #000;padding:.32em .6em .18em;font-weight:600;line-height:1;display:inline-block}@media (prefers-color-scheme:dark){.board{border-color:var(--yellow);outline-color:#000}}.masthead{border-bottom:3px solid var(--ink)}.masthead-inner{flex-wrap:wrap;align-items:center;gap:28px;max-width:1160px;margin:0 auto;padding:14px 20px;display:flex}.wordmark{font-family:var(--sign);align-items:center;gap:10px;font-size:1.6rem;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.masthead nav{gap:22px;display:flex}.masthead nav a{font-family:var(--sign);color:var(--ink-2);padding:4px 0;font-size:1.1rem;font-weight:650;font-stretch:85%;text-decoration:none}.masthead nav a:hover,.masthead nav a[aria-current=page]{color:var(--ink)}.masthead nav a[aria-current=page]{box-shadow:inset 0 -3px var(--yellow)}.page{max-width:1160px;margin:0 auto;padding:32px 20px 96px}.page:not(.wide)>*{max-width:780px}.colophon{background:var(--platform);margin-top:40px}.colophon p{max-width:1160px;color:var(--ink-2);margin:0 auto;padding:26px 20px 40px;font-size:.95rem}.area-chip{font-family:var(--sign);color:var(--ink-2);align-items:center;gap:8px;font-size:1rem;font-weight:650;font-stretch:85%;display:inline-flex}.area-chip:before{content:"";background:var(--line);width:24px;height:6px}.kind{font-family:var(--sign);border:2px solid var(--line);color:var(--line);white-space:nowrap;align-self:center;padding:0 6px;font-size:.85rem;font-weight:700;font-stretch:85%;line-height:1.35}.flag{color:var(--ink-2);border:1.5px solid;padding:0 7px;font-size:.82rem;font-weight:600;display:inline-block}.flag.paid{color:var(--warn)}.tabs{border:2px solid var(--ink);flex-wrap:wrap;display:inline-flex}.tabs button{background:var(--paper);font-family:var(--sign);color:var(--ink-2);border:0;padding:7px 14px;font-size:1.02rem;font-weight:650;font-stretch:88%}.tabs button+button{border-left:2px solid var(--ink)}.tabs button:hover{color:var(--ink);background:var(--platform)}.tabs button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.btn{background:var(--ink);color:var(--yellow);font-family:var(--sign);border:0;padding:11px 20px 9px;font-size:1.15rem;font-weight:720;font-stretch:85%;line-height:1.1;text-decoration:none;display:inline-block}.btn:hover{background:color-mix(in srgb, var(--ink) 82%, var(--paper))}@media (prefers-color-scheme:dark){.btn{background:var(--yellow);color:#000}.btn:hover{background:#ffdb4d}}.text-button{color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:.2em;background:0 0;border:0;padding:2px 0;font-size:.95rem;font-weight:600}.text-button:hover{color:var(--ink);text-decoration-color:currentColor}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.search[data-astro-cid-ac66eqjo]{width:min(320px,100%);margin-left:auto;position:relative}input[data-astro-cid-ac66eqjo]{width:100%;font:inherit;border:2px solid var(--ink);background:var(--paper);color:var(--ink);border-radius:0;padding:7px 34px 6px 12px;font-size:1rem}input[data-astro-cid-ac66eqjo]::placeholder{color:var(--ink-3)}input[data-astro-cid-ac66eqjo]::-webkit-search-cancel-button{display:none}kbd[data-astro-cid-ac66eqjo]{font:inherit;color:var(--on-yellow);background:var(--yellow);padding:0 6px;font-size:.8rem;font-weight:700;position:absolute;top:50%;right:9px;transform:translateY(-50%)}input[data-astro-cid-ac66eqjo]:focus+kbd[data-astro-cid-ac66eqjo]{display:none}ul[data-astro-cid-ac66eqjo]{z-index:30;background:var(--paper);border:2px solid var(--ink);max-height:60vh;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}ul[data-astro-cid-ac66eqjo] a{border-left:5px solid var(--line);gap:0;padding:6px 10px;text-decoration:none;display:grid}ul[data-astro-cid-ac66eqjo] a+a,ul[data-astro-cid-ac66eqjo] li+li{margin-top:2px}ul[data-astro-cid-ac66eqjo] a[aria-selected=true],ul[data-astro-cid-ac66eqjo] a:hover{background:var(--platform)}ul[data-astro-cid-ac66eqjo] .hit-title{font-family:var(--sign);font-size:1.1rem;font-weight:680;font-stretch:88%}ul[data-astro-cid-ac66eqjo] .hit-area{color:var(--ink-3);font-size:.85rem}ul[data-astro-cid-ac66eqjo] .empty{color:var(--ink-2);padding:10px;font-size:.95rem}.visually-hidden[data-astro-cid-ac66eqjo]{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=640px){.search[data-astro-cid-ac66eqjo]{order:3;width:100%;margin-left:0}kbd[data-astro-cid-ac66eqjo]{display:none}}
