@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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+1F00-1FFF}@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+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+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: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+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: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+0000-00FF,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 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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+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 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+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 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+0000-00FF,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:Literata;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA8QABIAAAAAHEwAAA6tAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGigbhhYcNAZgP1NUQVRQAIFUEQgKoQiZSQtAAAE2AiQDegQgBYUGB4ItDAcXJBh6GxIXo6KaFTHFXyxwTtQyHvMmk2ivMeQ3K9iCEq/hRix36hcs8AKewsUVPP8t3933Zna2zW5qryqBblsTHlWaR2JUJESoOJA5GPPnH7f1KQMsoo0Jis10VrEBRjQqRuFDsK4KLzHrIpPLaB6qsde3dxtG9VUkCp2JUOTCJVCoqoFcoyozdezK4+sUwc2/bvnT+v9QRzQnIlsnoDr1HVDR6aa+/TZYk9YRDSeI6plG+h9gleBfa6929wOAK7JQ6KoydVVqb+92ci8XuH9fXTbAdEkJbaYurq6yjsEiSkTh6uoilC/6Cmu6rKUNRGlvOscyjIEqXsUd9+tsjwDPviAoSxjC80SVKqJePSEgMWyRXVuPSwO8wxZ1DeCdUSurAe+iQlMHeCzgOaX/hVPqOmACqAQrbseUcZst6IoDV91SPhjb22Y2Y+F3YhJKpTBT7ooHi8nrmMhiw7Va+FZIjjsQeF6/WngDo7EnMHhUhMZnTnpXijJCChU4QDDPmGLG2OxGtDEPpc7ZDeE58WrdWCPsWdjoV76nxYxhejfIGhdEENyRjVyFRJU6pYbXMGfMVBGKsUx1RDBVQYJ1aipiKQcqCWyogpQNGKzcCVWhR7ziTHbNQ6JdoFt/MFWdCj01R5KIsETQ7VSGkwCvWKBUuYQoaY8KpW0jvFDCtzeusz0Cg7A2antYUMoIm3j5t25Uico7qVARpPJgOVdVqFHfiEpLj43oqNFV2WLY40Mizlp+hB4JeqdkAew5+5cdSHiyAe3Bq56i8w0AuNLpbF3//2Pscfh0gDwFQP6UdwDNDCEiBpRT0E+vXG1oxZnB+zMVGhwB+WZYKY5KeVMsQ3mUCqYhjkAGnHx06ttGUESlDAXpZL+CVs0s1WzFmEOBt4+zOjuzNwdzSW7IPXkzX3a2+g/zch5lVXZkTw7k4lyfu/NGvlh9rfbbQROgcOzsv2fhvBdUq1WvUbNW7Tp16wUQKhEp5RSLlUmUS1XwKmWq5KoVqSGk/TcCoAnAIuhA8Bhw5wDaN+IihabSosBqEpEuVsYwI0IBoC82bX06rwp9LOKze9t/2dGc1k9pXzSnburCLf9xPsWqj3w0aLVrTvT30zxIZerk/C+U/GO74zLwsXXi5OnM0p6s2qpBzkBOPwUuBYe7QMwRHlnB+EDltUm0SO90AEJtTMGxt8AgIGy8mrppvP+gg3rBNZDgEMkwoM5U8/AygIeyYpgxXYbEcRPIkIDFL4WDCJO20GB87fN4vdZ5CK8hAI13WHu265DIRpN9Gj0yOixCTSq9AEBaFRUPi8qAtVC4JGq1oGmoI8m7VI4DmcWe3SdaojyBm330oQKJzGKG47Q6Rxh63Acqk3dsjWtaO+9OxUK1akSKYBE2accusOwh7ERADXiq1Vog7MzH9FqSLq4jPW9jezsuNHkbVKfZerkQO4wxvUrPQTEkDi9/0bOJztkq5q+nlRTlEEaDkAjHMWOkUvY8YOa3mFpvmbRsKlgf6d09CnsNbtDDXW3VUgjFxqefMdlccleyOgRyB635GBNLv90w+E5tU11bd51VUlteD/8JhYAo0MgMZrgjdMelKv0cM5wwioqwH8LhbR8v8Bb89Ce4gQCqySvcXlYYIhFwsKxGv86UGjX4RrCWbEs9HhnfS4t+tBzqUL/1KJ+AucIOmgaurOGZXGCLFmQCElJkZWJKz6tRwbzns6G0czo/WbZhC8KTqgUqbgGaWVB4V61O+VwOls10obmVDij0g+3l2TVBdFnjHQK+3MZ2WIMnGpweE/6RFTywZAoS7agpJI33+6SVVDw8YskrJFDgxQ+DEd4n3mJU7kru0nDjim6nSWIlDJlWgnsSR7isJUwpHQ6L0IbCcgP71lISdywkMOfKeYUaHIElU2lBZI1I1U5lL9fQFETSUpvYFcXGUkyRYtC6feBweoaKl0csREpbXA+tmkkFkZw3KJMSRROC3EFNTfkKk7VxgIr7Yb/WM6wx8cprCGifkehAa1dwBJZ2wXfoA6NyxJDWEguKoLKNxWNPE7nS4w15xeHQZCNyLvJoZI38M25w30bHp9j64WNfqJl1Ga+HCOLIWhkN3CC32/EDEQ9mXKaBPo0+K4L/mk5qKWBwiRGApuCQd3+ID3jeqAsYUgeIPDrr4Oo1OBCkv0zorQFEhoAhOPSFYFnlqvsEkVf4soum5yt/qiKjD54i48iAJfycjl9/KbHyQlLfEZnOiwzPRmbp3CZTXFtLQjp1YqrtM1UMEdDwDcEW6z27XQ0tJREIGy5LWXm08x1p7ktDS+kt8QfY+JM0fLvLfu5hwQkY+Itv4JdwbYVPtmxPWkxcHWZamYv4+EaKHGMD/gsp6XPxV48dwg2sx7DTTkeXi7auV1jtj2I8QBjcJ9hifTdrMOES7xDSDD8TbLEyeyH+5aAhTgmZcp//JFlmDIO1cDNymHsbgVZfWPQoTnT8IkN68lAfzIT9Ux7zCXegBXmPotUaAWpIsm+3kiiYmLuda2R4wSS4IN6HJqSFJUHOqFdkcnAhQ6AAlWTeF+X4UiXZPBhdQPWTy8ttI0H3s2fLFGmIHs78eD+043EUrsgakw9ejnJppFGUXeOyr1L7Ew7SWl6sWzxF5Hp/4PffBr5x6KSMdtveeapHAlvuIpLe0Q6QBn+EgVB9l2QfyJedNOcEQtI6uiDCpYMHP5AK+9PeEfMWBQgjIqNcZf8UAkJZUj8Ei8kz9nvYDui1hNszb93fdnNZOVhJs3oMUZmFGEdgI4r0+GyDSWvqCUQi4S7vELITtoFfULda38STSPipcam26JecXXQJzMESmVToMpW2Ejhuvtp+5njxaYImd0AKW8f9EZMXtL0+CIY6g9cY5qQ3U6zPC6Mu/7KTwifs/B+wu1KSbJ/SxnrN7ixp5WnCdOybfC/tzPU+tz64OMthiIslMGhWW6ncjTvmHv399q1vnJCg/wZLvs3wE96xyeH9uw+CN52TblpMpK6AdYIt1vfSHnEPC5phxozD69kWiVa0rfzTaecNr4Dp7BPR1ScBBjcLrvJe9/HC2/g3BzG7vw6yYsSnANNxD0f4C2n1FEZKnDzEyVDzbcYB/CoY+JPhHNsI1LVUbkX3Q874M8rEKcmeoX4Sd5soGy/qzWDDbYqM6pJYFxhRZNcikUG6WNVEaUywT4wHHMPK8VCb8sk2zhlxbmC6eVlHTsJIaZn/woLcZhc0syMuc6AhD1mYU9TkFYCG5Qb6tOAKdsNCZXBEiuP2xN14VKgIwhIg2CPOZlRQAvzgH8Iy5pREbeRUS72QO6LjbuYHbC6e7yxfk+eXN80C6t+UbiYGy8Q/PnXwFLaOWahBJGJqO9oeRDj57fpxhDlX9KW3IsvOc5iYIvCNg4ZcQ7xj6oVZ68MkAX7wJX/+R+pxPB58M2ITkY7UErKFOPcXep9El+KUbY/jS3oXUsW9nzShmS1SXCLj/O+anUxyamqHgMHmN7+4t3PiF+MYZDmbrX8U4/E1lUk73bJ+6uGM4aX3XjS7O5A0K18Cr6JOh723dWlPjZiqmz3rxQe3FEnY8xseVkezGT/iULB7/w8dH25jQ6qpRVjsr/ZNozLCD/RTavj++lkj6+iWY3wLuxsCx2/bmg1u7K7uZO6EUO6h1y9DE8dQ3MDI376F8cZaeMLOgrLRkj68vvfJ2aZ3vZmEjKMnDTQIpRuRVx83ANsOybrFTaUryZYrVlrevNvzqINhNp/V3q3NvaI/kcZ6lt5+2zjZ1HsFT3Dc1pIybkVrfjj70qnZ/NexksYA8mHvZAsz0svTOwyguWNXCWkhaxz2ZuqXmYH3aPrS/bb5Uw+Chbc8l+//K9XQooYlJzY5jb7z+IZo2jQYSR3c1pO2a+i8OJL+af/gwgbuYUELDJ6QvVNdPBMCOHXlgVzHFLm7NyITOdgfKw3BEitlvpqY9LCWWskWzyJurNMzU7pFaCywN0+sxvwbopVRLVp/DKsKCFel56IT6yVDLiuhZL59lihZ4qZ6Yx/EwWpFts5XhAmAb+6VYrsLioeZqYXesTH7jGNM65vvx8oX3D3KQtAQP1fUHpZ9XWedEh/Zkch3FqFUNCFIyEwvKnWfMrDVNJb+y8Z9Zt7YNq7D5QE34VLnyS809Otuv94phGD9B9dpjacopvTJVEaOP/j2AUE9BNGxrfdHvJAlq7KcHGPkXkkBXSDAabhF4EZSdVkoaDXci4OiQ+GXOnAIjmFOfVP2ceXXyj/5rTHzO93Xpjz7YhnyzaSaW+Dms7YLAP/uy//4zXGWhrY0WAEIPlDCJAd9GwdhhzfGFwvlrpHNpV+bKt1ci1JYJZLVG31Zrqy8IeV4oKxUtXAufY+QSmYufpkrerbVm6s7aCVHwyHNXdrvaIczprPEgv0Gvjm9jRFfuOTCgSbfEIwy6SlK5md++p0ZF/6KIGKmKA7XmSqP+pnGqP8zrWbXMwOzPoLbW19U5iZFXkAM3qBXHIWZnmqVUMK0JldeKgGnVGop1ImmoVCjUolE9TQupXXIGVHbSimzMm+lchU0Qjl3vQZBhuC1hKtVygkRFHsNNQ4890E5q/WRCHHigAAo94qiVd3DKTW1nFYNV8tg0AiHVqkDGTNoxLADc1woU6A6Qw0Pcn36oJn9vkfNuBt/JZAxHpyfdyw4ISM1umS4lEq9FuppOTRk1LARU5qd00g5VmpwTOgqVR6lRMhXaKdUUQ1+fEj39BJQKnnttYqJPb5u1EenA8oVVyqbMjr548GetFvoQr9eW/sQBDc9Q+3+BJ55e0EQK4E4CSWSWBJJxUsmuRRJcVCDFvRgBDNYTFQFJ7jB60YP1MpGpbH2cqXnUiDi2PwsqDfQj5E5KMuDynMwr0cWkCPXnkBvm58F8wb6Mw2oFlVORFQrZg2UIDSHeh4OmcN8oOJQq1GK/5uO9kM6faed2P9Zz4kL4EbJ1/+8ett11q/f70gaAGHlRn8q7lbQHU3jSoQjBkXHui3nsl7+juVcqoyAaVAAq94yInotei37QQOEZRr4BQAAAA==) format("woff2"),url(/_astro/literata-cyrillic-ext-400-normal.BuNkiaAX.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:Literata;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/literata-cyrillic-400-normal.CNCMA2GQ.woff2) format("woff2"),url(/_astro/literata-cyrillic-400-normal.BZoHpSD9.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Literata;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/literata-greek-ext-400-normal.wlSmuZ9Y.woff2) format("woff2"),url(/_astro/literata-greek-ext-400-normal.jenpRSxk.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Literata;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/literata-greek-400-normal.DLCf-Z3g.woff2) format("woff2"),url(/_astro/literata-greek-400-normal.CMPfP1Pr.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:Literata;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/literata-vietnamese-400-normal.H9pSqQsV.woff2) format("woff2"),url(/_astro/literata-vietnamese-400-normal.BvhrDK3U.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:Literata;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/literata-latin-ext-400-normal.D5BsCrMl.woff2) format("woff2"),url(/_astro/literata-latin-ext-400-normal.Cs2-p-8d.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:Literata;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/literata-latin-400-normal.CLtNJ872.woff2) format("woff2"),url(/_astro/literata-latin-400-normal.CUhpYSl8.woff) format("woff");unicode-range:U+0000-00FF,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: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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+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: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+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: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+0000-00FF,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{--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--content-width: 72ch;--leading-body: 1.7;--leading-tight: 1.25}body{background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-heading);color:var(--text-hi);line-height:var(--leading-tight);letter-spacing:var(--heading-tracking, -.01em)}::selection{background:var(--sel-bg)}a{color:var(--link);text-decoration-color:color-mix(in srgb,var(--link) 40%,transparent)}a:hover{color:var(--link-hover);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}code:not(pre code){font-family:var(--font-mono);font-size:.875em;background:var(--inline-code-bg);color:var(--inline-code-fg);padding:.15em .4em;border-radius:var(--r-sm)}kbd{font-family:var(--font-mono);font-size:.8em;background:var(--bg-raised);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:var(--r-sm);padding:.1em .45em}.code-block{background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--r-md);overflow:hidden;font-family:var(--font-mono);font-size:.9rem;line-height:1.6}.code-block__bar{display:flex;align-items:center;gap:.75rem;padding:.4rem .9rem;border-bottom:1px solid var(--code-border);color:var(--text-mute);font-size:.75rem}.code-block__lang{color:var(--accent);text-transform:uppercase;letter-spacing:.08em}.code-block__copy{margin-left:auto;color:var(--text-mute)}.code-block__copy:hover{color:var(--text-hi)}.code-block pre{margin:0;padding:1rem 1.1rem;overflow-x:auto}.code-block .line.hl{background:var(--code-line-hl);box-shadow:inset 2px 0 0 var(--accent)}.shiki,.shiki span,.astro-code,.astro-code span{color:var(--shiki-dark);background-color:transparent!important}[data-mode=light] .shiki,[data-mode=light] .shiki span,[data-mode=light] .astro-code,[data-mode=light] .astro-code span{color:var(--shiki-light)}.callout{border:1px solid var(--callout-border);border-inline-start:3px solid var(--callout-accent);background:var(--callout-bg);border-radius:var(--r-md);padding:.9rem 1.1rem;margin-block:1.25rem}.callout__title{font-family:var(--font-heading);font-weight:600;color:var(--callout-accent);display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}.callout--idea{--callout-accent: var(--accent);--callout-bg: var(--accent-tint);--callout-border: color-mix(in srgb, var(--accent) 25%, transparent)}.callout--gotcha{--callout-accent: var(--warn);--callout-bg: var(--warn-tint);--callout-border: color-mix(in srgb, var(--warn) 25%, transparent)}.callout--try{--callout-accent: var(--ok);--callout-bg: var(--ok-tint);--callout-border: color-mix(in srgb, var(--ok) 25%, transparent)}.callout--info{--callout-accent: var(--info);--callout-bg: var(--info-tint);--callout-border: color-mix(in srgb, var(--info) 25%, transparent)}.mermaid-figure{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:1rem;overflow-x:auto}.mermaid-figure figcaption{color:var(--text-mute);font-size:.8rem;font-family:var(--font-mono);margin-top:.5rem}.tag{font-family:var(--font-mono);font-size:.75rem;color:var(--accent-lo);background:var(--accent-tint);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:999px;padding:.1rem .65rem;text-decoration:none}.tag:hover{color:var(--on-accent);background:var(--accent)}.badge--difficulty[data-level=beginner]{color:var(--ok);background:var(--ok-tint)}.badge--difficulty[data-level=intermediate]{color:var(--warn);background:var(--warn-tint)}.badge--difficulty[data-level=advanced]{color:var(--err);background:var(--err-tint)}.lineage{font-family:var(--font-mono);font-size:.8rem;color:var(--text-mute)}.lineage a{color:var(--accent-lo);text-decoration:none}.lineage .sep{color:var(--text-faint);padding-inline:.35rem}.progress-bar{position:fixed;inset:0 0 auto;height:2px;background:var(--accent);transform-origin:left;z-index:100}html[data-theme=void]{--font-body: "Inter", ui-sans-serif, system-ui, sans-serif;--font-heading: "Inter", ui-sans-serif, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;--heading-tracking: -.02em;color-scheme:dark;--bg: #0e1013;--bg-raised: #15181d;--bg-overlay: #1b1f26;--bg-hover: #222731;--border: #262b34;--border-strong: #3a4150;--ring: #f5a524;--text-hi: #e8eaed;--text: #b9bec7;--text-mute: #7d8590;--text-faint: #545b66;--accent: #f5a524;--accent-hi: #ffc251;--accent-lo: #d18a10;--accent-tint: #f5a52414;--on-accent: #1a1204;--accent-2: #4cc38a;--ok: #4cc38a;--ok-tint: #4cc38a1a;--warn: #f5a524;--warn-tint: #f5a5241a;--err: #f2555a;--err-tint: #f2555a1a;--info: #5eb1ef;--info-tint: #5eb1ef1a;--code-bg: #121418;--code-border: #262b34;--code-line-hl: #f5a5240d;--inline-code-bg: #1b1f26;--inline-code-fg: #ffc251;--link: #f5a524;--link-hover: #ffc251;--sel-bg: #f5a52433;--mark-bg: #f5a52426}html[data-theme=void][data-mode=light]{color-scheme:light;--bg: #faf9f7;--bg-raised: #f2f0ec;--bg-overlay: #eae7e1;--bg-hover: #e2ded6;--border: #e0dcd3;--border-strong: #c5bfb2;--ring: #b45309;--text-hi: #1c1917;--text: #3f3a34;--text-mute: #78716c;--text-faint: #a8a29e;--accent: #b45309;--accent-hi: #92400e;--accent-lo: #b45309;--accent-tint: #b4530912;--on-accent: #fff8ed;--accent-2: #15803d;--ok: #15803d;--ok-tint: #15803d14;--warn: #b45309;--warn-tint: #b4530914;--err: #b91c1c;--err-tint: #b91c1c14;--info: #0369a1;--info-tint: #0369a114;--code-bg: #f5f3ef;--code-border: #e0dcd3;--code-line-hl: #b453090d;--inline-code-bg: #eae7e1;--inline-code-fg: #92400e;--link: #b45309;--link-hover: #92400e;--sel-bg: #b4530929;--mark-bg: #f5a52440}html[data-theme=void] article h2:before{content:"❯ ";color:var(--accent);font-family:var(--font-mono);font-weight:400}html[data-theme=manuscript]{--font-body: "Source Sans 3", ui-sans-serif, system-ui, sans-serif;--font-heading: "Newsreader", ui-serif, Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--heading-tracking: 0;color-scheme:light;--bg: #f7f3ec;--bg-raised: #efe9df;--bg-overlay: #e7e0d3;--bg-hover: #ded5c5;--border: #ddd4c4;--border-strong: #bfb39d;--ring: #8a4b2d;--text-hi: #241f19;--text: #3b342b;--text-mute: #6f6558;--text-faint: #9c9184;--accent: #8a4b2d;--accent-hi: #6d3a21;--accent-lo: #8a4b2d;--accent-tint: #8a4b2d12;--on-accent: #fdf6ee;--accent-2: #3f6212;--ok: #3f6212;--ok-tint: #3f621214;--warn: #a16207;--warn-tint: #a1620714;--err: #9f1239;--err-tint: #9f123914;--info: #1e5f74;--info-tint: #1e5f7414;--code-bg: #efe9df;--code-border: #ddd4c4;--code-line-hl: #8a4b2d0f;--inline-code-bg: #e7e0d3;--inline-code-fg: #6d3a21;--link: #8a4b2d;--link-hover: #6d3a21;--sel-bg: #8a4b2d26;--mark-bg: #e9c46a4d}html[data-theme=manuscript][data-mode=dark]{color-scheme:dark;--bg: #211d18;--bg-raised: #292420;--bg-overlay: #322c26;--bg-hover: #3b342c;--border: #3b342c;--border-strong: #54493c;--ring: #d9a05b;--text-hi: #ece4d4;--text: #cfc5b2;--text-mute: #968b78;--text-faint: #6b6254;--accent: #d9a05b;--accent-hi: #e8b878;--accent-lo: #c08843;--accent-tint: #d9a05b17;--on-accent: #241a0d;--accent-2: #a3b565;--ok: #a3b565;--ok-tint: #a3b5651a;--warn: #e0b04f;--warn-tint: #e0b04f1a;--err: #e07a6a;--err-tint: #e07a6a1a;--info: #7fb5c9;--info-tint: #7fb5c91a;--code-bg: #1b1814;--code-border: #3b342c;--code-line-hl: #d9a05b0f;--inline-code-bg: #322c26;--inline-code-fg: #e8b878;--link: #d9a05b;--link-hover: #e8b878;--sel-bg: #d9a05b33;--mark-bg: #d9a05b2b}html[data-theme=manuscript] article h1{font-weight:500}html[data-theme=manuscript] article h2{font-weight:500;border-bottom:1px solid var(--border);padding-bottom:.3em}html[data-theme=nordline]{--font-body: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-heading: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--heading-tracking: -.01em;color-scheme:dark;--bg: #23272f;--bg-raised: #2b303b;--bg-overlay: #333947;--bg-hover: #3b4252;--border: #363c49;--border-strong: #4c566a;--ring: #88c0d0;--text-hi: #eceff4;--text: #c9d1de;--text-mute: #8892a5;--text-faint: #5d677d;--accent: #88c0d0;--accent-hi: #a3d5e2;--accent-lo: #6aa8ba;--accent-tint: #88c0d017;--on-accent: #0d1a1f;--accent-2: #b48ead;--ok: #a3be8c;--ok-tint: #a3be8c1a;--warn: #ebcb8b;--warn-tint: #ebcb8b1a;--err: #bf616a;--err-tint: #bf616a1f;--info: #81a1c1;--info-tint: #81a1c11a;--code-bg: #1e222a;--code-border: #363c49;--code-line-hl: #88c0d00d;--inline-code-bg: #333947;--inline-code-fg: #a3d5e2;--link: #88c0d0;--link-hover: #a3d5e2;--sel-bg: #88c0d02e;--mark-bg: #ebcb8b33}html[data-theme=nordline][data-mode=light]{color-scheme:light;--bg: #f4f6f9;--bg-raised: #eaeef4;--bg-overlay: #dfe5ee;--bg-hover: #d3dbe8;--border: #d8dee9;--border-strong: #aab4c5;--ring: #35708a;--text-hi: #1b2330;--text: #333e51;--text-mute: #64708a;--text-faint: #94a0b8;--accent: #35708a;--accent-hi: #26586e;--accent-lo: #35708a;--accent-tint: #35708a12;--on-accent: #f0f9fc;--accent-2: #7d5a86;--ok: #48731f;--ok-tint: #48731f14;--warn: #92620a;--warn-tint: #92620a14;--err: #a33843;--err-tint: #a3384314;--info: #3f66a0;--info-tint: #3f66a014;--code-bg: #eceff4;--code-border: #d8dee9;--code-line-hl: #35708a0d;--inline-code-bg: #dfe5ee;--inline-code-fg: #26586e;--link: #35708a;--link-hover: #26586e;--sel-bg: #35708a26;--mark-bg: #ebcb8b59}html[data-theme=nordline] article{counter-reset:h2}html[data-theme=nordline] article h2{counter-increment:h2}html[data-theme=nordline] article h2:before{content:counter(h2,decimal-leading-zero) " ";color:var(--accent);font-family:var(--font-mono);font-size:.85em;font-weight:400}html[data-theme=synthline]{--font-body: "Inter", ui-sans-serif, system-ui, sans-serif;--font-heading: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-mono: "Fira Code", ui-monospace, monospace;--heading-tracking: -.015em;color-scheme:dark;--bg: #12111f;--bg-raised: #191829;--bg-overlay: #201f33;--bg-hover: #28273f;--border: #262541;--border-strong: #3d3b63;--ring: #22d3ee;--text-hi: #e6e4f2;--text: #b8b5cf;--text-mute: #7e7b9b;--text-faint: #55536f;--accent: #22d3ee;--accent-hi: #67e8f9;--accent-lo: #0eb2cc;--accent-tint: #22d3ee14;--on-accent: #062a30;--accent-2: #e879f9;--ok: #34d399;--ok-tint: #34d3991a;--warn: #fbbf24;--warn-tint: #fbbf241a;--err: #fb7185;--err-tint: #fb71851a;--info: #818cf8;--info-tint: #818cf81a;--code-bg: #16152a;--code-border: #262541;--code-line-hl: #22d3ee0d;--inline-code-bg: #201f33;--inline-code-fg: #67e8f9;--link: #22d3ee;--link-hover: #67e8f9;--sel-bg: #22d3ee2e;--mark-bg: #e879f926}html[data-theme=synthline][data-mode=light]{color-scheme:light;--bg: #f6f6fb;--bg-raised: #ededf6;--bg-overlay: #e3e3f0;--bg-hover: #d8d8ea;--border: #dedeed;--border-strong: #b6b6d1;--ring: #0891b2;--text-hi: #1d1b2e;--text: #37344e;--text-mute: #6d6a87;--text-faint: #9c99b3;--accent: #0891b2;--accent-hi: #0e7490;--accent-lo: #0891b2;--accent-tint: #0891b212;--on-accent: #f0fcff;--accent-2: #a21caf;--ok: #047857;--ok-tint: #04785714;--warn: #b45309;--warn-tint: #b4530914;--err: #be123c;--err-tint: #be123c14;--info: #4f46e5;--info-tint: #4f46e514;--code-bg: #efeff7;--code-border: #dedeed;--code-line-hl: #0891b20d;--inline-code-bg: #e3e3f0;--inline-code-fg: #0e7490;--link: #0891b2;--link-hover: #0e7490;--sel-bg: #0891b226;--mark-bg: #a21caf1f}html[data-theme=synthline] article h1{background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}html[data-theme=eink]{--font-body: "Literata", "Iowan Old Style", Georgia, ui-serif, serif;--font-heading: "Literata", Georgia, ui-serif, serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--heading-tracking: 0;color-scheme:light;--bg: #fbfaf7;--bg-raised: #f1efe9;--bg-overlay: #e7e4dc;--bg-hover: #dcd8ce;--border: #d4d0c6;--border-strong: #9d988c;--ring: #1a1a1a;--text-hi: #111111;--text: #2a2a28;--text-mute: #5f5d57;--text-faint: #8f8c83;--accent: #1a1a1a;--accent-hi: #000000;--accent-lo: #3a3a38;--accent-tint: #1a1a1a0d;--on-accent: #fbfaf7;--accent-2: #55534d;--ok: #2e2e2c;--ok-tint: #1a1a1a0d;--warn: #3a3a38;--warn-tint: #1a1a1a12;--err: #1a1a1a;--err-tint: #1a1a1a17;--info: #44423d;--info-tint: #1a1a1a0d;--code-bg: #f1efe9;--code-border: #d4d0c6;--code-line-hl: #1a1a1a0a;--inline-code-bg: #e7e4dc;--inline-code-fg: #111111;--link: #1a1a1a;--link-hover: #000000;--sel-bg: #1a1a1a22;--mark-bg: #1a1a1a1a}html[data-theme=eink][data-mode=dark]{color-scheme:dark;--bg: #101010;--bg-raised: #191919;--bg-overlay: #222222;--bg-hover: #2b2b2b;--border: #2e2e2e;--border-strong: #565656;--ring: #e8e8e8;--text-hi: #dcdcdc;--text: #b8b8b8;--text-mute: #8a8a8a;--text-faint: #646464;--accent: #cfcfcf;--accent-hi: #e6e6e6;--accent-lo: #a8a8a8;--accent-tint: #ffffff12;--on-accent: #101010;--accent-2: #9a9a9a;--ok: #d4d4d4;--ok-tint: #ffffff10;--warn: #c4c4c4;--warn-tint: #ffffff14;--err: #ededed;--err-tint: #ffffff17;--info: #b8b8b8;--info-tint: #ffffff10;--code-bg: #161616;--code-border: #2e2e2e;--code-line-hl: #ffffff0a;--inline-code-bg: #222222;--inline-code-fg: #f2f2f2;--link: #cfcfcf;--link-hover: #e6e6e6;--sel-bg: #ffffff2b;--mark-bg: #ffffff22}html[data-theme=eink] .prose p a,html[data-theme=eink] .prose li a,html[data-theme=eink] .fb-static a,html[data-theme=eink] .fb-thanks a{text-decoration-line:underline;text-underline-offset:3px}html[data-theme=eink] article h2{border-bottom:1px solid var(--border);padding-bottom:.3em;font-weight:600}html[data-theme=eink] *{transition:none!important;animation:none!important}*{box-sizing:border-box}html,body{margin:0}.site-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:1.2rem;padding:.7rem 1.4rem;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.brand{font-family:var(--font-mono);font-size:.95rem;color:var(--text-hi);text-decoration:none}.brand b{color:var(--accent)}.site-nav{display:flex;gap:.9rem;flex-wrap:wrap}.site-nav a{font-family:var(--font-mono);font-size:.82rem;color:var(--text-mute);text-decoration:none}.site-nav a:hover{color:var(--accent)}.search-link{margin-left:auto;font-family:var(--font-mono);font-size:.82rem;color:var(--text);text-decoration:none;border:1px solid var(--border);border-radius:var(--r-md);padding:.25rem .7rem}.search-link:hover{border-color:var(--accent);color:var(--accent)}.theme-ctl{display:flex;gap:.4rem;align-items:center}.theme-ctl select,.theme-ctl button{font:500 .75rem var(--font-mono);color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-sm);padding:.25rem .4rem;cursor:pointer}.site-main{max-width:1080px;margin:0 auto;padding:2rem 1.2rem 4rem}kbd{font:600 .95em var(--font-mono);line-height:1;display:inline-flex;align-items:center;gap:.12em;padding:0;color:var(--text-mute);background:none;border:0;vertical-align:middle}.kbd-ic{width:.85em;height:.85em;flex-shrink:0}.site-footer{display:flex;gap:1.2rem;flex-wrap:wrap;max-width:1080px;margin:0 auto;padding:1.4rem 1.2rem 2.4rem;border-top:1px solid var(--border);font-family:var(--font-mono);font-size:.75rem;color:var(--text-faint)}.site-footer a{color:var(--text-mute);text-decoration:none}.site-footer a:hover{color:var(--accent)}.prose{max-width:72ch}.prose img{max-width:100%;height:auto;border-radius:var(--r-md)}.prose pre{background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--r-md);padding:1rem 1.1rem;overflow-x:auto;font-size:.87rem;line-height:1.6}.prose table{border-collapse:collapse;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);padding:.45rem .75rem}.prose th{background:var(--bg-raised);color:var(--text-hi)}.prose blockquote{margin:1.2rem 0;padding:.2rem 1.1rem;border-inline-start:3px solid var(--accent);background:var(--accent-tint);border-radius:var(--r-sm)}.page-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:.4rem 0 1.6rem}.page-meta .rt{font:400 .78rem var(--font-mono);color:var(--text-mute)}.entry-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.entry{display:flex;flex-direction:column;gap:.25rem;padding:1rem .4rem;border-bottom:1px solid var(--border)}.entry:hover{background:var(--bg-raised)}.entry .e-title{font:600 1.05rem var(--font-heading);color:var(--text-hi);text-decoration:none}.entry .e-title:hover{color:var(--accent)}.entry .e-meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font:400 .72rem var(--font-mono);color:var(--text-mute)}.entry .e-desc{font-size:.88rem;color:var(--text-mute);margin:0}.chapter-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:2.4rem}@media(max-width:900px){.chapter-grid{grid-template-columns:minmax(0,1fr)}}.chapter-nav{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:2.6rem;padding-top:1.4rem;border-top:1px solid var(--border)}.chapter-nav a{display:flex;flex-direction:column;gap:.3rem;font:600 1rem var(--font-heading);color:var(--text-hi);text-decoration:none;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:.85rem 1rem;line-height:1.4}.chapter-nav a:hover{border-color:var(--accent);color:var(--accent)}.chapter-nav a:last-child:not(:first-child){text-align:right;align-items:flex-end}.chapter-nav a small{font:500 .72rem var(--font-mono);color:var(--text-mute)}@media(max-width:720px){.chapter-nav{grid-template-columns:1fr}.chapter-nav a:last-child:not(:first-child){text-align:left;align-items:flex-start}}.hub-outcomes{padding-left:1.2rem}.hub-outcomes li{margin:.25rem 0}.chapter-list{list-style:none;margin:1rem 0;padding:0}.chapter-list li{display:flex;align-items:center;gap:.7rem;padding:.45rem .4rem;border-radius:var(--r-sm)}.chapter-list li:hover{background:var(--bg-raised)}.chapter-list .n{font:600 .78rem var(--font-mono);color:var(--accent-lo);min-width:1.6em}.chapter-list a{color:var(--text-hi);text-decoration:none;font-weight:500}.chapter-list a:hover{color:var(--accent)}.chapter-list .time{margin-left:auto;font:500 .75rem var(--font-mono);color:var(--text-mute)}.chapter-list li.read .n{color:var(--ok)}.tag-cloud{display:flex;flex-wrap:wrap;gap:.5rem}.search-wrap{max-width:720px}.site-logo{display:flex;align-items:center;gap:.55rem;color:var(--text-hi);text-decoration:none;margin-right:.5rem}.site-logo-svg{color:var(--accent);flex-shrink:0}.site-logo-text{font:700 1.08rem var(--font-mono);letter-spacing:-.01em}.lg-ai{color:var(--accent)}.site-header,.site-footer,.lineage,.meta-block,.chapter-nav small,.toc-rail,.palette-overlay{user-select:none}.search-trigger{margin-left:auto;display:flex;align-items:center;gap:.5rem;font:500 .8rem var(--font-mono);color:var(--text-mute);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:.3rem .7rem;cursor:pointer}.search-trigger:hover{border-color:var(--accent);color:var(--text-hi)}.st-icon{color:var(--accent)}.st-kbd{color:var(--text-mute)}.palette-overlay{position:fixed;inset:0;z-index:100;background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:12vh 1rem 0}.palette{width:min(640px,100%);background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:0 18px 60px color-mix(in srgb,#000 45%,transparent);overflow:hidden;display:flex;flex-direction:column;max-height:65vh}.palette-input-row{display:flex;align-items:center;gap:.6rem;padding:.8rem 1rem;border-bottom:1px solid var(--border)}.pi-prompt{color:var(--accent);font-family:var(--font-mono)}#palette-input{flex:1;background:none;border:0;outline:none;color:var(--text-hi);font:400 .95rem var(--font-mono)}.pi-esc{font-size:.7em;color:var(--text-mute);background:var(--bg)}.palette-close{display:none;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin:-.5rem -.5rem -.5rem 0;background:none;border:0;border-radius:var(--r-md);color:var(--text-mute);font-size:1rem;cursor:pointer}.palette-close:hover,.palette-close:active{color:var(--text-hi);background:var(--accent-tint)}.palette-results{overflow-y:auto;padding:.4rem}.pr-hint{padding:1.1rem;font:400 .8rem var(--font-mono);color:var(--text-mute)}.pr-hint b{color:var(--accent)}.pr-item{display:flex;flex-direction:column;gap:.1rem;padding:.55rem .7rem;border-radius:var(--r-md);text-decoration:none}.pr-item.active,.pr-item:hover{background:var(--accent-tint)}.pr-item.active{outline:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}.pr-title{font:600 .9rem var(--font-body);color:var(--text-hi)}.pr-lineage{font:400 .68rem var(--font-mono);color:var(--accent-lo)}.pr-snip{font-size:.76rem;color:var(--text-mute)}.pr-snip mark{background:var(--sel-bg);color:var(--text-hi);border-radius:2px}.palette-foot{display:flex;gap:1rem;align-items:center;padding:.5rem 1rem;border-top:1px solid var(--border);font:400 .68rem var(--font-mono);color:var(--text-faint)}.palette-foot kbd{color:var(--text-mute)}.palette-foot a{margin-left:auto;color:var(--text-mute);text-decoration:none}.palette-foot a:hover{color:var(--accent)}.meta-block{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);padding:.7rem .9rem;margin:.6rem 0 1.6rem;display:flex;flex-direction:column;gap:.55rem}.meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.meta-row .rt{font:400 .75rem var(--font-mono);color:var(--text-mute)}.meta-tags{row-gap:.4rem}.meta-toggle{margin-left:auto;font:500 .72rem var(--font-mono);color:var(--text-mute);background:none;border:1px solid var(--border);border-radius:var(--r-sm);padding:.15rem .5rem;cursor:pointer}.meta-toggle:hover{color:var(--accent);border-color:var(--accent)}.meta-details dl{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;margin:0;font-size:.8rem}.meta-details dt{font-family:var(--font-mono);color:var(--text-faint)}.meta-details dd{margin:0;color:var(--text-mute)}.page-grid{display:block}.page-grid[data-has-toc=true]{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:2.5rem}.toc-rail{align-self:stretch}.toc-rail{display:none}.toc-sticky{position:sticky;top:4.2rem;max-height:calc(100vh - 6rem);overflow-y:auto;padding:.4rem 0 .4rem 1rem;border-inline-start:1px solid var(--border)}.toc-title{font:600 .78rem var(--font-mono);color:var(--text-mute);margin-bottom:.6rem}.toc-sticky ul{list-style:none;margin:0;padding:0}.toc-sticky li{margin:.32rem 0;line-height:1.35}.toc-sticky li.d3{padding-left:.9rem}.toc-sticky a{font-size:.78rem;color:var(--text-mute);text-decoration:none;display:block}.toc-sticky a:hover{color:var(--text-hi)}.toc-sticky a.active{color:var(--accent)}.toc-mobile{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);margin-bottom:1.4rem;overflow:hidden}.toc-mobile summary{display:flex;align-items:center;gap:.55rem;list-style:none;font:600 .82rem var(--font-mono);color:var(--text-mute);cursor:pointer;padding:.75rem .95rem;min-height:44px}.toc-mobile summary::-webkit-details-marker{display:none}.toc-mobile summary svg:first-child{color:var(--accent)}.tm-count{font-size:.68rem;color:var(--accent-lo);background:var(--accent-tint);border-radius:999px;padding:.05rem .5rem}.tm-chev{margin-left:auto;transition:transform .2s ease}.toc-mobile[open] .tm-chev{transform:rotate(180deg)}.toc-mobile[open] summary{border-bottom:1px solid var(--border)}.toc-mobile ul{list-style:none;margin:0;padding:.45rem .6rem .6rem}.toc-mobile li{margin:0}.toc-mobile li.d3 a{padding-left:2.1rem;font-size:.8rem}.toc-mobile a{display:flex;align-items:center;min-height:40px;padding:.35rem .6rem .35rem 1.1rem;font-size:.86rem;line-height:1.4;color:var(--text-mute);text-decoration:none;border-inline-start:2px solid var(--border);border-radius:0 var(--r-sm) var(--r-sm) 0}.toc-mobile a:hover,.toc-mobile a:active{color:var(--text-hi);background:var(--accent-tint);border-inline-start-color:var(--accent)}@media(prefers-reduced-motion:reduce){.tm-chev{transition:none}}@media(min-width:1100px){.toc-rail{display:block}.toc-mobile{display:none}}@media(max-width:1099px){.page-grid[data-has-toc=true]{display:block}}@media(max-width:720px){.site-nav,.st-label,.st-kbd{display:none}}.ebtn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--text-mute);background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;padding:0}.ebtn:hover{color:var(--text-hi);border-color:var(--accent)}.ebtn.ok{color:var(--ok);border-color:var(--ok)}.chip{font:600 .7rem var(--font-mono);color:var(--accent);background:var(--accent-tint);border-radius:4px;padding:.15rem .5rem}.code-holder{position:relative;margin:1.2rem 0}.code-holder pre{margin:0}.code-tools{position:absolute;top:.5rem;right:.5rem;display:flex;align-items:center;gap:.35rem}.mermaid-figure{position:relative}.emodal-overlay{position:fixed;inset:0;z-index:110;display:none;background:color-mix(in srgb,var(--bg) 60%,transparent);backdrop-filter:blur(5px);align-items:center;justify-content:center;padding:3vh 2vw}.emodal-overlay.open{display:flex}.emodal{display:flex;flex-direction:column;width:100%;height:100%;max-width:1200px;background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:0 24px 80px color-mix(in srgb,#000 50%,transparent);overflow:hidden}.code-modal .emodal{max-height:88vh}.emodal-bar{display:flex;align-items:center;gap:.6rem;padding:.55rem .9rem;border-bottom:1px solid var(--border);background:var(--bg-overlay)}.emodal-bar .ebtn:last-child{margin-left:.2rem}.emodal-bar .ebtn:first-of-type{margin-left:auto}.emodal-meta{font:400 .7rem var(--font-mono);color:var(--text-faint)}.emodal-body{flex:1;min-height:0;display:flex}.code-editor{flex:1;display:flex;min-height:0;font-size:.85rem;line-height:1.65}.ce-gutter{margin:0;padding:1rem .4rem 1rem 1rem;text-align:right;color:var(--text-faint);background:var(--bg-overlay);border-right:1px solid var(--border);font-family:var(--font-mono);user-select:none;overflow:hidden;min-width:3.2em}.ce-code{flex:1;margin:0!important;padding:1rem 1.2rem!important;overflow:auto!important;border:0!important;border-radius:0!important;background:var(--code-bg)!important}.mm-modal .emodal{max-width:none}.mm-stage{flex:1;overflow:hidden;position:relative;background:radial-gradient(circle,var(--border) 1px,transparent 1px) 0 0 / 22px 22px,var(--bg);cursor:grab;touch-action:none}.mm-stage.panning,.mm-stage.space-pan{cursor:grabbing}.mm-inner{position:absolute;top:0;left:0;transform-origin:0 0;padding:2rem}.mm-inner svg{max-width:none!important;height:auto}.mm-hint{display:none}@media(min-width:800px){.mm-hint{display:inline}}.nav-burger{display:none}@media(max-width:720px){.site-header{gap:.7rem;padding:.6rem .9rem}.nav-burger{display:inline-flex}.site-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:.4rem 0}.site-nav a{padding:.65rem 1.2rem;font-size:.95rem}.site-nav a:hover{background:var(--bg-hover)}.site-header.nav-open .site-nav{display:flex}.theme-ctl select{max-width:92px}.site-main{padding:1.2rem 1rem 3rem}h1{font-size:1.6rem}}.palette-overlay[hidden],.kbd-overlay[hidden],.hub-progress[hidden]{display:none!important}html{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--border-strong) 70%,transparent) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--border-strong) 55%,transparent);border-radius:8px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--border-strong);background-clip:content-box}.header-actions{margin-left:auto;display:flex;align-items:center;gap:.45rem}.ctl{height:32px;display:inline-flex;align-items:center;gap:.45rem;font:500 .78rem var(--font-mono);color:var(--text-mute);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:0 .65rem;cursor:pointer}.ctl:hover{color:var(--text-hi);border-color:var(--border-strong)}.ctl-icon{width:32px;padding:0;justify-content:center}select.ctl{appearance:none;-webkit-appearance:none;padding-right:1.5rem;background-image:linear-gradient(45deg,transparent 50%,var(--text-mute) 50%),linear-gradient(135deg,var(--text-mute) 50%,transparent 50%);background-position:calc(100% - .85rem) 55%,calc(100% - .55rem) 55%;background-size:5px 5px;background-repeat:no-repeat}.search-trigger{margin-left:0}.search-trigger svg{color:var(--accent)}.badge{display:inline-flex;align-items:center;font:600 .7rem var(--font-mono);letter-spacing:.04em;border-radius:999px;padding:.18rem .7rem;line-height:1.4;border:1px solid transparent}.badge--difficulty[data-level=beginner]{color:var(--ok);background:var(--ok-tint);border-color:color-mix(in srgb,var(--ok) 25%,transparent)}.badge--difficulty[data-level=intermediate]{color:var(--warn);background:var(--warn-tint);border-color:color-mix(in srgb,var(--warn) 25%,transparent)}.badge--difficulty[data-level=advanced]{color:var(--err);background:var(--err-tint);border-color:color-mix(in srgb,var(--err) 25%,transparent)}.meta-block{border:0;background:none;padding:0;margin:.5rem 0 1.7rem;gap:.6rem}.meta-sep{color:var(--text-faint)}.meta-path{margin-left:auto;font:400 .72rem var(--font-mono);color:var(--text-faint)}@media(max-width:720px){.meta-path{margin-left:0;width:100%}}@media(max-width:720px){.site-header{gap:.6rem}.header-actions{gap:.4rem}.st-label,.st-kbd{display:none}.search-trigger{width:32px;height:32px;padding:0;justify-content:center}.site-nav{padding-bottom:.5rem}.site-nav select.ctl{margin:.4rem 1.2rem .2rem;width:calc(100% - 2.4rem)}}@media(max-width:720px){.palette-overlay{padding:0;align-items:stretch;justify-content:stretch}.palette{width:100%;max-width:none;height:100dvh;max-height:none;border:0;border-radius:0}.palette-results{order:1;flex:1;display:flex;flex-direction:column-reverse;overflow-y:auto}.palette-input-row{order:2;border-bottom:0;border-top:1px solid var(--border);padding-bottom:max(.8rem,env(safe-area-inset-bottom));background:var(--bg-overlay)}.palette-foot,.pi-esc{display:none}.palette-close{display:flex}}.meta-path{color:var(--text-mute)}@media(min-width:721px){.nav-burger{display:none}}.hero{padding:1.5rem 0 2.2rem;max-width:62ch}.hero-prompt{font:500 .85rem var(--font-mono);color:var(--text-mute);margin:0 0 .6rem}.hero-prompt:before{content:""}.hp-flag{color:var(--accent)}.hero h1{font-size:2.3rem;margin:0 0 .7rem}.hero-sub{color:var(--text-mute);font-size:1.02rem;margin:0 0 1.2rem}.hero-stats{display:flex;flex-wrap:wrap;gap:1.4rem;font:400 .8rem var(--font-mono);color:var(--text-mute);margin-bottom:1.4rem}.hero-stats b{color:var(--accent);font-weight:700}.hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}.btn-primary{display:inline-flex;align-items:center;font:600 .9rem var(--font-body);color:var(--on-accent);background:var(--accent);border-radius:var(--r-md);padding:.55rem 1.1rem;text-decoration:none}.btn-primary:hover{background:var(--accent-hi);color:var(--on-accent)}.btn-ghost{display:inline-flex;align-items:center;gap:.4rem;font:500 .82rem var(--font-mono);color:var(--text-mute);background:none;border:1px solid var(--border);border-radius:var(--r-md);padding:.5rem .9rem;cursor:pointer}.btn-ghost:hover{color:var(--text-hi);border-color:var(--border-strong)}.btn-ghost kbd{color:var(--accent)}.sec-sub{color:var(--text-mute);font-size:.9rem;margin:-.4rem 0 1rem}.path-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.7rem}.path-card{display:flex;flex-direction:column;gap:.3rem;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:.85rem 1rem;text-decoration:none}.path-card:hover{border-color:var(--accent)}.pc-name{font:600 .9rem var(--font-mono);color:var(--text-hi)}.pc-count{font:500 .7rem var(--font-mono);color:var(--accent-lo);margin-left:.3rem}.pc-desc{font-size:.8rem;color:var(--text-mute);line-height:1.5}.start-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.7rem}.start-card{display:flex;flex-direction:column;gap:.45rem;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:1rem 1.1rem;text-decoration:none}.start-card:hover{border-color:var(--accent)}.sc-title{font:600 1rem var(--font-heading);color:var(--text-hi);line-height:1.35}.sc-desc{font-size:.8rem;color:var(--text-mute);line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sc-foot{margin-top:auto;padding-top:.5rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem}.sc-meta{font:400 .72rem var(--font-mono);color:var(--text-mute)}.sc-go{font:600 .75rem var(--font-mono);color:var(--accent)}.start-card:hover .sc-go{color:var(--accent-hi)}@media(max-width:720px){.hero h1{font-size:1.7rem}.hero-stats{gap:.9rem}}.entry{gap:.35rem}.e-eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font:400 .72rem var(--font-mono);color:var(--text-mute)}.e-eyebrow .badge{font-size:.64rem;padding:.12rem .55rem}.e-section{color:var(--accent-lo)}.e-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}html{scroll-behavior:smooth;scroll-padding-top:4.5rem}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.code-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.4rem .55rem .4rem .9rem;background:var(--bg-overlay);border:1px solid var(--code-border);border-bottom:0;border-radius:var(--r-md) var(--r-md) 0 0;user-select:none}.code-head .chip{line-height:1.6}.code-actions{display:flex;align-items:center;gap:.3rem}.code-actions .ebtn{width:26px;height:26px;background:transparent;border-color:transparent}.code-actions .ebtn:hover{background:var(--bg-hover);border-color:var(--border)}.code-holder pre.astro-code{border-top-left-radius:0!important;border-top-right-radius:0!important}.entry{padding:1.25rem .4rem;gap:.45rem}.entry .e-title{font-size:1.15rem;line-height:1.35}.entry .e-desc{max-width:68ch}.emodal-body,.code-editor{min-width:0}.ce-code{min-width:0;max-width:100%}.more-sections{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.8rem}.ms-label{font:400 .78rem var(--font-mono);color:var(--text-faint);margin-right:.2rem}.ms-chip{font:500 .76rem var(--font-mono);color:var(--text-mute);background:var(--bg-raised);border:1px solid var(--border);border-radius:999px;padding:.2rem .7rem;text-decoration:none}.ms-chip b{color:var(--accent-lo);font-weight:600;margin-left:.15rem}.ms-chip:hover{color:var(--text-hi);border-color:var(--accent)}.path-card--more{border-style:dashed}.path-card--more .pc-name{color:var(--text-mute)}.path-card--more:hover .pc-name{color:var(--accent)}.site-main>section:not(:first-child),.site-main>h2{margin-top:3rem}.site-main>h2{margin-bottom:1.2rem}.site-main section>h2{margin:0 0 1rem}.site-main .sec-sub{margin:-.6rem 0 1.2rem}.site-main>.entry-list{margin-bottom:.5rem}.btn-ghost{text-decoration:none}.btn-primary kbd{color:var(--on-accent)}.badge--fresh[data-fresh=new]{color:var(--ok);background:var(--ok-tint);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}.badge--fresh[data-fresh=recent]{color:var(--info);background:var(--info-tint);border-color:color-mix(in srgb,var(--info) 30%,transparent)}.pr-fresh{font:600 .62rem var(--font-mono);border-radius:999px;padding:.08rem .5rem;margin-left:.4rem}.pr-fresh[data-fresh=new]{color:var(--ok);background:var(--ok-tint)}.pr-fresh[data-fresh=recent]{color:var(--info);background:var(--info-tint)}.code-modal .emodal{height:fit-content;max-height:86vh;width:min(1100px,96vw)}.code-modal .emodal-body{flex:0 1 auto;min-height:0}.code-editor{min-height:0}.ce-gutter,.ce-code{max-height:calc(86vh - 48px)}.theme-pop-wrap{position:relative}.theme-pop{position:absolute;right:0;top:calc(100% + 6px);min-width:190px;z-index:60;background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:0 12px 40px color-mix(in srgb,#000 35%,transparent);padding:.35rem}.tp-row{display:flex;align-items:center;gap:.55rem;font:500 .8rem var(--font-mono);color:var(--text);padding:.42rem .55rem;border-radius:var(--r-sm);cursor:pointer}.tp-row:hover{background:var(--bg-hover)}.tp-row.active{background:var(--accent-tint);color:var(--text-hi)}.tp-row kbd{margin-left:auto;color:var(--text-mute)}.tp-dots{display:flex;gap:3px}.tp-dots i{width:10px;height:10px;border-radius:50%;border:1px solid var(--border-strong)}.tp-half{background:linear-gradient(90deg,#111 50%,#eee 50%)}.tp-divider{height:1px;background:var(--border);margin:.3rem .2rem}.consent{position:fixed;bottom:.8rem;left:50%;transform:translate(-50%);z-index:90;display:flex;align-items:center;gap:.7rem;max-width:min(560px,94vw);background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:0 10px 34px color-mix(in srgb,#000 35%,transparent);padding:.7rem 1rem;font-size:.82rem;color:var(--text-mute)}.bm-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--text-mute);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer}.bm-btn:hover,.bm-btn.saved{color:var(--accent);border-color:var(--accent)}.bm-btn.saved svg{fill:var(--accent-tint)}.bm-empty{color:var(--text-faint);font-size:.85rem;padding:.6rem .4rem}.bm-remove{font:500 .7rem var(--font-mono);color:var(--err);background:none;border:0;cursor:pointer;padding:0}.continue-banner{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin:0 0 1rem;background:var(--accent-tint);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:var(--r-md);padding:.7rem 1rem;text-decoration:none}.cb-label{font:600 .68rem var(--font-mono);text-transform:lowercase;color:var(--accent);flex-shrink:0}.cb-title{font:600 .92rem var(--font-body);color:var(--text-hi);flex:1 1 120px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cb-go{font:600 .8rem var(--font-mono);color:var(--accent);flex-shrink:0}@media(max-width:720px){.continue-banner{flex-direction:column;align-items:flex-start;gap:.3rem}.cb-title{flex-basis:auto;width:100%;white-space:normal;overflow:visible;text-overflow:clip}.cb-go{align-self:flex-end}}.related{margin-top:2.6rem;padding-top:1.4rem;border-top:1px solid var(--border)}.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.7rem}.rel-card{display:flex;flex-direction:column;gap:.25rem;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:.8rem .95rem;text-decoration:none}.rel-card:hover{border-color:var(--accent)}.rel-section{font:500 .68rem var(--font-mono);color:var(--accent-lo)}.rel-title{font:600 .9rem var(--font-body);color:var(--text-hi);line-height:1.4}.rel-meta{font:400 .7rem var(--font-mono);color:var(--text-faint);margin-top:auto;padding-top:.3rem}.rv-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.rv-head h2{margin-bottom:.4rem}.hub-progress{display:flex;align-items:center;gap:.8rem;margin:.4rem 0 1rem;font:500 .8rem var(--font-mono);color:var(--text-mute)}.hp-bar{flex:1 1 8rem;max-width:16rem;height:6px;background:var(--bg-raised);border-radius:3px;overflow:hidden}.hp-bar i{display:block;height:100%;width:0;background:var(--accent);border-radius:3px;transition:width .4s ease}.hub-progress.done .hp-bar i{background:var(--ok)}.hp-label{white-space:nowrap}.hp-resume{color:var(--accent);text-decoration:none;font-weight:600;white-space:nowrap}.hp-resume:hover{text-decoration:underline}.chapter-list li.read a{color:var(--text-mute)}.chapter-list li.read a:after{content:" ✓";color:var(--ok)}.course-progress{font:600 .75rem var(--font-mono);color:var(--ok)}.newsletter{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem;margin:2.5rem 0 0;padding:1.1rem 1.3rem;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised)}.nl-copy{flex:1 1 16rem}.nl-title{margin:0;font:700 .95rem var(--font-mono);color:var(--text-hi)}.nl-sub{margin:.25rem 0 0;font-size:.85rem;color:var(--text-mute)}.nl-form{display:flex;gap:.5rem;flex:1 1 16rem}.nl-form input{flex:1;min-width:0;font:500 .85rem var(--font-mono);color:var(--text-hi);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm);padding:.45rem .7rem}.nl-form input:focus{outline:none;border-color:var(--accent)}.newsletter--compact{margin-top:3rem}.feedback{margin:2.5rem 0 0;padding-top:1.2rem;border-top:1px dashed var(--border);font-size:.85rem}.fb-vote{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.fb-q{font:600 .82rem var(--font-mono);color:var(--text-mute)}.fb-report-toggle{margin-left:auto;background:none;border:none;cursor:pointer;font:500 .78rem var(--font-mono);color:var(--text-faint);text-decoration:underline;text-underline-offset:3px;padding:0}.fb-report-toggle:hover{color:var(--accent)}.fb-form{margin-top:.8rem}.fb-form textarea{width:100%;resize:vertical;font:400 .85rem var(--font-mono);color:var(--text-hi);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-sm);padding:.6rem .7rem}.fb-form textarea:focus{outline:none;border-color:var(--accent)}.fb-form-row{display:flex;align-items:center;gap:.6rem;margin-top:.5rem}.fb-note{font-size:.75rem;color:var(--text-faint)}.fb-thanks,.fb-static{color:var(--text-mute);margin:0}.fb-thanks a,.fb-static a{color:var(--accent)}.track-list{display:flex;flex-direction:column;gap:2.2rem;margin-top:2rem}.track{border:1px solid var(--border);border-radius:var(--r-md);padding:1.2rem 1.4rem;background:var(--bg-raised)}.track-head h2{margin:0}.track-blurb{margin:.3rem 0 0;color:var(--text-mute);font-size:.88rem}.track-steps{list-style:none;margin:1rem 0 0;padding:0}.track-step{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap;padding:.5rem .2rem;border-top:1px dashed var(--border)}.ts-n{font:600 .78rem var(--font-mono);color:var(--accent-lo)}.ts-title{color:var(--text-hi);text-decoration:none;font-weight:500}.ts-title:hover{color:var(--accent)}.ts-meta{margin-left:auto;display:flex;align-items:center;gap:.5rem;font:500 .75rem var(--font-mono);color:var(--text-mute);white-space:nowrap}.ts-progress{color:var(--ok)}@media(max-width:720px){.track-step{flex-direction:column;gap:.2rem}.ts-meta{margin-left:1.5rem}}.kbd-overlay{position:fixed;inset:0;z-index:100;background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem}.kbd-card{width:min(360px,100%);background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:0 18px 60px color-mix(in srgb,#000 45%,transparent);padding:1.1rem 1.3rem}.kbd-title{font:700 .85rem var(--font-mono);color:var(--text-hi);margin-bottom:.8rem}.kbd-list{margin:0;display:flex;flex-direction:column;gap:.45rem}.kbd-list>div{display:flex;align-items:baseline;gap:.8rem}.kbd-list dt{font:500 .78rem var(--font-mono);color:var(--text-mute);min-width:5.5rem}.kbd-list dd{margin:0;font-size:.82rem;color:var(--text)}.kbd-list kbd{color:var(--text-hi);background:var(--bg);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;padding:.3em .45em}.lib-panel{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);padding:1.1rem 1.3rem;margin-top:1.6rem}.lib-head{display:flex;align-items:baseline;gap:.6rem}.lib-head h2{margin:0;font-size:1.15rem}.lib-count{font:600 .78rem var(--font-mono);color:var(--text-faint)}.lib-head .ctl{margin-left:auto}.lib-list{list-style:none;margin:.8rem 0 0;padding:0}.lib-row{display:flex;align-items:baseline;gap:.8rem;padding:.5rem .2rem;border-top:1px dashed var(--border)}.lib-sec{font:600 .72rem var(--font-mono);color:var(--accent-lo);min-width:6.5em;text-align:right}.lib-title{color:var(--text-hi);text-decoration:none;font-weight:500;min-width:0}.lib-title:hover{color:var(--accent)}.lib-date{margin-left:auto;font:500 .75rem var(--font-mono);color:var(--text-mute);white-space:nowrap}.lib-remove{background:none;border:none;cursor:pointer;padding:0 .2rem;font-size:1rem;line-height:1;color:var(--text-faint)}.lib-remove:hover{color:var(--err)}.lib-empty{padding:1.2rem .2rem .6rem;color:var(--text-mute);font-size:.88rem}@media(max-width:720px){.lib-row{flex-wrap:wrap;gap:.3rem .8rem}.lib-sec{min-width:0;text-align:left}}.change-note{margin:0 0 1.2rem;padding:.5rem .9rem;border-inline-start:3px solid var(--info, var(--accent));background:var(--accent-tint);border-radius:var(--r-sm);font-size:.85rem;color:var(--text)}.cn-label{font:600 .72rem var(--font-mono);color:var(--accent);text-transform:uppercase;margin-right:.4rem}.pkg-links{display:flex;flex-direction:column;gap:.4rem;margin:0 0 1.4rem}.pkg-link{display:flex;align-items:flex-start;gap:.7rem;flex-wrap:wrap;padding:.55rem .9rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-raised);text-decoration:none}.pkg-link:hover{border-color:var(--accent)}.pl-rel{font:600 .7rem var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;flex-shrink:0}.pl-title{color:var(--text-hi);font-weight:500;flex:1 1 auto;min-width:0}@media(max-width:480px){.pkg-link{flex-direction:column;align-items:flex-start;gap:.3rem}}.quiz{margin-top:2.5rem}.quiz-item{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);padding:1rem 1.2rem;margin:1rem 0}.quiz-q{margin:0 0 .8rem;font-weight:600;color:var(--text-hi)}.quiz-opts{display:flex;flex-direction:column;gap:.45rem}.quiz-opt{text-align:left;cursor:pointer;font:500 .88rem var(--font-body);color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm);padding:.5rem .8rem}.quiz-opt:hover:not(:disabled){border-color:var(--accent)}.quiz-opt.correct{border-color:var(--ok);color:var(--ok);font-weight:600}.quiz-opt.wrong{border-color:var(--err);color:var(--err)}.quiz-opt:disabled{cursor:default;opacity:.9}.quiz-explain{margin:.8rem 0 0;padding-top:.7rem;border-top:1px dashed var(--border);font-size:.85rem;color:var(--text-mute)}.prose details{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-raised);padding:0;margin:1rem 0}.prose details summary{cursor:pointer;padding:.6rem .9rem;font:600 .85rem var(--font-mono);color:var(--accent);user-select:none}.prose details summary:hover{color:var(--accent-hi, var(--accent))}.prose details[open] summary{border-bottom:1px dashed var(--border)}.prose details>*:not(summary){margin-left:.9rem;margin-right:.9rem}.prose details>*:last-child{padding-bottom:.4rem}.upcoming-list{list-style:none;margin:1.4rem 0 0;padding:0}.upcoming-row{display:flex;align-items:baseline;gap:.8rem;padding:.6rem .3rem;border-bottom:1px dashed var(--border)}.up-role{font:600 .72rem var(--font-mono);color:var(--accent);text-transform:uppercase;min-width:6em}.up-title{color:var(--text-hi);font-weight:500}.up-date{margin-left:auto;font:500 .78rem var(--font-mono);color:var(--text-mute)}.recent-tabs{margin-top:2.5rem}.rt-radio{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.rt-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.8rem;margin-bottom:1rem}.rt-head h2{margin:0}.rt-toggle{display:flex;gap:.25rem;padding:.25rem;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised)}.rt-toggle label{cursor:pointer;user-select:none;padding:.35rem .85rem;border-radius:var(--r-sm);font:600 .78rem var(--font-mono);color:var(--text-mute)}.rt-toggle label:hover{color:var(--text-hi)}#rt-courses:checked~.rt-head .rt-toggle label[for=rt-courses],#rt-everything:checked~.rt-head .rt-toggle label[for=rt-everything]{background:var(--bg);color:var(--text-hi)}#rt-courses:focus-visible~.rt-head .rt-toggle label[for=rt-courses],#rt-everything:focus-visible~.rt-head .rt-toggle label[for=rt-everything]{outline:2px solid var(--accent);outline-offset:2px}.rt-panel{display:none}#rt-courses:checked~#panel-courses,#rt-everything:checked~#panel-everything{display:flex}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
