@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/sora-latin-ext-600-normal.9d95f760.woff2) format("woff2"),url(/_next/static/media/sora-latin-ext-600-normal.5af66179.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Sora;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/sora-latin-600-normal.8bdc1840.woff2) format("woff2"),url(/_next/static/media/sora-latin-600-normal.2c889c61.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/sora-latin-ext-700-normal.abb10ace.woff2) format("woff2"),url(/_next/static/media/sora-latin-ext-700-normal.6eb04684.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Sora;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/sora-latin-700-normal.a85c9c35.woff2) format("woff2"),url(/_next/static/media/sora-latin-700-normal.7d270064.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Source Sans\ 3;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/source-sans-3-cyrillic-ext-400-normal.1397077e.woff2) format("woff2"),url(/_next/static/media/source-sans-3-cyrillic-ext-400-normal.51475458.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Source Sans\ 3;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/source-sans-3-cyrillic-400-normal.dbd38377.woff2) format("woff2"),url(/_next/static/media/source-sans-3-cyrillic-400-normal.8c8615f3.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Source Sans\ 3;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/source-sans-3-greek-ext-400-normal.4c16a1b8.woff2) format("woff2"),url(/_next/static/media/source-sans-3-greek-ext-400-normal.04155f74.woff) format("woff");unicode-range:u+1f??}@font-face{font-family:Source Sans\ 3;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/source-sans-3-greek-400-normal.422877fb.woff2) format("woff2"),url(/_next/static/media/source-sans-3-greek-400-normal.1cf7781c.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/source-sans-3-vietnamese-400-normal.00ae44f2.woff2) format("woff2"),url(/_next/static/media/source-sans-3-vietnamese-400-normal.0a5c3025.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Source Sans\ 3;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/source-sans-3-latin-ext-400-normal.73a02de5.woff2) format("woff2"),url(/_next/static/media/source-sans-3-latin-ext-400-normal.ee125392.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/source-sans-3-latin-400-normal.827817a6.woff2) format("woff2"),url(/_next/static/media/source-sans-3-latin-400-normal.48865ce5.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Source Sans\ 3;font-style:italic;font-display:swap;font-weight:400;src:url(/_next/static/media/source-sans-3-cyrillic-ext-400-italic.d8b38d84.woff2) format("woff2"),url(/_next/static/media/source-sans-3-cyrillic-ext-400-italic.59545667.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Source Sans\ 3;font-style:italic;font-display:swap;font-weight:400;src:url(/_next/static/media/source-sans-3-cyrillic-400-italic.809131f4.woff2) format("woff2"),url(/_next/static/media/source-sans-3-cyrillic-400-italic.c9ef9c5a.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Source Sans\ 3;font-style:italic;font-display:swap;font-weight:400;src:url(/_next/static/media/source-sans-3-greek-ext-400-italic.4ff8e268.woff2) format("woff2"),url(/_next/static/media/source-sans-3-greek-ext-400-italic.957c070a.woff) format("woff");unicode-range:u+1f??}@font-face{font-family:Source Sans\ 3;font-style:italic;font-display:swap;font-weight:400;src:url(/_next/static/media/source-sans-3-greek-400-italic.d043f491.woff2) format("woff2"),url(/_next/static/media/source-sans-3-greek-400-italic.3aa21320.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Source Sans\ 3;font-style:italic;font-display:swap;font-weight:400;src:url(/_next/static/media/source-sans-3-vietnamese-400-italic.4b48da8d.woff2) format("woff2"),url(/_next/static/media/source-sans-3-vietnamese-400-italic.af322af6.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Source Sans\ 3;font-style:italic;font-display:swap;font-weight:400;src:url(/_next/static/media/source-sans-3-latin-ext-400-italic.1fb8a1ea.woff2) format("woff2"),url(/_next/static/media/source-sans-3-latin-ext-400-italic.3067d539.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Source Sans\ 3;font-style:italic;font-display:swap;font-weight:400;src:url(/_next/static/media/source-sans-3-latin-400-italic.3cf37307.woff2) format("woff2"),url(/_next/static/media/source-sans-3-latin-400-italic.1715406e.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Source Sans\ 3;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/source-sans-3-cyrillic-ext-600-normal.a7e7323b.woff2) format("woff2"),url(/_next/static/media/source-sans-3-cyrillic-ext-600-normal.c6a6cb4b.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Source Sans\ 3;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/source-sans-3-cyrillic-600-normal.b6ec5816.woff2) format("woff2"),url(/_next/static/media/source-sans-3-cyrillic-600-normal.93604828.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Source Sans\ 3;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/source-sans-3-greek-ext-600-normal.d0a4bcdd.woff2) format("woff2"),url(/_next/static/media/source-sans-3-greek-ext-600-normal.18c6155e.woff) format("woff");unicode-range:u+1f??}@font-face{font-family:Source Sans\ 3;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/source-sans-3-greek-600-normal.24f8e653.woff2) format("woff2"),url(/_next/static/media/source-sans-3-greek-600-normal.4a8776b8.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/source-sans-3-vietnamese-600-normal.b019ee49.woff2) format("woff2"),url(/_next/static/media/source-sans-3-vietnamese-600-normal.94a7e07a.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Source Sans\ 3;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/source-sans-3-latin-ext-600-normal.8cf9eac4.woff2) format("woff2"),url(/_next/static/media/source-sans-3-latin-ext-600-normal.9b67988f.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/source-sans-3-latin-600-normal.580e937f.woff2) format("woff2"),url(/_next/static/media/source-sans-3-latin-600-normal.2c49337e.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-500-normal.d9de1144.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-500-normal.02ec8c39.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-cyrillic-500-normal.ae6258df.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-500-normal.00657183.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-greek-500-normal.89c6cba8.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-500-normal.96a101cf.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-vietnamese-500-normal.3bbdce79.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-500-normal.5b6505bb.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-latin-ext-500-normal.b7bedb53.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-500-normal.d0559b71.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-latin-500-normal.af2e87f5.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-500-normal.24c9023a.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-700-normal.1a0d0474.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-700-normal.5f007e01.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/jetbrains-mono-cyrillic-700-normal.ffc7bcaa.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-700-normal.d894fc2f.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/jetbrains-mono-greek-700-normal.c396066f.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-700-normal.01f43261.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/jetbrains-mono-vietnamese-700-normal.a2cb9bd4.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-700-normal.ba52a63c.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/jetbrains-mono-latin-ext-700-normal.3125316a.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-700-normal.7c3a7a66.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/jetbrains-mono-latin-700-normal.9545a3d1.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-700-normal.c9484cde.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--lime:#97db4f;--olive:#40531b;--ink:#0d1821;--slate:#344966;--paper:#f6f5f0;--sheet:#fff;--paper-deep:#ecebe3;--line:#dcdad0;--muted:#58606b;--ink-soft:#c9d3df;--mark:color-mix(in oklab,var(--lime) 55%,transparent);--ok:#3f7a12;--amb:#855600;--ko:#a5281c;--ko-soft:#f8e0dc;--nv:#58606b;--net-human:var(--ink);--net-machine:var(--olive);--net-bg:var(--paper);--sh-info:3px 3px 0 color-mix(in oklab,var(--ink) 16%,transparent);--sh-primary:3px 3px 0 var(--ink);--sh-proof:3px 3px 0 var(--olive);--r-feature:10px;--r-card:7px;--r-control:6px;--r-dense:4px;--font-human:"Sora",ui-sans-serif,system-ui,sans-serif;--font-sans:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;--font-machine:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.on-ink{background:var(--ink);color:var(--paper);--net-human:var(--paper);--net-machine:var(--lime);--net-bg:var(--ink);--muted:var(--ink-soft);--line:color-mix(in oklab,var(--paper) 22%,transparent)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--paper);color:var(--ink);font:400 18px/1.55 var(--font-sans)}body,p{margin:0}a{color:var(--olive);text-underline-offset:.18em}a:hover{color:var(--ink)}.on-ink a{color:var(--paper)}.on-ink a:hover{color:var(--lime)}:focus-visible{outline:2.5px solid var(--ink);outline-offset:2px}.on-ink :focus-visible{outline-color:var(--lime)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.t1,h1{font:600 clamp(40px,6vw,76px)/1.02 var(--font-human);letter-spacing:-.035em}.t1,.t2,h1,h2{text-wrap:balance;margin:0}.t2,h2{font:600 clamp(28px,3.4vw,40px)/1.08 var(--font-human);letter-spacing:-.03em}.t3,h3{font:600 20px/1.25 var(--font-human);letter-spacing:-.015em;margin:0}.mono{font:500 13px/1.5 var(--font-machine)}.mono.lg{font:700 28px/1 var(--font-machine);letter-spacing:-.04em}.muted{color:var(--muted)}.quote{font-style:italic}.hl{background-image:linear-gradient(transparent 58%,var(--mark) 58%,var(--mark) 86%,transparent 86%);color:var(--ink);padding-inline:.08em;margin-inline:-.08em;-webkit-box-decoration-break:clone;box-decoration-break:clone}h2 .hl{background-image:linear-gradient(transparent 66%,var(--mark) 66%,var(--mark) 90%,transparent 90%)}.hl.solid{background:var(--lime);padding:0 .14em .04em;margin:0 -.14em}.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(16px,4vw,32px)}.stack{display:flex;flex-direction:column}.cluster{display:flex;flex-wrap:wrap;align-items:center}.reg{display:grid;grid-template-columns:9rem minmax(0,1fr);grid-column-gap:32px;column-gap:32px;padding-block:72px;border-top:1px solid var(--line)}.reg>.n{font:500 13px/1.6 var(--font-machine);color:var(--muted);padding-top:.55em}.reg.first{border-top:0}@media (max-width:720px){.reg{grid-template-columns:1fr;row-gap:8px;padding-block:48px}}.topbar{position:fixed;top:12px;left:0;right:0;z-index:60;pointer-events:none}.topbar .bar{pointer-events:auto;position:relative;z-index:1;max-width:1160px;width:calc(100% - 24px);margin:0 auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:4px 16px;gap:4px 16px;padding:6px 6px 6px 14px;border-radius:var(--r-feature);color:var(--paper);background:var(--ink);border:1px solid color-mix(in oklab,var(--paper) 14%,transparent);transition:background-color .25s,border-color .25s,box-shadow .25s}.topbar[data-overlay=true][data-scrolled=false][data-open=false] .bar{background:transparent;border-color:transparent}.topbar[data-open=true] .bar,.topbar[data-scrolled=true] .bar{box-shadow:var(--sh-info)}.brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--paper);text-decoration:none;font:700 18px var(--font-human);letter-spacing:-.01em}.brand:hover{color:var(--lime)}.brand img{border-radius:5px;display:block}.brand .mono{color:var(--ink-soft);font-weight:500}.topbar .nav{display:flex;justify-content:center;gap:2px}.topbar .nav a{position:relative;color:var(--paper);text-decoration:none;font-weight:600;min-height:44px;display:inline-flex;align-items:center;padding:0 14px;border-radius:var(--r-control)}.topbar .nav a:hover{background:color-mix(in oklab,var(--paper) 10%,transparent);color:var(--paper)}.topbar .nav a[aria-current=page]:after{content:"";position:absolute;left:14px;right:14px;bottom:7px;height:2px;background:var(--lime)}.topbar .dd{position:relative}.topbar .dd>button{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 14px;border:0;border-radius:var(--r-control);background:transparent;color:var(--paper);font:600 18px var(--font-sans);cursor:pointer}.topbar .dd>button svg{transition:transform .2s}.topbar .dd>button:hover,.topbar .dd[data-open=true]>button{background:color-mix(in oklab,var(--paper) 10%,transparent)}.topbar .dd[data-open=true]>button svg{transform:rotate(180deg)}.topbar .ddmenu{display:none;position:absolute;top:calc(100% + 10px);left:0;min-width:270px;padding:6px;background:var(--ink);border:1px solid color-mix(in oklab,var(--paper) 14%,transparent);border-radius:var(--r-feature);box-shadow:var(--sh-info)}.topbar .dd:focus-within .ddmenu,.topbar .dd:hover .ddmenu,.topbar .dd[data-open=true] .ddmenu{display:block}.topbar .ddmenu a{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;padding:10px 12px;min-height:44px;border-radius:var(--r-control);color:var(--paper);text-decoration:none;font-weight:600}.topbar .ddmenu a small{font:400 14px var(--font-sans);color:var(--ink-soft)}.topbar .ddmenu a:hover{background:color-mix(in oklab,var(--paper) 10%,transparent);color:var(--paper)}.topbar .actions{display:flex;align-items:center;gap:4px}.topbar .alink{color:var(--paper);text-decoration:none;font-weight:600;min-height:44px;display:inline-flex;align-items:center;padding:0 12px;border-radius:var(--r-control)}.topbar .alink:hover{background:color-mix(in oklab,var(--paper) 10%,transparent);color:var(--paper)}.topbar .btn.primary{background:var(--lime);color:var(--ink);border-color:var(--lime);box-shadow:none;min-height:44px}.topbar .btn.primary:hover{background:color-mix(in oklab,var(--lime) 88%,var(--paper));color:var(--ink)}.topbar :focus-visible{outline-color:var(--lime)}.burger{display:none;grid-column:3;justify-self:end;width:44px;height:44px;padding:0;border-radius:var(--r-control);background:transparent;border:1px solid color-mix(in oklab,var(--paper) 28%,transparent);color:var(--paper);cursor:pointer;position:relative}.burger span{position:absolute;left:12px;right:12px;height:2px;background:currentColor;transition:transform .2s,top .2s}.burger span:first-child{top:16px}.burger span:last-child{top:25px}.burger[aria-expanded=true] span:first-child{top:20px;transform:rotate(45deg)}.burger[aria-expanded=true] span:last-child{top:20px;transform:rotate(-45deg)}.menu{pointer-events:auto;position:fixed;inset:0;z-index:0;background:var(--ink);color:var(--paper);flex-direction:column;justify-content:center;gap:28px;padding:96px clamp(20px,6vw,40px) 40px;overflow-y:auto}.menu nav,.menu:not([hidden]){display:flex}.menu nav{flex-direction:column}.menu nav a{color:var(--paper);text-decoration:none;display:flex;align-items:baseline;gap:16px;min-height:56px;padding:6px 0;border-bottom:1px solid color-mix(in oklab,var(--paper) 16%,transparent);font:600 clamp(32px,9vw,52px)/1.1 var(--font-human);letter-spacing:-.03em}.menu nav a .mono{color:var(--lime);font-size:13px;letter-spacing:0}.menu nav a:hover,.menu nav a[aria-current=page]{color:var(--lime)}.menu .btn{align-self:flex-start}@media (max-width:860px){.topbar .actions,.topbar .nav{display:none}.burger{display:block}.topbar .bar{grid-template-columns:1fr auto}}.site-footer{background:var(--ink);color:var(--ink-soft)}.site-footer .chain{font:500 12px/1.6 var(--font-machine);border-top:1px solid var(--lime);padding:14px 0;word-break:break-word}.site-footer .links{display:flex;flex-wrap:wrap;gap:0 4px}.site-footer .links a{color:var(--ink-soft);text-decoration:none;min-height:44px;display:inline-flex;align-items:center;padding:0 12px 0 0;font-weight:600}.site-footer .links a:hover{color:var(--lime)}.site-footer .bio{font-style:italic;padding:4px 0 28px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:1.5px solid var(--ink);border-radius:var(--r-control);font:600 16px var(--font-sans);text-decoration:none;background:var(--sheet);cursor:pointer}.btn,.btn:hover{color:var(--ink)}.btn:hover{background:var(--paper-deep)}.btn:active{transform:translate(2px,2px);box-shadow:none}.btn.primary{background:var(--ink);color:var(--paper);box-shadow:var(--sh-proof)}.btn.primary:hover{background:color-mix(in oklab,var(--ink) 86%,var(--paper));color:var(--paper)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn.danger{color:var(--ko);border-color:var(--ko)}.on-ink .btn{background:transparent;color:var(--paper);border-color:var(--paper)}.on-ink .btn:hover{background:color-mix(in oklab,var(--paper) 12%,transparent);color:var(--paper)}.on-ink .btn.primary{background:var(--lime);color:var(--ink);border-color:var(--lime);box-shadow:3px 3px 0 var(--olive)}.on-ink .btn.primary:hover{background:color-mix(in oklab,var(--lime) 88%,var(--paper));color:var(--ink)}.card{background:var(--sheet);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--sh-info);padding:22px}.glyph{width:14px;height:14px;display:inline-block;vertical-align:-2px;flex:none}.glyph.livre,.glyph.livree{color:var(--ok)}.glyph.a_letude,.glyph.en_cours{color:var(--amb)}.glyph.nouvelle,.glyph.planifiee,.glyph.prochainement,.glyph.refusee{color:var(--nv)}.rule-list{list-style:none;margin:0;padding:0}.rule-list>li{border-top:1px solid var(--line)}.rule-list>li:last-child{border-bottom:1px solid var(--line)}.rrow{display:grid;grid-template-columns:4rem 1.5rem 8rem minmax(0,1fr) 8rem;grid-column-gap:14px;column-gap:14px;align-items:baseline;padding:16px 8px}.rrow:hover{background:var(--paper-deep)}.rrow .t{grid-column:4}.rrow .d{text-align:right;color:var(--muted)}@media (max-width:720px){.rrow{grid-template-columns:3.5rem 1.5rem minmax(0,1fr);grid-template-areas:"n g p" "t t t" "d d d";row-gap:4px}.rrow .n{grid-area:n}.rrow .g{grid-area:g}.rrow .p{grid-area:p}.rrow .t{grid-area:t}.rrow .d{grid-area:d;text-align:left}}.rrow .n,.rrow .p{color:var(--muted)}.board{display:grid;grid-template-columns:17rem minmax(0,1fr);grid-gap:48px;gap:48px;align-items:start}.rail{position:-webkit-sticky;position:sticky;top:24px;display:flex;flex-direction:column;gap:6px}.rail h2{font:500 12px/1 var(--font-machine);color:var(--muted);letter-spacing:.04em;margin:20px 0 6px;text-transform:lowercase}.rail h2:first-child{margin-top:0}.rail button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 10px;border:1.5px solid transparent;border-radius:var(--r-dense);background:transparent;color:var(--ink);font:600 16px var(--font-sans);cursor:pointer;text-align:left}.rail button:hover{background:var(--paper-deep)}.rail button[aria-pressed=true]{border-color:var(--ink);background:var(--sheet)}.rail button .c{margin-left:auto;font:700 14px var(--font-machine)}@media (max-width:900px){.board{grid-template-columns:1fr;gap:24px}.rail{position:static;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:8px;align-items:center}.rail::-webkit-scrollbar{display:none}.rail .meta-block,.rail h2{display:none}.rail button{width:auto;flex:none;border-color:var(--line);white-space:nowrap}}label.f{font-weight:600;display:block;margin-bottom:6px}input,select,textarea{font:400 17px var(--font-sans);width:100%;min-height:44px;padding:10px 12px;border:1.5px solid var(--ink);border-radius:var(--r-dense);background:var(--sheet);color:var(--ink)}.on-ink input{background:var(--ink);color:var(--paper);border-color:var(--paper)}textarea{min-height:110px;resize:vertical}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.notice{padding:12px 14px;border:1.5px solid var(--ink);border-radius:var(--r-dense);background:var(--sheet);font-weight:600}.notice.ok{border-color:var(--ok);color:var(--ok)}.notice.err{background:var(--ko-soft);border-color:var(--ko);color:var(--ko)}.receipt{display:grid;grid-template-columns:7rem minmax(0,1fr);grid-gap:6px 16px;gap:6px 16px;font:500 14px/1.5 var(--font-machine);margin:0}.receipt dt{color:var(--muted)}.receipt dd{margin:0;overflow-wrap:anywhere}.idea{display:grid;grid-template-columns:5rem minmax(0,1fr);grid-gap:20px;gap:20px;padding:22px 0}.idea .count{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.idea .verdict{font:500 13px/1.5 var(--font-machine);text-transform:uppercase;letter-spacing:.03em}.idea .verdict .why{text-transform:none;font-family:var(--font-sans);font-style:italic;font-size:16px;letter-spacing:0}.admin-table{width:100%;border-collapse:collapse;font-size:15px}.admin-table th{background:var(--ink);color:var(--paper);text-align:left;padding:10px;font:500 11px var(--font-machine);text-transform:uppercase;letter-spacing:.05em}.admin-table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}.seg{display:inline-flex;border:1.5px solid var(--ink);border-radius:var(--r-dense);overflow:hidden}.seg button{min-height:44px;padding:0 12px;border:0;background:var(--sheet);font:600 14px var(--font-sans);cursor:pointer;color:var(--ink)}.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.net{display:block;width:100%;height:100%}.net .dh,.net .eh{stroke:var(--net-human);fill:none}.net .da,.net .ea{stroke:var(--net-machine);fill:none}.net .eh{stroke-opacity:.8}.net .ea,.net .eh{stroke-width:1.1}.net .da,.net .dh{stroke-width:.8;stroke-opacity:.55}.net .ch{fill:var(--net-human)}.net .ca{fill:var(--net-machine)}.net .sy{color:var(--net-machine)}.net .labbg,.net .sy .halo{fill:var(--net-bg)}.net .lab{font:500 11px var(--font-machine);fill:var(--net-human)}.net-all,.net-stack,.net-stack>.net{position:absolute;inset:0}.net-tall{display:none}@media (max-width:720px){.net-wide{display:none}.net-tall{display:block}.net .lab,.net .labbg{display:none}}@media (prefers-reduced-motion:no-preference){.net path.draw{stroke-dasharray:1;stroke-dashoffset:1;animation:trace .9s ease-out forwards}.net.m path.draw{animation-delay:.25s}.net path.draw.stub{animation-duration:.45s;animation-delay:.75s}.net.syn>g{opacity:0;animation:syn-in .35s ease-out 1.15s forwards}@keyframes trace{to{stroke-dashoffset:0}}@keyframes syn-in{to{opacity:1}}.net .tip.shake{animation:shake .9s cubic-bezier(.4,0,.2,1) 1.6s 1 both}@keyframes shake{50%{transform:translate(calc(var(--ux) * 2.5px),calc(var(--uy) * 2.5px))}}@media (min-width:721px){.net-stack[data-breathe]>.net.h{animation:drift-h 29s ease-in-out var(--ph,0s) infinite alternate;will-change:transform}.net-stack[data-breathe]>.net.m{animation:drift-m 23s ease-in-out var(--pm,0s) infinite alternate;will-change:transform}.hero:not([data-live]) .net-stack>.net{animation-play-state:paused}}@keyframes drift-h{0%{transform:translate3d(-2px,-1px,0)}to{transform:translate3d(2px,1px,0)}}@keyframes drift-m{0%{transform:translate3d(2px,.8px,0)}to{transform:translate3d(-2px,-.8px,0)}}}