@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-BalHKn7d.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-qxMiU51n.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:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-400-normal-FfmJh7DR.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-400-normal-DPp7N0cD.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:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-next-latin-ext-700-normal-CBw-mJf_.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-700-normal-292QVhS1.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:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-next-latin-700-normal-Dpiyiu63.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-700-normal-C2qZD_Q9.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAASUABAAAAAACRAAAAQ3AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVEwAdBEICoRkg3oLIAABNgIkAzoEIAWFHgeBFAwHG3AHKB4HzukrRjyF5Gb4kQ/B873d17mv8TWkoqUUGaHodJCtoqntw7m8tiPWyGkfWDU/IMpzVk4zAs9Czv3c7Os5NvKFG1Ht9vBVXySRZpJc4tTrbM3sTRFcLa3zVboKWRIoAksKSKgqUQWEwlSoqjp44V5J9/kjd0+Fi5xaFjwJArgBAIJgIAgCCAI4CdNMqGuYXYUKdADLAkAAJwl6iX0+bZqEm1AH0Hu9rvrJHwxQG1Q/gFYwWYbgTRWgwEESVzbmtjQAt3DXO7Tu/+9Q/KNKWhTCgZ8fQSWoL0CUUgTBjgL8iEAcce7YHBeA8ZvogieCnxI0BCVeACCAAhBD/oDcAdUPABSgAX4kBPBTwjCAjwYSCneiqF65LUo/qXdYFrRwTujtMrKm07plTbSqLQFAiHBN7E4DG5wkiGXhCYBNETh3K/AciHN69iFfQjFOr9EXQQAAQXRNszs8PR0OH4fDV/dwGe76CHdj1MQa11DXYGcfZ6+B1X0OfwjY+i7KpQ1w9d+1z3/HydCB1f3U8A0fRFv+0bXxPWrZu3d9Nn4UcbLs/QCXLH/j3PCKblKOiZxLOR78W9brPo7eGTLz/F27ZPmePQdCB1YP4nJU91o4gU9cy64L3c3SPu8GfDn6ZXD2cGmllVqSxtD5vCXHm5xaeHlnpffx7DcPvXog5NnjA//cPz2btsz3yf+0MI8ri33tuv7upNbYmW5STbosW8bYItV/SPzxvXC0KnpWnFdC91oojit5Lyo6WcJQ1YzwBYbi52ohJVpcxfcHBqsv0nFz8U74rzS6M7r0RVlXZ3jJC4G92O//7Lm78VOtnUx+aQxAzsqPnrRr1t9zDrezKePvZ027x+fGte4s4NXu7/jEp3G9cM1bICYgACbuETUUD5wmenGXA/IBpAKVrl0AEJ5cqr6Q89tGq+SpqkDfX2DtG+pZ9teuae0AX98c301CX179InyErnSG8WCiABB4HFbVrw/lpTdBIOk82nXbpHKoQGyBpUovAAD4XQA8ZTUCeBJHIpI0v0FRrgcnckV3ANckrwYJKXEihQfdSKPER6XeExmEeEMmSe6QBwWmkZdmSOSthhibgIkBlUYreBKd/0NeVAE9WAyEaQpH6KikDWlUVg43Jy2FOmaYlsZhDEGZXO3mWEyWHI6zuaJkMlcSQ9k4F+KidIiFyZItGDc7r1pUj6wP6zrWB0/fbeeFeHl4YOvETMNiM8Ny+7OO6Qh2wur20YVxFts5dlORdl5Kwd5utR7SRcxqX8RA5Ehacha76hg7c6yzNm/Xf6vOLNrv544lIEkWg7xWo/ItBAeIJEmt0XgBwgM8gTifoiiLJroYYooNTeziEKe4zOoR/wvIKp89hSr+6jFAqw/LaonjmZHSscMNg4iPlWpFrO1RN3zkMU+/xUP+JQ99TbvTl1Vg0gtirT6lbwYAAAA=)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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2)format("woff2"),url(/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,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)format("woff2"),url(/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.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,d09GRgABAAAAAAZEAA8AAAAACCwAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABYAAAAWABEABEdQT1MAAAFwAAAASwAAAGYrviSMR1NVQgAAAbwAAAAnAAAAKLj8uOpPUy8yAAAB5AAAAEsAAABgX26jxFNUQVQAAAIwAAAAOQAAAETle8wfY21hcAAAAmwAAABDAAAAZAHsImBnYXNwAAACsAAAAAgAAAAIAAAAEGdseWYAAAK4AAABWwAAAaLmwCeFaGVhZAAABBQAAAA2AAAANiI8FmNoaGVhAAAETAAAAB8AAAAkCNwCamhtdHgAAARsAAAAIAAAACYPwAD9bG9jYQAABIwAAAAWAAAAFgJZAcJtYXhwAAAEpAAAABwAAAAgABoAwm5hbWUAAATAAAABMQAAArQ8M2PVcG9zdAAABfQAAABNAAAAYifABt8AAQAAAAwAAAAAAAAAAgABAAEAAwABAAB42j3HpQECQAAAwHvBNZOZgBWQRGQAtOA2Py7XTkBVV08cjMYTze3suteU4X4XEDar816Zz2RRWVAWtUFXRxAFSRAlUfjPAyrAB5UAeNpjYGRgYOBiUANCJhc3nxAGoZzEkjwGPgYQYAER//+DSABaSQVVAHjaY2BhymOKYGBlYGDqAtIMDN4QmjGOQYPRlQEVsAMxE4wT4u/tz3CAgVdhCwvffyUGBlYBxhQFBsbJIDkmWaaXQEqBgRkAx84KLQB42h3EAQaAQBQFwHm/sBRCR+hQAQQqAixdPxqMiKaw/m/qPa+egbsfTyYxWgTSascgKjMIH60eBEoAAAB42mNgYGACYmYgFgGSjGCahSEASAsAIUicl0GBwZFhAcNBRiaFLf//Y4r8//n/yf8D/1P/O/5nvB8MNAMNAADxJBRiAAABAAH//wAPeNpFEDVCQ1EsyS+/irt7vVhdcHdnKidApq5AD4D7jPtF8Bkf/4K71/te3BPggQ2AqogDBvgghnCAaH1mLLow14c2Evy8B5GWa2p+emtqbjwAQK4soE3iXPkiAC1qMVuWyY/WMmJkp5EdNv+eWuycg7if+PV1jMAe+Pvz5jAPJAUEcGUKYA8OAva7gF0IajgGAvXfM/XTC6SA2TOhwWjQ66TS7CyWn11C2qK4uNgYPsvXxmKWVKrXGQ3GbNfomSyfjY2Ji9MWGYzaMFLjGMsTp5tkyqao4dDmwdLagRI+E2L6Pa8dLObzQixU9utgeZJ0s1TVGDUsaR7ExRa+MDY5PT9JWmDrVuvt1uRYkbDl167vtSbFikXNzQJBnN+tAQQHObGdyQUGINqo5TvqZwfIubrq83BMhvvC7hll2sBYmF/aocBBlOfkyHEAFe3k1NQrXTFZqnr1P7mPVBIAAAEAAAACEi2ts6lGXw889QADA+gAAAAA3bEsGAAAAADgp5Nc/1v/BQVwBNoAAAAGAAIAAAAAAAB42mNgZGBg4fuvxMDAuul/9N8e1gKgCCrgBACANgVOAHjaY2pgsGHawsANwwzrGRhgmGkxgw6QVcJQAgCIMQbIAAAAIQA7AEcAUwBTAFMAUwCnALQA0QAAeNpjYGRgYOBiSGFgZ4hhYAXzEICZgREAE7gA3XjaldEDklxRFAbgb2wUgvIrxEk7LsS27TZeM1hIsKCsIBsKbsaey2P9mPTNgL7BMfzsezZH98n17Z2j+0337Z6jB1zya44eXGIz5JQfc/SwlNIcPe2YzH+6b8CkOfu+UbN2ztETJo3P0f8o7onVvdVwVddbNWXv3ZdXV3ZOrOaDx/LKikq64XY1dZySlNTxXltZU1dHQkdZTUKsrSjptktuuKOmp+Oat6reaods90PmjiOrMj6S1w6xYg2RjISU49JOKyroioNlx3MpCSclZKW8XGb5wG3X3XZ62/nvySvqqf2zXfCOVvhHCxGiVRHOizV90V6YXCQjFW7kgZK8aEuR72iLVeS9D1HO6gUcYu2g378Kk6JysOh5J+G9WF0yzKwq1vVFU15yk6kc+AOSEmhBAAAAeNpjYGIAg/+pDBoM2AAXEKswnGRkYmBmZGZkYWRlZGNkZ3NMKkotS2Uvzcs0MHA0YHIOAjGNDJxMOBOTS0tSk/Nzk8CSxgZmAO8vD8MAAAA=)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;--surface:#f8f9fa;--surface-dim:#d9dadb;--surface-bright:#f8f9fa;--surface-container-lowest:#fff;--surface-container-low:#f3f4f5;--surface-container:#edeeef;--surface-container-high:#e7e8e9;--surface-container-highest:#e1e3e4;--on-surface:#191c1d;--on-surface-variant:#444653;--inverse-surface:#2e3132;--inverse-on-surface:#f0f1f2;--outline:#757685;--outline-variant:#c5c5d5;--surface-tint:#3c54c4;--primary:#3951c1;--on-primary:#fff;--primary-container:#dee1ff;--on-primary-container:#001258;--secondary:#8e4d20;--secondary-container:#ffdbc8;--tertiary:#0d6a3e;--tertiary-container:#a1f5bc;--on-tertiary-container:#00210f;--error:#ba1a1a;--error-container:#ffdad6;--background:#f8f9fa;--header-surface:#f8f9fadb;--nav-surface:#f8f9faf0;--toast-surface:#fffffff0;--chrome-border:#c5c5d599;--staff-line:#30303d38;--key-white:#fff;--key-black:#20242a;--key-bed:#2e3132;--radius-sm:.25rem;--radius:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-full:999px;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--space-6:4rem;--max-width:1200px;--font-heading:"Plus Jakarta Sans", system-ui, sans-serif;--font-body:"Atkinson Hyperlegible Next", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--shadow-soft:0 24px 60px #3c54c414;--shadow-press:inset 0 2px 8px #191c1d14;--ease-tactile:cubic-bezier(.34, 1.56, .64, 1);--border-card:1px solid #3951c124;--border-strong:1px solid #3951c147;--focus-ring:3px solid #3951c173}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface:#14161a;--surface-dim:#0f1115;--surface-bright:#1b1e24;--surface-container-lowest:#0f1115;--surface-container-low:#181b21;--surface-container:#1d2027;--surface-container-high:#23262e;--surface-container-highest:#2a2e37;--on-surface:#e6e7ea;--on-surface-variant:#b6b9c4;--inverse-surface:#e1e3e4;--inverse-on-surface:#1a1c1d;--outline:#8a8c98;--outline-variant:#3a3d47;--surface-tint:#b9c3ff;--primary:#b9c3ff;--on-primary:#001258;--primary-container:#1f3aab;--on-primary-container:#dee1ff;--secondary:#ffb68a;--secondary-container:#713709;--tertiary:#85d8a2;--tertiary-container:#00522d;--on-tertiary-container:#a1f5bc;--error:#ffb4ab;--error-container:#93000a;--background:#101216;--header-surface:#14161ae0;--nav-surface:#14161af0;--toast-surface:#1d2027f5;--chrome-border:#3a3d47cc;--staff-line:#b6b9c43d;--shadow-soft:0 24px 60px #00000073;--shadow-press:inset 0 2px 8px #00000080;--border-card:1px solid #b9c3ff29;--border-strong:1px solid #b9c3ff52;--focus-ring:3px solid #b9c3ff8c}[data-color-blind=true]{--primary:#0072b2;--primary-container:#cfe6f5;--on-primary-container:#00263a;--secondary:#d55e00;--secondary-container:#ffe0cc;--tertiary:#009e73;--tertiary-container:#c8efe2}[data-theme=dark][data-color-blind=true]{--primary:#56b4e9;--primary-container:#00405f;--on-primary-container:#cfe6f5;--secondary:#e69f54;--secondary-container:#5a2a00;--tertiary:#4fc3a1;--tertiary-container:#00432f}*{box-sizing:border-box}html{background:var(--background);color:var(--on-surface);font-family:var(--font-body);text-rendering:optimizelegibility;line-height:1.6}body{background:var(--background);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}a:hover{color:var(--primary)}:focus-visible{outline:var(--focus-ring);outline-offset:3px}h1,h2,h3,p{margin-block-start:0}h1,h2,h3{font-family:var(--font-heading);letter-spacing:0;line-height:1.2}h1{max-inline-size:12ch;margin-block-end:var(--space-2);padding-block:.03em;font-size:4.75rem}h2{margin-block-end:var(--space-1);font-size:2rem}p{color:var(--on-surface-variant)}code{font-family:var(--font-mono);font-size:.9em}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:10;border-radius:var(--radius);background:var(--inverse-surface);color:var(--inverse-on-surface);padding:.75rem 1rem;position:fixed;inset-block-start:var(--space-2);inset-inline-start:var(--space-2);transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.app-shell{min-height:100vh;grid-template-rows:auto 1fr auto;min-inline-size:0;display:grid}.app-header{z-index:5;justify-content:space-between;align-items:center;gap:var(--space-3);background:var(--header-surface);border-block-end:1px solid var(--chrome-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);min-inline-size:0;padding:1rem clamp(1rem,5vw,4rem);display:flex;position:sticky;inset-block-start:0}.brand-mark{align-items:center;gap:.75rem;min-inline-size:max-content;display:inline-flex}.brand-mark__icon{border-radius:var(--radius-full);background:var(--primary-container);block-size:2.75rem;inline-size:2.75rem;color:var(--primary);box-shadow:var(--shadow-press);place-items:center;display:grid}.brand-mark strong,.brand-mark small{display:block}.brand-mark small{color:var(--on-surface-variant);font-size:.82rem}.primary-nav{border-radius:var(--radius-full);background:var(--surface-container-low);align-items:center;gap:.4rem;padding:.35rem;display:flex}.primary-nav__link{border-radius:var(--radius-full);min-block-size:2.5rem;color:var(--on-surface-variant);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:.45rem;padding:0 .95rem;font-weight:700;display:inline-flex}.primary-nav__link.is-active{background:var(--surface-container-lowest);color:var(--primary);box-shadow:var(--shadow-soft)}.more-menu{display:inline-flex;position:relative}.more-menu__scrim{z-index:40;background:0 0;position:fixed;inset:0}.more-menu__panel{z-index:50;max-block-size:min(80vh,32rem);min-inline-size:15rem;max-inline-size:18rem;padding:var(--space-2);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-lowest);gap:.75rem;animation:.18s cubic-bezier(.34,1.56,.64,1) more-menu-in;display:grid;position:absolute;inset-block-start:calc(100% + .5rem);inset-inline-end:0;overflow-y:auto;box-shadow:0 18px 48px #0000002e}@keyframes more-menu-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.more-menu__panel-header{justify-content:space-between;align-items:center;display:none}.more-menu__close{border-radius:var(--radius-full);background:var(--surface-container);block-size:2rem;inline-size:2rem;color:var(--on-surface-variant);cursor:pointer;border:0;place-items:center;display:grid}.more-menu__group{gap:.15rem;display:grid}.more-menu__group-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);margin:0;padding-inline:.6rem;font-size:.72rem;font-weight:700}.more-menu__item{border-radius:var(--radius-md);min-block-size:2.75rem;color:var(--on-surface);align-items:center;gap:.6rem;padding:0 .6rem;font-weight:600;text-decoration:none;display:flex}.more-menu__item svg{color:var(--on-surface-variant)}.more-menu__item:hover{background:var(--surface-container)}.more-menu__item.is-active{background:var(--primary-container);color:var(--on-primary-container)}.more-menu__item.is-active svg{color:var(--on-primary-container)}.bottom-nav{display:none}.app-footer__links{flex-wrap:wrap;gap:.25rem 1rem;display:flex}.app-footer__links a{color:var(--on-surface-variant);font-weight:600;text-decoration:none}.app-footer__links a:hover{color:var(--primary);text-decoration:underline}.app-main{inline-size:min(100%, calc(var(--max-width) + 8rem));min-inline-size:0;max-inline-size:100vw;margin-inline:auto;padding:clamp(2rem,5vw,4rem) clamp(1rem,5vw,4rem)}.app-footer{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) clamp(1rem, 5vw, 4rem);border-block-start:1px solid var(--outline-variant);display:flex}.app-footer p{align-items:center;gap:.5rem;max-inline-size:36rem;margin:0;font-size:.95rem;display:flex}.toast-region{z-index:30;pointer-events:none;gap:.65rem;inline-size:min(24rem,100vw - 2rem);display:grid;position:fixed;inset-block-start:5.5rem;inset-inline-end:clamp(1rem,4vw,2rem)}.toast{border:var(--border-card);border-radius:var(--radius-lg);background:var(--toast-surface);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:auto minmax(0,1fr);gap:.65rem;padding:.8rem .9rem;display:grid}.toast svg{margin-block-start:.2rem}.toast strong,.toast span{display:block}.toast span{color:var(--on-surface-variant);font-size:.9rem}.toast--success svg{color:var(--tertiary)}.toast--warning svg{color:var(--secondary)}.toast--error svg{color:var(--error)}.page-stack{gap:var(--space-6);min-inline-size:0;display:grid}.page-stack>*{min-inline-size:0;max-inline-size:100%}.home-section{gap:var(--space-3);min-inline-size:0;display:grid}.home-hero{grid-template-columns:minmax(0,.9fr) minmax(22rem,1.1fr);align-items:center;gap:clamp(2rem,6vw,5rem);min-block-size:calc(100svh - 9rem);display:grid}.home-hero__content p{max-inline-size:34rem;font-size:1.22rem}.home-hero__lede{color:var(--on-surface-variant)}.hero-stats{gap:var(--space-3);margin:var(--space-1) 0 0;flex-wrap:wrap;display:flex}.hero-stats div{gap:.1rem;display:grid}.hero-stats dt{font-family:var(--font-heading);color:var(--primary);font-variant-numeric:tabular-nums;font-size:1.9rem;font-weight:700;line-height:1}.hero-stats dd{color:var(--on-surface-variant);margin:0;font-size:.85rem}.home-hero__note{margin:var(--space-1) 0 0;color:var(--on-surface-variant);font-size:.9rem}.home-hero__visual{gap:var(--space-3);display:grid}.home-action-strip{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.home-action-strip a{min-block-size:7rem;padding:var(--space-2);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-lowest);color:var(--on-surface);box-shadow:var(--shadow-soft);transition:transform .16s var(--ease-tactile), border-color .16s ease;align-content:start;gap:.35rem;text-decoration:none;display:grid}.home-action-strip a:hover,.home-action-strip a:focus-visible{border-color:#3951c147;transform:translateY(-3px)}.home-action-strip a>svg{color:var(--primary)}.home-action-strip strong{font-family:var(--font-heading);font-size:1.04rem}.home-action-strip span{color:var(--on-surface-variant);line-height:1.5}@media (prefers-reduced-motion:reduce){.home-action-strip a:hover,.home-action-strip a:focus-visible{transform:none}}.mission-map{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.mission-card{min-block-size:7rem;padding:var(--space-2);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-lowest);box-shadow:var(--shadow-soft);grid-template-columns:auto minmax(0,1fr);gap:.35rem .7rem;display:grid}.mission-card svg{color:var(--primary);margin-block-start:.15rem}.mission-card span,.mission-card strong,.mission-card small{min-inline-size:0}.mission-card span{color:var(--on-surface-variant);text-transform:uppercase;font-size:.75rem;font-weight:700}.mission-card strong,.mission-card small{grid-column:2}.mission-card strong{color:var(--on-surface);font-family:var(--font-heading);font-size:1.08rem;line-height:1.25}.mission-card small{color:var(--on-surface-variant);line-height:1.45}.skill-recommendations{gap:var(--space-2);display:grid}.skill-recommendations__header{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.2rem .6rem;display:grid}.skill-recommendations__header svg{color:var(--primary);grid-row:span 2}.skill-recommendations__header h2{margin:0}.skill-recommendations__header p{color:var(--on-surface-variant);grid-column:2;margin:0}.skill-recommendations__grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.skill-recommendation-card{padding:var(--space-2);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-lowest);box-shadow:var(--shadow-soft);color:inherit;gap:.4rem;text-decoration:none;display:grid}.skill-recommendation-card strong{color:var(--on-surface)}.skill-recommendation-card small{color:var(--on-surface-variant);line-height:1.45}.skill-recommendation-card__cta{color:var(--primary);align-items:center;gap:.3rem;font-weight:600;display:inline-flex}.practice-confidence{align-items:center;gap:.4rem;margin-inline-end:auto;display:inline-flex}.practice-confidence span{color:var(--on-surface-variant)}.learning-tracks{gap:var(--space-2);display:grid}.learning-tracks__header h2{margin:0}.learning-tracks__header p{color:var(--on-surface-variant);margin:.2rem 0 0}.learning-tracks__grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.learning-track-card{padding:var(--space-2);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-lowest);box-shadow:var(--shadow-soft);align-content:start;gap:.5rem;display:grid}.learning-track-card h3{margin:0}.learning-track-card p{color:var(--on-surface-variant);margin:0}.learning-track-card__next{color:var(--primary);align-items:center;gap:.3rem;font-weight:600;text-decoration:none;display:inline-flex}.learning-track-card__done{color:var(--tertiary);font-weight:600}.learning-track-card.is-active{border-color:var(--primary);box-shadow:0 0 0 2px #3951c124}.learning-track-card__focus{justify-self:start}.instrument-index{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.instrument-index a{min-block-size:13rem;padding:var(--space-3);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-lowest);box-shadow:var(--shadow-soft);gap:.5rem;display:grid}.instrument-index svg,.instrument-board__header svg{color:var(--primary)}.instrument-index span{color:var(--on-surface-variant);text-transform:uppercase;font-size:.75rem;font-weight:700}.instrument-index strong{color:var(--on-surface);font-family:var(--font-heading);font-size:1.2rem}.instrument-index p{margin:0}.instrument-index em{color:var(--primary);align-items:center;gap:.4rem;font-style:normal;font-weight:700;display:inline-flex}.instrument-map-list{flex-wrap:wrap;gap:.55rem;display:flex}.instrument-map-list span{border-radius:var(--radius);background:var(--surface-container-low);min-block-size:2.35rem;color:var(--on-surface);align-items:center;padding-inline:.75rem;font-weight:800;display:inline-flex}.instrument-lab-layout{gap:var(--space-4);grid-template-columns:minmax(17rem,.3fr) minmax(0,1fr);align-items:start;display:grid}.instrument-inspector,.instrument-lab-stage,.instrument-board{gap:var(--space-3);min-inline-size:0;display:grid}.instrument-inspector,.instrument-board{border-radius:var(--radius-lg);background:var(--surface-container-lowest);box-shadow:var(--shadow-soft);padding:clamp(1.1rem,3vw,1.6rem)}.instrument-inspector{position:sticky;inset-block-start:6rem}.instrument-inspector section{gap:.75rem;display:grid}.instrument-inspector h2,.instrument-board h2,.instrument-board p{margin:0}.instrument-inspector h2,.instrument-board h2{font-size:1.05rem}.instrument-inspector dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin:0;display:grid}.instrument-inspector dl div{border-radius:var(--radius);background:var(--surface-container-low);padding:.55rem}.instrument-inspector dt{color:var(--on-surface-variant);text-transform:uppercase;font-size:.72rem;font-weight:700}.instrument-inspector dd{color:var(--on-surface);margin:0;font-weight:800}.instrument-inspector select{border:var(--border-card);border-radius:var(--radius);background:var(--surface-container-low);min-block-size:2.7rem;color:var(--on-surface);padding:.55rem .7rem}.instrument-board__header{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.7rem;display:grid}.interactive-piano{gap:.65rem;display:grid}.interactive-piano__octave{grid-template-columns:4rem repeat(12,minmax(2.4rem,1fr));align-items:stretch;gap:.3rem;display:grid}.interactive-piano__octave>span{color:var(--on-surface-variant);text-transform:uppercase;place-items:center;font-size:.76rem;font-weight:800;display:grid}.interactive-piano button,.drum-pad-grid button{border-radius:var(--radius);background:var(--surface-container-low);min-block-size:3.5rem;min-inline-size:0;color:var(--on-surface);cursor:pointer;touch-action:none;border:1px solid #0000;font-weight:800;transition:transform 80ms,background .12s}.interactive-piano button:active,.drum-pad-grid button:active{transform:scale(.94)}.interactive-piano button.is-black{background:var(--inverse-surface);color:var(--inverse-on-surface)}.interactive-piano button.is-active,.interactive-piano button:hover,.interactive-piano button:focus-visible,.drum-pad-grid button[aria-pressed=true],.drum-pad-grid button:hover,.drum-pad-grid button:focus-visible{background:var(--primary-container);color:var(--primary);box-shadow:var(--shadow-press);border-color:#3951c147}.interactive-piano button.is-bass{background:var(--secondary-container);color:var(--secondary);border-color:#8e4d2052}.interactive-piano button span{color:currentColor;min-block-size:1rem;font-size:.7rem;display:block}.chord-shape-strip{grid-template-columns:repeat(auto-fit,minmax(4rem,1fr));gap:.45rem;display:grid}.chord-shape-strip span{border-radius:var(--radius);background:var(--surface-container-low);gap:.15rem;min-block-size:4rem;padding:.55rem;display:grid}.chord-shape-strip strong,.chord-shape-strip b{color:var(--on-surface)}.chord-shape-strip em{color:var(--on-surface-variant);font-size:.74rem;font-style:normal}.fretboard-grid{gap:.4rem;padding-block-end:.4rem;display:grid;overflow-x:auto}.fretboard-grid__frets,.fretboard-grid__string{grid-template-columns:2.8rem repeat(13,minmax(2.8rem,1fr));gap:.25rem;min-inline-size:42rem;display:grid}.fretboard-grid__frets span,.fretboard-grid__string strong,.fretboard-grid__string span,.fretboard-grid__string .fretboard-cell{border-radius:var(--radius);place-items:center;min-block-size:2.3rem;font-weight:800;display:grid}.fretboard-grid__frets span{color:var(--on-surface-variant);font-size:.75rem}.fretboard-grid__string strong{background:var(--surface-container-low);color:var(--on-surface)}.fretboard-grid__string span,.fretboard-grid__string .fretboard-cell{background:var(--surface-container-low);color:var(--on-surface-variant);font-size:.78rem}.fretboard-grid__string .fretboard-cell{cursor:pointer;border:0;transition:transform 80ms,background .12s}.fretboard-grid__string .fretboard-cell:hover,.fretboard-grid__string .fretboard-cell:focus-visible{background:var(--surface-container-high)}.fretboard-grid__string .fretboard-cell:active{transform:scale(.92)}.fretboard-grid__string span.is-active,.fretboard-grid__string .fretboard-cell.is-active{background:var(--primary-container);color:var(--primary)}.fretboard-grid__string span.is-root,.fretboard-grid__string .fretboard-cell.is-root{background:var(--secondary-container);color:var(--secondary)}.drum-pad-grid{gap:.5rem;display:grid}.drum-pad-grid__row{grid-template-columns:5rem repeat(4,minmax(3rem,1fr));align-items:center;gap:.45rem;display:grid}.drum-pad-grid__row strong{color:var(--on-surface);text-transform:capitalize}.drum-pad-grid button.is-playing{background:var(--secondary-container);color:var(--secondary)}.voice-degree-ladder{grid-template-columns:repeat(8,minmax(0,1fr));gap:.45rem;display:grid}.voice-degree-ladder button{border-radius:var(--radius);background:var(--surface-container-low);min-block-size:4.8rem;color:var(--on-surface);cursor:pointer;border:1px solid #0000;gap:.1rem;font-weight:800;display:grid}.voice-degree-ladder button[aria-pressed=true],.voice-degree-ladder button:hover,.voice-degree-ladder button:focus-visible{background:var(--tertiary-container);color:var(--tertiary);border-color:#3951c147}.voice-degree-ladder span,.voice-degree-ladder em{color:var(--on-surface-variant);font-size:.72rem;font-style:normal}.interactive-lab{gap:var(--space-3);border-radius:var(--radius-lg);background:var(--surface-container-lowest);min-inline-size:0;box-shadow:var(--shadow-soft);padding:clamp(1.25rem,3vw,2rem);display:grid}.interactive-lab__header{gap:.25rem;display:grid}.interactive-lab__header h2,.interactive-lab__header p,.lab-status{margin:0}.interactive-lab__header p{max-inline-size:38rem}.lab-tabs{border-radius:var(--radius-lg);background:var(--surface-container-low);grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;padding:.35rem;display:grid}.lab-launchpad{grid-template-columns:repeat(5,minmax(0,1fr));gap:.6rem;display:grid}.launchpad-card{min-block-size:0;min-inline-size:0;padding:var(--space-2);border:var(--border-card);border-radius:var(--radius-md);background:var(--surface-container-low);color:var(--on-surface);cursor:pointer;text-align:start;transition:background .18s ease, border-color .18s ease, box-shadow .18s var(--ease-tactile), transform .18s var(--ease-tactile);grid-template-columns:auto minmax(0,1fr);align-content:start;gap:.3rem .6rem;display:grid}.launchpad-card:hover,.launchpad-card:focus-visible{box-shadow:var(--shadow-soft);border-color:#3951c147;transform:translateY(-2px)}.launchpad-card.is-active{border-color:var(--primary);background:var(--primary-container);color:var(--on-primary-container)}.launchpad-card svg{color:var(--primary);grid-row:1/-1;align-self:start;margin-block-start:.1rem}.launchpad-card.is-active svg{color:var(--on-primary-container)}.launchpad-card span{gap:.15rem;min-inline-size:0;display:grid}.launchpad-card strong{font-size:.95rem;line-height:1.2}.launchpad-card small,.launchpad-card b{min-inline-size:0}.launchpad-card small{color:var(--on-surface-variant);font-size:.8rem;line-height:1.35}.launchpad-card.is-active small{color:var(--on-primary-container);opacity:.85}.launchpad-card b{border-radius:var(--radius-full);background:var(--surface-container-high);color:var(--on-surface-variant);letter-spacing:.04em;text-transform:uppercase;grid-column:2;justify-self:start;margin-block-start:.15rem;padding:.1rem .5rem;font-size:.68rem;font-weight:700}.launchpad-card.is-active b{color:var(--on-primary-container);background:#ffffff75}.lab-tab{border-radius:var(--radius);min-block-size:2.55rem;min-inline-size:0;color:var(--on-surface-variant);cursor:pointer;transition:background .18s ease, box-shadow .18s var(--ease-tactile), transform .18s var(--ease-tactile);background:0 0;border:0;justify-content:center;align-items:center;gap:.45rem;padding:0 .6rem;font-weight:700;display:inline-flex}.lab-tab:hover,.lab-tab:focus-visible,.lab-tab.is-active{background:var(--surface-container-lowest);color:var(--primary);box-shadow:var(--shadow-press)}.lab-tab:active{transform:translateY(1px)}.lab-workspace{gap:var(--space-3);padding:var(--space-3);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-low);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;display:grid}.lab-controls,.lab-visuals,.control-group{gap:var(--space-2);min-inline-size:0;display:grid}.lab-controls{align-content:start}.lab-visuals{padding:var(--space-2);border-radius:var(--radius-md);background:var(--surface-container-lowest);align-content:start}.control-group>span{color:var(--on-surface-variant);text-transform:uppercase;font-size:.78rem;font-weight:700}.segmented-control,.rhythm-grid{gap:.45rem;display:grid}.segmented-control{grid-template-columns:repeat(auto-fit,minmax(3rem,1fr))}.rhythm-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.segmented-control button,.rhythm-grid button{border-radius:var(--radius);background:var(--surface-container-low);min-block-size:2.55rem;min-inline-size:0;color:var(--on-surface);cursor:pointer;transition:background .18s ease, border-color .18s ease, box-shadow .18s var(--ease-tactile), transform .18s var(--ease-tactile);border:1px solid #0000;font-weight:700}.segmented-control button:hover,.segmented-control button:focus-visible,.segmented-control button[aria-pressed=true],.rhythm-grid button:hover,.rhythm-grid button:focus-visible,.rhythm-grid button[aria-pressed=true]{background:var(--primary-container);color:var(--primary);box-shadow:var(--shadow-press);border-color:#3951c147}.rhythm-grid button[aria-pressed=true]{background:var(--secondary-container);color:var(--secondary);border-color:#8e4d2040}.segmented-control button:active,.rhythm-grid button:active{transform:translateY(1px)}.lab-status{min-block-size:1.5rem;color:var(--on-surface-variant);overflow-wrap:anywhere;font-size:.92rem}.lab-actions{flex-wrap:wrap;gap:.5rem;display:flex}.rhythm-preview{min-block-size:7.5rem;padding:var(--space-2);border-radius:var(--radius-lg);background:var(--surface-container-low);grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;display:grid}.rhythm-preview span{border-radius:var(--radius);background:var(--surface-container-lowest);min-block-size:5.5rem;min-inline-size:0;color:var(--on-surface-variant);place-items:center;padding:.4rem;font-weight:700;display:grid}.rhythm-preview span.is-active{background:var(--secondary);color:var(--on-primary)}.review-preview{min-block-size:7.5rem;padding:var(--space-2);border-radius:var(--radius-lg);background:var(--surface-container-low);text-align:center;place-items:center;gap:.45rem;display:grid}.review-preview svg{color:var(--tertiary)}.review-preview strong{color:var(--on-surface)}.review-preview span{color:var(--on-surface-variant)}.staff-mini-board{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;padding-block:.35rem;display:grid}.staff-mini-board button{border-radius:var(--radius);background:var(--surface-container-low);min-block-size:2.65rem;color:var(--on-surface);cursor:pointer;border:1px solid #0000;font-weight:700}.staff-mini-board button:hover,.staff-mini-board button:focus-visible,.staff-mini-board button[aria-pressed=true]{background:var(--primary-container);color:var(--primary);border-color:#3951c147}.interactive-goals{border-block-start:1px solid var(--outline-variant);grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;padding-block-start:var(--space-2);display:grid}.interactive-goal{border-radius:var(--radius);background:var(--surface-container-low);grid-template-columns:auto minmax(0,1fr);gap:.65rem;padding:.85rem;display:grid}.interactive-goal svg{color:var(--primary);margin-block-start:.15rem}.interactive-goal.is-now svg{color:var(--tertiary)}.interactive-goal.is-next svg{color:var(--secondary)}.interactive-goal span{color:var(--on-surface-variant);text-transform:uppercase;font-size:.72rem;font-weight:700;display:block}.interactive-goal strong{color:var(--on-surface);line-height:1.35;display:block}.interactive-goal p{margin:.2rem 0 0;font-size:.9rem}.interactive-goals__link{min-block-size:2.5rem;color:var(--primary);grid-column:1/-1;justify-self:start;align-items:center;gap:.5rem;font-weight:700;display:inline-flex}.practice-layout{gap:var(--space-4);grid-template-columns:minmax(16rem,.34fr) minmax(0,1fr);align-items:start;display:grid}.practice-module-list{gap:.65rem;display:grid;position:sticky;inset-block-start:6rem}.practice-module-card{border-radius:var(--radius-lg);background:var(--surface-container-lowest);min-block-size:6.4rem;inline-size:100%;min-inline-size:0;color:var(--on-surface);cursor:pointer;text-align:start;box-shadow:var(--shadow-soft);transition:background .18s ease, border-color .18s ease, box-shadow .18s var(--ease-tactile), transform .18s var(--ease-tactile);border:1px solid #0000;grid-template-columns:auto minmax(0,1fr);gap:.75rem;padding:.9rem;display:grid}.practice-module-card:hover,.practice-module-card:focus-visible,.practice-module-card.is-active{background:var(--surface-container-low);box-shadow:var(--shadow-press);border-color:#3951c147}.practice-module-card:active{transform:translateY(1px)}.practice-module-card:disabled{cursor:not-allowed;opacity:.72}.practice-module-card svg{color:var(--primary);margin-block-start:.15rem}.practice-module-card span{gap:.18rem;min-inline-size:0;display:grid}.practice-module-card strong,.practice-module-card small,.practice-module-card em,.practice-module-card b{min-inline-size:0}.practice-module-card strong{font-family:var(--font-heading);font-size:1.04rem}.practice-module-card small{color:var(--on-surface-variant);font-size:.88rem;line-height:1.45}.practice-module-card em,.practice-module-card b{color:var(--on-surface-variant);text-transform:uppercase;font-size:.72rem;font-style:normal;font-weight:700}.practice-module-card b{text-transform:none;grid-column:2}.practice-workbench{gap:var(--space-3);border-radius:var(--radius-lg);background:var(--surface-container-lowest);min-inline-size:0;box-shadow:var(--shadow-soft);padding:clamp(1.25rem,4vw,2rem);display:grid}.practice-workbench__header{gap:.25rem;display:grid}.practice-workbench__header h2,.practice-workbench__header p{margin:0}.practice-task{gap:var(--space-3);display:grid}.practice-setup{gap:var(--space-4);border-radius:var(--radius-lg);background:var(--surface-container-lowest);box-shadow:var(--shadow-soft);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;padding:clamp(1.25rem,4vw,2rem);display:grid}.practice-setup section,.practice-setup label{gap:.65rem;display:grid}.practice-setup h2{align-items:center;gap:.5rem;margin:0;font-size:1.1rem;display:inline-flex}.practice-setup input,.practice-setup select,.import-panel textarea,.song-lab input{border:var(--border-card);border-radius:var(--radius);background:var(--surface-container-low);min-block-size:2.7rem;inline-size:100%;color:var(--on-surface);font:inherit;padding:.55rem .7rem}.practice-session-summary{padding:var(--space-2);border-radius:var(--radius-lg);background:var(--tertiary-container);color:var(--tertiary);flex-wrap:wrap;align-items:center;gap:.75rem;font-weight:700;display:flex}.practice-session-summary__score{font-variant-numeric:tabular-nums}.practice-session-summary__actions{flex-wrap:wrap;gap:.5rem;inline-size:100%;display:flex}.practice-session-progress{padding:var(--space-1) var(--space-2);gap:.4rem;display:grid}.practice-session-progress__bar{border-radius:var(--radius-full);background:var(--surface-container-high);block-size:.5rem;overflow:hidden}.practice-session-progress__bar span{border-radius:var(--radius-full);background:var(--primary);block-size:100%;transition:inline-size .2s;display:block}.practice-session-progress__label{color:var(--on-surface-variant);font-variant-numeric:tabular-nums;font-weight:600}@media (prefers-reduced-motion:reduce){.practice-session-progress__bar span{transition:none}}.practice-prompt{gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-lg);background:var(--surface-container-low);grid-template-columns:auto minmax(0,1fr);display:grid}.practice-prompt svg{color:var(--tertiary);margin-block-start:.15rem}.practice-prompt span{color:var(--on-surface-variant);text-transform:uppercase;font-size:.78rem;font-weight:700;display:block}.practice-prompt p{color:var(--on-surface);margin:.2rem 0 0;font-size:1.2rem;font-weight:700}.practice-visuals{gap:var(--space-2);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.practice-choice-grid{grid-template-columns:repeat(auto-fit,minmax(4rem,1fr));gap:.55rem;display:grid}.practice-choice-grid button{border-radius:var(--radius-md);background:var(--surface-container-low);min-block-size:3.1rem;min-inline-size:0;color:var(--on-surface);cursor:pointer;font-family:var(--font-heading);transition:background .18s ease, border-color .18s ease, box-shadow .18s var(--ease-tactile), transform .18s var(--ease-tactile);border:1px solid #0000;place-items:center;gap:.1rem;font-weight:700;display:grid}.choice-kicker{color:var(--on-surface-variant);font-size:.68rem;font-family:var(--font-body);text-transform:uppercase}.practice-choice-grid button:hover,.practice-choice-grid button:focus-visible,.practice-choice-grid button[aria-pressed=true]{background:var(--primary-container);color:var(--primary);box-shadow:var(--shadow-press);border-color:#3951c147}.practice-choice-grid button:active{transform:translateY(1px)}.practice-audio-card,.practice-sequence{min-inline-size:0;padding:var(--space-2);border-radius:var(--radius-lg);background:var(--surface-container-low);flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.practice-audio-card>div{flex:1;gap:.15rem;min-inline-size:10rem;display:grid}.practice-audio-card strong,.practice-audio-card span{overflow-wrap:anywhere}.practice-audio-card svg{color:var(--primary)}.practice-audio-card p{min-block-size:1.3rem;color:var(--on-surface-variant);flex-basis:100%;margin:0;font-size:.9rem}.practice-sequence span{border-radius:var(--radius);background:var(--surface-container-lowest);min-block-size:2.1rem;color:var(--on-surface);align-items:center;padding:0 .75rem;font-weight:700;display:inline-flex}.direct-workbench{gap:var(--space-2);padding:var(--space-2);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-low);display:grid}.direct-workbench__header{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.65rem;display:grid}.direct-workbench__header svg{color:var(--primary);margin-block-start:.2rem}.direct-workbench h3,.direct-workbench p{margin:0}.direct-workbench h3{font-size:1.05rem}.staff-clef-toggle{grid-template-columns:repeat(auto-fit,minmax(5rem,max-content));gap:.4rem;display:inline-grid}.staff-clef-toggle button{border-radius:var(--radius);background:var(--surface-container-lowest);min-block-size:2.35rem;color:var(--on-surface-variant);cursor:pointer;border:1px solid #0000;padding-inline:.85rem;font-weight:700}.staff-clef-toggle button:hover,.staff-clef-toggle button:focus-visible,.staff-clef-toggle button[aria-pressed=true]{background:var(--primary-container);color:var(--primary);border-color:#3951c147}.staff-click-board{min-block-size:13rem;padding:var(--space-2);border-radius:var(--radius-lg);background:repeating-linear-gradient(to bottom, transparent 0, transparent 1.45rem, var(--staff-line) 1.48rem, var(--staff-line) 1.55rem), var(--surface-container-lowest);grid-template-rows:repeat(6,minmax(2rem,auto));grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;display:grid;position:relative}.staff-click-board__label{color:var(--on-surface-variant);text-transform:uppercase;font-size:.72rem;font-weight:700;position:absolute;inset-block-start:.55rem;inset-inline-end:.75rem}.staff-click-board button,.rhythm-token-row button,.piano-roll-builder button{border-radius:var(--radius);background:var(--surface-container-lowest);min-block-size:2.65rem;min-inline-size:0;color:var(--on-surface);cursor:pointer;border:1px solid #0000;font-weight:700}.staff-click-board button:hover,.staff-click-board button:focus-visible,.staff-click-board button[aria-pressed=true],.rhythm-token-row button:hover,.rhythm-token-row button:focus-visible,.rhythm-token-row button[aria-pressed=true],.piano-roll-builder button:hover,.piano-roll-builder button:focus-visible,.piano-roll-builder button[aria-pressed=true]{background:var(--primary-container);color:var(--primary);box-shadow:var(--shadow-press);border-color:#3951c147}.staff-click-board button:disabled,.rhythm-token-row button:disabled,.piano-roll-builder button:disabled{cursor:not-allowed;opacity:.64}.rhythm-token-row{grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));gap:.5rem;display:grid}.rhythm-token-row button{place-items:center;gap:.1rem;padding:.35rem;display:grid}.rhythm-token-row span{color:var(--on-surface-variant);font-size:.75rem}.rhythm-builder-strip,.piano-roll-lanes{border-radius:var(--radius);background:var(--surface-container-lowest);grid-template-columns:repeat(auto-fit,minmax(5.5rem,1fr));gap:.45rem;min-block-size:3rem;padding:.5rem;display:grid}.rhythm-builder-strip button,.piano-roll-lanes button{border:var(--border-card);border-radius:var(--radius);background:var(--surface-container-low);min-block-size:2.45rem;min-inline-size:0;color:var(--on-surface);cursor:pointer;font-weight:700}.rhythm-builder-strip button.is-playing{background:var(--secondary-container);color:var(--secondary);border-color:#8e4d2059}.rhythm-builder-strip>span,.piano-roll-lanes>span{color:var(--on-surface-variant);align-self:center}.piano-roll-builder{grid-template-columns:repeat(auto-fit,minmax(3.2rem,1fr));gap:.35rem;display:grid}.piano-roll-builder button.is-black{background:var(--inverse-surface);color:var(--inverse-on-surface)}.piano-roll-builder button.is-black[aria-pressed=true]{background:var(--secondary);color:var(--on-primary)}.piano-roll-builder button.is-scale-tone{background:var(--tertiary-container);color:var(--tertiary);border-color:#1d634f57}.piano-roll-builder button.is-off-scale{background:var(--error-container);color:var(--error);border-color:#b0002057}.auto-correct-toggle,.tap-tempo-strip{border-radius:var(--radius);background:var(--surface-container-lowest);flex-wrap:wrap;align-items:center;gap:.65rem;padding:.65rem .75rem;display:flex}.auto-correct-toggle button{border-radius:var(--radius);background:var(--surface-container-low);min-block-size:2.35rem;color:var(--on-surface);cursor:pointer;border:1px solid #0000;padding-inline:.85rem;font-weight:800}.auto-correct-toggle button[aria-pressed=true],.auto-correct-toggle button:hover,.auto-correct-toggle button:focus-visible{background:var(--primary-container);color:var(--primary);border-color:#3951c147}.auto-correct-toggle span,.tap-tempo-strip span{color:var(--on-surface-variant);font-size:.92rem}.tap-tempo-strip strong{color:var(--on-surface)}.workbench-readout{border-radius:var(--radius);background:var(--surface-container-lowest);min-block-size:2.4rem;color:var(--on-surface);overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:.45rem;padding:.65rem .75rem;font-weight:700;display:flex}.workbench-readout span{color:var(--on-surface-variant);font-weight:600}.workbench-readout.is-warning{background:var(--error-container);color:var(--error)}.workbench-tools{flex-wrap:wrap;gap:.55rem;display:flex}.piano-roll-lanes button{text-align:start;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.1rem .45rem;display:grid}.piano-roll-lanes button span{border-radius:var(--radius-full);background:var(--primary-container);block-size:1.6rem;inline-size:1.6rem;color:var(--primary);grid-row:span 2;place-items:center;font-size:.75rem;display:grid}.piano-roll-lanes button em{color:var(--on-surface-variant);text-transform:uppercase;font-size:.72rem;font-style:normal;font-weight:700}.harmony-slots{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.5rem;display:grid}.harmony-slots button{border-radius:var(--radius);background:var(--surface-container-lowest);min-block-size:4rem;color:var(--on-surface-variant);cursor:pointer;text-align:start;border:1px solid #0000;gap:.2rem;padding:.65rem;font-weight:700;display:grid}.harmony-slots button:hover,.harmony-slots button:focus-visible,.harmony-slots button.is-active{background:var(--primary-container);color:var(--primary);border-color:#3951c147}.harmony-slots strong{color:var(--primary);font-size:1.1rem}.harmony-slots em{color:var(--on-surface-variant);font-size:.75rem;font-style:normal}.practice-actions{flex-wrap:wrap;gap:.75rem;display:flex}.practice-actions .button:disabled{cursor:not-allowed;opacity:.58;transform:none}.practice-feedback{border-radius:var(--radius);background:var(--surface-container-low);min-block-size:2rem;margin:0;padding:.85rem 1rem;font-weight:700}.practice-feedback.is-correct{background:var(--tertiary-container);color:var(--tertiary)}.practice-feedback.is-incorrect{background:var(--error-container);color:var(--error)}.practice-result-panel{gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-lg);background:var(--surface-container-low);grid-template-columns:auto minmax(0,1fr);display:grid}.practice-result-panel.is-correct{background:var(--tertiary-container)}.practice-result-panel.is-incorrect{background:var(--error-container)}.practice-result-panel.pulse-correct,.practice-result-panel.pulse-incorrect,.practice-result-panel.pulse-saved,.practice-result-panel.pulse-selected{animation:interaction-pulse .32s var(--ease-tactile) both}.practice-result-panel>svg{color:var(--primary);margin-block-start:.15rem}.practice-result-panel strong,.practice-result-panel p{margin:0}.practice-result-panel p{margin-block-start:.3rem}.practice-result-panel dl{gap:.35rem;margin:.7rem 0 0;display:grid}.practice-result-panel dl div{gap:.1rem;display:grid}.practice-result-panel dt{color:var(--on-surface-variant);text-transform:uppercase;font-size:.72rem;font-weight:700}.practice-result-panel dd{overflow-wrap:anywhere;margin:0}.practice-hint{border-radius:var(--radius);background:#ffffff75;gap:.25rem;margin-block-start:.75rem;padding:.75rem;display:grid}.practice-hint span{color:var(--on-surface-variant)}.practice-hint a{color:var(--primary);font-weight:700}.practice-result-panel__actions{flex-wrap:wrap;grid-column:1/-1;gap:.75rem;display:flex}.practice-placeholder{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--surface-container-low);grid-template-columns:auto minmax(0,1fr);display:grid}.practice-placeholder svg{color:var(--primary);margin-block-start:.2rem}.song-lab{gap:var(--space-4);grid-template-columns:minmax(18rem,.82fr) minmax(0,1fr);align-items:start;display:grid}.song-lab__controls,.song-lab__stage{gap:var(--space-3);border-radius:var(--radius-lg);background:var(--surface-container-lowest);min-inline-size:0;box-shadow:var(--shadow-soft);padding:clamp(1.1rem,3vw,1.6rem);display:grid}.song-lab__controls section{gap:.65rem;display:grid}.song-lab__controls h2{margin:0;font-size:1.05rem}.pattern-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;display:grid}.pattern-row--wide{grid-template-columns:repeat(8,minmax(0,1fr))}.pattern-row button,.pattern-row span{border-radius:var(--radius);background:var(--surface-container-low);min-block-size:2.65rem;color:var(--on-surface);border:1px solid #0000;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.pattern-row button{cursor:pointer}.pattern-row button:hover,.pattern-row button:focus-visible,.pattern-row button[aria-pressed=true]{background:var(--primary-container);color:var(--primary);border-color:#3951c147}.pattern-row button.is-playing,.pattern-row span.is-playing{background:var(--secondary-container);color:var(--secondary);border-color:#8e4d2059}.track-mix-grid{gap:.45rem;display:grid}.track-mix-grid div{grid-template-columns:minmax(5rem,1fr) repeat(2,4.5rem);align-items:center;gap:.4rem;display:grid}.track-mix-grid strong{color:var(--on-surface);text-transform:capitalize}.track-mix-grid button{border-radius:var(--radius);background:var(--surface-container-low);min-block-size:2.25rem;color:var(--on-surface);cursor:pointer;border:1px solid #0000;font-weight:700}.track-mix-grid button[aria-pressed=true],.track-mix-grid button:hover,.track-mix-grid button:focus-visible{background:var(--primary-container);color:var(--primary);border-color:#3951c147}.song-lab__transport,.song-lab__summary{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.song-lab__transport p{align-items:center;gap:.35rem;min-block-size:1.5rem;margin:0;display:inline-flex}.song-lab__summary{padding:var(--space-2);border-radius:var(--radius-lg);background:var(--surface-container-low)}.song-lab__summary>div{gap:.2rem;display:grid}.song-lab__summary span{color:var(--on-surface-variant)}.song-lab__explanation{padding:var(--space-2);border-radius:var(--radius);background:var(--tertiary-container);color:var(--tertiary);margin:0;font-weight:700}.theory-context-panel{padding:var(--space-2);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-low);gap:.75rem;display:grid}.theory-context-panel h2{margin:0;font-size:1.18rem}.theory-context-panel dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin:0;display:grid}.theory-context-panel div{border-radius:var(--radius);background:var(--surface-container-lowest);gap:.2rem;min-inline-size:0;padding:.65rem;display:grid}.theory-context-panel dt{color:var(--on-surface-variant);text-transform:uppercase;font-size:.72rem;font-weight:800}.theory-context-panel dd{color:var(--on-surface);overflow-wrap:anywhere;margin:0;font-weight:800}.song-grid{gap:.45rem;display:grid}.song-grid__bar{grid-template-columns:1.5rem repeat(4,minmax(0,1fr));align-items:center;gap:.35rem;display:grid}.song-grid__bar>span{color:var(--on-surface-variant);font-weight:700}.song-grid__bar button{border-radius:var(--radius);background:var(--surface-container-low);min-block-size:2.35rem;color:var(--on-surface);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.3rem;font-weight:700;display:inline-flex}.song-grid__bar button[aria-pressed=true]{background:var(--secondary-container);color:var(--secondary);border-color:#8e4d2040}.sketch-toolbar,.import-panel{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--surface-container-lowest);box-shadow:var(--shadow-soft);display:grid}.sketch-toolbar{grid-template-columns:repeat(3,max-content) minmax(0,1fr);align-items:center}.sketch-toolbar p{color:var(--on-surface-variant);margin:0}.import-panel label{gap:.5rem;display:grid}.text-button{min-block-size:2rem;color:var(--primary);cursor:pointer;font:inherit;background:0 0;border:0;align-items:center;gap:.3rem;font-weight:700;display:inline-flex}.hero-actions,.lesson-reader__actions,.lesson-pager{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.button,.icon-button{cursor:pointer;transition:transform .18s var(--ease-tactile), box-shadow .18s var(--ease-tactile), background .18s ease;border:0}.button{border-radius:var(--radius-md);background:var(--primary);min-block-size:2.8rem;color:var(--on-primary);border-block-end:2px solid #1f3aab;justify-content:center;align-items:center;gap:.55rem;padding:0 1.1rem;font-weight:700;display:inline-flex}.button:hover,.button:focus-visible{color:var(--on-primary);box-shadow:var(--shadow-press);border-block-end-color:#0000;transform:translateY(1px)}.button--secondary{background:var(--secondary-container);color:var(--secondary);border-block-end-color:#c2784a}.button--secondary:hover,.button--secondary:focus-visible{color:var(--secondary)}.button--quiet{background:var(--surface-container-lowest);color:var(--on-surface);border-block-end-color:var(--outline-variant)}.button--quiet:hover,.button--quiet:focus-visible{color:var(--primary)}.icon-button{border-radius:var(--radius-full);border-block-end:2px solid var(--outline-variant);background:var(--surface-container-lowest);block-size:2.55rem;inline-size:2.55rem;color:var(--primary);place-items:center;display:grid}.icon-button:hover,.icon-button:focus-visible{box-shadow:var(--shadow-press);border-block-end-color:#0000;transform:translateY(1px)}.eyebrow{color:var(--on-surface-variant);letter-spacing:0;text-transform:uppercase;margin-block-end:.7rem;font-size:.75rem;font-weight:700;line-height:1;display:inline-block}.section-heading{max-inline-size:44rem}.section-heading p{font-size:1.08rem}.workspace-band{gap:var(--space-4);border-radius:var(--radius-lg);background:var(--surface-container-lowest);box-shadow:var(--shadow-soft);grid-template-columns:minmax(0,1fr) minmax(16rem,.48fr);align-items:start;padding:clamp(1.5rem,4vw,2rem);display:grid}.workspace-band__main{gap:var(--space-2);display:grid}.status-list{gap:.7rem;display:grid}.status-list span{min-block-size:2.5rem;color:var(--on-surface-variant);align-items:center;gap:.55rem;font-weight:700;display:flex}.progress-bar{gap:.45rem;inline-size:min(100%,32rem);display:grid}.progress-bar__label{justify-content:space-between;gap:var(--space-2);color:var(--on-surface-variant);font-size:.9rem;font-weight:700;display:flex}.progress-bar__track{border-radius:var(--radius-full);background:var(--surface-container-high);block-size:.8rem;position:relative;overflow:hidden}.progress-bar__fill{border-radius:inherit;background:var(--tertiary);position:absolute;inset:0 auto 0 0}.module-grid__items{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.module-tile,.module-section,.glossary-term,.bookmark-list,.lesson-progress-list,.decision-strip__item,.acceptance-panel{border-radius:var(--radius-lg);background:var(--surface-container-lowest)}.module-tile{min-block-size:13rem;padding:var(--space-3);box-shadow:var(--shadow-soft);border:1px solid #0000;gap:.65rem;display:grid}.module-tile strong{color:var(--on-surface);font-family:var(--font-heading);font-size:1.2rem}.module-tile span{color:var(--on-surface-variant)}.module-tile--melody svg,.course-rail__module--melody h2,.module-section--melody h2{color:var(--primary)}.module-tile--rhythm svg,.course-rail__module--rhythm h2,.module-section--rhythm h2{color:var(--secondary)}.module-tile--harmony svg,.course-rail__module--harmony h2,.module-section--harmony h2{color:var(--tertiary)}.learn-layout,.lesson-layout{gap:var(--space-4);grid-template-columns:minmax(15rem,.28fr) minmax(0,1fr);align-items:start;display:grid}.lesson-layout{grid-template-columns:minmax(14rem,.22fr) minmax(0,.58fr) minmax(14rem,.2fr)}.course-rail,.lesson-context{gap:var(--space-3);display:grid;position:sticky;inset-block-start:6rem}.course-rail__header{padding:0 0 var(--space-2);border-block-end:1px solid var(--outline-variant);display:grid}.course-rail__module h2{font-size:1rem}.course-rail__module ol,.module-section ol,.lesson-context ul,.lesson-progress-list ol,.bookmark-list ul,.glossary-term ul{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.course-rail__lesson,.lesson-row,.lesson-progress-list a{border-radius:var(--radius);min-block-size:3rem;color:var(--on-surface-variant);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;display:grid}.course-rail__lesson{padding:0 .75rem}.course-rail__lesson.is-current,.course-rail__lesson:hover,.lesson-row:hover,.lesson-progress-list a:hover{background:var(--surface-container-low);color:var(--on-surface)}.module-list{gap:var(--space-3);display:grid}.course-constellation{gap:var(--space-3);margin-block:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.constellation-cluster{gap:var(--space-2);min-block-size:15rem;padding:var(--space-3);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-lowest);box-shadow:var(--shadow-soft);display:grid;position:relative;overflow:hidden}.constellation-cluster:before{content:"";background:#3951c124;block-size:1px;position:absolute;inset:4.4rem 1.4rem auto}.constellation-cluster__header{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.65rem;display:grid}.constellation-cluster__header svg{margin-block-start:.2rem}.constellation-cluster--melody .constellation-cluster__header svg{color:var(--primary)}.constellation-cluster--rhythm .constellation-cluster__header svg{color:var(--secondary)}.constellation-cluster--harmony .constellation-cluster__header svg{color:var(--tertiary)}.constellation-cluster h2,.constellation-cluster p{margin:0}.constellation-cluster h2{font-size:1.12rem}.constellation-cluster p{font-size:.92rem}.constellation-nodes{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.constellation-nodes li{transform:translate(var(--node-x,0), var(--node-y,0))}.constellation-node{border-radius:var(--radius);background:var(--surface-container-low);min-block-size:4.25rem;color:var(--on-surface);border:1px solid #0000;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.65rem .75rem;display:grid}.constellation-node:hover,.constellation-node:focus-visible{box-shadow:var(--shadow-press);border-color:#3951c147}.constellation-node__orb{border-radius:var(--radius-full);background:var(--surface-container-lowest);block-size:2.1rem;inline-size:2.1rem;color:var(--on-surface-variant);place-items:center;font-weight:800;display:grid}.constellation-node strong,.constellation-node small{min-inline-size:0;display:block}.constellation-node small{color:var(--on-surface-variant)}.constellation-node.is-complete .constellation-node__orb{background:var(--tertiary-container);color:var(--tertiary)}.constellation-node.is-current,.constellation-node.is-suggested-next{background:var(--primary-container);border-color:#3951c152}.constellation-node.is-current .constellation-node__orb,.constellation-node.is-suggested-next .constellation-node__orb{background:var(--primary);color:var(--on-primary)}.module-list--scan{margin-block-start:var(--space-4)}.module-section{gap:var(--space-2);padding:var(--space-4);border:1px solid var(--outline-variant);display:grid}.lesson-row{background:var(--surface-container-low);padding:.7rem .85rem}.lesson-row span{display:grid}.lesson-row small{color:var(--on-surface-variant)}.lesson-reader{border-radius:var(--radius-lg);background:var(--surface-container-lowest);min-inline-size:0;box-shadow:var(--shadow-soft)}.lesson-reader__header,.lesson-reader__footer,.lesson-body{padding:clamp(1.25rem,4vw,2.5rem)}.lesson-reader__header{border-block-end:1px solid var(--outline-variant)}.lesson-reader__header h1{max-inline-size:14ch;font-size:3.2rem}.lesson-reader__header p{max-inline-size:42rem}.lesson-body{gap:var(--space-4);display:grid}.lesson-body>*{max-inline-size:44rem}.lesson-body h2{margin-block-start:var(--space-3)}.lesson-body h2:first-child{margin-block-start:0}.lesson-body strong{color:var(--on-surface)}.lesson-doing{gap:var(--space-2);border-block-start:1px solid var(--outline-variant);background:var(--surface-container-low);padding:clamp(1.25rem,4vw,2.5rem);display:grid}.lesson-doing h2{margin:0;font-size:1.35rem}.lesson-doing__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.lesson-doing__grid a{border:var(--border-card);border-radius:var(--radius);background:var(--surface-container-lowest);gap:.35rem;min-block-size:8rem;padding:.85rem;display:grid}.lesson-doing__grid svg{color:var(--primary)}.lesson-doing__grid strong{color:var(--on-surface);font-family:var(--font-heading)}.lesson-doing__grid span{color:var(--on-surface-variant);font-size:.9rem;line-height:1.45}.lesson-checkpoint{gap:var(--space-3);border-block-start:1px solid var(--outline-variant);background:var(--surface-container-lowest);padding:clamp(1.25rem,4vw,2.5rem);display:grid}.lesson-checkpoint__header{gap:.25rem;display:grid}.lesson-checkpoint h2,.lesson-checkpoint p{margin:0}.lesson-checkpoint h2{font-size:1.35rem}.checkpoint-summary{border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:.65rem;padding:.75rem .85rem;font-weight:800;display:flex}.checkpoint-summary.is-passed{background:var(--tertiary-container);color:var(--tertiary)}.checkpoint-summary.is-review{background:var(--secondary-container);color:var(--secondary)}.checkpoint-summary span{font-weight:700}.lesson-reader__footer{border-block-start:1px solid var(--outline-variant)}.lesson-pager{justify-content:space-between}.lesson-context{color:var(--on-surface-variant)}.lesson-context section{padding:var(--space-2);border-radius:var(--radius-lg);background:var(--surface-container-low);gap:.8rem;display:grid}.lesson-context a{color:var(--primary);font-weight:700}.export-layout{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.export-panel{gap:var(--space-2);border-radius:var(--radius-lg);background:var(--surface-container-lowest);min-inline-size:0;box-shadow:var(--shadow-soft);padding:clamp(1.25rem,4vw,2rem);display:grid}.export-panel>div:first-child{align-items:center;gap:.65rem;display:flex}.export-panel h2,.export-panel p{margin:0}.export-panel textarea{resize:vertical;border:var(--border-card);border-radius:var(--radius);background:var(--surface-container-low);min-block-size:18rem;inline-size:100%;color:var(--on-surface);font-family:var(--font-mono);padding:.8rem;font-size:.82rem}.export-panel label{color:var(--on-surface);gap:.5rem;font-weight:700;display:grid}.import-preview{padding:var(--space-2);border-radius:var(--radius);background:var(--surface-container-low);flex-wrap:wrap;gap:.5rem;display:flex}.import-preview strong{flex-basis:100%}.import-preview span,.import-preview em{border-radius:var(--radius-full);background:var(--surface-container-lowest);padding:.25rem .55rem;font-size:.85rem;font-style:normal;font-weight:700}.import-preview.is-invalid{background:var(--error-container);color:var(--error)}.content-review-list{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);background:var(--surface-container-lowest);display:grid}.content-review-list ol{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.content-review-list li{padding:var(--space-2);border-radius:var(--radius);background:var(--surface-container-low);grid-template-columns:auto minmax(0,1fr);gap:.75rem;display:grid}.content-review-list li.is-clear>svg{color:var(--tertiary)}.content-review-list li.is-flagged>svg{color:var(--secondary)}.content-review-list strong,.content-review-list span,.content-review-list p{display:block}.content-review-list p{margin:.35rem 0 0}.content-review-list__links{flex-wrap:wrap;gap:.45rem;margin-block-start:.65rem;display:flex}.content-review-list__links a{border-radius:var(--radius-full);background:var(--surface-container-lowest);color:var(--primary);padding:.25rem .6rem;font-weight:700}.lesson-context small{display:block}.callout,.audio-example,.micro-check,.notation-figure,.keyboard-figure{border-radius:var(--radius-lg);background:var(--surface-container-low);inline-size:100%}.callout{gap:var(--space-2);padding:var(--space-3);grid-template-columns:auto minmax(0,1fr);display:grid}.callout--melody svg{color:var(--primary)}.callout--rhythm svg{color:var(--secondary)}.callout--harmony svg{color:var(--tertiary)}.audio-example{align-items:center;gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;min-block-size:4.5rem;padding:.9rem 1rem;display:grid}.audio-example>div{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.audio-example code{color:var(--primary)}.audio-example__status{min-block-size:1.2rem;color:var(--on-surface-variant);grid-column:1/-1;font-size:.88rem}.notation-figure,.keyboard-figure{gap:var(--space-2);padding:var(--space-2);margin:0;display:grid}.notation-figure figcaption,.keyboard-figure figcaption{color:var(--on-surface-variant);align-items:center;gap:.5rem;font-weight:700;display:flex}.notation-figure__stage{border-radius:var(--radius-md);background:var(--surface-container-lowest);min-block-size:170px;overflow:hidden}.keyboard-figure__keys{grid-template-columns:repeat(12,minmax(2rem,1fr));gap:.25rem;min-block-size:5.5rem;display:grid}.keyboard-figure__key{border-radius:0 0 var(--radius) var(--radius);min-block-size:5.5rem;min-inline-size:0;font-family:var(--font-mono);place-items:end center;padding:.35rem .15rem;font-size:.78rem;font-weight:500;display:grid}.keyboard-figure__key.is-white{border:1px solid var(--outline-variant);color:var(--on-surface);background:#fff}.keyboard-figure__key.is-black{background:var(--inverse-surface);min-block-size:3.75rem;color:var(--inverse-on-surface)}.keyboard-figure__key.is-active{background:var(--primary);color:var(--on-primary)}button.keyboard-figure__key{cursor:pointer;font:inherit;font-family:var(--font-mono);font-size:.78rem}button.keyboard-figure__key:active{transform:translateY(1px)}.keyboard-figure__hint{color:var(--on-surface-variant);font-weight:600}.micro-check{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--outline-variant);display:grid}.micro-check fieldset{gap:var(--space-2);border:0;padding:0;display:grid}.micro-check legend{color:var(--on-surface);font-family:var(--font-heading);padding:0;font-size:1.08rem;font-weight:700}.micro-check__options{gap:.55rem;display:grid}.micro-check__option{border-radius:var(--radius);background:var(--surface-container-lowest);align-items:center;gap:.7rem;min-block-size:2.75rem;padding:.55rem .75rem;display:flex}.micro-check__option input{block-size:1rem;inline-size:1rem;accent-color:var(--primary)}.micro-check__result{align-items:flex-start;gap:.55rem;margin:0;font-weight:700;display:flex}.micro-check__result.is-correct{color:var(--tertiary)}.micro-check__result.is-incorrect{color:var(--error)}.search-box{border:1px solid var(--outline-variant);border-radius:var(--radius-lg);background:var(--surface-container-lowest);align-items:center;gap:.75rem;min-block-size:3.25rem;max-inline-size:38rem;padding:0 1rem;display:flex}.search-box input{inline-size:100%;min-inline-size:0;color:var(--on-surface);background:0 0;border:0;outline:0}.glossary-list{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.glossary-term{padding:var(--space-3);border:1px solid var(--outline-variant);gap:.6rem;display:grid}.glossary-term h2{font-size:1.25rem}.glossary-term a,.source-row a{color:var(--primary);overflow-wrap:anywhere}.source-table{gap:.5rem;display:grid}.source-table__header,.source-row{gap:var(--space-2);grid-template-columns:minmax(0,.42fr) minmax(0,.42fr) minmax(6rem,.16fr);align-items:start;display:grid}.source-table__header{color:var(--on-surface-variant);text-transform:uppercase;padding:0 1rem;font-size:.82rem;font-weight:700}.source-row{padding:var(--space-2);border-radius:var(--radius-lg);background:var(--surface-container-lowest);border:1px solid var(--outline-variant)}.source-row a{align-items:center;gap:.35rem;font-weight:700;display:inline-flex}.source-row small{color:var(--on-surface-variant);display:block}.risk-pill{border-radius:var(--radius-full);justify-self:start;padding:.25rem .65rem;font-weight:700}.risk-pill--low{background:var(--tertiary-container);color:var(--tertiary)}.risk-pill--medium{background:var(--secondary-container);color:var(--secondary)}.risk-pill--high{background:var(--error-container);color:var(--error)}.settings-panel{gap:.75rem;display:grid}.settings-panel h2,.settings-panel label{align-items:center;gap:.55rem;display:flex}.settings-panel input{accent-color:var(--primary)}.lesson-progress-list,.bookmark-list{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--outline-variant);display:grid}.lesson-progress-list a{background:var(--surface-container-low);grid-template-columns:minmax(0,1fr) auto;padding:0 .75rem}.lesson-progress-list strong{color:var(--primary);white-space:nowrap}.not-found{gap:var(--space-2);place-items:start;min-block-size:50svh;display:grid}.not-found__actions{flex-wrap:wrap;gap:.6rem;display:flex}.decision-strip{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.decision-strip__item{padding:var(--space-3);border:1px solid var(--outline-variant);gap:.45rem;display:grid}.decision-strip__item span,.project-timeline__item span{color:var(--on-surface-variant);text-transform:uppercase;font-size:.78rem;font-weight:700}.decision-strip__item strong{color:var(--on-surface);line-height:1.35}.project-timeline,.interactive-roadmap{gap:var(--space-3);display:grid}.project-timeline ol,.acceptance-panel ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.project-timeline__item{gap:var(--space-2);padding-block:var(--space-2);border-block-start:1px solid var(--outline-variant);grid-template-columns:auto minmax(0,1fr);display:grid}.project-timeline__item svg{margin-block-start:.25rem}.project-timeline__item.is-complete svg{color:var(--tertiary)}.project-timeline__item.is-in-progress svg{color:var(--secondary)}.project-timeline__item.is-planned svg{color:var(--primary)}.project-timeline__item h3{margin-block:.15rem .35rem;font-size:1.2rem}.project-timeline__item p{margin:0}.acceptance-panel{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--outline-variant);display:grid}.acceptance-panel>div,.acceptance-panel li{align-items:flex-start;gap:.65rem;display:flex}.acceptance-panel h2{margin:0}.acceptance-panel li svg{color:var(--tertiary);flex:none;margin-block-start:.18rem}@media (prefers-reduced-motion:no-preference){.home-hero__content,.interactive-lab,.workspace-band,.module-tile{animation:rise-in .52s var(--ease-tactile) both}.interactive-lab{animation-delay:90ms}.workspace-band{animation-delay:.14s}.module-tile{animation-delay:.18s}}html[data-reduced-motion=true] *,html[data-reduced-motion=true] :before,html[data-reduced-motion=true] :after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important}html[data-focus-mode=true] .app-header,html[data-focus-mode=true] .bottom-nav,html[data-focus-mode=true] .app-footer{display:none}html[data-focus-mode=true] .app-main{min-block-size:100vh}@keyframes rise-in{0%{transform:translateY(18px)}to{transform:translateY(0)}}@keyframes interaction-pulse{0%{transform:scale(.992)}to{transform:scale(1)}}@media (width<=1040px){.home-hero,.workspace-band,.home-action-strip,.instrument-lab-layout,.practice-setup,.practice-layout,.learn-layout,.lesson-layout,.song-lab{grid-template-columns:1fr}.course-rail,.lesson-context,.instrument-inspector,.practice-module-list{position:static}.course-rail{order:2}.lesson-reader{order:1}.lesson-context{order:3}.module-grid__items,.glossary-list,.instrument-index,.course-constellation,.decision-strip,.interactive-goals,.lab-launchpad,.mission-map,.home-action-strip,.practice-visuals,.lesson-doing__grid,.skill-recommendations__grid,.learning-tracks__grid,.export-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-workspace{grid-template-columns:1fr}.lab-launchpad{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=720px){.app-header{align-items:center;gap:.75rem;inline-size:100%;min-inline-size:0;max-inline-size:100vw}.app-header .primary-nav{display:none}.brand-mark{min-inline-size:0}.app-main{padding-block:var(--space-3);padding-block-end:calc(5rem + env(safe-area-inset-bottom,0px))}.bottom-nav{z-index:30;padding:.35rem .4rem calc(.35rem + env(safe-area-inset-bottom,0px));background:var(--nav-surface);border-block-start:1px solid var(--chrome-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);justify-content:space-around;align-items:stretch;gap:.15rem;display:flex;position:fixed;inset-block-end:0;inset-inline:0}.bottom-nav__link{border-radius:var(--radius-md);min-block-size:3rem;color:var(--on-surface-variant);flex:1 1 0;justify-items:center;gap:.15rem;padding:.3rem .2rem;font-size:.7rem;font-weight:700;text-decoration:none;display:grid}.bottom-nav__link.is-active{color:var(--primary);background:var(--surface-container-low)}.bottom-nav .more-menu{flex:1 1 0;display:flex}.bottom-nav .more-menu__button{border-radius:var(--radius-md);min-block-size:3rem;box-shadow:none;color:var(--on-surface-variant);background:0 0;flex:1 1 0;justify-items:center;gap:.15rem;padding:.3rem .2rem;font-size:.7rem;display:grid}.bottom-nav .more-menu__button.is-active{color:var(--primary);background:var(--surface-container-low)}.more-menu__scrim{z-index:35;background:#191c1d73}.bottom-nav .more-menu__panel{z-index:45;border-radius:var(--radius-xl) var(--radius-xl) 0 0;min-inline-size:0;max-inline-size:100%;padding:var(--space-2) var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom,0px));animation:.24s cubic-bezier(.34,1.56,.64,1) more-sheet-in;position:fixed;inset-block:auto 0;inset-inline:0}.bottom-nav .more-menu__panel-header{display:flex}@keyframes more-sheet-in{0%{transform:translateY(100%)}to{transform:none}}.app-footer,.source-table__header{display:none}.home-hero{min-block-size:auto}.home-hero__content h1{font-size:3.2rem}h1{overflow-wrap:anywhere;max-inline-size:100%;font-size:3rem}.interactive-lab{padding:var(--space-2)}.interactive-lab__header h2{font-size:1.55rem}.lab-tabs,.interactive-goals{grid-template-columns:1fr}.lab-tab{justify-content:flex-start;padding-inline:.85rem}h2{font-size:1.55rem}.module-grid__items,.glossary-list,.instrument-index,.course-constellation,.source-row,.decision-strip,.interactive-goals,.mission-map,.home-action-strip,.practice-visuals,.lesson-doing__grid,.skill-recommendations__grid,.learning-tracks__grid,.export-layout{grid-template-columns:1fr}.lab-launchpad{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-workbench,.practice-placeholder{padding:var(--space-2)}.module-section,.lesson-reader__header,.lesson-reader__footer,.lesson-body{padding:var(--space-3)}.lesson-reader__header h1{font-size:2.25rem}.keyboard-figure__key{font-size:.72rem}.keyboard-figure__keys{grid-template-columns:repeat(6,minmax(2.1rem,1fr))}.interactive-piano__octave{grid-template-columns:repeat(6,minmax(2.4rem,1fr))}.interactive-piano__octave>span{grid-column:1/-1}.voice-degree-ladder,.pattern-row{grid-template-columns:repeat(2,minmax(0,1fr))}.pattern-row--wide,.sketch-toolbar,.theory-context-panel dl{grid-template-columns:1fr}.constellation-nodes li{transform:none}}.piano-range-control,.chord-shape-play{gap:.4rem;margin-block-end:var(--space-1);display:flex}.piano-range-control button,.chord-shape-play button{border:1px solid var(--outline-variant);border-radius:var(--radius-md);background:var(--surface-container-low);cursor:pointer;padding:.35rem .75rem;font-weight:700}.piano-range-control button[aria-pressed=true]{background:var(--primary-container);color:var(--primary);border-color:var(--primary)}.free-play-readout{border-radius:var(--radius-md);background:var(--surface-container);color:var(--on-surface);min-block-size:2.5rem;padding:.6rem .8rem;font-weight:600}.error-boundary{min-block-size:100vh;padding:var(--space-3);background:var(--surface);place-items:center;display:grid}.error-boundary__card{gap:var(--space-2);max-inline-size:32rem;padding:var(--space-3);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-lowest);box-shadow:var(--shadow-soft);text-align:center;display:grid}.error-boundary__card h1{margin:0}.error-boundary__detail{border-radius:var(--radius-md);background:var(--surface-container);color:var(--on-surface-variant);font-family:var(--font-mono,monospace);word-break:break-word;padding:.6rem .8rem;font-size:.85rem}.error-boundary__actions{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.tool-tabs{flex-wrap:wrap;gap:.5rem;display:flex}.tool-tab{border:1px solid var(--outline-variant);border-radius:var(--radius-md);background:var(--surface-container-low);color:var(--on-surface);padding:.5rem .9rem;font-weight:600;text-decoration:none}.tool-tab.is-active{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.tool-panel{gap:var(--space-2);padding:var(--space-3);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-lowest);box-shadow:var(--shadow-soft);display:grid}.tool-panel__controls,.chord-playground__controls{gap:var(--space-2);flex-wrap:wrap;display:flex}.tool-panel__controls label,.chord-playground__controls label{gap:.3rem;font-weight:600;display:grid}.circle-of-fifths,.chord-playground{gap:var(--space-2);padding:var(--space-3);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-lowest);box-shadow:var(--shadow-soft);display:grid}.circle-of-fifths__ring{flex-wrap:wrap;gap:.4rem;display:flex}.circle-key{border:1px solid var(--outline-variant);border-radius:var(--radius-md);background:var(--surface-container-low);cursor:pointer;min-inline-size:3rem;padding:.55rem .7rem;font-weight:600}.circle-key[aria-pressed=true]{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.circle-key--minor{background:var(--surface-container)}.circle-of-fifths__readout{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.circle-of-fifths__readout dt{color:var(--on-surface-variant);font-weight:700}.chord-playground__palette{flex-wrap:wrap;gap:.4rem;display:flex}.chord-playground__sequence{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.chord-playground__sequence li{border:1px solid var(--outline-variant);border-radius:var(--radius-md);align-items:stretch;display:flex;overflow:hidden}.chord-playground__sequence li.is-empty{color:var(--on-surface-variant);padding:.5rem .75rem}.chord-playground__sequence li>button:first-child{background:var(--surface-container-low);cursor:pointer;border:0;gap:.1rem;padding:.5rem .7rem;display:grid}.chord-playground__remove{border:0;border-inline-start:1px solid var(--outline-variant);background:var(--surface-container);cursor:pointer;padding-inline:.5rem}.chord-playground__voicing ol,.voicing-diagram{flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.chord-playground__voicing li{border-radius:var(--radius-md);background:var(--surface-container-low);gap:.2rem;padding:.4rem .6rem;display:grid}.chord-playground__actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.chord-playground__status{color:var(--on-surface-variant)}.voicing-diagram__chord{text-align:center;gap:.3rem;margin:0;display:grid}.voicing-keys{gap:1px;display:flex}.voicing-key--white{border:1px solid var(--outline-variant);background:var(--surface-container-lowest);border-radius:0 0 3px 3px;block-size:3rem;inline-size:1.1rem;position:relative}.voicing-key--white.is-active{background:var(--primary)}.voicing-key--black{background:var(--on-surface);z-index:1;border-radius:0 0 3px 3px;block-size:1.8rem;inline-size:.7rem;position:absolute;inset-block-start:0;inset-inline-end:-.35rem}.voicing-key--black.is-active{background:var(--secondary)}@media (width<=720px){.circle-of-fifths__readout{grid-template-columns:1fr}}.about-grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.about-card{padding:var(--space-2);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-lowest);box-shadow:var(--shadow-soft);align-content:start;gap:.5rem;display:grid}.about-card svg{color:var(--primary)}.about-card h2{margin:0;font-size:1.15rem}.about-card p{color:var(--on-surface-variant);margin:0}.about-prose{max-inline-size:var(--max-width,60rem);gap:.75rem;display:grid}.about-prose code{border-radius:var(--radius-sm);background:var(--surface-container);font-family:var(--font-mono,monospace);padding:.1rem .4rem;font-size:.9em}.about-actions{flex-wrap:wrap;gap:.6rem;margin-block-start:var(--space-1);display:flex}@media (width<=720px){.about-grid{grid-template-columns:1fr}}.welcome-tour{z-index:1000;padding:var(--space-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#191c1d73;place-items:center;display:grid;position:fixed;inset:0}.welcome-tour__card{max-block-size:90vh;inline-size:100%;max-inline-size:34rem;padding:var(--space-3);border-radius:var(--radius-xl);background:var(--surface-container-lowest);gap:.75rem;animation:.28s cubic-bezier(.34,1.56,.64,1) welcome-tour-in;display:grid;position:relative;overflow-y:auto;box-shadow:0 20px 60px #0003}@keyframes welcome-tour-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.welcome-tour__card h2{margin:0}.welcome-tour__close{border-radius:var(--radius-full);background:var(--surface-container);cursor:pointer;block-size:2rem;inline-size:2rem;color:var(--on-surface-variant);border:0;place-items:center;display:grid;position:absolute;inset-block-start:.8rem;inset-inline-end:.8rem}.welcome-tour__steps{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.welcome-tour__steps li{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.2rem .7rem;display:grid}.welcome-tour__steps svg{color:var(--primary);grid-row:span 2;margin-block-start:.15rem}.welcome-tour__steps strong{display:block}.welcome-tour__steps span{color:var(--on-surface-variant)}.welcome-tour__actions{flex-wrap:wrap;gap:.6rem;margin-block-start:var(--space-1);display:flex}@media (prefers-reduced-motion:reduce){.welcome-tour__card,.more-menu__panel{animation:none}.interactive-piano button,.drum-pad-grid button,.fretboard-grid__string .fretboard-cell{transition:none}.interactive-piano button:active,.drum-pad-grid button:active,.fretboard-grid__string .fretboard-cell:active{transform:none}}.hero-play{gap:var(--space-2);padding:var(--space-3);border:var(--border-card);border-radius:var(--radius-xl);background:radial-gradient(120% 120% at 100% 0%, #3951c11a, transparent 60%), var(--surface-container-lowest);box-shadow:var(--shadow-soft);align-content:start;display:grid}.hero-play__top{gap:.15rem;display:grid}.hero-play__top .eyebrow{color:var(--primary);align-items:center;gap:.3rem;display:inline-flex}.hero-play__top h2{margin:0;font-size:1.5rem}.hero-play__top p{color:var(--on-surface-variant);margin:0}.hero-play__readout{border-radius:var(--radius-md);background:var(--surface-container);align-items:baseline;gap:.6rem;min-block-size:3rem;padding:.6rem .9rem;display:flex}.hero-play__readout strong{font-family:var(--font-heading);color:var(--primary);font-variant-numeric:tabular-nums;font-size:1.6rem;line-height:1}.hero-play__readout span{color:var(--on-surface-variant);overflow-wrap:anywhere;font-weight:600}.hero-piano{border-radius:var(--radius-md);background:var(--key-bed);gap:.5rem;padding:.6rem;display:flex}.hero-piano__octave{flex:1 1 0;grid-template-columns:repeat(7,1fr);gap:.25rem;min-inline-size:0;display:grid;position:relative}.hero-key{cursor:pointer;touch-action:none;transition:transform 90ms var(--ease-tactile), background .12s ease;border:0;padding:0}.hero-key--white{border-radius:0 0 var(--radius) var(--radius);background:var(--key-white);grid-row:1;block-size:7.5rem;box-shadow:inset 0 -3px #191c1d1f}.hero-key--black{border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--key-black);z-index:2;grid-row:1;block-size:4.6rem;inline-size:11%;position:absolute;box-shadow:inset 0 -3px #0006}.hero-piano__octave .hero-key--black:nth-of-type(2){inset-inline-start:10.5%}.hero-piano__octave .hero-key--black:nth-of-type(4){inset-inline-start:24.5%}.hero-piano__octave .hero-key--black:nth-of-type(7){inset-inline-start:52.5%}.hero-piano__octave .hero-key--black:nth-of-type(9){inset-inline-start:66.5%}.hero-piano__octave .hero-key--black:nth-of-type(11){inset-inline-start:80.5%}.hero-key--white.is-held{background:var(--primary-container);box-shadow:inset 0 -3px 0 var(--primary)}.hero-key--black.is-held{background:var(--primary)}.hero-key:active{transform:translateY(2px)}.hero-play__presets{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.hero-play__presets>svg{color:var(--on-surface-variant)}.hero-chip{border:var(--border-card);border-radius:var(--radius-full);background:var(--surface-container-low);color:var(--on-surface);cursor:pointer;transition:background .12s ease, transform 90ms var(--ease-tactile);align-items:center;gap:.3rem;padding:.35rem .75rem;font-weight:700;display:inline-flex}.hero-chip:hover,.hero-chip:focus-visible{background:var(--primary-container);color:var(--on-primary-container)}.hero-chip:active{transform:translateY(1px)}.hero-chip--clear{margin-inline-start:auto}.hero-chip:disabled{opacity:.5;cursor:not-allowed}@media (width<=720px){.hero-key--white{block-size:6rem}.hero-key--black{block-size:3.7rem}}@media (prefers-reduced-motion:reduce){.hero-key,.hero-chip{transition:none}.hero-key:active,.hero-chip:active{transform:none}}.jam-room{flex-direction:column;gap:1.25rem;display:flex}.jam-room__head h2{margin:0 0 .3rem}.jam-room__head p{color:var(--on-surface-variant);max-inline-size:52ch;margin:0}.jam-vibes{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.75rem;display:grid}.jam-vibe{text-align:start;border:var(--border-card);border-radius:var(--radius-md);background:var(--surface-container-low);color:var(--on-surface);cursor:pointer;transition:background .12s ease, transform 90ms var(--ease-tactile), border-color .12s ease;flex-direction:column;gap:.25rem;padding:.85rem 1rem;display:flex}.jam-vibe:hover,.jam-vibe:focus-visible{border-color:var(--primary);transform:translateY(-2px)}.jam-vibe.is-active{background:var(--primary-container);color:var(--on-primary-container);border-color:var(--primary)}.jam-vibe strong{font-size:1.05rem}.jam-vibe span{color:inherit;opacity:.85;font-size:.9rem}.jam-vibe__meta{font-variant-numeric:tabular-nums;opacity:.7;font-weight:600}.jam-transport{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.jam-transport__status{color:var(--on-surface-variant);font-variant-numeric:tabular-nums;margin-inline-start:auto;font-weight:600}.jam-tempo{color:var(--on-surface-variant);align-items:center;gap:.4rem;font-weight:600;display:inline-flex}.jam-tempo input[type=range]{inline-size:7rem}.jam-tempo__value{font-variant-numeric:tabular-nums;min-inline-size:4.5rem}.jam-mixer{grid-template-columns:minmax(12rem,1fr) minmax(16rem,2fr);align-items:start;gap:1rem;display:grid}.jam-channels{border:var(--border-card);border-radius:var(--radius-md);background:var(--surface-container-low);flex-direction:column;gap:.6rem;padding:.85rem;display:flex}.jam-channel{grid-template-columns:4rem 1fr auto;align-items:center;gap:.6rem;display:grid}.jam-channel__label{font-weight:700}.jam-channel input[type=range]{inline-size:100%}.jam-channel__mute{border:var(--border-card);border-radius:var(--radius-full);background:var(--surface);block-size:2rem;inline-size:2rem;color:var(--on-surface);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.jam-channel__mute.is-muted{background:var(--error-container);color:var(--error);border-color:var(--error)}.jam-beats{border:var(--border-card);border-radius:var(--radius-md);background:var(--surface-container-low);flex-direction:column;gap:.6rem;padding:.85rem;display:flex}.jam-beats__picker{flex-wrap:wrap;gap:.4rem;display:flex}.jam-beat{border:var(--border-card);border-radius:var(--radius-full);background:var(--surface);color:var(--on-surface);cursor:pointer;padding:.35rem .75rem;font-weight:600;transition:background .12s,border-color .12s}.jam-beat:hover,.jam-beat:focus-visible{border-color:var(--primary)}.jam-beat.is-active{background:var(--primary-container);color:var(--on-primary-container);border-color:var(--primary)}.jam-grid{flex-direction:column;gap:.3rem;display:flex}.jam-grid__row{grid-template-columns:4rem repeat(8,1fr);align-items:center;gap:.25rem;display:grid}.jam-grid__name{text-align:start;color:var(--on-surface);cursor:pointer;background:0 0;border:0;padding:0;font-size:.82rem;font-weight:700}.jam-grid__name:hover{color:var(--primary)}.jam-cell{border:var(--border-card);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;block-size:1.7rem;transition:background 90ms ease, transform 90ms var(--ease-tactile)}.jam-cell.is-downbeat{background:var(--surface-container)}.jam-cell.is-on{background:var(--primary);border-color:var(--primary)}.jam-cell.is-step{box-shadow:inset 0 0 0 2px var(--tertiary)}.jam-cell:active{transform:scale(.92)}@media (width<=760px){.jam-mixer{grid-template-columns:1fr}}.jam-bars{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.jam-bar{border:var(--border-card);border-radius:var(--radius-md);background:var(--surface-container-low);min-inline-size:4.5rem;transition:background .12s ease, transform .12s var(--ease-tactile);flex-direction:column;align-items:center;gap:.15rem;padding:.55rem .75rem;display:flex}.jam-bar.is-active{background:var(--primary-container);color:var(--on-primary-container);transform:translateY(-2px)}.jam-bar__numeral{opacity:.75;font-size:.8rem;font-weight:600}.jam-bar__chord{font-size:1.1rem;font-weight:700}.jam-keyboard{border-radius:var(--radius-md);background:var(--key-bed);gap:.2rem;padding:.6rem;display:flex;position:relative;overflow-x:auto}.jam-key{cursor:pointer;touch-action:none;transition:transform 90ms var(--ease-tactile), background .12s ease;border:0;flex:none;padding:0}.jam-key--white{border-radius:0 0 var(--radius) var(--radius);background:var(--key-white);block-size:8rem;inline-size:2.4rem;box-shadow:inset 0 -3px #191c1d1f}.jam-key--black{border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--key-black);z-index:2;block-size:5rem;inline-size:1.5rem;margin-inline:-.85rem;box-shadow:inset 0 -3px #0006}.jam-key--white.is-in-scale{background:linear-gradient(to bottom, var(--key-white) 70%, var(--primary-container) 70%)}.jam-key--black.is-in-scale{background:linear-gradient(to bottom, var(--key-black) 60%, var(--primary) 60%)}.jam-key--white.is-held{background:var(--primary-container);box-shadow:inset 0 -3px 0 var(--primary)}.jam-key--black.is-held{background:var(--primary)}.jam-key:active{transform:translateY(2px)}.jam-key__hint{text-align:center;color:var(--on-surface-variant);pointer-events:none;font-size:.6rem;font-weight:700;position:absolute;inset-block-end:.35rem;inset-inline:0}.jam-key--black .jam-key__hint{color:var(--surface)}.jam-custom{border:1px solid var(--chrome-border);border-radius:var(--radius-md);background:var(--surface-container);flex-direction:column;gap:.75rem;padding:.9rem;display:flex}.jam-custom__row{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.jam-custom__row label{color:var(--on-surface-variant);align-items:center;gap:.4rem;font-weight:600;display:inline-flex}.jam-custom__mode{gap:.3rem;display:inline-flex}.jam-custom__mode button,.jam-custom__numerals button{border:1px solid var(--chrome-border);border-radius:var(--radius-sm);background:var(--surface);color:var(--on-surface);cursor:pointer;padding:.3rem .7rem;font-weight:600}.jam-custom__mode button.is-active,.jam-custom__numerals button.is-active{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.jam-custom__numerals{flex-wrap:wrap;gap:.35rem;display:flex}.jam-custom__preview{font-variant-numeric:tabular-nums;color:var(--on-surface-variant);justify-content:space-between;align-items:center;gap:1rem;display:flex}.jam-toggles{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.jam-toggle,.jam-voice{color:var(--on-surface-variant);align-items:center;gap:.4rem;font-weight:600;display:inline-flex}.jam-fx{flex-wrap:wrap;gap:1.5rem;display:flex}.jam-fx__control{color:var(--on-surface-variant);align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.jam-fx__control input[type=range]{inline-size:8rem}.jam-fx__control span{font-variant-numeric:tabular-nums;min-inline-size:2.5rem}.button.is-recording{border-color:var(--error,#d33);color:var(--error,#d33)}.jam-take{border-radius:var(--radius-md);background:var(--surface-container);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.6rem .9rem;display:flex}.jam-take__count{font-variant-numeric:tabular-nums;font-weight:700}.jam-take__saved{color:var(--on-surface-variant)}.jam-keyboard-wrap{flex-direction:column;gap:.4rem;display:flex}.jam-key{position:relative}.jam-keyboard__caption{color:var(--on-surface-variant);margin:0;font-size:.85rem}.jam-cheat{border:1px solid var(--chrome-border);border-radius:var(--radius-md);background:var(--surface-container);padding:.9rem}.jam-cheat__head{justify-content:space-between;align-items:center;margin-block-end:.6rem;display:flex}.jam-cheat__list{color:var(--on-surface-variant);flex-direction:column;gap:.35rem;margin:0;padding-inline-start:1.1rem;display:flex}@media (width<=720px){.jam-key--white{block-size:6.5rem;inline-size:2rem}.jam-key--black{block-size:4rem;inline-size:1.3rem;margin-inline:-.75rem}}@media (prefers-reduced-motion:reduce){.jam-vibe,.jam-bar,.jam-key{transition:none}.jam-vibe:hover,.jam-vibe:focus-visible,.jam-bar.is-active,.jam-key:active{transform:none}}.chord-flourish{border-radius:var(--radius-md);background:var(--surface-container);align-items:baseline;gap:.6rem;min-block-size:3rem;padding:.6rem .9rem;display:flex}.chord-flourish__symbol{font-family:var(--font-heading);color:var(--primary);font-variant-numeric:tabular-nums;font-size:1.6rem;line-height:1}.chord-flourish__symbol.is-recognized{animation:chord-recognize .42s var(--ease-tactile)}.chord-flourish__detail{color:var(--on-surface-variant);overflow-wrap:anywhere;font-weight:600}@keyframes chord-recognize{0%{opacity:.5;transform:scale(.86)}45%{text-shadow:0 0 14px var(--primary-container);transform:scale(1.12)}to{text-shadow:none;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.chord-flourish__symbol.is-recognized{animation:none}}.ear-games{flex-direction:column;gap:1rem;display:flex}.ear-games__head h2{margin:0 0 .3rem}.ear-games__head p{color:var(--on-surface-variant);margin:0}.ear-games__tabs{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.5rem;display:grid}.ear-games__tab{text-align:start;border:var(--border-card);border-radius:var(--radius-md);background:var(--surface-container-low);color:var(--on-surface);cursor:pointer;flex-direction:column;gap:.2rem;padding:.7rem .9rem;transition:background .12s,border-color .12s;display:flex}.ear-games__tab:hover,.ear-games__tab:focus-visible{border-color:var(--primary)}.ear-games__tab.is-active{background:var(--primary-container);color:var(--on-primary-container);border-color:var(--primary)}.ear-games__tab span{opacity:.85;font-size:.88rem}.ear-games__stage{border:var(--border-card);border-radius:var(--radius-md);background:var(--surface-container-low);flex-direction:column;gap:.85rem;padding:1rem;display:flex}.ear-games__transport{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.ear-games__status{color:var(--on-surface-variant);font-weight:600}.ear-games__prompt{margin:0;font-size:1.05rem;font-weight:700}.ear-games__options{flex-wrap:wrap;gap:.5rem;display:flex}.ear-games__option{border:var(--border-strong);border-radius:var(--radius-full);background:var(--surface);color:var(--on-surface);cursor:pointer;transition:background .12s ease, transform 90ms var(--ease-tactile);padding:.6rem 1.1rem;font-weight:700}.ear-games__option:hover:not(:disabled),.ear-games__option:focus-visible{background:var(--primary-container);color:var(--on-primary-container)}.ear-games__option:disabled{cursor:default}.ear-games__option.is-answer{background:var(--tertiary-container);border-color:var(--tertiary);color:var(--tertiary)}.ear-games__option.is-wrong{background:var(--error-container);border-color:var(--error);color:var(--error)}.ear-games__reveal{border-radius:var(--radius-md);background:var(--surface-container);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.75rem .9rem;display:flex}.ear-games__reveal.is-correct{background:var(--tertiary-container)}.ear-games__reveal strong{font-family:var(--font-heading)}.ear-games__reveal .button{margin-inline-start:auto}@media (prefers-reduced-motion:reduce){.ear-games__option{transition:none}}.playable-progression{border:var(--border-card);border-radius:var(--radius-md);background:var(--surface-container-low);flex-direction:column;gap:.75rem;margin-block:1rem;padding:1rem;display:flex}.playable-progression__head{align-items:center;gap:.5rem;font-weight:700;display:flex}.playable-progression__head .button{margin-inline-start:auto}.playable-progression__status{color:var(--on-surface-variant);font-weight:600}.playable-progression__chords{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.playable-progression__chip{border:var(--border-card);border-radius:var(--radius-md);background:var(--surface);min-inline-size:4.5rem;color:var(--on-surface);cursor:pointer;transition:background .12s ease, transform 90ms var(--ease-tactile);flex-direction:column;align-items:center;gap:.2rem;padding:.6rem .85rem;display:flex}.playable-progression__chip:hover,.playable-progression__chip:focus-visible{background:var(--primary-container);color:var(--on-primary-container)}.playable-progression__chip.is-active{background:var(--primary-container);color:var(--on-primary-container);border-color:var(--primary)}.playable-progression__numeral{opacity:.75;font-size:.85rem}.playable-progression__symbol{font-family:var(--font-heading);font-size:1.1rem}.interval-explorer{border:var(--border-card);border-radius:var(--radius-md);background:var(--surface-container-low);flex-direction:column;gap:.6rem;margin-block:1rem;padding:1rem;display:flex}.interval-explorer__readout{min-block-size:1.5rem;font-weight:600}.interval-explorer__notes{flex-wrap:wrap;gap:.4rem;display:flex}.interval-explorer__note{border:var(--border-strong);border-radius:var(--radius-full);background:var(--surface);min-inline-size:2.75rem;color:var(--on-surface);cursor:pointer;transition:background .12s ease, transform 90ms var(--ease-tactile);padding:.5rem .7rem;font-weight:700}.interval-explorer__note:hover,.interval-explorer__note:focus-visible{background:var(--primary-container);color:var(--on-primary-container)}.interval-explorer__note.is-active{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}@media (prefers-reduced-motion:reduce){.playable-progression__chip,.interval-explorer__note{transition:none}}.play-featured{flex-direction:column;gap:1rem;display:flex}.play-featured__actions{grid-template-columns:2fr 1fr;gap:.75rem;display:grid}.play-featured__primary,.play-featured__secondary{border-radius:var(--radius-md);border:var(--border-card);color:var(--on-surface);transition:transform .12s var(--ease-tactile), border-color .12s ease;flex-direction:column;gap:.3rem;padding:1.1rem 1.25rem;display:flex}.play-featured__primary{background:var(--primary-container);color:var(--on-primary-container);border-color:var(--primary)}.play-featured__secondary{background:var(--surface-container-low)}.play-featured__primary:hover,.play-featured__secondary:hover,.play-featured__primary:focus-visible,.play-featured__secondary:focus-visible{border-color:var(--primary);transform:translateY(-2px)}.play-featured__primary strong,.play-featured__secondary strong{font-size:1.1rem}.play-featured__cta{align-items:center;gap:.3rem;margin-block-start:.25rem;font-weight:700;display:inline-flex}@media (width<=720px){.play-featured__actions{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.play-featured__primary,.play-featured__secondary{transition:none}.play-featured__primary:hover,.play-featured__secondary:hover{transform:none}}.pill{border-radius:var(--radius-full);background:var(--surface-container-high);min-inline-size:2.25rem;color:var(--on-surface);font-family:var(--font-mono);justify-content:center;align-items:center;padding:.15rem .6rem;font-size:.8rem;font-weight:600;display:inline-flex}.pill[data-reason=due],.pill[data-kind=spice]{background:var(--secondary-container)}.pill[data-reason=new]{background:var(--tertiary-container)}.pill[data-reason=weak]{background:var(--primary-container);color:var(--on-primary-container)}.settings-panel__select{gap:var(--space-1);flex-direction:column;display:flex}.settings-panel__select select{border-radius:var(--radius-md);border:var(--border-card);background:var(--surface-container-lowest);color:var(--on-surface);padding:.6rem .75rem}.insight-cards{gap:var(--space-2);flex-direction:column;display:flex}.insight-cards__grid{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.insight-card{gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-lg);border:var(--border-card);background:var(--surface-container-low);box-shadow:var(--shadow-soft);flex-direction:column;display:flex}.insight-card h3{margin:0;font-size:1.05rem}.insight-card[data-tone=celebrate]{background:var(--tertiary-container)}.insight-card[data-tone=focus]{background:var(--primary-container)}.insight-card[data-tone=focus] p{color:var(--on-primary-container)}.chord-suggest{margin-block-start:var(--space-2)}.chord-suggest h3{margin:0 0 var(--space-1);font-size:.95rem}.chord-suggest ul{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.chord-suggest li{align-items:center;gap:var(--space-1);font-size:.9rem;display:flex}.theory-context-panel__summary{margin-block-start:var(--space-1);font-style:italic}.melody-critique-panel,.reharmonize-panel{padding:var(--space-2);border:var(--border-card);border-radius:var(--radius-lg);background:var(--surface-container-low);gap:.75rem;display:grid}.melody-critique-panel h2,.reharmonize-panel h2{margin:0;font-size:1.18rem}.melody-critique-panel__summary{color:var(--on-surface-variant);margin:0;font-style:italic}.melody-critique-list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.melody-critique-list li{align-items:center;gap:var(--space-1);border-radius:var(--radius);background:var(--surface-container-lowest);grid-template-columns:auto auto auto minmax(0,1fr);padding:.65rem;font-size:.9rem;display:grid}.melody-critique-list__bar{color:var(--on-surface-variant);text-transform:uppercase;white-space:nowrap;font-size:.72rem;font-weight:800}.melody-critique-list__note,.reharmonize-panel__numeral{color:var(--on-surface);font-family:var(--font-mono);white-space:nowrap;font-weight:700}.reharmonize-panel.chord-suggest{margin-block-start:0}.reharmonize-panel ul{display:grid}.reharmonize-panel li{border-radius:var(--radius);background:var(--surface-container-lowest);flex-wrap:wrap;align-items:flex-start;padding:.65rem}.reharmonize-panel__numeral{min-inline-size:2.25rem}.pill[data-status=chord-tone],.pill[data-technique=diatonic-substitution]{background:var(--tertiary-container);color:var(--tertiary)}.pill[data-status=scale-tone],.pill[data-technique=relative-swap]{background:var(--primary-container);color:var(--on-primary-container)}.pill[data-status=tension],.pill[data-technique=secondary-dominant]{background:var(--secondary-container);color:var(--secondary)}.pill[data-status=rest],.pill[data-technique=borrowed]{background:var(--surface-container-high);color:var(--on-surface-variant)}@media (width<=720px){.melody-critique-list li{grid-template-columns:1fr;align-items:start}}.tuner-readout{gap:var(--space-2);flex-direction:column;margin-block-start:var(--space-2);display:flex}.tuner-readout__note{flex-direction:column;gap:.2rem;margin:0;display:flex}.tuner-readout__note strong{font-family:var(--font-mono);font-size:2.5rem;line-height:1}.tuner-meter{border-radius:var(--radius-full);background:var(--surface-container-high);block-size:1.25rem;position:relative;overflow:hidden}.tuner-meter__center{background:var(--outline);inline-size:2px;position:absolute;inset-block:0;inset-inline-start:50%;transform:translate(-50%)}.tuner-meter__needle{border-radius:var(--radius-full);background:var(--secondary);inline-size:.5rem;transition:inset-inline-start .12s var(--ease-tactile);position:absolute;inset-block:.2rem;transform:translate(-50%)}.tuner-meter__needle[data-in-tune=true]{background:var(--tertiary)}.tuner-readout__hint{margin:0;font-weight:600}@media (prefers-reduced-motion:reduce){.tuner-meter__needle{transition:none}}.arranger{gap:var(--space-3);flex-direction:column;display:flex}.arranger__controls{gap:var(--space-2);flex-direction:column;display:flex}.arranger__controls label{gap:var(--space-1);flex-direction:column;max-inline-size:320px;display:flex}.arranger__controls input{border-radius:var(--radius-md);border:var(--border-card);background:var(--surface-container-lowest);color:var(--on-surface);padding:.6rem .75rem}.arranger__add{gap:var(--space-1);flex-wrap:wrap;display:flex}.arranger__sections{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.arranger__section{align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-md);border:var(--border-card);background:var(--surface-container-low);display:flex}.arranger__section-index{border-radius:var(--radius-full);background:var(--surface-container-high);block-size:1.75rem;inline-size:1.75rem;font-family:var(--font-mono);justify-content:center;align-items:center;font-size:.85rem;display:inline-flex}.arranger__section-label{flex-direction:column;flex:auto;gap:.15rem;min-inline-size:0;display:flex}.arranger__section-label small{color:var(--on-surface-variant);font-family:var(--font-mono)}.arranger__section-actions{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.arranger__transport{gap:var(--space-1);flex-wrap:wrap;display:flex}.arranger__summary{margin:0;font-style:italic}.practice-journal{gap:var(--space-1);flex-direction:column;display:flex}.practice-journal ul{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.practice-journal li{padding:var(--space-1) 0;border-block-end:var(--border-card);flex-direction:column;gap:.1rem;display:flex}.practice-journal small,.practice-journal span{color:var(--on-surface-variant)}.counterpoint-issues{margin:var(--space-1) 0 0;gap:var(--space-1);flex-direction:column;padding:0;list-style:none;display:flex}.counterpoint-issues li{align-items:flex-start;gap:var(--space-1);display:flex}.counterpoint-issues li[data-severity=error]{color:var(--on-error-container,var(--error))}.counterpoint-issues li[data-severity=warning]{color:var(--on-surface-variant)}.call-response__stage{gap:var(--space-2)}.call-response__status{min-block-size:1.6rem;color:var(--on-surface-variant);margin:0;font-weight:600}.call-response .ear-games__tab,.call-response .button{min-block-size:2.75rem}.call-response .pill{align-self:flex-start}@media (width<=420px){.call-response .ear-games__transport .button{inline-size:100%}}@media (prefers-reduced-motion:reduce){.call-response .button{transition:none}}.piano-studio{gap:var(--space-3);min-inline-size:0;display:grid}.piano-studio__header{justify-content:space-between;gap:var(--space-3);align-items:end;display:flex}.piano-studio__header h2,.piano-studio__header p,.piano-studio__activity h2,.piano-studio__activity p{margin:0}.piano-studio__header>div:first-child{gap:.45rem;max-inline-size:46rem;display:grid}.piano-studio__transport,.piano-studio__modes,.piano-studio__input-status,.piano-studio__activity [role=group]{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.piano-studio__transport button,.piano-studio__modes button,.piano-studio__input-status button,.piano-studio__activity button{border:var(--border-card);border-radius:var(--radius);background:var(--surface-container-low);min-block-size:2.65rem;color:var(--on-surface);cursor:pointer;padding:.55rem .8rem;font-weight:800}.piano-studio__modes{border-block-end:1px solid var(--outline-variant)}.piano-studio__modes button{border:0;border-radius:var(--radius) var(--radius) 0 0;background:0 0;border-block-end:3px solid #0000}.piano-studio__modes button[aria-selected=true]{border-block-end-color:var(--primary);background:var(--primary-container);color:var(--primary)}.piano-studio__keybed{gap:var(--space-2);border-radius:var(--radius-lg);outline-offset:3px;background:var(--inverse-surface);min-inline-size:0;box-shadow:var(--shadow-soft);padding:clamp(.75rem,2vw,1.2rem);display:grid;overflow-x:auto}.digital-piano{border-radius:var(--radius);background:var(--inverse-surface);block-size:clamp(12rem,23vw,17rem);min-inline-size:52rem;display:flex;overflow:hidden}.digital-piano__octave{flex:1 0 33.3333%;block-size:100%;position:relative}.digital-piano__key{border:1px solid var(--outline-variant);cursor:pointer;touch-action:none;flex-direction:column;justify-content:end;align-items:center;gap:.35rem;padding:.55rem .15rem;font-weight:800;transition:block-size 90ms,background .12s,color .12s;display:flex;position:absolute;inset-block-start:0}.digital-piano__key--white{z-index:1;background:var(--surface-container-lowest);block-size:100%;inline-size:14.2857%;color:var(--on-surface);border-radius:0 0 .45rem .45rem;inset-inline-start:calc(var(--key-position) * (100% / 7))}.digital-piano__key--black{z-index:2;border-color:var(--inverse-surface);background:var(--on-surface);block-size:62%;inline-size:8.69565%;color:var(--surface-container-lowest);border-radius:0 0 .4rem .4rem;inset-inline-start:calc(var(--key-position) * (100% / 7));box-shadow:0 .45rem .75rem #0000003d}.digital-piano__key kbd{background:var(--surface-container-high);min-inline-size:1.5rem;color:var(--on-surface);font-family:var(--font-mono);border-radius:.3rem;padding:.12rem .3rem;font-size:.7rem}.digital-piano__key.is-target{border-block-end:.38rem solid var(--secondary)}.digital-piano__key.is-next:after{content:"next";text-transform:uppercase;font-size:.62rem}.digital-piano__key.is-active{background:var(--primary-container);block-size:96%;color:var(--primary);box-shadow:inset 0 -.25rem 0 var(--primary)}.digital-piano__key--black.is-active{block-size:59%}.digital-piano__key.is-mistake{border:2px dashed var(--error)}.piano-studio__input-status{min-inline-size:min(100%,52rem);color:var(--inverse-on-surface);font-size:.84rem;position:sticky;inset-inline-start:0}.piano-studio__input-status label{align-items:center;gap:.4rem;display:inline-flex}.piano-studio__activity>section{gap:var(--space-2);padding-block-start:var(--space-2);display:grid}.piano-studio__activity fieldset{border:0;flex-wrap:wrap;gap:.75rem;margin:0;padding:.65rem 0;display:flex}.piano-studio__activity label{align-items:center;gap:.45rem;font-weight:700;display:inline-flex}.piano-studio__activity select{border:var(--border-card);border-radius:var(--radius);background:var(--surface-container-lowest);min-block-size:2.65rem;color:var(--on-surface);padding:.5rem .7rem}.piano-studio__activity ul,.falling-notes-lane ol{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.piano-studio__activity li,.falling-notes-lane li{border-radius:var(--radius);background:var(--surface-container-low);padding:.45rem .65rem}.piano-studio__activity li[data-active=true],.falling-notes-lane li.is-current{background:var(--tertiary-container);color:var(--on-tertiary-container);font-weight:800}.falling-notes-lane{gap:var(--space-1);min-block-size:8rem;padding:var(--space-2);border-inline-start:.3rem solid var(--primary);background:var(--surface-container-low);display:grid;overflow:hidden}@keyframes piano-note-arrival{0%{opacity:.35;transform:translateY(-1rem)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){html:not([data-reduced-motion=true]) .falling-notes--falling .is-current{animation:piano-note-arrival .48s var(--ease-tactile) both}}@media (pointer:coarse){.digital-piano{min-inline-size:52rem}.digital-piano__key--black{min-inline-size:1.5rem}}@media (width<=760px){.piano-studio__header{flex-direction:column;align-items:start}.piano-studio__modes{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.piano-studio__modes button{padding-inline:.35rem}.digital-piano{block-size:13rem;min-inline-size:46rem}.piano-studio__input-status{min-inline-size:46rem}}@media (width<=420px){.piano-studio__modes{grid-template-columns:1fr}.piano-studio__modes button{border-radius:var(--radius);border-block-end-width:2px}}
