@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-vietnamese-wght-normal.D0rl6rjA.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-ext-wght-normal.D9tNdqV9.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-wght-normal.BhU9QXUp.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Serif Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/noto-serif-cyrillic-ext-wght-normal.DwsuhU2Y.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:Noto Serif Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/noto-serif-cyrillic-wght-normal.CeZyc_3Q.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Noto Serif Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/noto-serif-greek-ext-wght-normal.B0csX6R_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Noto Serif Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/noto-serif-greek-wght-normal.BWSpOBI-.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:Noto Serif Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/noto-serif-math-wght-normal.ChZGBGZa.woff2)format("woff2-variations");unicode-range:U+302-303,U+305,U+307-308,U+310,U+312,U+315,U+31A,U+326-327,U+32C,U+32F-330,U+332-333,U+338,U+33A,U+346,U+34D,U+391-3A1,U+3A3-3A9,U+3B1-3C9,U+3D1,U+3D5-3D6,U+3F0-3F1,U+3F4-3F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE??}@font-face{font-family:Noto Serif Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/noto-serif-vietnamese-wght-normal.G-hP2cUo.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:Noto Serif Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/noto-serif-latin-ext-wght-normal.NX2Olof3.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:Noto Serif Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/noto-serif-latin-wght-normal.DKWgU5qY.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#fcfcfa;--paper-2:#f4f3ee;--surface:#fefefd;--card:#fff;--ink:#0f1a13;--ink-2:#34413a;--text:var(--ink);--text-2:var(--ink-2);--muted:#5c655d;--faint:#687068;--line:#e8e6de;--line-2:#d4d0c4;--border:var(--line);--border-strong:var(--line-2);--brand:#0e7434;--brand-ink:#0b5e2b;--brand-strong:var(--brand-ink);--signal:#8edb4f;--brand-hi:var(--signal);--brand-soft:#e7f1e3;--on-brand:#fff;--night:#0d140f;--night-2:#151e17;--on-night:#e9ede4;--on-night-2:#9aa79d;--up:#0e7434;--down:#c8333b;--warn:#965800;--warn-soft:#f4e9cf;--danger:#b42318;--danger-soft:#f7e2dd;--bg:var(--paper);--surface-2:var(--paper-2);--code-bg:#0d140f;--shadow:0 1px 0 #0f1a130a, 0 18px 40px -28px #0f1a1347;--shadow-lg:0 2px 0 #0f1a130a, 0 40px 80px -40px #0f1a1361;--radius:18px;--radius-sm:11px;--grad:linear-gradient(160deg, #a6ec62 0%, #2fb457 48%, #0e7a33 100%);--ease:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--font-display:"Noto Serif Variable", "Noto Serif SC Variable", "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif;--font-sans:"Space Grotesk Variable", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Noto Sans SC", sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-hero:clamp(44px, 7.4vw, 108px);--fs-h1:clamp(34px, 4.8vw, 66px);--fs-h2:clamp(28px, 3.3vw, 46px);--fs-h3:clamp(19px, 1.5vw, 22px);--space-section:clamp(68px, 8.6vw, 128px);--wrap:1240px;--gutter:clamp(16px, 4vw, 40px);color-scheme:light}:root[data-theme=dark]{--paper:#0b100d;--paper-2:#111813;--surface:#121914;--card:#151d17;--ink:#e9ede4;--ink-2:#bfc8bd;--muted:#8a958c;--faint:#808b82;--line:#222c25;--line-2:#314036;--brand:#45cf7b;--brand-ink:#93e7af;--signal:#a8ee6b;--brand-soft:#45cf7b1c;--on-brand:#04130a;--night:#070a08;--night-2:#0f1511;--up:#45cf7b;--down:#f0646c;--warn:#e6b14d;--warn-soft:#e6b14d1a;--danger:#f0646c;--danger-soft:#f0646c1a;--code-bg:#070a08;--shadow:0 1px 0 #0003, 0 18px 40px -26px #000000b3;--shadow-lg:0 2px 0 #0003, 0 40px 80px -40px #000c;color-scheme:dark}:lang(zh-Hant){--font-display:"Noto Serif Variable", "Noto Serif TC Variable", "Songti TC", "Noto Serif CJK TC", "Source Han Serif TC", "PMingLiU", serif;--font-sans:"Space Grotesk Variable", -apple-system, BlinkMacSystemFont, "PingFang TC", "Microsoft JhengHei", "Noto Sans CJK TC", "Noto Sans TC", sans-serif}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"ss01";text-autospace:normal;margin:0;font-size:16px;line-height:1.7;overflow-x:clip}::selection{background:var(--signal);color:#0f1a13}img,svg{max-width:100%}a{color:inherit;text-decoration:none}h1,h2,h3,h4{letter-spacing:-.01em;text-wrap:balance;margin:0;font-weight:650;line-height:1.25}p{text-wrap:pretty;margin:0}.serif{font-family:var(--font-display)}.wrap{width:100%;max-width:calc(var(--wrap) + var(--gutter) * 2);padding:0 var(--gutter);margin:0 auto}.num,.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.up{color:var(--up)}.down{color:var(--down)}.muted{color:var(--muted)}.kicker,.eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;font-size:12px;font-weight:500;display:inline-flex}.eyebrow:before,.kicker:before{content:"";background:var(--brand);width:7px;height:7px;box-shadow:0 0 0 3px var(--brand-soft);border-radius:50%}.kicker b{color:var(--ink);font-weight:600}.btn{--btn-bg:var(--ink);--btn-fg:var(--paper);background:var(--btn-bg);height:50px;color:var(--btn-fg);font:inherit;letter-spacing:.01em;white-space:nowrap;cursor:pointer;isolation:isolate;transition:transform .4s var(--ease), border-color .3s, color .3s, background .3s;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 24px;font-size:15px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";z-index:-1;border-radius:inherit;background:var(--brand);transition:transform .5s var(--ease);position:absolute;inset:0;transform:translateY(101%)}.btn:hover:after{transform:none}.btn:hover{color:var(--on-brand)}.btn:active{transform:scale(.97)}.btn .arr{transition:transform .4s var(--ease);display:inline-block}.btn:hover .arr{transform:translate(4px)}.btn-primary{--btn-bg:var(--brand);--btn-fg:var(--on-brand)}.btn-primary:after{background:var(--ink)}.btn-primary:hover{color:var(--paper)}.btn-ghost{--btn-bg:transparent;--btn-fg:var(--ink);border-color:var(--line-2)}.btn-ghost:after{background:var(--ink)}.btn-ghost:hover{color:var(--paper);border-color:var(--ink)}.btn-sm{height:40px;padding:0 18px;font-size:14px}.link{color:var(--ink);align-items:center;gap:6px;font-size:14.5px;font-weight:600;display:inline-flex;position:relative}.link:after{content:"";transform-origin:0;height:1px;transition:transform .45s var(--ease);background:currentColor;position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(.35)}.link:hover:after{transform:scaleX(1)}.link .arr{transition:transform .4s var(--ease)}.link:hover .arr{transform:translate(3px)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.pill{border:1px solid var(--line);background:var(--surface);height:26px;color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;padding:0 11px;font-size:12.5px;font-weight:600;transition:border-color .3s,color .3s;display:inline-flex}.pill-brand{background:var(--brand-soft);color:var(--brand);border-color:#0000}a.pill:hover{border-color:var(--ink);color:var(--ink)}.section{padding:var(--space-section) 0}.section-head{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px 48px;margin-bottom:clamp(32px,4vw,56px);display:grid}.section-head h2{font-family:var(--font-display);font-size:var(--fs-h2);letter-spacing:-.02em;margin-top:14px;font-weight:700;line-height:1.15}.section-head p{max-width:420px;color:var(--muted)}.section-head>a{white-space:nowrap;font-size:14.5px;font-weight:600}.page-head{border-bottom:1px solid var(--line);padding:clamp(48px,7vw,96px) 0 clamp(36px,5vw,64px);position:relative;overflow:hidden}.page-head:before{content:"";background:var(--line-2);opacity:.55;pointer-events:none;-webkit-mask-composite:source-in;position:absolute;inset:-10% -20% -10% 35%;-webkit-mask:url(/contours.svg) 50%/cover no-repeat;mask:url(/contours.svg) 50%/cover no-repeat}.page-head:after{content:"";background:linear-gradient(90deg, var(--paper) 30%, transparent 75%);pointer-events:none;position:absolute;inset:0}.page-head>.wrap{z-index:1;position:relative}.page-head h1{max-width:920px;font-family:var(--font-display);font-size:var(--fs-h1);letter-spacing:-.025em;margin:18px 0;font-weight:700;line-height:1.12}.page-head p{max-width:680px;color:var(--ink-2);font-size:17px}.grid{gap:18px;display:grid}.grid-2{grid-template-columns:repeat(auto-fill,minmax(min(100%,460px),1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}.hr{background:var(--line);border:0;height:1px;margin:0}.page-head+.section,.page-head+.wrap.section,.page-head+.wrap>.section:first-child{padding-top:clamp(40px,5vw,72px)}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:15px}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:14px 18px}th{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--surface);font-size:11.5px;font-weight:500}tbody tr{transition:background .2s}tbody tr:hover{background:var(--surface)}tr:last-child td{border-bottom:0}.field{gap:8px;display:grid}.field label{color:var(--ink-2);font-size:13px;font-weight:600}.field small{color:var(--muted);font-size:12.5px;line-height:1.6}input,select{border-radius:var(--radius-sm);border:1px solid var(--line-2);background:var(--surface);width:100%;height:48px;color:var(--ink);font:inherit;padding:0 14px;font-size:15.5px;transition:border-color .2s,box-shadow .2s,background .2s}input:hover,select:hover{border-color:var(--muted)}input:focus,select:focus{border-color:var(--brand);background:var(--card);box-shadow:0 0 0 4px var(--brand-soft);outline:none}input[type=range]{height:28px;box-shadow:none;accent-color:var(--brand);background:0 0;border:0;padding:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:6px}.js [data-reveal]{opacity:0;transition:opacity .9s var(--ease), transform 1s var(--ease);transition-delay:calc(var(--d,0) * 80ms);transform:translateY(22px)}.js [data-reveal].in{opacity:1;transform:none}@view-transition{navigation:auto}::view-transition-old(root){animation:vt-out .28s var(--ease-in-out) both}::view-transition-new(root){animation:vt-in .5s var(--ease) both}@keyframes vt-out{to{opacity:0;transform:translateY(-8px)}}@keyframes vt-in{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.js [data-reveal]{opacity:1;transform:none}}@media (width<=720px){.section-head{grid-template-columns:1fr}}.theme-vt::view-transition-old(root),.theme-vt::view-transition-new(root){mix-blend-mode:normal;animation:none}p a:not([class]){text-underline-offset:3px;text-decoration:underline 1px}.skip{z-index:100;background:var(--ink);color:var(--paper);transition:transform .3s var(--ease);border-radius:10px;padding:10px 16px;font-weight:600;position:fixed;top:12px;left:16px;transform:translateY(-160%)}.skip:focus{transform:none}main:focus{outline:none}
