@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-family:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/instrument-serif-latin-ext-400-normal.C2je3j2s.woff2)format("woff2"),url(/_astro/instrument-serif-latin-ext-400-normal.CFCUzsTy.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:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/instrument-serif-latin-400-normal.DnYpCC2O.woff2)format("woff2"),url(/_astro/instrument-serif-latin-400-normal.BVbkICAY.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{color-scheme:dark;--font-sans:"Geist Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, "SF Mono", "Cascadia Code", monospace;--font-display:"Instrument Serif", Georgia, "Times New Roman", serif;--step--1:clamp(.78rem, .74rem + .18vw, .88rem);--step-0:clamp(.95rem, .9rem + .25vw, 1.06rem);--step-1:clamp(1.15rem, 1.05rem + .5vw, 1.45rem);--step-2:clamp(1.5rem, 1.3rem + 1vw, 2.1rem);--step-3:clamp(2rem, 1.6rem + 2vw, 3.1rem);--step-4:clamp(2.7rem, 2rem + 3.5vw, 4.6rem);--step-5:clamp(3.6rem, 2.4rem + 6vw, 7.5rem);--gutter:clamp(1.25rem, 5vw, 4rem);--section-y:clamp(5rem, 12vh, 11rem);--maxw:1240px;--maxw-text:68ch;--radius:14px;--radius-sm:8px;--ease:cubic-bezier(.22, 1, .36, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--cat-data-ml:188 70% 62%;--cat-systems:215 55% 66%;--cat-web:32 70% 66%;--cat-algorithms:270 40% 70%;--cat-research:0 0% 62%}:root,:root[data-theme=dark]{color-scheme:dark;--bg:#0a0b0d;--bg-soft:#0f1216;--bg-elevated:#14181d;--surface:#ffffff06;--surface-hover:#ffffff0d;--text:#e9e7e1;--text-dim:#9b9d99;--text-faint:#62656a;--line:#ffffff17;--line-strong:#ffffff2e;--accent:#79c6e4;--accent-strong:#9bd7ef;--accent-ink:#06222e;--accent-glow:#79c6e429;--shadow:0 1px 0 #ffffff0a, 0 18px 50px -20px #000c;--grade-duo-a:#0a0b0d;--grade-duo-b:#aee0f2}:root[data-theme=light]{color-scheme:light;--bg:#f3f1ea;--bg-soft:#efece3;--bg-elevated:#fbfaf6;--surface:#14141806;--surface-hover:#1414180d;--text:#14151a;--text-dim:#54565d;--text-faint:#8a8c90;--line:#14141e1f;--line-strong:#14141e3d;--accent:#1d7fa6;--accent-strong:#0f6789;--accent-ink:#fff;--accent-glow:#1d7fa61f;--shadow:0 1px 0 #fff9, 0 22px 50px -28px #14192866;--grade-duo-a:#1a1c22;--grade-duo-b:#1d7fa6}*,:before,:after{box-sizing:border-box;margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);font-size:var(--step-0);letter-spacing:-.011em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-weight:400;line-height:1.6;overflow-x:hidden}img,picture,canvas,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}h1,h2,h3,h4{letter-spacing:-.025em;font-weight:500;line-height:1.04}.display{font-family:var(--font-display);letter-spacing:-.01em;font-weight:400;line-height:.96}.display em{font-style:italic}strong{font-weight:600}em{font-style:italic}.eyebrow{font-family:var(--font-mono);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.22em;color:var(--text-faint);font-weight:500}.mono{font-family:var(--font-mono);font-feature-settings:"tnum" 1}.dim{color:var(--text-dim)}.container{width:100%;max-width:var(--maxw);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section-y);position:relative}.section+.section{border-top:1px solid var(--line)}.section-head{flex-wrap:wrap;align-items:baseline;gap:1.2rem;margin-bottom:clamp(2.5rem,6vw,4.5rem);display:flex}.section-index{font-family:var(--font-mono);font-size:var(--step--1);color:var(--accent);letter-spacing:.1em}.section-title{font-family:var(--font-display);font-size:var(--step-3);line-height:1}.section-note{max-width:34ch;color:var(--text-dim);font-size:var(--step--1);margin-left:auto}.btn{border:1px solid var(--line-strong);font-size:var(--step--1);letter-spacing:-.01em;transition:border-color .4s var(--ease), background .4s var(--ease), color .4s var(--ease), transform .4s var(--ease);will-change:transform;border-radius:999px;align-items:center;gap:.55rem;padding:.72rem 1.2rem;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--text);transform:translateY(-2px)}.btn--primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn--primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn .arrow{transition:transform .4s var(--ease)}.btn:hover .arrow{transform:translate(3px,-3px)}[data-reveal]{opacity:0;transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);transform:translateY(22px)}[data-reveal].is-in,.no-js [data-reveal]{opacity:1;transform:none}.tag{border:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.02em;color:var(--text-dim);white-space:nowrap;border-radius:999px;align-items:center;gap:.4rem;padding:.28rem .62rem;font-size:.72rem;display:inline-flex}.tag .dot{background:hsl(var(--hue,var(--cat-systems)));border-radius:50%;width:6px;height:6px}.skip-link{z-index:200;background:var(--accent);color:var(--accent-ink);font-size:var(--step--1);border-radius:8px;padding:.7rem 1rem;position:fixed;top:-100%;left:1rem}.skip-link:focus{top:1rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[data-noselect]{user-select:none}.nav[data-astro-cid-dmqpwcec]{z-index:100;transition:background .5s var(--ease),border-color .5s var(--ease);border-bottom:1px solid #0000;position:fixed;inset:0 0 auto}.nav[data-astro-cid-dmqpwcec][data-scrolled]{background:color-mix(in oklab,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(14px)saturate(140%);border-bottom-color:var(--line)}.nav__inner[data-astro-cid-dmqpwcec]{align-items:center;gap:1.5rem;height:68px;display:flex}.nav__brand[data-astro-cid-dmqpwcec]{align-items:baseline;gap:.6rem;display:inline-flex}.nav__mark[data-astro-cid-dmqpwcec]{letter-spacing:.05em;border:1px solid var(--line-strong);border-radius:6px;padding:.2rem .45rem;font-size:.82rem;font-weight:600}.nav__domain[data-astro-cid-dmqpwcec]{font-size:.78rem}@media (width<=560px){.nav__domain[data-astro-cid-dmqpwcec]{display:none}}.nav__links[data-astro-cid-dmqpwcec]{font-size:var(--step--1);gap:1.6rem;margin-left:auto;display:flex}.nav__links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]{color:var(--text-dim);transition:color .3s var(--ease);position:relative}.nav__links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .4s var(--ease);position:absolute;bottom:-5px;left:0;transform:scaleX(0)}.nav__links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]:hover{color:var(--text)}.nav__links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]:hover:after{transform:scaleX(1)}@media (width<=720px){.nav__links[data-astro-cid-dmqpwcec]{display:none}}.nav__right[data-astro-cid-dmqpwcec]{align-items:center;gap:1rem;margin-left:0;display:flex}@media (width<=720px){.nav__right[data-astro-cid-dmqpwcec]{margin-left:auto}}.nav__ask[data-astro-cid-dmqpwcec]{border:1px solid var(--line-strong);color:var(--text-dim);transition:color .3s var(--ease),border-color .3s var(--ease);border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.78rem;display:inline-flex}.nav__ask[data-astro-cid-dmqpwcec]:hover{color:var(--text);border-color:var(--text)}.nav__ask-mark[data-astro-cid-dmqpwcec]{color:var(--accent);font-size:.7rem}@media (width<=440px){.nav__ask-label[data-astro-cid-dmqpwcec]{display:none}}.nav__book[data-astro-cid-dmqpwcec]{padding:.42rem .95rem;font-size:.78rem}.nav__theme[data-astro-cid-dmqpwcec]{border:1px solid var(--line-strong);width:34px;height:34px;color:var(--text-dim);transition:color .3s,border-color .3s,transform .3s var(--ease);border-radius:50%;place-items:center;display:grid}.nav__theme[data-astro-cid-dmqpwcec]:hover{color:var(--text);border-color:var(--text);transform:rotate(15deg)}.icon-moon[data-astro-cid-dmqpwcec],:root[data-theme=light] .icon-sun[data-astro-cid-dmqpwcec]{display:none}:root[data-theme=light] .icon-moon[data-astro-cid-dmqpwcec]{display:block}.footer[data-astro-cid-sz7xmlte]{border-top:1px solid var(--line);background:radial-gradient(120% 80% at 50% 0%,var(--accent-glow),transparent 60%),var(--bg);padding-block:clamp(4rem,9vh,7rem) 2rem}.footer__inner[data-astro-cid-sz7xmlte]{grid-template-columns:1.4fr 1fr;align-items:end;gap:clamp(2.5rem,6vw,6rem);display:grid}@media (width<=760px){.footer__inner[data-astro-cid-sz7xmlte]{grid-template-columns:1fr;gap:3rem}}.footer__cta[data-astro-cid-sz7xmlte]{margin-bottom:1.8rem;font-size:clamp(2.4rem,1.6rem + 4vw,5rem);line-height:.98}.footer__actions[data-astro-cid-sz7xmlte]{flex-wrap:wrap;gap:.8rem;display:flex}.footer__meta[data-astro-cid-sz7xmlte]{grid-template-columns:1fr 1fr;gap:2rem;display:grid}.footer__col[data-astro-cid-sz7xmlte]{font-size:var(--step--1);flex-direction:column;gap:.7rem;display:flex}.footer__col[data-astro-cid-sz7xmlte] .eyebrow[data-astro-cid-sz7xmlte]{margin-bottom:.4rem}.footer__col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--text-dim);transition:color .3s var(--ease);width:fit-content}.footer__col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}.footer__base[data-astro-cid-sz7xmlte]{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:clamp(3rem,8vh,6rem);padding-top:1.5rem;font-size:.74rem;display:flex}.footer__privacy[data-astro-cid-sz7xmlte]{max-width:70ch;color:var(--text-faint);letter-spacing:.01em;margin-top:1rem;font-size:.62rem;line-height:1.5}.tg{z-index:300;justify-content:flex-end;align-items:flex-end;padding:clamp(.75rem,2vw,1.5rem);display:flex;position:fixed;inset:0}.tg[hidden]{display:none}.tg__backdrop{background:color-mix(in oklab, var(--bg) 55%, transparent);backdrop-filter:blur(2px);opacity:0;animation:tg-fade .3s var(--ease) forwards;position:absolute;inset:0}.tg__panel{background:var(--bg-elevated);border:1px solid var(--line-strong);border-radius:var(--radius);width:min(390px,100%);height:min(560px,82vh);box-shadow:var(--shadow);opacity:0;animation:tg-pop .32s var(--ease-out) forwards;flex-direction:column;display:flex;position:relative;overflow:hidden;transform:translateY(12px)scale(.99)}@keyframes tg-fade{to{opacity:1}}@keyframes tg-pop{to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.tg__backdrop,.tg__panel{opacity:1;animation:none;transform:none}}.tg__head{border-bottom:1px solid var(--line);align-items:center;gap:.7rem;padding:.85rem 1rem;display:flex}.tg__avatar{background:var(--accent);width:30px;height:30px;color:var(--accent-ink);border-radius:50%;place-items:center;font-size:.85rem;display:grid}.tg__id{flex-direction:column;line-height:1.15;display:flex}.tg__id strong{font-size:.92rem;font-weight:600}.tg__sub{color:var(--text-faint);letter-spacing:.04em;font-size:.66rem}.tg__close{width:30px;height:30px;color:var(--text-dim);transition:color .3s var(--ease), background .3s var(--ease);border-radius:50%;place-items:center;margin-left:auto;display:grid}.tg__close:hover{color:var(--text);background:var(--surface-hover)}.tg__log{scrollbar-width:thin;flex-direction:column;flex:1;gap:.7rem;padding:1rem;display:flex;overflow-y:auto}.tg__msg{max-width:85%;animation:tg-msg .3s var(--ease-out);border-radius:12px;padding:.6rem .8rem;font-size:.85rem;line-height:1.5}@keyframes tg-msg{0%{opacity:0;transform:translateY(6px)}}.tg__msg--bot{background:var(--surface);border:1px solid var(--line);color:var(--text);border-bottom-left-radius:4px;align-self:flex-start}.tg__msg--user{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:4px;align-self:flex-end}.tg__msg em{font-style:italic}.tg__chips{flex-wrap:wrap;gap:.4rem;padding:0 1rem .6rem;display:flex}.tg__chip{color:var(--text-dim);border:1px solid var(--line);transition:color .25s var(--ease), border-color .25s var(--ease);border-radius:999px;padding:.32rem .66rem;font-size:.72rem}.tg__chip:hover{color:var(--accent);border-color:var(--accent)}.tg__form{border-top:1px solid var(--line);gap:.5rem;padding:.75rem;display:flex}.tg__input{background:var(--bg-soft);border:1px solid var(--line);color:var(--text);font:inherit;transition:border-color .25s var(--ease);border-radius:10px;outline:none;flex:1;padding:.6rem .75rem;font-size:.85rem}.tg__input:focus{border-color:var(--accent)}.tg__send{background:var(--accent);width:38px;color:var(--accent-ink);transition:opacity .25s var(--ease);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.tg__send:hover{opacity:.88}@media (width<=480px){.tg{padding:0}.tg__panel{border-radius:var(--radius) var(--radius) 0 0;width:100%;height:88vh}}
