@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAAQAABAAAAAACEwAAAOmAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEgAZBEICoMkgmcLFgABNgIkAyYEIAWFNAdiDAcb3wYgngU5GW9qFpxcIlPzNPVjx7JSP3iet+s9971Zzn7Q8yEHG1C91aUi2aFP6j1c07wqko0ssGwl8RDyRPehgRL1M2Z+akJOifHwcbX3d1ZvWowiysMskA0v3NL0wohiuX//l5EDn7gc/6xs+9oikSbyg6LCvegvncOw87lpLFr4wF0a4AIKCLJtSQTXJ0FUc+nW+HePCPAAAEUITQhwS1VELdq2lyi7mSBClGUAfAiQcQoLURwIEAbFSTgpoQyQKZ5QAIQmFC1RkEIyQbp0pOgGEpLm3PgkW7FBndVwEN1qI7KmHk2wjgMoN/MuNwf0QzU7Z/j7kmFrZXIicgFQg/oLEmlS/KkQSoFU6jDNFoqGGVviKyYilIFgeICEGqgfEltBPQFQQINQmoBQhgEQgQJp4CdRoy9ui0o85+N8br7clI0pPwej4FsISZ8AAG4AocADpkJsAmKJAgaVDFMxCCmFTiMiwqAEjpMAFgtkLp3maM5wD/V4R2VGmtOOnpVldz6417+z3Hs/fjQ3vH/P8VTm8PUfPsiyszHmoVMsvf3e3PCx2Nz17t3UTWLjVinvrCiLufT6svGmhrWE6j1tzjbHRH9FSDV/huK83vrzvQ3fI6ndj0Zy4vGOxfHp5Y1xeSVeq2vI33SA3qppmjKsHF6ZEGh7/N5KGlGRkPj/ZcXKUFbp4I6/swFaqzO4Ma0xdWffCXO6Pk1bcMKYilvTUptzO3JeZGW9yGnPTWl2rULNEeDgdJnXYLs0jrQATKiT/q1eKoDq8x6fmt/6kqv5H9f6D+D76dxIgF8Hd4wmlf/C2bAnARD8c2b1CGD+x+Y/y3RXsZSaYiOmkDkC4A/SVw6msSjArYwhliYAAAAUAab1aFK6gHsy1ZSJ5GiRKf5RJtNa/MsMRW7JbKqsltnlGy71VyZZRzQe4YCJuAlcAgYBASK0IhA+h+aGwWGxiY5BNcKNFPyXRTSMIyJwXYs4fF3zMJaefnNbRz6JWyM8BCMQF4gQ1zGIwSL5COaageEcIIQVyWcpV6jaNCYBAB/3oC9fpXzFLGNS1cPDhIcenLt9c3odbByMS851lFpG5gSIfGIfNo4VsYQ1kdcJGCW/zusPwACXQSNgjSTBBhgOyzwy+zRO0LeRVF2TgEDPYsADhE8RQ4/8DQob9KVubTdI9VgUOrQYYhO7OOyNE6/83y22ZK7Ttxot1TzIenBoNZW4JkySwrgAB+bE17sUW2WXxLfqlLEJAA==)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-vietnamese-400-normal-Cg2kxhWu.woff2)format("woff2"),url(/assets/plus-jakarta-sans-vietnamese-400-normal-B8TCSmUq.woff)format("woff");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:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-ext-400-normal-D127hM_v.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-400-normal-2ppkqaOR.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-400-normal-Dhut76fR.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-400-normal-BDKaGhyp.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAAQwABAAAAAACHQAAAPWAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEQAZBEICoMkgmULFgABNgIkAyYEIAWFXgdiDAcbAwdRlE3OAiA/C2NnWmqDevE1lV86rytbx0YiXN7GJix16cheg+c///7dZ+Z+SEzSUhXoEkLHLqv//fu/tfY3nUm+g2lnlqwhYmnWZ232zf5BQiV0qzxKoR5UjVQLFR7+uVfv+5lDN4WzaUwPWEASTFvwak+Pl2rLqgUqWr/l7mqeJpR5FlJkbclrawv4WyBZaRDdxDX5/xelhdVKE4m2zbooInWEO19jURQVPvBuOvDkAcHeliEDXwoiZxo1/tstIsAWAChCaEKAtVDJ1GlxfR+yN4oBZBkAkwkC5GqIAOJAgDAoloQlxZUBIvkTCoDQhKLN8VKYRQwXjizagXkAs434JyuYQT2rCECN1YtcoBrzICIWQLla63ltC57YDcVwpmCYNY1OyAtAdew3EEiTvR8LrhQIpZ4sGxUNU3fqKTYIVwZ6wxb4twhACrICgAIauNIEuDI0Ahw50sBOoCL3fkMFiomxx/Jz8zHHWET500Ih1xCSmuAAwBqAK7AF44Bd4MsRYFApIMBjEJKlWhoePhvhmMSB1Ro5D2fWZibFkofp/bPMacp6vCkbxnNyp3atz66P1K75BuuPeXZe/3xXNlQfm0uF9U+mqV1rYHNKX80eoYGO1L5bZLBZ37LabkggZnym3HIxRqivANhY/1+NlKncG/kn6rGEPYd8ufSeriuFFF+iE7bqaWxa2cwaeQv2IOd05Pu/v386CWdDv/T35UJC4mam3WgqVPQregeerWBu3ebN2oUbvNYNa6rhi42eyuXw8IeI7mbYQmSZbagRBFiwdM8fzreS7vMYYAP1qq91voMA1Q4fa+5fH3DIfZZa/wf49R3rCfj7vreXVLqyajqYUwAEL5tOveUx/znVL7LYKlnPKrmnolmug3QdfFMwL6AAa+kMvjQBAACgCLB3Q4ZkrYDnMeuxRGJMWIp9xLO0Yn/tRhXLTLY7LHOxtrLspWtkOQoWz3RiK1gvGpDu7RYZwAZpLaN/Ac04HxVYgSgPozliYCw2tMGgYyTfNo8UIapRLkpAFNGCCkRsCIUiIwkSrKIRmBCKtK3CeNoWCJaOBovWO1eiGjtbu6AdMojvZ7gAkSxeogxJckwwIY7zRM50xcsSL0Wivtr+a7VlzZbxdGA3ZJE8avQ8Osn60jlc6Io43TCRLFEbA7XGAKPhvtpGjuUcBq3PuCISsnGiorvImzBPYPxsJFXbCM7XsRrn4tCVkKHD7hpFxJrGULWyNQj1JhQ6tBhiJuZiYV6k/hXAuNiagHXH+8Rkbte5sz8+pJaoJtH4Rg5JTJoeMxsvf4RbbhkZAA==)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-vietnamese-500-normal-DiU8zqi-.woff2)format("woff2"),url(/assets/plus-jakarta-sans-vietnamese-500-normal-CvE5C8T-.woff)format("woff");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:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-latin-ext-500-normal-9VZagAe1.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-500-normal-CqEEAICU.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-latin-500-normal-Bf-nb4oT.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-500-normal-DYtqi0QS.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,d09GMgABAAAAAAQcABAAAAAACIgAAAPAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEQAZBEICoMogmULFgABNgIkAyYEIAWFbgdiDAcbEwcgnge2zWYrRGrW2DqMIvVrh6cG/6B/9ecmGb7Z3Q/IFcgSYAe7BJC/X2tvBdPop7KYypr+m92/iE0nEhIeMkO6SiJfo3oCmXALgMKT3MtvBPKJY8aL5MhAnUgFTTtot/MqGvHOs2lU9Q389/gPWGD8OnXqgVcTwoAOlml+fY8ISAAABiEsQkCcfJqR9RrMrkL5sN7YgnIcgPcI0ND+tgWFgADhMEQRUQzp0EAhDQgMAMIiDJZGIQw0QxcQglR7gIaTAJxem07kgZk/RAFNG1EPIqmPikUAw83adWYBsiTlOuSSfR4QSqV+uYBYAWCym1dALhRa/LaQDgnkQ44ZqGCCgsHPGkQJIh1aQkoANhOAoqYTABjAAulQCCZ961aAVCpRQBK5DLnlpEyuQ94T/Fr/y+9P+P6+tpe2EKiCkPekgIyzOB0gAQwALACyIQkcxisYPoeQo0Vdxox0UqqeqmCkgYx4y2BooMbXE6tdS7YDeeteTdtzKT7/TrH4xvv3gwV37zJ1VaZO8+/d07S1WYNNu5i6+2Kw4H7JYN2dOwOKxHpeyepQljdHsPpoGnc8Z7AqpeqGBtHxiIV+RCkJvVwuTza50nPJys9dUz5nzMrN/fWWXWob/8YVjM3kb7y63KydGR+YGNbat1O1Nnf72eOGw1t7d6vW5M7MrDmEiZ9XoOg04PBxEtup5mrNDdy0qDUPziYfVw7bRInVXCoWmYxZcvMFXJlxd3WrOJAFIIAIUfZw5V4co5j3UgAEYLbbT8PLfUCASVM8W/aXnim937L2JcDT/cUyAcCLrSu6UeK/TuuPMAYAwdtmNYcI8P8ZNcFsjcfMVKpdBkNmL3wDzEaKAUbCCCBOBTTZUBRazyAgmT1Y5GLAGU102aJcGrENyarCtjTwX+lo7BBVvLLDlHLNTqaCVXYqPs2W1NCdIrIkyFCvaAoQQOIa5z+BNhATyzIFYxlUvA0ilUyBrRCZVMMQg2CRweXwmMbSsWwYy2MFy+JQYFiGo1tamoNnU2VgjhSHypCC2GRpC8bNls4Wo9ROLoW+TmRvokIsHs1SGB2a9JBJMET+vGMHI6VLSgvG3tG8qxbMWNCzBMByXOYyUOzG1PYUSR+BZJyytzvh0YwxNo/VIEAsuvgmi2yIRsTDPIa4MAViU2pHHotDpuKvcXFSeIgpDUN0CHYqQ5RGIIpElfr+RKwdB/J5k8HKyimksCLh2n1+E6BbgTtCZZihUmTdNt4Hm5nhckW9+7pY/GgOVVCd79LCtL/Iz9rnFgEAAAA=)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-vietnamese-600-normal-Y4VTTRme.woff2)format("woff2"),url(/assets/plus-jakarta-sans-vietnamese-600-normal-5YsyKbU1.woff)format("woff");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:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-latin-ext-600-normal-DQgPU_Cg.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-600-normal-B0WRRYJ1.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-latin-600-normal-DLTa1BUW.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-600-normal-BR_Ojra4.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(data:font/woff2;base64,d09GMgABAAAAAAP4ABAAAAAACEAAAAOfAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEQAZBEICoMogmULFgABNgIkAyYEIAWFKAdiDAcbzQZAHgnZGeYNcatNpH4Ez1Ne9X5V0koPnZXA23BP8lGsq7ncS/JfgvHIEMLN3G0KLFyFwfEVqsKhsUUm3AKg8CT3pr93/Mf0hc2NmkjbJu1J/zpfy7DzNvbxWTYp4C4NcJ13AUFvs3CpSRLzS+U69m4UAYIAgEIQNIIAAfLqINWtv7QF+UN7UQT5WADGIIAM6ccjyAQEECwUPgQfimgKUFAJhgJA0AgKjUKWn1pMfjVYcQaoB7Hbki/qKjaoxaojQBNpFulOXRpARl5AcbK2XVyFd0Lcs1aoyQ3scOnrwtYAKFd9BFwy0vu+EE0C8pImDHCIaRj0asAchGjKKEkQ8LcIgPjVVQAUoIFoMgJEU2gJCFdIBkJwjXvnlij3rDG2x5pf5o25afqZWkaet4FBNoIYQxh0APFoQBDoD1gCJKMALJQBFC0LQSyJz4qLswThPSSMsRwbfk1niDMo0D7YtktOZ2fAgRMy6/jjwOKsooE9T544S7Kzmbk1vuPinByZtSPJ2XuUmcceOUuelHB2ZmX1z1HrcTlthwRlU51N17z8jSRna1OV3fV99b0b/uK7yOHDST6sLbvDLbeja1zGlNE1PKentEtMelwhT/56rn/19RbtRFONJiO6q3erGr//zKenjUZ21+heJeHeng2BK6+1bM+beoW2bba19ASXheuNfRwedJTam9ptLdzYPyuklZu7VsrMQOEmHZqR8sMALz4O8VgX95PLX0kAHFDX9Pd1uM8IoCKLJdwp+rFHWNVvPq0/ADw9VTQegBcH1nQlx3w9tV3woAAQ+NlC6qEf+tf9Iut+NZOq4ONKTgPAaj8FAFPcYECA8hSSyXkwwBQCBFmPRiw/cFeaa0ohd4oqFT7Jq9RU96+0KOpTaVPZo9JDQXuKUMqrMBJNkNiIn6xhcTxYwCUfAlpDIVVkHlEFXLpdJpfNQfwfkZgwoFUrQce5YkRoIbgCLRBna7VqxpI1gYSwQOVTcUS1SRURmk1AAcMOEye4UKRMhxZterUbZLMQhALCoTYt+rXo1Oa4xrSyGSybeFln3nnZsmrRqsEufdKgNVsnodgV/v0aZTq08ViZLRtkDtz786/hkMekI2XGJYgDcUKZuptJ2NyYT5PQtNChUCuCfIhciZlasVBPguyaftQBDgB5fYlCixZLbPGI11Or9/v+12WMG+62laxVUtVprdzZUbJ2WX+vPgmZr91w2JzuNWVKlr8oZt5Jaxk=)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/plus-jakarta-sans-vietnamese-700-normal-CV6qDkkj.woff2)format("woff2"),url(/assets/plus-jakarta-sans-vietnamese-700-normal-BCh_uG_5.woff)format("woff");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:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/plus-jakarta-sans-latin-ext-700-normal-BajbvANd.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-700-normal-8-d-IyIQ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/plus-jakarta-sans-latin-700-normal-CfpNZvy6.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-700-normal-DqEcQeE5.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eaeee9;--surface-1:#fff;--surface-2:#f7f9f6;--surface-3:#eef2ec;--raise:#e4e9e3;--text:#15201a;--muted:#566359;--faint:#8a988e;--accent:#0f9d6b;--accent-hover:#0b8159;--accent-press:#0a724f;--accent-soft:#0f9d6b1f;--accent-line:#0f9d6b57;--on-accent:#fff;--active:#0891b2;--active-soft:#0891b21f;--active-line:#0891b25c;--success:#15a06d;--warning:#b97d12;--danger:#d64545;--danger-soft:#d645451f;--border:#14281e1a;--border-strong:#14281e2e;--divider:#14281e12;--shadow-sm:0 1px 2px #14281e0f;--shadow-md:0 2px 10px #14281e12;--shadow-lg:0 16px 40px -16px #14322333;--r-sm:8px;--r-md:12px;--r-full:999px;--font-ui:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--t-display:1.75rem;--t-h1:1.375rem;--t-h2:1.0625rem;--t-body:.9375rem;--t-sm:.8125rem;--t-xs:.6875rem;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:48px;--content-max:1180px;--content-catalog:1760px;--content-wide:1560px;--header-h:60px;--pad-x:clamp(20px, 4vw, 64px);--pad-card:var(--s-4);--gap-section:var(--s-7)}*{box-sizing:border-box}body{color:var(--text);font:400 15px/1.6 var(--font-ui);-webkit-font-smoothing:antialiased;background:radial-gradient(1100px 420px at 50% -180px, var(--accent-soft), transparent 70%), var(--bg);background-attachment:fixed;margin:0}a{color:inherit;text-decoration:none}h1,h2,h3,h4{letter-spacing:-.01em}.muted{color:var(--muted)}.error{color:var(--danger)}.center{place-items:center;min-height:100vh;display:grid}.tnum,.meta,.card-meta,.meta-strip,.clips .muted,.outline .muted{font-variant-numeric:tabular-nums}:where(a,button,input):focus-visible,.video-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}#main:focus{outline:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--accent);color:var(--on-accent);border-radius:0 0 var(--r-sm) 0;padding:.5rem .9rem;font-weight:600;position:absolute;top:0;left:-999px}.skip-link:focus{left:0}@media (prefers-reduced-motion:reduce){*,html{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.link-btn,.next-btn,.menu-item{align-items:center;gap:var(--s-2);cursor:pointer;font:inherit;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.link-btn,.next-btn{min-height:40px;padding:0 var(--s-4);border-radius:var(--r-sm)}.link-btn{border:1px solid var(--border-strong);color:var(--text);background:0 0}.link-btn:hover{background:var(--surface-3)}.next-btn{background:var(--accent);color:var(--on-accent);border:none;font-weight:600}.next-btn:hover{background:var(--accent-hover)}.topbar{z-index:30;height:var(--header-h);background:color-mix(in srgb, var(--surface-1) 90%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-strong);position:sticky;top:0}.topbar-inner{max-width:var(--content-catalog);height:100%;padding:0 var(--pad-x);align-items:center;gap:var(--s-5);grid-template-columns:auto minmax(0,1fr) auto;margin:0 auto;display:grid}.brand{align-items:center;gap:var(--s-2);font-size:1.05rem;font-weight:700;display:inline-flex}.topbar-right{justify-self:end;align-items:center;gap:var(--s-4);display:flex}.header-divider{background:var(--border);width:1px;height:24px}.avatar-menu{position:relative}.account-btn{align-items:center;gap:var(--s-2);border-radius:var(--r-full);cursor:pointer;color:var(--text);font:inherit;background:0 0;border:1px solid #0000;padding:4px 8px 4px 4px;transition:background .14s,border-color .14s;display:inline-flex}.account-btn:hover{background:var(--surface-3);border-color:var(--border)}.account-avatar{border-radius:var(--r-full);background:var(--accent);width:32px;height:32px;color:var(--on-accent);font:700 .72rem var(--font-ui);flex:none;place-items:center;display:grid}.account-id{text-align:left;flex-direction:column;line-height:1.15;display:flex}.account-name{font-size:var(--t-sm);font-weight:600}.account-role{font-size:var(--t-xs);color:var(--faint)}.account-caret{color:var(--faint);transition:transform .18s;display:flex}.account-caret.open{transform:rotate(180deg)}.menu{z-index:40;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--r-md);width:248px;box-shadow:var(--shadow-lg);padding:var(--s-2);position:absolute;top:calc(100% + 8px);right:0}.menu-header{align-items:center;gap:var(--s-3);padding:var(--s-3);display:flex}.menu-avatar{border-radius:var(--r-full);background:var(--accent);width:40px;height:40px;color:var(--on-accent);font:700 .85rem var(--font-ui);flex:none;place-items:center;display:grid}.menu-name{font-weight:600}.menu-role{font-size:var(--t-sm);align-items:center;display:flex}.role-badge{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.04em;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line);border-radius:var(--r-sm);margin-right:6px;padding:0 6px;font-weight:700}.menu-divider{background:var(--divider);height:1px;margin:var(--s-1) calc(-1 * var(--s-2))}.menu-item{width:100%;padding:var(--s-3);border-radius:var(--r-sm);color:var(--text);text-align:left;background:0 0;border:none}.menu-item:hover{background:var(--surface-2)}.menu-item svg{color:var(--muted)}.hsearch{justify-self:start;width:100%;max-width:460px;position:relative}.hsearch-icon{left:var(--s-3);color:var(--faint);display:flex;position:absolute;top:50%;transform:translateY(-50%)}.hsearch-input{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--r-full);width:100%;height:38px;color:var(--text);font:inherit;padding:0 2.2rem}.hsearch-input::placeholder{color:var(--faint)}.hsearch-input:focus-visible{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.hsearch-kbd{right:var(--s-3);font:600 .7rem var(--font-ui);color:var(--faint);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:1px 6px;position:absolute;top:50%;transform:translateY(-50%)}.hsearch-panel{z-index:40;background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--r-md);max-height:60vh;box-shadow:var(--shadow-lg);padding:var(--s-2);position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:auto}.hsearch-empty{padding:var(--s-3);margin:0}.hsearch-result{align-items:center;gap:var(--s-2);text-align:left;width:100%;padding:var(--s-3);border-radius:var(--r-sm);color:var(--text);cursor:pointer;font:inherit;background:0 0;border:none;display:flex}.hsearch-result:hover{background:var(--surface-2)}.hsearch-title{font-weight:500}.hsearch-ctx{font-size:var(--t-sm)}.badge{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.05em;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);border-radius:var(--r-sm);white-space:nowrap;align-items:center;padding:2px 8px;font-weight:600;display:inline-flex}.badge-course{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.content{width:100%;max-width:var(--content-max);padding:var(--s-7) var(--pad-x);min-height:calc(100vh - var(--header-h));margin:0 auto}.content-catalog{max-width:var(--content-catalog)}.content-wide{max-width:var(--content-wide)}.crumbs{gap:var(--s-1);color:var(--faint);font-size:var(--t-sm);margin-bottom:var(--s-3);align-items:center;display:flex}.crumbs a:hover{color:var(--accent)}.page-header{margin-bottom:var(--gap-section)}.page-header-row{justify-content:space-between;align-items:flex-end;gap:var(--s-4);flex-wrap:wrap;display:flex}.eyebrow{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0 0 var(--s-2);font-weight:700}.page-title{margin:0;font-size:clamp(1.75rem,1rem + 1.6vw,2.375rem);font-weight:700;line-height:1.1}.page-subtitle{margin:var(--s-2) 0 0;color:var(--muted);max-width:70ch}.page-actions{gap:var(--s-2);display:flex}.meta-strip{gap:var(--s-2) var(--s-4);margin-top:var(--s-4);color:var(--muted);font-size:var(--t-sm);flex-wrap:wrap;display:flex}.meta-strip .dot{color:var(--faint)}.state{text-align:center;place-items:center;gap:var(--s-2);padding:var(--s-8) var(--s-4);color:var(--muted);display:grid}.state-title{color:var(--text);font-size:var(--t-h2);font-weight:600}.login{min-height:100dvh;padding:var(--s-6) var(--s-6) 12vh;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login:before{content:"";z-index:0;pointer-events:none;background-image:repeating-linear-gradient(#14281e0d 0 1px,#0000 1px 28px),repeating-linear-gradient(90deg,#14281e0d 0 1px,#0000 1px 28px);position:fixed;inset:0;-webkit-mask:radial-gradient(circle at 50% 42%,#000,#0000 78%);mask:radial-gradient(circle at 50% 42%,#000,#0000 78%)}.login-field{z-index:0;pointer-events:none;position:fixed;inset:0}.graph-edges{width:100%;height:100%;position:absolute;inset:0}.graph-edges path{fill:none;stroke:var(--accent-line);stroke-width:1.25px;opacity:.35;vector-effect:non-scaling-stroke}.login-field .layer{position:absolute;inset:0}.gnode{border-radius:var(--r-full);background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 6px var(--accent-soft);opacity:.8;position:absolute;transform:translate(-50%,-50%)}.layer-far .gnode{width:5px;height:5px;box-shadow:0 0 0 5px var(--accent-soft)}.ghost{opacity:.1;width:130px;height:130px;position:absolute}.ghost-tl{top:7vh;left:5vw}.ghost-br{bottom:9vh;right:5vw}.login-vignette{pointer-events:none;background:radial-gradient(120% 90% at 50% 45%,#0000 55%,#14281e0f);position:absolute;inset:0}.login-card{z-index:1;gap:var(--s-4);width:100%;max-width:380px;padding:var(--s-8) var(--s-7);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:relative}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.login-card{-webkit-backdrop-filter:blur(18px)saturate(1.1);backdrop-filter:blur(18px)saturate(1.1);box-shadow:inset 0 1px 0 #ffffffe6, var(--shadow-lg);background:#ffffffb8}}.login-brand{align-items:center;gap:var(--s-3);display:flex}.brand-chip{border-radius:var(--r-md);background:var(--accent-soft);flex:none;place-items:center;width:44px;height:44px;display:grid}.brand-mark{width:26px;height:26px}.login-brand .wordmark{font-size:1.6rem}.login-head{margin-top:var(--s-1);flex-direction:column;gap:2px;display:flex}.login-card h1{letter-spacing:-.02em;color:var(--text);margin:0;font-size:1.5rem;font-weight:700;line-height:1.1}.login-sub{font-size:var(--t-sm);margin:0}.wordmark{font-family:var(--font-ui);letter-spacing:-.018em;white-space:nowrap;color:var(--text);font-weight:700;line-height:1}.bp-edge{stroke-dasharray:40;stroke-dashoffset:0}.bp-node{transform-box:fill-box;transform-origin:50%;transform:scale(1)}.field{position:relative}.field .field-icon{color:var(--faint);z-index:1;transition:color .18s;display:flex;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.field:focus-within .field-icon{color:var(--accent)}.field input{width:100%;height:58px;font:inherit;color:var(--text);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-sm);padding:0 14px 0 40px}.field-pw input{padding-right:44px}.field label{transform-origin:0;pointer-events:none;color:var(--muted);font-size:var(--t-body);transition:transform .18s cubic-bezier(.2,.7,.2,1),color .18s,font-size .18s;position:absolute;top:50%;left:40px;transform:translateY(-50%)}.field input:focus+label,.field input:not(:placeholder-shown)+label{color:var(--accent);transform:translateY(calc(-50% - 20px))scale(.8)}.field input:focus-visible{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field.has-error input{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.pw-toggle{color:var(--faint);cursor:pointer;background:0 0;border:none;padding:6px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.pw-toggle:hover{color:var(--text)}.login-card button[type=submit]{justify-content:center;align-items:center;gap:var(--s-2);min-height:44px;padding:var(--s-3);font:inherit;cursor:pointer;background:var(--accent);color:var(--on-accent);border-radius:var(--r-sm);border:none;font-weight:600;transition:background .15s,transform 90ms,filter .15s;display:inline-flex}.login-card button[type=submit]:hover{background:var(--accent-hover);transform:translateY(-1px)}.login-card button[type=submit]:active{filter:brightness(.97);transform:translateY(0)}.login-card button[type=submit]:disabled{opacity:.7;cursor:default;transform:none}.spinner{border-radius:var(--r-full);border:2px solid #ffffff73;border-top-color:#fff;width:14px;height:14px}.error{color:var(--danger);font-size:var(--t-sm);margin:0}.faint-note{justify-content:center;align-items:center;gap:var(--s-1);color:var(--faint);font-size:var(--t-xs);margin:0;display:flex}@media (width<=480px){.login-card{padding:var(--s-6) var(--s-5)}}@media (prefers-reduced-motion:no-preference){.login-field{will-change:transform, opacity;animation:14s ease-in-out infinite breathe}.layer-far{will-change:transform;animation:64s ease-in-out infinite drift-far}.layer-near{will-change:transform;animation:46s ease-in-out infinite drift-near}.gnode{animation:6s ease-in-out infinite twinkle}.login-card{animation:.6s cubic-bezier(.2,.7,.2,1) both cardrise}.bp-edge{stroke-dashoffset:40px;animation:.9s forwards draw}.bp-node{animation:.26s cubic-bezier(.2,.9,.3,1.3) both pop;transform:scale(0)}.bp-node:first-of-type{animation-delay:.9s}.bp-node:nth-of-type(2){animation-delay:1.02s}.bp-node:nth-of-type(3){animation-delay:1.14s}.spinner{animation:.7s linear infinite spin}}@keyframes breathe{0%,to{opacity:.92;transform:scale(1)}50%{opacity:1;transform:scale(1.012)}}@keyframes drift-far{0%,to{transform:translate(0,0)}50%{transform:translate(6px,-4px)}}@keyframes drift-near{0%,to{transform:translate(0,0)}50%{transform:translate(-8px,5px)}}@keyframes twinkle{0%,to{opacity:.55;box-shadow:0 0 0 4px var(--accent-soft)}50%{opacity:1;box-shadow:0 0 0 9px var(--accent-soft)}}@keyframes cardrise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes pop{to{transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.admin-tabs{gap:var(--s-2);border-bottom:1px solid var(--border);margin-bottom:var(--gap-section);display:flex}.admin-tab{align-items:center;gap:var(--s-2);padding:var(--s-3);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;font-weight:600;transition:color .14s,border-color .14s;display:inline-flex}.admin-tab svg{color:var(--faint)}.admin-tab:hover{color:var(--text)}.admin-tab.is-active,.admin-tab.is-active svg{color:var(--accent)}.admin-tab.is-active{border-bottom-color:var(--accent)}.stat-grid{gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.stat-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-5);box-shadow:var(--shadow-sm)}.stat-label{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--faint);margin:0;font-weight:700}.stat-value{margin:var(--s-2) 0 0;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700;line-height:1}.stat-sub{margin:var(--s-2) 0 0;font-size:var(--t-sm);color:var(--muted)}.admin-cols{gap:var(--s-6);grid-template-columns:minmax(0,1fr) 320px;align-items:start;display:grid}.admin-panel{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-5);box-shadow:var(--shadow-sm)}.admin-panel-title{align-items:center;gap:var(--s-2);margin:0 0 var(--s-4);font-size:var(--t-h2);display:flex}.admin-panel-title svg{color:var(--accent)}.admin-panel-head{justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4);display:flex}.admin-panel-head .admin-panel-title{margin:0}.admin-panel-head .next-btn{flex:none;min-height:34px}.lib-actions{align-items:center;gap:var(--s-3);display:inline-flex}.lib-actions button.link-quiet{cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.link-quiet.danger{color:var(--danger)}.link-quiet:disabled{color:var(--faint);cursor:default;text-decoration:none}.admin-table{border-collapse:collapse;width:100%;font-size:var(--t-sm)}.admin-table th{text-align:left;font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--faint);padding:0 var(--s-3) var(--s-2);border-bottom:1px solid var(--border);font-weight:700}.admin-table td{padding:var(--s-3);border-bottom:1px solid var(--divider);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table .num{text-align:right;font-variant-numeric:tabular-nums}.admin-table tbody tr:hover{background:var(--surface-1)}.u-avatar{border-radius:var(--r-full);background:var(--accent-soft);width:28px;height:28px;color:var(--accent);font:700 .68rem var(--font-ui);margin-right:var(--s-2);vertical-align:middle;place-items:center;display:inline-grid}.u-name{font-weight:600}.u-you{font-size:var(--t-xs);color:var(--faint);margin-left:6px;font-weight:500}.lib-date{font-size:var(--t-sm)}.row-action{text-align:right;white-space:nowrap;width:1%}.icon-btn{border-radius:var(--r-sm);border:1px solid var(--border);width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;place-items:center;transition:background .14s,color .14s,border-color .14s;display:inline-grid}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.icon-btn.danger:hover{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.icon-btn:disabled{opacity:.5;cursor:default}.link-quiet{color:var(--accent);font-weight:600}.link-quiet:hover{text-decoration:underline}.add-form{gap:var(--s-3);flex-direction:column;display:flex}.add-label{gap:var(--s-1);font-size:var(--t-sm);color:var(--muted);flex-direction:column;display:flex}.add-label input{background:var(--surface-1);border:1px solid var(--border);color:var(--text);border-radius:var(--r-sm);padding:var(--s-3);font:inherit}.add-label input:focus-visible{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.add-check{align-items:center;gap:var(--s-2);font-size:var(--t-sm);color:var(--text);cursor:pointer;display:flex}.add-check span{align-items:center;gap:4px;display:inline-flex}.add-check input{width:16px;height:16px;accent-color:var(--accent)}.add-form .next-btn{justify-content:center}.add-ok{color:var(--success);font-size:var(--t-sm);align-items:center;gap:4px;margin:0;font-weight:600;display:flex}.admin-note{margin:var(--s-4) 0 0;font-size:var(--t-sm);color:var(--faint)}.admin-note code{background:var(--surface-1);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:.85em}.lib-path code{font-size:var(--t-sm);word-break:break-all}.src-chip{font-size:var(--t-sm);color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line);white-space:nowrap;border-radius:999px;padding:1px 8px;font-weight:600;display:inline-block}.series-strip{align-items:center;gap:var(--s-2);margin:var(--s-3) 0;flex-wrap:wrap;display:flex}.series-strip-label{font-size:var(--t-sm);color:var(--muted);font-weight:600}.series-ver{font-size:var(--t-sm);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:2px 10px;font-weight:600;text-decoration:none}a.series-ver:hover{border-color:var(--accent-line);color:var(--accent)}.series-ver.is-current{background:var(--accent);color:#fff;border-color:var(--accent)}.course-card .card-link{color:inherit;text-decoration:none;display:block}.ver-chips{margin-top:var(--s-2);flex-wrap:wrap;gap:6px;display:flex}.ver-chip{font-size:var(--t-sm);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:1px 9px;font-weight:600;text-decoration:none}.ver-chip:hover{border-color:var(--accent-line);color:var(--accent)}.ver-chip.is-current{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}.materials{margin:var(--s-5) 0}.materials>summary{font-size:var(--t-h2);cursor:pointer;padding:var(--s-2) 0;align-items:center;gap:var(--s-2);font-weight:700;list-style:none;display:flex}.materials>summary::-webkit-details-marker{display:none}.materials>summary:before{content:"▸";color:var(--muted);transition:transform .15s}.materials[open]>summary:before{transform:rotate(90deg)}.materials .module-sub{font-weight:400}.materials h2{font-size:var(--t-h2);margin:0 0 var(--s-3)}.materials-list{gap:var(--s-2);max-height:360px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.materials-list a{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);text-decoration:none;display:flex}.materials-list a:hover{border-color:var(--accent-line);background:var(--surface-3)}.mat-kind{text-align:center;border-radius:var(--r-sm);background:var(--accent-soft);min-width:42px;color:var(--accent);text-transform:uppercase;flex:none;padding:2px 6px;font-size:11px;font-weight:700}.mat-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.mat-size{font-variant-numeric:tabular-nums;flex:none}.fs-browser{margin:var(--s-3) 0 var(--s-4);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-1);overflow:hidden}.fs-path{align-items:center;gap:var(--s-2);padding:var(--s-3);border-bottom:1px solid var(--border);background:var(--surface-2);color:var(--muted);display:flex}.fs-path code{font-size:var(--t-sm);word-break:break-all}.fs-path svg{color:var(--faint);flex:none}.fs-list{padding:var(--s-1);max-height:320px;margin:0;list-style:none;overflow-y:auto}.fs-entry{align-items:center;gap:var(--s-2);text-align:left;width:100%;padding:var(--s-2) var(--s-3);color:var(--text);font:inherit;border-radius:var(--r-sm);cursor:pointer;background:0 0;border:none;display:flex}.fs-entry svg{color:var(--accent);flex:none}.fs-entry:hover{background:var(--surface-3)}.fs-up{color:var(--muted)}.fs-up svg{color:var(--faint)}.fs-empty{padding:var(--s-3);font-size:var(--t-sm)}.scan-failures{margin-top:var(--s-4);border:1px solid var(--danger);border-radius:var(--r-sm);background:var(--danger-soft);padding:var(--s-3) var(--s-4)}.scan-failures-head{justify-content:space-between;align-items:center;gap:var(--s-3);color:var(--danger);font-weight:600;display:flex}.scan-failures-head svg{vertical-align:-2px;margin-right:4px}.scan-failures ul{margin:var(--s-2) 0 0;padding-left:var(--s-5);font-size:var(--t-sm);color:var(--text)}.scan-failures li{margin:2px 0}.scan-failures code{background:var(--surface-1);border:1px solid var(--border);border-radius:4px;padding:0 4px}@media (width<=860px){.admin-cols{grid-template-columns:1fr}}.history-group+.history-group{margin-top:var(--gap-section)}.history-day{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--faint);margin:0 0 var(--s-3);font-weight:700}.history-list{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);margin:0;padding:0;list-style:none;overflow:hidden}.history-list li+li{border-top:1px solid var(--divider)}.history-list a{align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-4);min-height:52px;display:flex}.history-list a:hover{background:var(--surface-2)}.h-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.h-title{font-weight:600}.h-ctx{font-size:var(--t-sm)}.h-status{font-size:var(--t-sm);color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.h-status.done{color:var(--accent);font-weight:600}.notes{margin-top:var(--s-7)}.notes-title{font-size:var(--t-h2);margin:0 0 var(--s-3);align-items:baseline;gap:var(--s-2);display:flex}.note-add{gap:var(--s-2);margin-bottom:var(--s-4);align-items:center;display:flex}.note-stamp{cursor:pointer;min-width:58px;height:40px;font:600 var(--t-sm) var(--font-ui);font-variant-numeric:tabular-nums;background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent);border-radius:var(--r-sm);flex:none;padding:0 10px}.note-input{min-width:0;height:40px;padding:0 var(--s-3);font:inherit;color:var(--text);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-sm);flex:1}.note-input:focus-visible{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.note-add .next-btn{flex:none}.note-list{margin:0;padding:0;list-style:none}.note-item{align-items:flex-start;gap:var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--divider);display:flex}.note-item:first-child{border-top:none}.note-time{cursor:pointer;font:600 var(--t-sm) var(--font-ui);font-variant-numeric:tabular-nums;color:var(--accent);background:0 0;border:none;flex:none;padding:2px 0}.note-time:hover{text-decoration:underline}.note-body{white-space:pre-wrap;word-break:break-word;flex:1;min-width:0}.note-del{flex:none}.note-empty{padding:var(--s-2) 0;margin:0}.modal-scrim{z-index:60;padding:var(--s-4);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a141073;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--r-md);width:100%;max-width:380px;box-shadow:var(--shadow-lg);padding:var(--s-6)}.modal-title{margin:0 0 var(--s-3);font-size:var(--t-h1)}.modal-message{margin:0 0 var(--s-5)}.modal-actions{justify-content:flex-end;gap:var(--s-2);margin-top:var(--s-2);display:flex}.modal-wide{max-width:560px}.modal .history-list{max-height:52vh;margin-bottom:var(--s-4);overflow:auto}.modal .history-list li{align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-4);display:flex}.modal-settings{flex-direction:column;width:100%;max-width:680px;height:560px;max-height:88vh;padding:0;display:flex;overflow:hidden}.settings-bar{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border);flex:none;display:flex}.settings-bar .modal-title{font-size:var(--t-h2);margin:0}.settings-main{flex:1;min-height:0;display:flex}.settings-rail{background:var(--surface-2);border-right:1px solid var(--border);width:184px;padding:var(--s-4) var(--s-3);flex-direction:column;flex:none;gap:2px;display:flex;overflow-y:auto}.settings-tab{align-items:center;gap:var(--s-2);text-align:left;width:100%;padding:var(--s-3);border-radius:var(--r-sm);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-left:2px solid #0000;transition:background .14s,color .14s;display:flex}.settings-tab svg{color:var(--faint)}.settings-tab:hover{background:var(--surface-3);color:var(--text)}.settings-tab.is-active{background:var(--surface-3);color:var(--accent);border-left-color:var(--accent);font-weight:600}.settings-tab.is-active svg{color:var(--accent)}.settings-panel{min-width:0;min-height:0;padding:var(--s-5);gap:var(--s-5);scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;scrollbar-gutter:stable;flex-direction:column;flex:1;display:flex;overflow-y:auto}.settings-panel::-webkit-scrollbar{width:10px}.settings-panel::-webkit-scrollbar-track{background:0 0}.settings-panel::-webkit-scrollbar-thumb{border-radius:var(--r-full);border:3px solid var(--surface-1);background-color:#14281e2e;background-clip:padding-box}.settings-panel:hover::-webkit-scrollbar-thumb{background-color:#14281e4d}.settings-panel:focus-within::-webkit-scrollbar-thumb{background-color:#14281e4d}.settings-panel::-webkit-scrollbar-thumb:hover{background-color:var(--accent-line)}.settings-panel::-webkit-scrollbar-thumb:active{background-color:var(--accent)}.disclosure-group{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);--disc-gutter:calc(var(--s-4) + 24px + var(--s-3));flex-direction:column;display:flex;overflow:hidden}.disc-card{background:var(--surface-1)}.disc-card+.disc-card{border-top:1px solid var(--border)}.disc-head{align-items:center;gap:var(--s-3);width:100%;min-height:44px;padding:var(--s-2) var(--s-4);text-align:left;cursor:pointer;color:var(--text);background:0 0;border:none;grid-template-columns:auto 1fr auto auto;display:grid}.disc-head:hover{background:var(--surface-2)}.disc-ico{border-radius:var(--r-sm);background:var(--surface-3);width:24px;height:24px;color:var(--muted);flex:none;place-items:center;display:grid}.disc-card[data-open=true] .disc-ico,.disc-card[data-open=true] .disc-ico svg{background:var(--accent-soft);color:var(--accent)}.disc-title{font-size:var(--t-sm);font-weight:600}.disc-stat{font-size:var(--t-xs);color:var(--muted);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;justify-self:end;align-items:center;gap:6px;min-width:0;display:inline-flex;overflow:hidden}.disc-chev{color:var(--faint);flex:none;transition:transform .18s}.disc-card[data-open=true] .disc-chev{transform:rotate(180deg)}.disc-dots{letter-spacing:.12em;color:var(--muted);font-family:ui-monospace,monospace}.disc-stat-ok{color:var(--accent);font-weight:700}.disc-count{color:var(--muted);background:var(--surface-3);border:1px solid var(--border);border-radius:var(--r-full);white-space:nowrap;padding:1px 8px}.disc-pill{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.04em;border-radius:var(--r-full);background:var(--surface-3);color:var(--muted);border:1px solid var(--border);align-items:center;gap:6px;padding:2px 8px;font-weight:700;display:inline-flex}.disc-pill .disc-dot{background:var(--faint);border-radius:50%;width:6px;height:6px}.disc-pill.is-on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}.disc-pill.is-on .disc-dot{background:var(--accent)}.disc-body{padding:var(--s-3) var(--s-4) var(--s-4) var(--disc-gutter);gap:var(--s-3);border-top:1px solid var(--divider);flex-direction:column;display:flex}.disc-body .add-form{gap:var(--s-3)}.disc-body .add-label{font-size:var(--t-xs);color:var(--muted);gap:4px}.disc-body .add-label input{height:32px;padding:0 var(--s-3);font-size:var(--t-sm)}.disc-body .field-hint{font-size:var(--t-xs)}.disc-body .next-btn,.disc-body .link-btn{min-height:30px;padding:0 var(--s-3);font-size:var(--t-sm);white-space:nowrap;flex:none;font-weight:600}.disc-actions{justify-content:flex-end;align-items:center;gap:var(--s-2);padding-top:var(--s-3);border-top:1px solid var(--divider);display:flex}.disc-actions .disc-foot-note{text-align:left;max-width:60%;margin-right:auto}.disc-foot{justify-content:space-between;align-items:center;gap:var(--s-3);font-size:var(--t-sm);color:var(--muted);display:flex}.disc-foot-note{margin:0;font-size:var(--t-xs)!important}.disc-otp{text-align:center;letter-spacing:.3em;font-variant-numeric:tabular-nums;width:9ch;height:32px;font-weight:600}.disc-sess{max-height:200px;margin:0;padding:0;list-style:none;overflow-y:auto}.disc-sess-row{min-width:0;padding:var(--s-2) 0;border-bottom:1px solid var(--divider);flex-direction:column;gap:1px;line-height:1.3;display:flex}.disc-sess-row:first-child{padding-top:0}.disc-sess-row:last-child{border-bottom:none;padding-bottom:0}.disc-sess-device{align-items:center;gap:var(--s-2);font-size:var(--t-sm);font-weight:600;display:flex}.disc-sess-meta{font-size:var(--t-xs);color:var(--muted);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.settings-close{border-radius:var(--r-sm);width:30px;height:30px;color:var(--faint);cursor:pointer;background:0 0;border:none;flex:none;place-items:center;font-size:14px;display:grid}.settings-close:hover{background:var(--surface-3);color:var(--text)}.settings-note{font-size:var(--t-sm);margin:0}.field-hint{font-size:var(--t-xs);color:var(--faint)}.field-hint.ok{color:var(--success)}.field-hint.err{color:var(--danger)}.acct-id{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--divider);display:flex}.acct-id-name{font-weight:600;font-size:var(--t-body);color:var(--text)}.acct-id-role{font-size:var(--t-xs);align-items:center;display:flex}.set-row{justify-content:space-between;align-items:center;gap:var(--s-4);min-height:40px;padding:var(--s-2) var(--s-4);display:flex}.set-row+.set-row{border-top:1px solid var(--divider)}.set-row-k{font-size:var(--t-sm);color:var(--muted)}.set-row-v{font-size:var(--t-sm);color:var(--text);font-variant-numeric:tabular-nums;font-weight:500}.pref-row{padding:var(--s-3) var(--s-4)}.set-row-main{flex-direction:column;gap:2px;min-width:0;display:flex}.set-row-title{font-size:var(--t-sm);color:var(--text);font-weight:600}.set-row-desc{font-size:var(--t-xs);color:var(--muted);margin:0;line-height:1.4}.session-list{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.session-row{align-items:center;gap:var(--s-3);padding:var(--s-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);display:flex}.session-icon{color:var(--faint);flex:none;display:flex}.session-main{flex-direction:column;gap:1px;min-width:0;display:flex}.session-device{font-weight:600;font-size:var(--t-sm);align-items:center;gap:var(--s-2);display:flex}.session-current{font-size:var(--t-xs);background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line);border-radius:var(--r-sm);padding:0 6px;font-weight:700}.session-meta{font-size:var(--t-xs);font-variant-numeric:tabular-nums}.mfa-status{font-weight:600;font-size:var(--t-sm);align-items:center;gap:4px;display:inline-flex}.mfa-secret{justify-content:space-between;align-items:center;gap:var(--s-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--s-2) var(--s-3);display:flex}.mfa-secret code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:var(--t-sm);letter-spacing:.04em;word-break:break-all;font-weight:600}.recovery-codes{padding:var(--s-3);gap:var(--s-1) var(--s-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);font-family:ui-monospace,SFMono-Regular,monospace;font-size:var(--t-xs);counter-reset:rc;word-break:break-all;grid-template-columns:1fr 1fr;margin:0;list-style:none;display:grid}.recovery-codes li:before{counter-increment:rc;content:counter(rc) ". ";color:var(--faint);font-weight:400}.mfa-action{align-items:center;gap:var(--s-2);flex:none;display:flex}.switch{border-radius:var(--r-full);border:1px solid var(--border-strong);background:var(--surface-3);cursor:pointer;flex:none;width:42px;height:24px;transition:background .15s,border-color .15s;position:relative}.switch.on{background:var(--accent);border-color:var(--accent)}.switch-knob{width:18px;height:18px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .15s;position:absolute;top:2px;left:2px}.switch.on .switch-knob{transform:translate(18px)}@media (width<=560px){.modal-settings{height:auto}.settings-main{flex-direction:column}.settings-rail{border-right:none;border-bottom:1px solid var(--border);flex-flow:wrap;flex:none;align-items:center;width:auto;overflow-x:auto}}.next-btn.is-danger{background:var(--danger)}.next-btn.is-danger:hover{background:var(--danger);filter:brightness(.95)}.toast-stack{right:var(--s-5);bottom:var(--s-5);z-index:80;gap:var(--s-2);flex-direction:column;max-width:360px;display:flex;position:fixed}.toast{background:var(--surface-1);border:1px solid var(--border-strong);border-left:3px solid var(--accent);border-radius:var(--r-sm);box-shadow:var(--shadow-lg);padding:var(--s-3) var(--s-4);font-size:var(--t-sm);color:var(--text)}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}@media (prefers-reduced-motion:no-preference){.toast{animation:.16s ease-out toast-in}}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.search-results{gap:var(--s-2);flex-direction:column;max-width:760px;margin:0;padding:0;list-style:none;display:flex}.search-result{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);transition:background .14s,border-color .14s;display:flex}.search-result:hover{background:var(--surface-3);border-color:var(--border-strong)}.search-result-main{flex-direction:column;gap:2px;min-width:0;display:flex}.search-result-title{font-weight:600}.section-title{align-items:baseline;gap:var(--s-2);font-size:var(--t-xs);color:var(--faint);text-transform:uppercase;letter-spacing:.07em;margin:0 0 var(--s-3);font-weight:600;display:flex}.section-count{color:var(--faint)}section+section{margin-top:var(--gap-section)}.catalog{gap:var(--s-5);grid-template-columns:repeat(auto-fill,minmax(248px,1fr));display:grid}.catalog-controls{justify-content:space-between;align-items:center;gap:var(--s-3);margin:0 0 var(--s-4);flex-wrap:wrap;display:flex}.filter-chips{gap:var(--s-2);flex-wrap:wrap;display:flex}.chip{font:inherit;font-size:var(--t-sm);border-radius:var(--r-full);cursor:pointer;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);padding:6px 14px;transition:background .14s,color .14s,border-color .14s}.chip:hover{color:var(--text);border-color:var(--border-strong)}.chip.is-active{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent);font-weight:600}.sort-select{align-items:center;gap:var(--s-2);font-size:var(--t-sm);display:inline-flex}.sort-select select{font:inherit;font-size:var(--t-sm);border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--text);cursor:pointer;padding:6px 10px}.sort-select select:focus-visible{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.course-source{margin:var(--s-3) 0 0;font-size:var(--t-sm)}.course-source a{color:var(--accent);font-weight:500}.course-source a:hover{text-decoration:underline}.course-card,.continue-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--pad-card);box-shadow:var(--shadow-md);transition:transform .16s,box-shadow .16s,border-color .16s}.course-card:hover,.continue-card:hover{box-shadow:var(--shadow-lg);border-color:var(--accent-line);transform:translateY(-3px)}.course-card .cover,.continue-card .cover{transition:transform .28s}.course-card:hover .cover,.continue-card:hover .cover{transform:scale(1.015)}.card-body{padding:0}.card-body h3{margin:var(--s-3) 0 var(--s-1);font-size:var(--t-h2);color:var(--text);transition:color .15s}.course-card:hover .card-body h3{color:var(--accent)}.card-body .muted{font-size:var(--t-sm)}.card-meta{font-size:var(--t-sm);color:var(--faint);margin:var(--s-2) 0 0}.card-foot{align-items:center;gap:var(--s-2);margin-top:var(--s-3);display:flex}.card-bar{background:var(--surface-1);border-radius:var(--r-full);flex:1;height:4px;overflow:hidden}.card-bar-fill{background:var(--accent);height:100%}.card-pct{font-size:var(--t-xs);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.card-done{font-size:var(--t-xs);color:var(--success);align-items:center;gap:4px;font-weight:600;display:inline-flex}.cover{aspect-ratio:16/9;border-radius:var(--r-sm);background:radial-gradient(120% 120% at 80% 8%, hsl(var(--cover-h) 58% 72%), transparent 60%), linear-gradient(135deg, hsl(var(--cover-h) 52% 63%), hsl(calc(var(--cover-h) + 40) 48% 52%));position:relative;overflow:hidden}.cover:after{content:"";opacity:.6;background-image:linear-gradient(#ffffff2e 1px,#0000 1px),linear-gradient(90deg,#ffffff2e 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask:radial-gradient(80% 80% at 50% 25%,#000,#0000);mask:radial-gradient(80% 80% at 50% 25%,#000,#0000)}.cover-mono{font:700 32px/1 var(--font-ui);letter-spacing:-.02em;color:hsl(var(--cover-h) 48% 26%);opacity:.9;position:absolute;bottom:10px;left:14px}.cover-source{letter-spacing:.02em;background:color-mix(in srgb, var(--surface-1) 88%, transparent);color:hsl(var(--cover-h) 48% 28%);border:1px solid color-mix(in srgb, hsl(var(--cover-h) 40% 40%) 35%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;position:absolute;top:8px;right:8px}.continue-row{gap:var(--s-5);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.continue-card{position:relative}.continue-body{padding:0}.continue-card h4{margin:var(--s-3) 0 var(--s-1);font-size:var(--t-h2)}.continue-card .muted{font-size:var(--t-sm)}.resume-badge{align-items:center;gap:var(--s-1);font-size:var(--t-xs);background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line);border-radius:var(--r-sm);font-variant-numeric:tabular-nums;padding:2px 8px;font-weight:600;display:inline-flex}.card-progress{background:var(--surface-1);border-radius:var(--r-full);height:4px;margin-top:var(--s-3);overflow:hidden}.card-progress-fill{background:var(--accent);height:100%}.desc{max-width:70ch;color:var(--muted);margin:var(--s-4) 0 0}.course-progress{align-items:center;gap:var(--s-4);margin-top:var(--s-5);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--pad-card);flex-wrap:wrap;display:flex}.progress-track{background:var(--surface-3);border-radius:var(--r-full);flex:1;min-width:180px;height:8px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:var(--r-full);height:100%;transition:width .3s}.module{margin-top:var(--gap-section)}.module h2{font-size:var(--t-h2);color:var(--text);margin:0 0 var(--s-3);align-items:baseline;gap:var(--s-2);display:flex}.module-sub{font-size:var(--t-sm);color:var(--faint);font-weight:400}.clips{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);margin:0;padding:0;list-style:none;overflow:hidden}.clips li+li{border-top:1px solid var(--divider)}.clips li a{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);min-height:44px;display:flex}.clips li a:hover{background:var(--surface-2)}.clips .check{justify-content:center;width:18px;display:flex}.clips .clip-title{flex:1}.status-done{color:var(--success)}.status-started{color:var(--accent)}.status-active{color:var(--active)}.status-unstarted{color:var(--faint)}.player-page{gap:var(--s-7);grid-template-columns:minmax(0,1fr) 360px;align-items:start;display:grid}.player-main .crumbs{margin-bottom:var(--s-4)}.player-stage{position:relative}.player-stage:before{content:"";z-index:-1;background:radial-gradient(60% 70% at 50% 45%, color-mix(in srgb, var(--accent-soft) 60%, transparent), transparent 70%);height:120%;position:absolute;inset:-6% -4% auto}.video-wrap{border-radius:var(--r-md);box-shadow:inset 0 0 0 1px #14281e0f, var(--shadow-lg), 0 40px 80px -40px #14322338;background:#000;border:none;overflow:hidden}.video-wrap:focus-within{box-shadow:inset 0 0 0 1px var(--accent-line), var(--shadow-lg), 0 44px 90px -40px #0f9d6b2e}.video-wrap video{background:#000;width:100%;max-height:min(78vh,100vh - 320px);display:block}.upnext-overlay{text-align:center;place-content:center;gap:var(--s-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--r-md);color:var(--surface-1);background:#0a1410cc;display:grid;position:absolute;inset:0}.upnext-overlay .muted{color:#ffffffb3}.upnext-overlay h3{color:#fff;margin:0}.upnext-actions{gap:var(--s-2);margin-top:var(--s-2);justify-content:center;display:flex}.upnext-cancel{color:#fff;background:0 0;border:1px solid #ffffff59}.upnext-cancel:hover{background:#ffffff1f}.upnext-bar{background:var(--accent);height:2px;transition:width 1s linear;position:absolute;bottom:0;left:0}.player-bar{justify-content:space-between;align-items:flex-start;gap:var(--s-4);margin-top:var(--s-6);flex-wrap:wrap;display:flex}.player-bar .eyebrow{color:var(--muted);letter-spacing:.06em;margin-bottom:var(--s-1);font-weight:600}.player-bar h2{font-size:var(--t-h1);margin:0}.player-actions{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.mark-btn{color:var(--text);background:0 0}.mark-btn:hover{background:var(--surface-2)}.mark-btn[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.player-actions .prev-btn{color:var(--muted);border-color:#0000}.player-actions .prev-btn:hover{background:var(--surface-2);color:var(--text)}.outline{top:calc(var(--header-h) + var(--s-4));max-height:calc(100vh - var(--header-h) - var(--s-7));background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-4);position:sticky;overflow:auto}.outline-head{margin:0 0 var(--s-3);padding-bottom:var(--s-3);border-bottom:1px solid var(--divider)}.outline .back{align-items:center;gap:var(--s-1);color:var(--accent);font-weight:600;font-size:var(--t-sm);display:inline-flex}.outline-progress{font-size:var(--t-xs);color:var(--muted);font-variant-numeric:tabular-nums;margin:var(--s-2) 0 0}.outline-bar{background:var(--surface-3);border-radius:var(--r-full);height:3px;margin-top:7px;overflow:hidden}.outline-bar>i{background:var(--accent);border-radius:var(--r-full);height:100%;transition:width .3s;display:block}.outline-module{margin-bottom:var(--s-1)}.outline-module:first-of-type .o-mod-head{margin-top:0}.o-mod-head{justify-content:space-between;align-items:baseline;gap:var(--s-2);margin:var(--s-4) 0 6px;display:flex}.o-mod-name{font-size:var(--t-sm);color:var(--text);font-weight:700}.o-mod-count{font-size:var(--t-xs);color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.o-mod-count[data-done]{color:var(--success)}.o-mod-bar{height:2px;margin:0 0 var(--s-2);background:var(--surface-3);border-radius:var(--r-full);overflow:hidden}.o-mod-bar>i{background:var(--accent);opacity:.55;border-radius:var(--r-full);height:100%;transition:width .3s;display:block}.outline ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.outline li a{align-items:start;column-gap:var(--s-3);padding:var(--s-2);border-radius:var(--r-sm);font-size:var(--t-sm);grid-template-columns:22px minmax(0,1fr) auto;transition:background .12s;display:grid}.outline li a:hover{background:var(--surface-2)}.o-idx{width:22px;font:700 var(--t-xs)/1.35 var(--font-ui);font-variant-numeric:tabular-nums;color:var(--muted);justify-content:center;align-items:flex-start;padding-top:1px;display:inline-flex;position:relative}.outline li.done .o-idx{color:var(--accent)}.outline li.active .o-idx{color:var(--active)}.o-idx-bar{background:var(--accent);border-radius:var(--r-full);transform-origin:0;width:100%;height:2px;position:absolute;bottom:-1px;left:0}.outline li .clip-title{min-width:0;color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box;overflow:hidden}.outline li.done .clip-title{color:var(--muted)}.o-dur{font-size:var(--t-xs);color:var(--muted);font-variant-numeric:tabular-nums;flex:none;padding-top:2px}.outline li.active a{background:color-mix(in srgb, var(--active-soft) 55%, transparent);box-shadow:inset 3px 0 var(--active)}.outline li.active .clip-title{color:var(--text);font-weight:600}.outline li.active a:focus-visible{outline-color:var(--active)}@media (prefers-reduced-motion:no-preference){.player-stage{animation:.22s ease-out stage-in}.upnext-overlay{animation:.2s ease-out upnext-in}}@keyframes stage-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes upnext-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}@media (width<=860px){.player-page{grid-template-columns:1fr}.outline{border-left:none;border-top:1px solid var(--divider);max-height:none;padding:var(--s-5) 0 0;position:static}.video-wrap video{aspect-ratio:16/9;object-fit:contain;max-height:none}}@media (width<=560px){.topbar-inner{gap:var(--s-3);padding:0 var(--s-3)}.brand span,.hsearch-kbd,.header-divider,.account-id,.account-caret{display:none}.content{padding:var(--s-5) var(--s-4)}}@media (pointer:coarse){.link-btn,.next-btn{min-height:44px}}
