@font-face{font-family:Bodoni Moda Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/bodoni-moda-math-opsz-normal-CbZAXtrh.woff2)format("woff2-variations");unicode-range:U+302-303,U+305,U+307-308,U+310,U+312,U+315,U+31A,U+326-327,U+32C,U+32F-330,U+332-333,U+338,U+33A,U+346,U+34D,U+391-3A1,U+3A3-3A9,U+3B1-3C9,U+3D1,U+3D5-3D6,U+3F0-3F1,U+3F4-3F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE??}@font-face{font-family:Bodoni Moda Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/bodoni-moda-symbols-opsz-normal-d21etpfE.woff2)format("woff2-variations");unicode-range:U+1-C,U+E-1F,U+7F-9F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+28??,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B??,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F0??,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F7??,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB??}@font-face{font-family:Bodoni Moda Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/bodoni-moda-latin-ext-opsz-normal-CoJBavOu.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bodoni Moda Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/bodoni-moda-latin-opsz-normal-X2BzlAjV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bodoni Moda Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(/assets/bodoni-moda-math-opsz-italic-CGdm0Lr_.woff2)format("woff2-variations");unicode-range:U+302-303,U+305,U+307-308,U+310,U+312,U+315,U+31A,U+326-327,U+32C,U+32F-330,U+332-333,U+338,U+33A,U+346,U+34D,U+391-3A1,U+3A3-3A9,U+3B1-3C9,U+3D1,U+3D5-3D6,U+3F0-3F1,U+3F4-3F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE??}@font-face{font-family:Bodoni Moda Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(/assets/bodoni-moda-symbols-opsz-italic-cRdvdvM-.woff2)format("woff2-variations");unicode-range:U+1-C,U+E-1F,U+7F-9F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+28??,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B??,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F0??,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F7??,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB??}@font-face{font-family:Bodoni Moda Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(/assets/bodoni-moda-latin-ext-opsz-italic-QSGu6YSm.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bodoni Moda Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(/assets/bodoni-moda-latin-opsz-italic-BCRrlh7t.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-ext-400-normal-Q_nF8v4l.woff2)format("woff2"),url(/assets/instrument-sans-latin-ext-400-normal-r32jotim.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:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-400-normal-DRC__1Mx.woff2)format("woff2"),url(/assets/instrument-sans-latin-400-normal-D1W7dsQl.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:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/instrument-sans-latin-ext-500-normal-CTEe1bJa.woff2)format("woff2"),url(/assets/instrument-sans-latin-ext-500-normal-CAxz3nsc.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:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/instrument-sans-latin-500-normal-Dk9ku72i.woff2)format("woff2"),url(/assets/instrument-sans-latin-500-normal-Z6ESRlEs.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:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/instrument-sans-latin-ext-600-normal-BsaQcF38.woff2)format("woff2"),url(/assets/instrument-sans-latin-ext-600-normal-DMks36a2.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:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/instrument-sans-latin-600-normal-B7fBEWYG.woff2)format("woff2"),url(/assets/instrument-sans-latin-600-normal-B9e8oLYv.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:Instrument Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/instrument-sans-latin-ext-700-normal-ClYbKGw-.woff2)format("woff2"),url(/assets/instrument-sans-latin-ext-700-normal-BQc-7cTM.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:Instrument Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/instrument-sans-latin-700-normal-CYfAanHo.woff2)format("woff2"),url(/assets/instrument-sans-latin-700-normal-DfAjL1vF.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.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:Noto Music;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-music-music-400-normal-CksxHXl6.woff2)format("woff2"),url(/assets/noto-music-music-400-normal-BOLtuVsm.woff)format("woff");unicode-range:U+25CC,U+2669-266F,U+1D000-1D0F5,U+1D100-1D126,U+1D129-1D1EA,U+1D200-1D245}@font-face{font-family:Noto Music;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-music-latin-ext-400-normal-VTqZvLoa.woff2)format("woff2"),url(/assets/noto-music-latin-ext-400-normal-OGRwg2jq.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:Noto Music;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-music-latin-400-normal-HxzE7T1U.woff2)format("woff2"),url(/assets/noto-music-latin-400-normal-DWPqNw0z.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{--bg:#f7f8f6;--paper-2:#eceeea;--surface:#fff;--sheet:#fdfdfb;--text:#14171c;--muted:#5b616b;--border:#d5d8dc;--rule:#14171c;--accent:#2348a8;--accent-soft:#e6ebf7;--on-accent:#fff;--brand:#c0391f;--error:#c62f1f;--error-soft:#fbe9e6;--warning:#946200;--warning-soft:#fbf1dc;--hint:#4a505a;--pass:#1e6e5a;--pass-soft:#e3f1ec;--tonic:#1e6e5a;--predominant:#946200;--dominant:#b8283f;--gold:#c68a12;--gold-soft:#fbf1dc;--gold-ink:#7f5300;--violet:#6d4bb8;--violet-soft:#f0ecfa;--violet-line:#c9bdf0;--radius:3px;--display:"Bodoni Moda Variable", "Bodoni Moda", "Bodoni 72", Didot, Georgia, serif;--body:"Instrument Sans", "Segoe UI", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;--music:"Noto Music", "Segoe UI Symbol", serif;font-family:var(--body);color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#101318;--paper-2:#1c2129;--surface:#171b22;--sheet:#f4f3ee;--text:#eef0ec;--muted:#a1a7b0;--border:#2f3640;--rule:#eef0ec;--accent:#8aa4ff;--accent-soft:#1d2640;--on-accent:#101318;--brand:#ff6a52;--error:#ff6a52;--error-soft:#3a1d1a;--warning:#f0b43a;--warning-soft:#33280f;--hint:#b9bec6;--pass:#3fb894;--pass-soft:#12302a;--tonic:#3fb894;--predominant:#f0b43a;--dominant:#ff5d76;--gold:#f0b43a;--gold-soft:#33280f;--gold-ink:#f0c25a;--violet:#b49bff;--violet-soft:#251f3a;--violet-line:#4b3f7a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#101318;--paper-2:#1c2129;--surface:#171b22;--sheet:#f4f3ee;--text:#eef0ec;--muted:#a1a7b0;--border:#2f3640;--rule:#eef0ec;--accent:#8aa4ff;--accent-soft:#1d2640;--on-accent:#101318;--brand:#ff6a52;--error:#ff6a52;--error-soft:#3a1d1a;--warning:#f0b43a;--warning-soft:#33280f;--hint:#b9bec6;--pass:#3fb894;--pass-soft:#12302a;--tonic:#3fb894;--predominant:#f0b43a;--dominant:#ff5d76;--gold:#f0b43a;--gold-soft:#33280f;--gold-ink:#f0c25a;--violet:#b49bff;--violet-soft:#251f3a;--violet-line:#4b3f7a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.score-editor,.score-view{--bg:#eceeea;--surface:#fff;--text:#14171c;--muted:#5b616b;--border:#d5d8dc;--accent:#2348a8;--accent-soft:#e6ebf7;--on-accent:#fff;--brand:#c0391f;--error:#c62f1f;--error-soft:#fbe9e6;--pass:#1e6e5a;--pass-soft:#e3f1ec;color:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);margin:0}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius);padding:6px 12px}button:disabled{opacity:.45;cursor:default}button.active{background:var(--accent-soft);border-color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.app>header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.app>header h1{letter-spacing:.02em;margin:0;font-size:20px}.lang{gap:4px;display:flex}.layout{grid-template-columns:300px 1fr;min-height:calc(100vh - 57px);display:grid}.sidebar{border-right:1px solid var(--border);background:var(--surface);padding:16px;overflow-y:auto}.sidebar h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 12px;font-size:13px}.sidebar h3{margin:16px 0 6px;font-size:14px}.sidebar ul{margin:0;padding:0;list-style:none}.sidebar li button{text-align:left;width:100%;color:var(--text);background:0 0;border:none;gap:6px;padding:6px 8px;font-size:13px;line-height:1.35;display:flex}.sidebar li button.current{background:var(--accent-soft)}.sidebar .check{color:var(--pass);flex:0 0 14px;font-weight:700}main{min-width:0;padding:24px}.exercise{max-width:1100px}.prompt{margin:0 0 16px;font-size:20px}.toolbar{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.toolbar .group{gap:4px;display:flex}.toolbar .group.right{margin-left:auto}.toolbar button.symbol{min-width:40px;font-size:20px;line-height:1;font-family:var(--music);padding:6px 8px}.score-editor{background:var(--sheet);border:1px solid var(--border);border-radius:var(--radius);outline:none;padding:8px}.score-canvas svg{display:block}.score-status{color:var(--muted);padding:4px 8px 0;font-size:12px}.feedback{margin-top:16px}.verdict{border-radius:var(--radius);justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px 16px;font-weight:600;display:flex}.verdict.pass{background:var(--pass-soft);color:var(--pass)}.verdict.fail{background:var(--error-soft);color:var(--error)}.violations{gap:6px;margin:0;padding:0;list-style:none;display:grid}.violations li{border-radius:var(--radius);cursor:pointer;border-left:4px solid;padding:8px 12px}.violations .count{opacity:.7;margin-left:8px;font-size:12px;font-weight:600}.toolbar .voices button{min-width:88px}.violations li.error{background:var(--error-soft);border-color:var(--error)}.violations li.warning{background:var(--warning-soft);border-color:var(--warning)}.violations li.hint{background:var(--surface);border-color:var(--hint);color:var(--hint);font-style:italic}.muted{color:var(--muted)}.notice{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);padding:12px 16px}.notice.error{background:var(--error-soft);border-color:var(--error);color:var(--error)}.help{color:var(--muted);margin-top:24px;font-size:14px}.help summary{cursor:pointer}.help li{margin:4px 0}@media (width<=760px){.layout{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border);max-height:40vh}main{padding:16px}}.app>header h1 a{color:inherit;text-decoration:none}.sidebar h3{align-items:center;gap:8px;display:flex}.sidebar .unit-number{background:var(--accent-soft);width:20px;height:20px;color:var(--accent);border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:inline-grid}.sidebar .nav-title{flex:1}.sidebar .progress{color:var(--muted);font-size:11px}.lesson{max-width:820px;line-height:1.6}.lesson h1{margin:0 0 16px;font-size:30px;line-height:1.2}.eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:0 0 4px;font-size:13px;font-weight:600}.prose h2{margin:32px 0 8px;font-size:21px}.prose p,.prose li{font-size:16px}.prose table{border-collapse:collapse;background:var(--surface);margin:12px 0;font-size:15px}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:6px 12px}.prose th{background:var(--bg)}.prose code{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:.9em}.score-view{background:var(--sheet);border:1px solid var(--border);border-radius:var(--radius);margin:16px 0;padding:8px 8px 12px}.score-view svg{display:block}.score-view .play{margin-left:8px;padding:4px 10px;font-size:13px}.lesson-exercises{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:40px;padding:20px}.lesson-exercises-header{justify-content:space-between;align-items:baseline;display:flex}.lesson-exercises h2{margin:0;font-size:18px}.lesson-exercises ol{margin:12px 0 16px;padding:0;list-style:none}.lesson-exercises li button{text-align:left;background:0 0;border:none;gap:8px;width:100%;padding:6px 8px;font-size:14px;display:flex}.lesson-exercises li button:hover{background:var(--bg)}.lesson-exercises .check{color:var(--pass);flex:0 0 14px;font-weight:700}.lesson-nav{justify-content:space-between;margin:32px 0 48px;display:flex}.breadcrumb{justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:14px;display:flex}button.link{color:var(--accent);background:0 0;border:none;padding:0}button.link:hover{text-decoration:underline}.welcome,.assessment{max-width:760px;line-height:1.6}.welcome h1,.assessment h1{margin:8px 0 12px;font-size:30px}.lead{color:var(--muted);font-size:18px}.choices{grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;display:grid}.choice{text-align:left;border-radius:var(--radius);flex-direction:column;gap:6px;padding:20px;line-height:1.45;display:flex}.choice strong{font-size:18px}.choice span{color:var(--muted)}.choice.recommended{border-color:var(--accent);background:var(--accent-soft)}button.large{padding:10px 20px;font-size:16px}.result-start{font-size:18px}.known-list{padding:0;list-style:none}.known-list li{color:var(--pass);padding:2px 0}.actions{gap:12px;margin-top:24px;display:flex}.progress-bar{background:var(--border);border-radius:2px;height:4px;margin-bottom:16px;overflow:hidden}.progress-bar div{background:var(--accent);height:100%;transition:width .3s}.assessment-hint{margin-top:12px;font-size:14px}.nav-assessment{width:100%;margin-bottom:16px;font-size:14px}.sidebar li button.known .check{color:var(--muted)}.sidebar .badge{text-transform:uppercase;letter-spacing:.05em;background:var(--accent);color:var(--on-accent);border-radius:4px;padding:1px 5px;font-size:10px}.known-notice{background:var(--pass-soft);border-color:var(--pass);justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}@media (width<=760px){.choices{grid-template-columns:1fr}}.app>header .tabs{gap:4px;margin-left:32px;margin-right:auto;display:flex}.app>header .tabs button{white-space:nowrap;color:var(--muted);background:0 0;border:none;font-weight:600}.app>header .tabs button.active{color:var(--accent);background:var(--accent-soft)}.header-right{align-items:center;gap:12px;display:flex}.header-stat{white-space:nowrap;font-size:14px;font-weight:600}.meter{background:var(--border);border-radius:3px;height:6px;display:block;overflow:hidden}.meter>span{background:var(--pass);height:100%;transition:width .3s;display:block}.today,.practice,.session-summary{max-width:900px}.today h1,.practice h1,.session-summary h1{margin:0 0 16px;font-size:30px}.stats-row{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:4px;padding:16px;display:flex}.stat strong{font-size:24px}.stat span{color:var(--muted);font-size:14px}.stat-icon{font-size:22px!important}.today-cards{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.today-card,.review-card{text-align:left;border-radius:var(--radius);flex-direction:column;gap:6px;padding:18px;display:flex}.today-card strong,.review-card strong{font-size:17px}.primary-card{border-color:var(--accent);background:var(--accent-soft)}.mastery{margin-top:28px}.mastery h2,.skill-group h2{font-size:18px}.mastery ul{gap:8px;padding:0;list-style:none;display:grid}.mastery li{grid-template-columns:260px 1fr;align-items:center;gap:12px;font-size:14px;display:grid}.review-card{border-color:var(--accent);background:var(--accent-soft);width:100%;margin:8px 0}.review-card span{color:var(--muted)}.skill-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.skill-card{text-align:left;border-radius:var(--radius);flex-direction:column;gap:8px;padding:14px;display:flex}.skill-card.ahead{opacity:.65}.skill-title{justify-content:space-between;gap:8px;font-weight:600;display:flex}.skill-meta{color:var(--muted);font-size:12px}.badge{text-transform:uppercase;letter-spacing:.05em;background:var(--accent);color:var(--on-accent);border-radius:4px;align-self:center;padding:1px 5px;font-size:10px}.summary-stats{gap:16px;margin:16px 0;display:flex}.summary-stats div{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:16px 24px;display:flex}.summary-stats strong{font-size:28px}.xp-gain{background:var(--gold-soft);color:var(--gold-ink);border-radius:2px;margin-left:12px;padding:2px 8px;font-size:13px}button.skip{margin-top:12px}.ear{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);outline:none;flex-direction:column;align-items:flex-start;gap:16px;padding:24px;display:flex}.play-big{border-color:var(--accent);color:var(--accent);padding:12px 24px;font-size:18px}.ear-choices{grid-template-columns:repeat(2,minmax(200px,1fr));gap:10px;width:100%;display:grid}.ear-choices button{text-align:left;align-items:center;gap:10px;padding:12px 14px;font-size:16px;display:flex}.ear-choices .key{background:var(--bg);width:22px;height:22px;color:var(--muted);border-radius:4px;place-items:center;font-size:12px;display:inline-grid}.ear-choices button.right{border-color:var(--pass);background:var(--pass-soft)}.ear-choices button.wrong{border-color:var(--error);background:var(--error-soft)}@media (width<=760px){.stats-row,.today-cards,.ear-choices{grid-template-columns:1fr}.app>header .tabs{margin-left:8px}.header-stat{display:none}}.user-menu,.user-menu>button:first-child{align-items:center;gap:8px;display:flex}.avatar{background:var(--accent);width:24px;height:24px;color:var(--on-accent);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:inline-grid}.banner{background:var(--gold-soft);color:var(--gold-ink);justify-content:center;gap:12px;padding:8px 16px;font-size:14px;display:flex}.auth{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:420px;margin:24px auto;padding:28px}.auth h1{margin:0 0 12px;font-size:26px}.form{flex-direction:column;gap:14px;margin:16px 0;display:flex}.form.inline{flex-direction:row;align-items:flex-end}.form label{flex-direction:column;gap:4px;font-size:14px;font-weight:600;display:flex}.form input,.danger-zone input{font:inherit;border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;font-weight:400}.form input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.field-hint{color:var(--muted);font-size:12px;font-weight:400}.auth-links{justify-content:space-between;gap:12px;font-size:14px;display:flex}a.button.google{border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--surface);justify-content:center;align-items:center;gap:10px;padding:10px;font-weight:600;text-decoration:none;display:flex}.google-g{color:#4285f4;font-weight:800}.divider{color:var(--muted);align-items:center;gap:12px;margin:16px 0 0;font-size:13px;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--border);flex:1}.account{max-width:900px}.account h1{margin:0 0 16px;font-size:30px}.account .stats-row{grid-template-columns:repeat(4,1fr)}.xp-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-end;gap:3px;height:120px;padding:8px;display:flex}.xp-bar{flex:1;align-items:flex-end;height:100%;display:flex}.xp-bar span{background:var(--accent);border-radius:2px 2px 0 0;width:100%;min-height:2px}.attempts{gap:6px;padding:0;font-size:14px;list-style:none;display:grid}.attempts li{grid-template-columns:24px 1fr auto;gap:8px;display:grid}.attempts .ok{color:var(--pass)}.attempts .ko{color:var(--error)}.settings{border-top:1px solid var(--border);margin-top:40px;padding-top:8px}.danger-zone{border:1px solid var(--error);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:10px;margin-top:32px;padding:16px;display:flex}.danger-zone label{flex-direction:column;gap:4px;font-size:14px;display:flex}button.danger{background:var(--error);border-color:var(--error);color:var(--on-accent)}@media (width<=760px){.account .stats-row{grid-template-columns:1fr 1fr}.user-menu>button:first-child{max-width:120px;overflow:hidden}}.lab{max-width:900px}.lab h1{margin:0 0 8px;font-size:30px}.new-work{grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0;display:grid}.works{gap:8px;padding:0;list-style:none;display:grid}.works li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;padding:10px 14px;display:flex}.work-title{text-align:left;background:0 0;border:none;margin-right:auto;padding:0;font-size:16px;font-weight:600}.danger-link{color:var(--error)}.title-input{font:inherit;border-radius:var(--radius);background:0 0;border:1px solid #0000;width:100%;margin:0 0 12px -8px;padding:4px 8px;font-size:22px;font-weight:600}.title-input:hover,.title-input:focus{border-color:var(--border);background:var(--surface)}.lab-settings{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.lab-settings label{flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.lab-settings label.grow{flex:1;min-width:220px}.lab-settings select,.lab-settings input{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:6px 8px;font-weight:400}.save-state{color:var(--muted);font-size:13px}.save-state.error{color:var(--error)}@media (width<=760px){.new-work{grid-template-columns:1fr}}.piazza{grid-template-columns:minmax(0,1fr) 300px;gap:24px;max-width:1100px;display:grid}.feed{flex-direction:column;gap:16px;min-width:0;display:flex}.feed.single{max-width:760px}.feed-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.feed-header h1{margin:0;font-size:30px}.segmented{border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.segmented button{border:none;border-radius:0;padding:6px 12px;font-size:13px}.segmented button.active{background:var(--accent);color:var(--on-accent)}.post{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.post.achievement{background:linear-gradient(135deg, var(--surface) 60%, var(--gold-soft))}.post-header{justify-content:space-between;align-items:flex-start;display:flex}.post-author{color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.post-author>span{flex-direction:column;display:flex}.post-author .muted{font-size:12px}.post-menu{position:relative}.post-menu .menu{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;min-width:140px;display:flex;position:absolute;top:24px;right:0;box-shadow:0 6px 20px #00000014}.post-menu .menu button{text-align:left;border:none;border-radius:0}.post-work h3{margin:12px 0 4px}.caption{white-space:pre-wrap;margin:4px 0 8px}.post-badge{align-items:center;gap:16px;margin-top:12px;display:flex}.post-badge p{color:var(--muted);margin:0;font-size:14px}.post-badge div{flex-direction:column;display:flex}.badge-icon{font-size:44px;line-height:1}.post-footer{gap:8px;margin-top:12px;display:flex}.post-footer .like{border-radius:2px}.post-footer .like.on{background:var(--error-soft);border-color:var(--error)}.button-link{border:1px solid var(--border);color:var(--text);background:var(--surface);border-radius:2px;align-items:center;gap:4px;padding:6px 12px;text-decoration:none;display:inline-flex}.button-link.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);border-radius:var(--radius)}.comments{border-top:1px solid var(--border);flex-direction:column;gap:12px;margin-top:16px;padding-top:12px;display:flex}.comment{grid-template-columns:28px 1fr auto auto;align-items:start;gap:10px;display:grid}.comment p{white-space:pre-wrap;margin:2px 0 0}.comment-form{gap:8px;display:flex}.comment-form input{font:inherit;border:1px solid var(--border);border-radius:var(--radius);flex:1;padding:8px 10px}.load-more{align-self:center}.piazza-side{flex-direction:column;gap:16px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;padding:16px;display:flex}.card h3{margin:0}.card.hero{background:linear-gradient(160deg, var(--accent-soft), var(--surface))}.card label{flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.card label.checkbox{flex-direction:row;align-items:center;gap:8px;font-weight:400}.card input:not([type=checkbox]),.card textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;font-weight:400}.card textarea{resize:vertical;min-height:80px}.card-header{justify-content:space-between;align-items:center;display:flex}.leaderboard ol{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.leaderboard li{border-radius:var(--radius);grid-template-columns:32px 1fr auto;align-items:center;gap:8px;padding:4px 6px;font-size:14px;display:grid}.leaderboard li.me{background:var(--accent-soft);font-weight:600}.small{font-size:12px}.notice.success{background:var(--pass-soft);border-color:var(--pass)}.share-box{margin-bottom:12px}.profile{max-width:900px}.profile-header{align-items:center;gap:20px;margin-bottom:16px;display:flex}.profile-header h1{margin:0}.badges-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.badge-tile{text-align:center;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);flex-direction:column;align-items:center;gap:4px;padding:14px 10px;font-size:13px;display:flex}.badge-tile .badge-icon{font-size:34px}.badge-tile.earned{border-color:var(--gold);background:linear-gradient(180deg, var(--gold-soft), var(--surface))}.badge-tile.locked{opacity:.55}.celebration{z-index:50;background:#1013188c;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.celebration-card{text-align:center;background:var(--surface);border-radius:var(--radius);flex-direction:column;align-items:center;gap:8px;max-width:360px;padding:32px;animation:.4s ease-out pop;display:flex;position:relative;box-shadow:0 20px 60px #00000040}.celebration-card h2{margin:0}.celebration-icon{font-size:72px;line-height:1.1}.confetti span{background:var(--accent);border-radius:2px;width:10px;height:14px;animation:2.4s linear infinite fall;position:absolute;top:-20px}.confetti span:nth-child(3n){background:var(--gold)}.confetti span:nth-child(3n+1){background:var(--brand)}.confetti span:nth-child(4n){background:var(--pass)}@keyframes fall{to{transform:translateY(110vh)rotate(540deg)}}@keyframes pop{0%{opacity:0;transform:scale(.6)}}.combo{background:var(--gold-soft);color:var(--gold-ink);border-radius:2px;margin-bottom:8px;padding:4px 12px;font-weight:700;animation:.3s ease-out pop;display:inline-block}.perfect{border-radius:var(--radius);background:var(--gold-soft);color:var(--gold-ink);padding:8px 14px;font-weight:600;display:inline-block}@media (prefers-reduced-motion:reduce){.confetti,.celebration-card,.combo{animation:none}.confetti{display:none}}@media (width<=900px){.piazza{grid-template-columns:1fr}.piazza-side{order:-1}}.header-link{border-radius:var(--radius);padding:4px 6px;font-size:18px;text-decoration:none}.header-link.active{background:var(--accent-soft)}.bell{position:relative}.bell-button{background:0 0;border:none;padding:4px 6px;font-size:18px;position:relative}.bell-count{background:var(--error);min-width:18px;height:18px;color:var(--on-accent);border-radius:9px;padding:0 4px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:-4px;right:-6px}.bell-panel{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:340px;max-height:70vh;padding:12px;position:absolute;top:36px;right:0;overflow-y:auto;box-shadow:0 12px 32px #0000001f}.bell-panel h3{margin:0 0 8px}.bell-item{border-radius:var(--radius);color:var(--text);align-items:center;gap:10px;padding:8px;font-size:14px;text-decoration:none;display:flex}.bell-item:hover{background:var(--bg)}.bell-item.unread{background:var(--accent-soft)}.bell-icon{font-size:22px}.friends-page,.help-page{max-width:820px}.friends-page h1,.help-page h1{margin:0 0 12px;font-size:30px}.invite-link{gap:8px;display:flex}.invite-link input,input.search{font:inherit;border:1px solid var(--border);border-radius:var(--radius);flex:1;padding:8px 10px}input.search{width:100%}.people{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.person{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.person-status{flex-direction:column;align-items:flex-end;font-size:13px;display:flex}.person-actions{gap:6px;display:flex}.pair-streak{color:var(--gold-ink);font-size:13px;font-weight:600}.friend-actions{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.friends-badge{background:var(--pass-soft);color:var(--pass);border-radius:2px;padding:2px 8px;font-size:13px;font-weight:600}.friends-badge.small{font-size:11px}.help-ask,.help-received{margin-top:16px}.help-button{border-color:var(--violet-line);background:var(--violet-soft);align-self:flex-start;padding:8px 14px;font-size:15px}.help-hint{border-radius:var(--radius);background:var(--violet-soft);grid-template-columns:28px 1fr;gap:10px;padding:10px;display:grid}.help-hint.useful{background:var(--pass-soft)}.help-hint p{white-space:pre-wrap;margin:4px 0}.help-hint .actions{align-items:center;gap:10px;display:flex}.help-list{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.help-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);gap:12px;padding:12px;text-decoration:none;display:flex}.help-row>span{flex-direction:column;gap:2px;display:flex}.help-card{border-color:var(--violet-line);background:var(--violet-soft);color:var(--text);text-decoration:none}.hint-form{margin-top:16px}.score-view.pickable{cursor:pointer}.back{margin-bottom:8px;display:inline-block}.challenges{flex-direction:column;gap:24px;display:flex}.challenges h2{margin:0 0 12px;font-size:20px}.challenges-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.challenges-head h1{margin:0 0 4px}.challenges-head p{margin:0}.challenge-chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--surface);border:1px solid var(--border);white-space:nowrap;border-radius:2px;padding:4px 10px;font-size:13px}.chip.hot{background:var(--gold-soft);border-color:var(--gold);color:var(--gold-ink);font-weight:600}.toast{cursor:pointer;font-weight:600;animation:.4s ease-out pop}.daily-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:8px;display:grid}.daily-card{text-align:left;border-radius:var(--radius);border-top:4px solid var(--tier,var(--accent));flex-direction:column;gap:8px;padding:16px;transition:transform .15s,box-shadow .15s;display:flex}.daily-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #00000014}.daily-card strong{font-size:17px}.daily-card .eyebrow{color:var(--tier,var(--accent));margin:0}.tier-easy{--tier:var(--tonic)}.tier-medium{--tier:var(--predominant)}.tier-hard{--tier:var(--dominant)}.daily-card.solved{background:var(--pass-soft)}.daily-card.failed{background:var(--paper-2)}.daily-top{justify-content:space-between;align-items:center;display:flex}.xp-pill{background:var(--accent-soft);color:var(--accent);border-radius:2px;padding:2px 8px;font-size:12px;font-weight:600}.daily-status{font-weight:600}.friends-solved{align-items:center;gap:2px;display:flex}.challenges-columns{grid-template-columns:2fr 1fr;align-items:start;gap:16px;display:grid}.missions ul{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.missions li{align-items:center;gap:12px;display:flex}.missions li.done .mission-title{color:var(--pass)}.mission-icon{text-align:center;width:30px;font-size:22px}.mission-body{flex-direction:column;flex:1;gap:6px;display:flex}.mission-title{justify-content:space-between;gap:8px;font-weight:600;display:flex}.chest{border-radius:var(--radius);background:var(--gold-soft);border:1px dashed var(--gold);align-items:center;gap:10px;padding:10px 12px;display:flex}.chest.open{background:var(--pass-soft);border-style:solid;border-color:var(--pass)}.chest-icon{font-size:26px}.contest-teaser{text-align:left;background:linear-gradient(160deg, var(--gold-soft), var(--surface));border-color:var(--gold)}.contest-teaser strong{font-size:18px}.contest-teaser .eyebrow{color:var(--gold-ink);margin:0}.pass-text{color:var(--pass);font-weight:600}.challenge-banner{border-radius:var(--radius);border-left:4px solid var(--tier,var(--accent));background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 14px;font-weight:600;display:flex}.challenge-banner.contest-banner{border-left-color:var(--gold);background:var(--gold-soft)}.challenge-closed{max-width:560px}.duel-form{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:12px;display:flex}.duel-form label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.duel-form select{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:180px;padding:6px 8px}.duel-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.duel-row{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);color:inherit;align-items:center;gap:12px;padding:10px 14px;text-decoration:none;display:flex}.duel-row.turn{border-color:var(--accent);background:var(--accent-soft)}.duel-row.win{border-color:var(--pass)}.duel-who{flex-direction:column;flex:1;display:flex}.duel-status{text-align:right;min-width:110px;font-weight:600}.duel-dots{vertical-align:middle;gap:4px;display:inline-flex}.duel-dots .dot{border:1px solid var(--border);background:var(--bg);border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:inline-grid}.duel-dots .dot.right{background:var(--pass);border-color:var(--pass);color:var(--on-accent)}.duel-dots .dot.wrong{background:var(--error);border-color:var(--error);color:var(--on-accent)}.duel-dots .dot.played{background:var(--muted);border-color:var(--muted);color:var(--on-accent)}.duel-board{flex-direction:column;gap:6px;font-weight:400;display:flex}.duel-board>div{align-items:center;gap:8px;display:flex}.duel-summary{max-width:560px}.contest{flex-direction:column;gap:16px;display:flex}.contest-intro h1{margin:0}.contest-intro .eyebrow{color:var(--gold-ink);margin:0}.contest-intro p{margin:0}.contest-caption{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.contest-caption input{font:inherit;border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}.contest-entry{flex-direction:column;gap:4px;display:flex}.entry-rank{font-weight:600}.podium{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.podium li{justify-content:space-between;align-items:center;display:flex}.podium a{color:inherit;align-items:center;gap:8px;font-weight:600;text-decoration:none;display:flex}.challenge-card{border-color:var(--gold);background:var(--gold-soft)}@media (width<=900px){.daily-grid,.challenges-columns{grid-template-columns:1fr}}.duel-summary button,.challenge-closed button{align-self:flex-start}.analysis{flex-direction:column;gap:12px;display:flex}.analysis-inputs{gap:8px;display:grid}.analysis-inputs label{color:var(--muted);flex-direction:column;align-items:center;gap:2px;font-size:12px;display:flex}.analysis-inputs input{width:100%;font:600 17px var(--display);text-align:center;border:1px solid var(--border);border-radius:var(--radius);padding:6px 4px}.analysis-inputs label.wrong input{border-color:var(--error);background:var(--error-soft)}.analysis-inputs label.right input{border-color:var(--pass);background:var(--pass-soft)}.analysis-tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.analysis-tools button:not(.primary){min-width:36px;font-family:var(--display)}.analysis-tools .primary{margin-left:auto}.score-stage{position:relative}.ghost-note{pointer-events:none;background:#2348a859;border-radius:50%;width:14px;height:10px;position:absolute;transform:rotate(-20deg)}.ghost-note.chord{background:#d6402b66;box-shadow:0 0 0 2px #d6402b40}.score-canvas{cursor:pointer}.score-status{min-height:18px;font-weight:600;color:var(--text)!important}.toolbar .group.mode button{font-size:13px}.toolbar .group.mode button.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.piano{-webkit-user-select:none;user-select:none;align-items:stretch;gap:6px;margin-top:10px;display:flex}.piano-shift{padding:0 8px}.piano-keys{flex:1;max-width:640px;height:92px;display:flex}.piano-slot{flex:1;display:flex;position:relative}.piano-white{background:var(--surface);color:var(--muted);border:1px solid #c3c6ca;border-radius:0 0 5px 5px;flex:1;justify-content:center;align-items:flex-end;padding:0 0 4px;font-size:10px;display:flex}.piano-white:hover{background:var(--accent-soft)!important}.piano-black{z-index:1;background:#14171c;border:none;border-radius:0 0 4px 4px;width:60%;height:58%;padding:0;position:absolute;top:0;right:-30%}.piano-black:hover{background:#3b4250!important}.piano-white.lit{background:#c9d4f2}.piano-black.lit{background:var(--accent)}.editor-guide{color:var(--muted);gap:2px;margin:10px 0 0;padding-left:18px;font-size:13px;display:grid}body{font-family:var(--body);color:var(--text);-webkit-font-smoothing:antialiased}input,select,textarea{background:var(--surface);color:var(--text)}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}main h1,.lesson h1,.welcome h1,.assessment h1,.auth h1,.celebration-card h2{font-family:var(--display);letter-spacing:-.02em;text-wrap:balance;font-weight:600;line-height:1.05}main h1{font-size:clamp(30px,3.6vw,42px)}main h2,.prose h2{font-family:var(--display);letter-spacing:-.01em;font-weight:600}.eyebrow{font-family:var(--mono);letter-spacing:.12em;color:var(--brand);align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.icon{vertical-align:-.2em;flex:none;display:inline-block}button{transition:border-color .12s,background .12s,color .12s}button:hover:not(:disabled){border-color:var(--text)}button.primary{background:var(--text);border-color:var(--text);color:var(--bg);font-weight:600}button.primary:hover:not(:disabled){background:var(--brand);border-color:var(--brand);color:#fff}.app>header{z-index:10;background:var(--bg);border-bottom:1px solid var(--rule);box-shadow:0 3px 0 -1px var(--bg), 0 4px 0 0 var(--rule);gap:16px;margin-bottom:4px;position:sticky;top:0}.app>header h1{font:800 30px/1 var(--display);letter-spacing:-.04em}.wordmark i{color:var(--brand);font-style:italic;font-weight:500}.app>header .tabs button{color:var(--muted);border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:6px;padding:8px 10px 6px;display:inline-flex}.app>header .tabs button:hover:not(:disabled){color:var(--text);border-color:#0000;border-bottom-color:var(--border)}.app>header .tabs button.active{color:var(--text);border-bottom-color:var(--brand);background:0 0}.header-stat{font-family:var(--mono);align-items:center;gap:5px;font-size:13px;font-weight:500;display:inline-flex}.header-link{color:var(--text);place-items:center;display:inline-grid}.bell-button{color:var(--text)}.lang button{font:500 12px/1 var(--mono);padding:6px 7px}.layout{min-height:calc(100vh - 62px)}.sidebar{background:var(--bg);border-right:1px solid var(--border)}.sidebar h2{font-family:var(--mono);letter-spacing:.14em;font-size:11px;font-weight:500}.sidebar h3{font-family:var(--display);margin-top:18px;font-size:16px;font-weight:600}.sidebar .unit-number{width:auto;height:auto;color:var(--brand);font:italic 500 17px/1 var(--display);background:0 0;border-radius:0;min-width:18px}.sidebar li button{border-left:2px solid #0000;border-radius:0}.sidebar li button:hover{background:var(--paper-2)}.sidebar li button.current{background:var(--surface);border-left-color:var(--brand);font-weight:600}.nav-assessment{border-color:var(--text);font-weight:600}.card.hero,.contest-teaser,.post.achievement,.badge-tile.earned,.challenge-card,.help-card{background:var(--surface)}.card.hero{border-top:3px solid var(--text)}.contest-teaser,.post.achievement,.badge-tile.earned,.challenge-card{border-top:3px solid var(--gold)}.help-card{border-top:3px solid var(--violet)}.primary-card,.review-card{background:var(--surface);border-color:var(--text);border-left:3px solid var(--brand)}.daily-card:hover{box-shadow:none;border-color:var(--text)}.stat strong,.summary-stats strong{font-family:var(--display);letter-spacing:-.02em;font-size:30px;font-weight:700;line-height:1.1}.stat-icon{color:var(--brand)}.today-card strong,.review-card strong,.daily-card strong,.contest-teaser strong,.choice strong{font-family:var(--display);letter-spacing:-.01em;font-size:19px;font-weight:600}.mastery:before,.settings:before{content:"";border-top:1px solid var(--rule);border-bottom:3px solid var(--rule);width:48px;height:4px;margin-bottom:20px;display:block}.meter{border-radius:0;height:4px}.meter>span{background:var(--tonic)}.progress-bar,.progress-bar div{border-radius:0}.progress-bar div{background:var(--brand)}.hairpin{width:100%;height:22px;margin-top:4px;display:block}.hairpin path{fill:none;vector-effect:non-scaling-stroke}.hairpin-track{stroke:var(--border);stroke-width:1.5px}.hairpin-fill{stroke:var(--brand);stroke-width:3px;stroke-linecap:round}.beats{gap:3px;margin-top:4px;display:flex}.beats i{background:var(--border);flex:1;height:8px}.beats i.on{background:var(--brand);animation:.5s ease-out backwards beat}.beats i.on:nth-child(2){animation-delay:80ms}.beats i.on:nth-child(3){animation-delay:.16s}.beats i.on:nth-child(4){animation-delay:.24s}.beats i.on:nth-child(5){animation-delay:.32s}.beats i.on:nth-child(6){animation-delay:.4s}.beats i.on:nth-child(7){animation-delay:.48s}@keyframes beat{0%{background:var(--text);transform:scaleY(2.2)}}.dyn{font:italic 700 1.15em/1 var(--display);color:var(--tier,var(--brand));letter-spacing:.02em;text-transform:none}.medal{min-width:26px;height:26px;font:700 13px/1 var(--display);color:var(--text);border:1.5px solid;place-items:center;padding:0 4px;display:inline-grid}.medal.m1{color:var(--gold-ink)}.medal.m3{color:var(--predominant);opacity:.8}.verdict{border-left:4px solid;position:relative;overflow:hidden}.verdict.pass{border-color:var(--tonic)}.verdict.fail{border-color:var(--error)}.verdict>span:not(.resonance){font-family:var(--display);font-size:19px;position:relative}.verdict>button{position:relative}.violations li{color:var(--text);border-left-width:3px;border-radius:0;background:var(--surface)!important}.violations li.error{border-left-color:var(--error)}.violations li.warning{border-left-color:var(--warning)}.violations li.hint{border-left-color:var(--accent);color:var(--accent)}.xp-gain{font-family:var(--mono);font-weight:600}.resonance{pointer-events:none;width:0;height:0;position:absolute;top:50%;left:28px}.resonance i{border:2px solid var(--tonic);opacity:0;border-radius:50%;width:180px;height:180px;animation:1.6s ease-out forwards resonate;position:absolute;top:-90px;left:-90px}.resonance i:nth-child(2){animation-delay:.25s}.resonance i:nth-child(3){animation-delay:.5s}@keyframes resonate{0%{opacity:.8;transform:scale(.05)}to{opacity:0;transform:scale(1.6)}}.celebration-card{border-radius:var(--radius);border-top:4px solid var(--gold);background:var(--surface);color:var(--text);overflow:hidden}.celebration-card .resonance{top:104px;left:50%}.celebration-card .resonance i{border-color:var(--gold);animation-duration:2.4s;animation-iteration-count:infinite}.celebration-icon,.celebration-card h2,.celebration-card p,.celebration-card button{position:relative}.combo{color:var(--brand);font:italic 700 20px/1 var(--display);background:0 0;border-radius:0;padding:4px 0}.badge,.sidebar .badge{font-family:var(--mono);background:var(--text);color:var(--bg);border-radius:0;font-weight:600}.chip,.xp-pill{font-family:var(--mono);align-items:center;gap:5px;font-size:12px;display:inline-flex}.chip.hot{color:var(--brand);border-color:var(--brand);background:var(--surface)}.segmented button.active,.toolbar .group.mode button.active{background:var(--text);border-color:var(--text);color:var(--bg)}.avatar{font-family:var(--display);font-weight:700}.score-editor,.score-view{border-color:#c3c6ca;box-shadow:0 1px #14171c0a,0 8px 24px -16px #14171c59}.score-editor:focus{border-color:#2348a8;box-shadow:0 0 0 3px #e6ebf7}.analysis-inputs input{font-family:var(--display)}.prose{font-size:17px}.prose blockquote{border-left:3px solid var(--accent);background:var(--surface);color:var(--text);margin:20px 0;padding:14px 18px}.prose blockquote>:first-child{margin-top:0}.prose blockquote>:last-child{margin-bottom:0}@media (width<=760px){.app>header{flex-wrap:wrap;padding:10px 16px}.app>header .tabs{order:3;width:100%;margin:0;overflow-x:auto}}@media (prefers-reduced-motion:reduce){.beats i.on{animation:none}.resonance{display:none}}.daily-dyns{gap:14px;font-size:22px;display:flex}main h3,.card h3{font-family:var(--display);align-items:center;gap:8px;font-size:19px;font-weight:600;display:flex}.mission-icon{color:var(--brand)}.missions li.done .mission-icon{color:var(--tonic)}@media (width<=760px){.app>header{position:static}.header-stat{display:none}.header-right{flex-wrap:wrap;gap:8px;min-width:0}}.layout.full{grid-template-columns:1fr}.layout.full>main{padding:32px clamp(16px,4vw,48px) 64px}.app>header .tabs .nav-test{border:1px solid var(--text);border-radius:var(--radius);color:var(--text);margin-left:12px;padding:6px 12px}.app>header .tabs .nav-test:hover:not(:disabled),.app>header .tabs .nav-test.active{background:var(--text);color:var(--bg);border-color:var(--text)}.auditorium{flex-direction:column;gap:20px;max-width:1280px;margin:0 auto;display:flex}.auditorium-head{border-bottom:1px solid var(--rule);box-shadow:0 3px 0 -1px var(--bg), 0 4px 0 0 var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:18px;display:flex}.auditorium-head h1{letter-spacing:-.035em;margin:0 0 6px;font-size:clamp(40px,6vw,72px);font-weight:700}.auditorium-head .lead{max-width:60ch;margin:0}.auditorium-intro{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--brand);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;padding:18px 20px;display:flex}.auditorium-intro>div:first-child{flex-direction:column;gap:4px;max-width:62ch;display:flex}.auditorium-intro strong{font:600 22px/1.2 var(--display)}.auditorium-intro .actions{flex-wrap:wrap;align-items:center;margin:0}.auditorium-filters{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.auditorium-filters button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:6px;padding:6px 10px;font-weight:600;display:inline-flex}.auditorium-filters button:hover:not(:disabled){color:var(--text);border-color:#0000;border-bottom-color:var(--border)}.auditorium-filters button.active{color:var(--text);border-bottom-color:var(--brand)}.filter-rule{background:var(--border);width:1px;height:20px;margin:0 10px}.challenges-side{flex-direction:column;gap:16px;display:flex}.join-strip{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.mosaic{min-height:40px;position:relative}.tile{min-width:0;animation:.45s cubic-bezier(.2,.7,.2,1) backwards tile-in;position:absolute;top:0;left:0}.tile>.post{flex-direction:column;display:flex}.tile>.post>.post-footer{margin-top:auto}@keyframes tile-in{0%{opacity:0;transform:translateY(14px)}}.tile>*{margin:0}.tile .post,.tile .card,.tile .stat,.tile .today-card{transition:border-color .15s,transform .15s}.tile .post:hover{border-color:var(--text)}.tile .post .post-work h3,.tile .post .post-discussion h3{font:600 22px/1.2 var(--display);margin:10px 0 4px}.tile.hero .post .post-work h3{font-size:30px}.tile .post .caption{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.tile .post .score-view{margin:10px 0 0;overflow-x:auto}.tile .post.achievement{text-align:center}.tile .post.achievement .post-badge{flex-direction:column;justify-content:center;gap:10px;padding:8px 0}.tile .post.achievement .post-badge strong{font:600 20px/1.2 var(--display)}.tile .post.achievement .badge-icon{border:1.5px solid var(--gold);width:84px;height:84px;box-shadow:inset 0 0 0 5px var(--surface), inset 0 0 0 6px var(--gold);border-radius:50%;place-items:center;font-size:38px;display:inline-grid}.post.discussion{border-top:3px solid var(--accent)}.post-discussion{margin-top:10px}.post-discussion .eyebrow{color:var(--accent)}.discussion-text{white-space:pre-wrap;margin:6px 0 0;line-height:1.55}.discussion-text.clamped{-webkit-line-clamp:9;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.post-discussion.quote .discussion-text{font:italic 500 24px/1.3 var(--display);letter-spacing:-.01em}.post-discussion.quote .discussion-text:before{content:"“";color:var(--brand);margin-right:2px}.post-discussion.quote .discussion-text:after{content:"”";color:var(--brand)}.read-more{margin-top:6px;font-size:14px;display:inline-block}.post-marks{gap:4px;margin-left:auto;display:flex}.post-marks .mark{color:var(--muted);background:0 0;border:none;align-items:center;gap:4px;padding:4px 6px;font-size:13px;display:inline-flex}.post-marks .mark span{display:none}.tile.wide .post-marks .mark span,.tile.hero .post-marks .mark span,.feed.single .post-marks .mark span{display:inline}.post-marks .mark:hover:not(:disabled){color:var(--text)}.post-marks .mark.on{color:var(--brand)}.favorites-tab.active{color:var(--brand)!important}.composer{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;padding:12px;display:flex}.composer.open{border-color:var(--text)}.composer textarea{font:inherit;resize:vertical;border:none;outline:none;min-height:38px;padding:6px;font-size:16px}.composer-tools{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding-top:10px;display:flex}.composer-tools input{min-width:180px;font:inherit;border:1px solid var(--border);border-radius:var(--radius);flex:1;padding:6px 8px}.composer-tools label{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.composer-tools select{font:inherit;border:1px solid var(--border);border-radius:var(--radius);padding:5px 6px}.composer-tools .primary{margin-left:auto}@media (prefers-reduced-motion:reduce){.tile{animation:none}}.tile:empty{display:none}.today{max-width:1280px;margin:0 auto}.today>h1{margin-bottom:20px}.tile>.stat,.tile>.today-card,.tile>.card,.tile>.today-hero{width:100%;height:auto}.today-hero{background:var(--surface);border:1px solid var(--text);border-radius:var(--radius);flex-direction:column;gap:10px;padding:24px;display:flex;position:relative;overflow:hidden}.today-hero:after{content:"";background-image:repeating-linear-gradient(to bottom, var(--border) 0 1px, transparent 1px 12px);pointer-events:none;width:60%;height:49px;position:absolute;top:22px;right:-10%}.today-hero>*{position:relative}.today-hero h2{font:700 clamp(28px, 3.4vw, 40px) / 1.05 var(--display);letter-spacing:-.025em;margin:0}.unit-label{color:var(--muted);font-size:14px}.unit-label i{font:italic 500 18px/1 var(--display);color:var(--brand);margin-right:4px}.today-hero-foot{flex-wrap:wrap;align-items:center;gap:16px;margin-top:6px;display:flex}.stat.goal{text-align:center;align-items:center}.goal-ring{width:104px;height:104px}.goal-ring circle{fill:none;stroke-width:7px}.goal-track{stroke:var(--border)}.goal-fill{stroke:var(--tonic);stroke-linecap:round;transition:stroke-dasharray .6s ease-out}.goal-ring text{font:700 17px var(--display);fill:var(--text)}.week-bars{grid-template-columns:repeat(7,1fr);align-items:end;gap:6px;height:110px;display:grid}.week-bars span{flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.week-bars i{background:var(--border);width:100%;min-height:2px}.week-bars span:not(.today) i{background:var(--accent);opacity:.55}.week-bars span.today i{background:var(--brand)}.week-bars b{font:500 11px/1 var(--mono);color:var(--muted)}.tip-card{border-left:3px solid var(--predominant)}.tip-card p{font:italic 500 18px/1.4 var(--display);margin:0}.auditorium-card ul{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.auditorium-card a{color:var(--text);text-decoration:none}.auditorium-card li a{flex-direction:column;gap:2px;display:flex}.auditorium-card li strong{font-family:var(--display);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;display:-webkit-box;overflow:hidden}.auditorium-card li a:hover strong{color:var(--brand)}.auditorium-card>a{color:var(--accent)}.mastery-card ul{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px 24px;margin:0;padding:0;list-style:none;display:grid}.mastery-card li{flex-direction:column;gap:4px;font-size:14px;display:flex}.tile>*{box-sizing:border-box;width:100%}.practice,.challenges{max-width:1280px;margin:0 auto}.tile>.daily-card,.tile>.skill-card{text-align:left}.app>header{flex-wrap:wrap;row-gap:8px}.app>header .tabs{flex-wrap:wrap}.header-right{flex-wrap:wrap;margin-left:auto}.score-stage,.piano{-webkit-user-select:none;user-select:none}.skip-link{z-index:100;background:var(--text);color:var(--bg);border-radius:var(--radius);padding:10px 14px;font-weight:600;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}main:focus{outline:none}.site-footer{border-top:1px solid var(--rule);box-shadow:0 -3px 0 -1px var(--bg), 0 -4px 0 0 var(--rule);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px 24px;margin-top:40px;padding:20px clamp(16px,4vw,48px) 28px;font-size:13px;display:flex}.site-footer nav{flex-wrap:wrap;gap:6px 18px;display:flex}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--text)}.footer-brand{font-family:var(--display);color:var(--text);font-size:15px}.footer-brand i{color:var(--brand)}.legal{max-width:820px;margin:0 auto}.legal h1{margin-top:0}.legal table{display:block;overflow-x:auto}.consent{text-align:left;flex-direction:column;gap:10px;display:flex}.consent .checkbox{grid-template-columns:20px 1fr;align-items:start;gap:8px;font-size:14px;font-weight:400;line-height:1.45;display:grid}.consent input[type=checkbox]{width:18px;height:18px;accent-color:var(--text);margin:1px 0 0}.terms-card{gap:14px;max-width:480px}.mistakes{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:16px}.mistakes>header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:12px 16px;display:flex}.mistakes>header h2{font:600 20px/1.2 var(--display);margin:0}.mistakes ol{margin:0;padding:0;list-style:none}.mistake{border-left:3px solid var(--error)}.mistake.warning{border-left-color:var(--warning)}.mistake.hint{border-left-color:var(--accent)}.mistake+.mistake{border-top:1px solid var(--border)}.mistake-head{text-align:left;width:100%;color:var(--text);background:0 0;border:none;border-radius:0;grid-template-columns:auto 1fr auto;align-items:baseline;gap:12px;padding:10px 16px;display:grid}.mistake-head:hover:not(:disabled){background:var(--paper-2)}.mistake-kind{font:600 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--error)}.mistake.warning .mistake-kind{color:var(--warning)}.mistake.hint .mistake-kind{color:var(--accent)}.mistake-where{font:500 12px/1 var(--mono);color:var(--muted);white-space:nowrap}.mistake-message .count{color:var(--muted);margin-left:8px;font-size:12px}.mistake-body{gap:6px;padding:0 16px 14px;font-size:15px;line-height:1.5;display:grid}.mistake-body p{margin:0}.mistake-body strong{font-weight:600}.mistake-body a{font-size:14px}@media (width<=600px){.mistake-head{grid-template-columns:1fr;gap:4px}}.numerals-help{margin:-6px 0 14px;font-size:14px}.numerals-help summary{cursor:pointer;color:var(--accent);width:fit-content}.numerals-help ul{color:var(--muted);margin:8px 0;padding-left:18px}.numerals-table{flex-wrap:wrap;align-items:stretch;gap:6px;display:flex}.numerals-caption{width:100%;font:500 11px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.numerals-cell{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:center;gap:2px;min-width:78px;padding:6px 8px;display:flex}.numerals-cell b{font:600 18px/1 var(--display)}.numerals-cell b.major{color:var(--text)}.numerals-cell b.minor{color:var(--accent)}.numerals-cell span{color:var(--muted);font-size:12px}.lesson-training{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--tonic);border-radius:var(--radius);flex-direction:column;gap:12px;margin-top:24px;padding:20px;display:flex}.lesson-training h2{margin:0;font-size:18px}.lesson-training>p{margin:0;font-size:14px}.lesson-training>button{align-self:flex-start}.mastery-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.mastery-list li{grid-template-columns:minmax(140px,1fr) 2fr auto;align-items:center;gap:12px;font-size:14px;display:grid}.mastery-list li.mastered .meter>span{background:var(--tonic)}.mastered-notice{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}@media (width<=600px){.mastery-list li{grid-template-columns:1fr;gap:4px}}.dictation-play{flex-wrap:wrap;align-items:center;gap:12px;margin:8px 0 16px;display:flex}.sing{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:16px;padding:20px;display:flex}.sing-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.tuner{width:100%;max-width:420px}.tuner-scale{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.tuner-track{background:linear-gradient(90deg, var(--warning-soft), var(--pass-soft) 40%, var(--pass-soft) 60%, var(--warning-soft));border:1px solid var(--border);border-radius:7px;height:14px;margin:4px 0;position:relative}.tuner-track:after{content:"";background:var(--pass);width:1px;position:absolute;top:-3px;bottom:-3px;left:50%}.tuner-needle{background:var(--warning);border-radius:2px;width:4px;height:22px;margin-left:-2px;transition:left 80ms linear;position:absolute;top:-5px}.tuner.in-tune .tuner-needle{background:var(--pass)}.sung-dots{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sung-dots>span:not(.muted){border:2px solid var(--border);border-radius:50%;width:14px;height:14px}.sung-dots>span.done{background:var(--accent);border-color:var(--accent)}.midi-status{color:var(--muted);margin-top:6px;font-size:14px}.mistake-profile ol{gap:12px;margin:8px 0 0;padding-left:20px;display:grid}.mistake-profile li{flex-direction:column;gap:4px;display:flex}.mistake-example{font-weight:600}.mistake-actions{flex-wrap:wrap;align-items:center;gap:12px;font-size:14px;display:flex}.small-button{padding:4px 12px;font-size:14px}.practice>.mistake-profile{margin:16px 0}.toolbar .group.right{flex-wrap:wrap}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.post-footer{flex-wrap:wrap;align-items:center}.react{align-items:center;gap:2px;display:inline-flex;position:relative}.react-more{padding:4px 6px;font-size:14px}.reaction-picker{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:24px;gap:2px;padding:4px;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;box-shadow:0 6px 18px #00000026}.reaction-picker button{background:0 0;border:none;border-radius:50%;padding:4px 6px;font-size:22px;transition:transform .12s}.reaction-picker button:hover,.reaction-picker button.on{background:var(--accent-soft);transform:scale(1.25)}.social-proof{margin:10px 0 0}.reaction-icons{letter-spacing:-2px}.gallery{border-radius:var(--radius);gap:4px;margin-top:10px;display:grid;overflow:hidden}.gallery.n2,.gallery.n3,.gallery.n4{grid-template-columns:1fr 1fr}.gallery.n3 a:first-child{grid-row:span 2}.gallery img,.gallery video{object-fit:cover;background:var(--paper-2);width:100%;height:100%;max-height:520px;display:block}.gallery.n1 img{object-fit:contain;height:auto}.share{align-items:center;margin-left:auto;display:inline-flex;position:relative}.share-button.compact{padding:4px 10px}.share-menu{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:2px;width:260px;padding:10px;display:grid;position:absolute;bottom:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000002e}.share-menu p{margin:0 0 6px}.share-menu button{text-align:left;background:0 0;border:none;padding:7px 8px}.share-menu button:hover{background:var(--accent-soft)}.share-toast{z-index:30;background:var(--pass);color:#fff;border-radius:var(--radius);width:max-content;max-width:260px;padding:6px 10px;font-size:13px;position:absolute;top:calc(100% + 6px);right:0}.celebration-share{flex-direction:column;align-items:center;gap:8px;margin:12px 0;display:flex}.celebration-share .share{margin-left:0}.celebration-share .share-menu{left:50%;right:auto;transform:translate(-50%)}.profile-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.profile-actions .share,.stat .share{margin-left:0}.stat .share-menu{inset:calc(100% + 6px) auto auto 0}.composer-quick{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.prompt-chip,.theme-chip{border-radius:16px;padding:4px 12px;font-size:13px}.theme-chip{text-align:left;border-color:var(--gold);background:var(--gold-soft);width:100%;color:var(--gold-ink);margin-bottom:8px;display:block}.composer-media{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.composer-thumb{width:96px;height:96px;position:relative}.composer-thumb img,.composer-thumb video{object-fit:cover;border-radius:var(--radius);border:1px solid var(--border);width:100%;height:100%}.composer-thumb button{border-radius:50%;padding:0 6px;font-size:12px;position:absolute;top:2px;right:2px}.pulse{margin:8px 0 20px}.pulse-strip{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;margin:0 0 12px;font-size:14px;display:flex}.pulse-dot{background:var(--pass);width:9px;height:9px;box-shadow:0 0 0 0 var(--pass);border-radius:50%;margin-right:6px;animation:2s infinite pulse-ring}@keyframes pulse-ring{70%{box-shadow:0 0 0 8px #0000}}@media (prefers-reduced-motion:reduce){.pulse-dot{animation:none}}.pulse-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.pulse-card h3{margin:0 0 6px;font-size:17px}.pulse-card ul,.pulse-card ol{gap:8px;margin:8px 0 0;padding-left:0;font-size:14px;list-style:none;display:grid}.pulse-card ol{padding-left:18px;list-style:decimal}.pulse-card li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.pulse-card ol li{display:list-item}.pulse-card li.me{font-weight:600}.pulse-person{align-items:center;gap:8px;display:inline-flex}.post-marks+.share{margin-left:4px}.gentle-warning{border-color:var(--gold);background:var(--gold-soft);color:var(--gold-ink);margin-top:12px}.gentle-warning p{margin:0 0 10px}.gentle-actions{flex-wrap:wrap;gap:8px;display:flex}.announce-list{gap:10px;margin-bottom:16px;display:grid}.announce-card p{margin:0 0 6px}.announce-card input{width:100%;margin:6px 0 10px}.announce-actions{flex-wrap:wrap;gap:8px;display:flex}.post-friendship{text-align:center;padding:8px 0}.friendship-avatars{align-items:center;gap:10px;margin-bottom:8px;font-size:28px;display:inline-flex}.verdict.burned{border-color:var(--warning);background:var(--warning-soft);color:var(--text)}.avatar{flex-shrink:0;position:relative;overflow:hidden}.avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%;position:absolute;inset:0}.profile-photo{flex-direction:column;align-items:center;gap:8px;display:flex}.photo-controls{flex-direction:column;align-items:center;gap:4px;font-size:13px;display:flex}.photo-nudge{border:1px dashed var(--accent);border-radius:var(--radius);color:var(--text);flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 14px;padding:10px 14px;text-decoration:none;display:flex}.photo-nudge strong{color:var(--accent);margin-left:auto}.theme-switch button{font:400 14px/1 var(--body);min-width:28px}.choice.featured{border-color:var(--accent);background:var(--accent-soft);grid-column:1/-1}.choice.active{border-color:var(--accent);background:var(--accent-soft)}.new-score h2{margin-top:0}.new-score h3{font-family:var(--display);margin:28px 0 6px;font-size:22px}.new-score h4,.instruments-tab h4{margin:0 0 8px;font-size:14px}.templates{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:12px 0 16px;display:grid}.templates .choice{padding:12px 14px}.templates .choice strong{font-size:15px}.templates .choice span{font-size:13px}.ensemble{grid-template-columns:minmax(220px,1fr) 2fr;gap:20px;display:grid}.chosen{scrollbar-gutter:stable;max-height:360px;margin:0;padding:0 14px 0 24px;font-size:14px;overflow-y:auto}.chosen li{justify-content:space-between;gap:8px;padding:2px 0;display:flex}.instrument-picker .family-tabs{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.instrument-picker .family-tabs button{padding:4px 10px;font-size:13px}.instrument-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;display:grid}.instrument-grid button{text-align:left;padding:6px 10px;font-size:13px}.form-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));align-items:start;gap:12px 16px;display:grid}.form-grid label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.form-grid input,.form-grid select{font:inherit;color:var(--text);font-size:15px}.time-select,.metronome{color:var(--text);align-items:center;gap:6px;display:flex}.time-select input,.metronome input{width:64px}.time-select{flex-direction:column;align-items:stretch;min-width:0}.time-custom{align-items:center;gap:6px;display:flex}.time-custom input,.time-custom select{flex:none;width:60px}.new-score .actions{gap:8px;margin-top:28px;display:flex}main:has(.studio){max-width:none}.studio{outline:none}.studio-top{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.studio-title{font-family:var(--display);font-size:22px}.studio-top .grow{flex:1}.ribbon-row{border-bottom:1px solid var(--border);align-items:flex-end;gap:12px;display:flex}.ribbon{flex-wrap:wrap;flex:1;gap:2px;min-width:0;display:flex}.ribbon button{border-radius:var(--radius) var(--radius) 0 0;color:var(--muted);background:0 0;border:1px solid #0000;border-bottom:none;padding:7px 10px;font-size:14px;font-weight:600}.ribbon button.active{background:var(--surface);border-color:var(--border);color:var(--text);margin-bottom:-1px}.ribbon-panel{background:var(--surface);border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);border-top:none;flex-wrap:wrap;align-items:center;gap:10px 18px;min-height:58px;margin-bottom:12px;padding:10px 12px;display:flex}.ribbon-group{border-right:1px solid var(--border);align-items:center;gap:4px;padding-right:18px;display:flex}.ribbon-group:last-child{border-right:none}.ribbon-panel button.symbol{min-width:38px;font-size:20px;line-height:1;font-family:var(--music);padding:5px 8px}.ribbon-panel input[type=number]{width:64px}.ribbon-hint{color:var(--muted);font-size:13px}.zoom{text-align:center;font-variant-numeric:tabular-nums;min-width:48px}.instruments-tab{grid-template-columns:minmax(320px,1fr) 2fr;gap:20px;width:100%;display:grid}.parts{scrollbar-gutter:stable;max-height:300px;margin:0;padding:0 14px 0 24px;overflow-y:auto}.parts li{align-items:center;gap:4px;padding:2px 0;display:flex}.parts input{flex:1;min-width:0;font-size:13px}.parts input.short{flex:0 0 76px}.parts button.symbol{min-width:28px;padding:3px 6px;font-size:14px}.score-tab{width:100%}.paper-desk{background:var(--paper-2);border-radius:var(--radius);min-height:520px;max-height:calc(100vh - 170px);padding:20px 0;overflow:auto}.paper{background:var(--sheet);color:#14171c;box-sizing:border-box;margin:0 auto;box-shadow:0 1px 3px #0000001f,0 8px 24px #00000014}.paper-heading{text-align:center;font-family:var(--display);margin-bottom:1em}.paper-heading h1{margin:0;font-size:3.6em;font-weight:600;line-height:1.1}.paper-heading .subtitle{margin:.3em 0 0;font-size:1.8em}.paper-heading .credits{flex-direction:column;align-items:flex-end;margin-top:.4em;font-size:1.5em;display:flex}.paper-copyright{text-align:center;font-family:var(--display);margin-top:2em}.system{margin-bottom:0;position:relative}.system.writing{cursor:crosshair}.system-svg svg{display:block}.studio-caret{pointer-events:none;background:#2348a8;width:2px;animation:1.1s steps(2,start) infinite caret-blink;position:absolute}@keyframes caret-blink{to{visibility:hidden}}.studio-playhead{opacity:.8;pointer-events:none;background:#1e6e5a;width:2px;position:absolute}.studio-bars{pointer-events:none;background:#2348a81f;outline:2px solid #2348a88c;position:absolute}.studio-ghost{pointer-events:none;background:#2348a873;border-radius:50%;position:absolute;transform:rotate(-20deg)}.studio-ghost.chord{background:#6d4bb88c}.studio-ghost.out{background:#c62f1f8c}.studio-status{min-height:1.5em;padding:6px 2px 0}.studio-guide{color:var(--muted);margin-top:10px;font-size:14px}.studio-guide summary{cursor:pointer}@media (prefers-reduced-motion:reduce){.studio-caret{animation:none}}@media (width<=760px){.ensemble,.instruments-tab{grid-template-columns:1fr}.paper-desk{max-height:none}}.ribbon-panel button.sign{font-family:var(--music), var(--display);min-width:36px;font-size:18px}.ribbon-panel button.dynamic{font-family:var(--music);min-width:40px;padding:2px 6px;font-size:22px}.ribbon-panel button.word{font-family:var(--display);padding:4px 8px;font-size:15px;font-style:italic}.ribbon-group.wrap{flex-wrap:wrap;max-width:560px}.ribbon-panel input:not([type=number]){min-width:140px}.lyric-field{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.audience{border:1px solid var(--border);border-radius:var(--radius);margin:8px 0;padding:8px 12px 10px}.audience legend{color:var(--muted);padding:0 4px;font-size:13px}.audience-options{flex-wrap:wrap;gap:4px;display:flex}.audience-options button{padding:5px 10px;font-size:14px}.audience-people ul{flex-wrap:wrap;gap:6px;margin:6px 0;padding:0;list-style:none;display:flex}.audience-people li{background:var(--accent-soft);border-radius:999px;padding:2px 4px 2px 10px;font-size:13px}.audience-add{gap:6px;display:flex}.share-work{max-width:640px;margin-bottom:12px}.share-work textarea{width:100%;min-height:70px}.share-link{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.share-link code{overflow-wrap:anywhere;font-size:12px}.post-audience{white-space:nowrap}.menu-select{color:var(--muted);flex-direction:column;gap:2px;padding:4px 8px;font-size:12px;display:flex}.open-score{margin:6px 0;font-weight:600;display:inline-block}.paper-desk.pages{padding:24px 0}.score-pages{box-sizing:border-box;flex-direction:column;align-items:flex-start;gap:24px;width:max-content;min-width:100%;padding:0 24px;display:flex}.score-pages .page-sheet{margin:0 auto}.page-sheet{box-sizing:border-box;background:var(--sheet);color:#14171c;flex:none;position:relative;box-shadow:0 1px 3px #00000024,0 10px 28px #0000001a}.page-number{text-align:center;font-family:var(--display);position:absolute;left:0;right:0}.page-credit{font-family:var(--display);color:#8a8d93;letter-spacing:.02em;font-style:italic;position:absolute}.page-running-head{text-align:center;font-family:var(--display);color:#444;white-space:nowrap;text-overflow:ellipsis;font-style:italic;position:absolute;overflow:hidden}.page-foot{position:absolute;left:0;right:0}.page-foot .paper-copyright{margin:0}.ribbon-sep{background:var(--border);align-self:stretch;width:1px;margin:0 6px}.layout-tab{flex-direction:column;gap:12px;width:100%;display:flex}.layout-tab label.check{color:var(--text);flex-direction:row;grid-column:span 2;align-items:center;gap:8px}.layout-tab label.check input{flex:none;width:auto}.layout-warning{color:var(--warning);font-size:12px}.layout-tab input[type=range]{width:100%}@media print{body.printing-score *{visibility:hidden}body.printing-score .score-pages,body.printing-score .score-pages *{visibility:visible}body.printing-score .paper-desk{background:0 0;max-height:none;padding:0;overflow:visible}body.printing-score .score-pages{gap:0;display:block;position:absolute;top:0;left:0}body.printing-score .page-sheet{box-shadow:none;break-after:page;page-break-after:always;overflow:hidden}body.printing-score .page-sheet:last-child{break-after:auto;page-break-after:auto}}.paper-heading .part-name{text-align:left;margin:0 0 .4em;font-size:1.6em;font-weight:600}.part-select{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.view-note{color:var(--muted);margin:-4px 0 8px;font-size:13px}.chosen li,.parts li{border-top:2px solid #0000;border-bottom:2px solid #0000;align-items:center}.chosen li .grow{flex:1}.chosen li .link:disabled{opacity:.3}.grip{cursor:grab;color:var(--muted);-webkit-user-select:none;user-select:none;padding:0 2px}li.dragging{opacity:.45}li.drop-before{border-top-color:var(--accent)}li.drop-after{border-bottom-color:var(--accent)}.system.erasing{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M4 16 14 4l6 6-10 11H6z' fill='%23f3a4b4' stroke='%2314171c' stroke-width='1.5'/><path d='M9 10l6 6' stroke='%2314171c' stroke-width='1.5'/></svg>") 4 20,crosshair}.zoom-control{border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.zoom-control button{border:none;border-radius:0;min-width:34px;padding:6px 8px}.zoom-control .zoom-value{font-variant-numeric:tabular-nums;border-left:1px solid var(--border);border-right:1px solid var(--border);min-width:56px}.paper-desk.can-pan,.paper-desk .system.panning-mode{cursor:grab}.inline-number{color:var(--muted);align-items:center;gap:4px;font-size:13px;display:flex}.inline-number input{width:52px}.paper-desk.panning,.paper-desk.panning *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.piano-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin:8px 0;padding:8px 10px}.piano-tools{align-items:center;gap:10px;margin-bottom:6px;display:flex}.piano-tools button.active{background:var(--accent-soft);border-color:var(--accent)}.piano-hint{color:var(--muted);font-size:13px}.piano-scroll{overflow-x:auto}.piano{height:96px;margin:0 auto;position:relative}.piano-key{cursor:pointer;border-radius:0 0 4px 4px;padding:0;position:absolute;top:0}.piano-key.white{z-index:1;background:#fbfbf8;border:1px solid #9a9da3;height:96px}.piano-key.black{z-index:2;background:#1c1e22;border:1px solid #000;height:60px}.piano-key.white:hover{background:#e9edf7}.piano-key.black:hover{background:#3a4252}.piano-key.lit,.piano-key.lit:hover{background:var(--accent)}.piano-c{color:#6b6f76;pointer-events:none;font-size:10px;position:absolute;bottom:4px;left:0;right:0}.ribbon-group input.invalid{border-color:#b3261e;outline-color:#b3261e}.paper-desk .system.drawing-line{cursor:crosshair}.sign-in-gate{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);max-width:560px;margin:32px auto;padding:24px}.sign-in-gate h2{margin-top:0}.sign-in-gate p{color:var(--muted);line-height:1.5}.sign-in-gate-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.command-search{margin-bottom:4px;position:relative}.command-search input{width:200px;padding:5px 8px}.command-search .command-open{white-space:nowrap;padding:5px 10px}.command-results{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:240px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0000002e}.command-results button{text-align:left;background:0 0;border:none;width:100%;padding:6px 8px}.command-results button:hover{background:var(--accent-soft)}.ribbon-panel .flash{animation:1.8s ease-out flash}@keyframes flash{0%,40%{box-shadow:0 0 0 3px var(--accent);background:var(--accent-soft)}to{box-shadow:0 0 #0000}}.quick-bar{z-index:6;background:var(--surface);color:var(--text);border:1px solid var(--border);white-space:nowrap;border-radius:8px;align-items:center;gap:2px;padding:3px;display:flex;position:absolute;box-shadow:0 4px 14px #0000002e}.quick-bar button{min-width:26px;height:26px;padding:0 4px;font-size:15px}.quick-sep{background:var(--border);align-self:stretch;width:1px;margin:2px 3px}.closed-beta .gate-header{justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.beta-gate{max-width:520px;margin:24px auto 48px}.beta-gate-intro{margin-bottom:20px}.beta-gate-intro p{color:var(--muted);line-height:1.55}.beta-badge{background:var(--accent-soft);color:var(--accent);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:700;display:inline-block}.beta-admin{margin:20px 0}.beta-switch{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.beta-switch p{flex:1;min-width:240px}.beta-invite-form{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));align-items:end;gap:10px 14px;display:grid}.beta-invite-form label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.beta-made{margin-top:12px}.beta-invites{border-collapse:collapse;width:100%;font-size:14px}.beta-invites th,.beta-invites td{text-align:left;border-bottom:1px solid var(--border);padding:6px 8px}.beta-invites .actions{white-space:nowrap;text-align:right}.beta-invites .status.used{color:var(--accent)}.beta-invites .status.expired,.beta-invites .status.revoked{color:var(--muted)}.header-link.admin-link{border:1px solid var(--accent);border-radius:var(--radius);color:var(--accent);padding:4px 8px;font-size:13px;font-weight:700;text-decoration:none}.admin-tabs{border-bottom:1px solid var(--border);gap:4px;margin:12px 0 18px;display:flex}.admin-tabs button{border-radius:var(--radius) var(--radius) 0 0;color:var(--muted);background:0 0;border:1px solid #0000;border-bottom:none;padding:8px 14px;font-weight:600}.admin-tabs button.active{background:var(--surface);border-color:var(--border);color:var(--text);margin-bottom:-1px}.admin-cards{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-bottom:20px;display:grid}.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:2px;padding:14px 16px;display:flex}.admin-card strong{font-family:var(--display);font-size:30px}.admin-card span{color:var(--muted);font-size:13px}.admin-card small{color:var(--accent);font-size:12px}.admin-charts,.admin-tables,.admin-facts{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-bottom:20px;display:grid}.admin-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:12px 14px}.admin-chart figcaption{margin-bottom:6px;font-weight:600}.admin-chart svg{width:100%;height:auto}.admin-chart rect{fill:var(--accent)}.admin-chart line{stroke:var(--border)}.admin-chart text{fill:var(--muted);font-size:9px}.admin-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;overflow-x:auto}.admin-table h3{margin:0 0 8px;font-size:15px}.admin-table table,.admin-people-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th,.admin-table td,.admin-people-table th,.admin-people-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:5px 6px}.admin-dl{margin:0;font-size:13px}.admin-dl div{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:4px 0;display:flex}.admin-dl dt{color:var(--muted)}.admin-dl dd{text-align:right;margin:0}.admin-people-tools{gap:10px;margin-bottom:12px;display:flex}.admin-people-tools input{flex:1}.admin-people-table .actions{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.admin-people-table .actions button{padding:3px 8px;font-size:12px}.admin-people-table .small,.admin-report .small{font-size:12px}.admin-people-table .warn{color:#c4741a}.admin-tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;margin-left:6px;padding:1px 6px;font-size:11px}button.danger{color:#b3261e;border-color:#b3261e}.admin-reports{flex-direction:column;gap:12px;display:flex}.admin-report blockquote{border-left:3px solid var(--border);background:var(--bg);margin:8px 0;padding:8px 12px}.admin-report .actions{flex-wrap:wrap;gap:8px;display:flex}.beta-invite-form .beta-tester-check{color:var(--text);flex-direction:row;align-items:center;gap:6px}.limit-notice{border-color:var(--accent);justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.plan-line{color:var(--muted);font-size:14px}.new-work .choice:disabled{opacity:.5;cursor:not-allowed}.admin-access{gap:6px;margin-top:4px;display:flex}.admin-access select{font-size:12px}.admin-plans .beta-switch{margin-bottom:12px}.admin-plans-table{border-collapse:collapse;width:100%;max-width:720px;margin:12px 0;font-size:14px}.admin-plans-table th,.admin-plans-table td{border-bottom:1px solid var(--border);text-align:left;padding:6px 8px}.admin-plans-table input[type=number]{width:110px}.admin-beta-bar{border:1px solid var(--border);border-left-width:4px;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin:8px 0 16px;padding:10px 14px;font-size:14px;display:flex}.admin-beta-bar.on{border-left-color:var(--accent)}.admin-beta-bar.off{border-left-color:var(--warning)}.friends-link{align-items:center;gap:6px;display:inline-flex}@media (width<=720px){.friends-link span{display:none}}.numerals-setting{border:1px solid var(--border);border-radius:8px;gap:6px;margin:12px 0;padding:10px 14px;display:grid}.numerals-setting legend{padding:0 6px;font-weight:600}.account-header{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.account-header .profile-photo{align-items:center;gap:10px;display:flex}.join-perks ul{gap:4px;margin:4px 0 10px;padding-left:0;list-style:none;display:grid}.tour-backdrop{z-index:1000;background:#0a0c128c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.tour{background:var(--surface);border-radius:14px;width:min(560px,100%);max-height:calc(100vh - 32px);padding:28px 28px 22px;position:relative;overflow:auto;box-shadow:0 18px 50px #0000004d}.tour h2{margin:6px 0 8px}.tour ul{gap:6px;padding-left:20px;display:grid}.tour-icon{font-size:40px;line-height:1}.tour-skip{font-size:13px;position:absolute;top:14px;right:18px}.tour-dots{justify-content:center;gap:6px;margin:18px 0 14px;display:flex}.tour-dots button{background:var(--border);cursor:pointer;border:none;border-radius:50%;width:9px;height:9px;padding:0}.tour-dots button.active{background:var(--accent)}.tour-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.tour-again{font-size:13px}.tab-icon,.sidebar-toggle{display:none}@media (width<=760px){.app>header{flex-wrap:nowrap;align-items:center;gap:8px;padding:8px 16px;position:sticky;top:0}.app>header h1{font-size:26px}.app>header .header-right{flex-wrap:nowrap;gap:4px;margin-left:auto}.app>header .header-right>.theme-switch,.app>header .header-right>.lang,.app>header .friends-link,.app>header .admin-link,.app>header .sign-out,.app>header .user-name{display:none}.app>header .tabs{z-index:50;order:initial;width:auto;padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);flex-wrap:nowrap;gap:0;margin:0;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:visible;box-shadow:0 -4px 14px #0000001f}.app>header .tabs button{border-top:2px solid #0000;border-bottom:none;flex-direction:column;flex:1 1 0;gap:2px;min-width:0;padding:6px 2px 4px;font-size:11px}.app>header .tabs button.active{border-top-color:var(--brand);border-bottom-color:#0000}.app>header .tabs .icon{width:22px;height:22px}.tab-icon{display:inline-block}.app>header .tabs .nav-secondary{display:none}.layout>main,.layout.full>main{padding-bottom:96px}.sidebar-toggle{border:none;border-bottom:1px solid var(--border);background:var(--surface);text-align:left;border-radius:0;align-items:center;gap:8px;width:100%;padding:10px 16px;font-weight:600;display:flex}.sidebar{display:none}.sidebar.open{max-height:60vh;display:block}.toolbar{z-index:5;background:var(--bg);gap:6px;padding:6px 0;position:sticky;top:50px}.toolbar button{min-width:40px;min-height:40px}.toolbar{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.toolbar::-webkit-scrollbar{display:none}.toolbar .group{flex-wrap:nowrap;flex-shrink:0}.toolbar .group.right{flex-wrap:nowrap;margin-left:0}.toolbar .group.right>button.primary{z-index:1;box-shadow:-10px 0 10px var(--bg);position:sticky;right:0}.toolbar .group.right{display:contents}.toolbar .group.right>button{flex-shrink:0}.toolbar .group.right>button.primary{margin-left:auto}}.prose table{max-width:100%;display:block;overflow-x:auto}.user-menu{position:relative}.user-menu-button{align-items:center;gap:8px;display:flex}.user-caret{color:var(--muted);font-size:11px}.user-menu-panel{z-index:60;gap:2px;width:260px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #00000040}.user-menu-panel>button{text-align:left;background:0 0;border:none;justify-content:flex-start;align-items:center;gap:8px;width:100%;padding:9px 10px;display:flex}.user-menu-panel>button:hover{background:var(--accent-soft)}.user-menu-panel hr{border:none;border-top:1px solid var(--border);margin:6px 0}.user-menu-row{justify-content:space-between;align-items:center;gap:8px;padding:4px 10px;display:flex}.user-menu-panel .phone-only{display:none}@media (width<=760px){.user-menu-panel .phone-only{display:flex}.user-caret{display:none}}.prose p,.prose li,.prose blockquote{max-width:72ch}@media (width<=1100px){.header-stat,.app>header .user-name,.app>header .tabs .nav-secondary{display:none}.user-menu-panel .phone-only{display:flex}}.skeleton{gap:12px;max-width:720px;padding:8px 0;display:grid}.skeleton-line,.skeleton-block{background:linear-gradient(90deg, var(--border) 0%, var(--paper-2,var(--surface)) 50%, var(--border) 100%);background-size:200% 100%;border-radius:6px;height:14px;animation:1.4s ease-in-out infinite skeleton-shimmer;display:block}.skeleton-line.title{width:55%;height:26px}.skeleton-line.short{width:70%}.skeleton-block{border-radius:var(--radius);height:180px}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.skeleton-line,.skeleton-block{animation:none}}button:disabled{opacity:.4;cursor:not-allowed;border-style:dashed}.hairpin-area{opacity:.22;stroke:none;fill:var(--brand)!important}.hairpin-track{stroke:var(--muted);opacity:.5}.today-card.empty{cursor:default;align-content:start;gap:10px;display:grid}.today-card.empty p{color:var(--text);margin:0}.today-card.empty button{justify-self:start}.exercise.solved .score-editor{animation:1.6s ease-out solved-glow}@keyframes solved-glow{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--pass) 70%, transparent)}40%{box-shadow:0 0 0 10px color-mix(in srgb, var(--pass) 25%, transparent)}to{box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.exercise.solved .score-editor{animation:none}}@media (width<=760px){.app>header .tabs button{font-size:12px}.app>header .tabs button.active{color:var(--brand)}}.live-toggle{cursor:pointer;align-items:center;gap:10px;margin:0 0 8px;font-weight:600;display:inline-flex}.live-toggle span{display:grid}.live-toggle small{color:var(--muted);font-weight:400}.quality-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);margin-top:10px;padding:10px 12px;font-weight:400}.quality-head{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.quality-meter{background:var(--border);border-radius:4px;flex:120px;max-width:220px;height:8px;overflow:hidden}.quality-meter>span{background:linear-gradient(90deg, var(--warning), var(--pass));height:100%;display:block}.quality-panel ul{gap:4px;margin:8px 0 0;padding:0;font-size:14px;list-style:none;display:grid}.quality-panel li.good{color:var(--pass)}.friends-ranking ol{gap:6px;margin:8px 0 0;padding-left:22px;display:grid}.friends-ranking li{padding-left:4px}.friends-ranking li>*{vertical-align:middle;margin-right:8px}.quality-chip{background:var(--pass-soft,var(--accent-soft));min-width:30px;color:var(--pass);text-align:center;border-radius:10px;padding:1px 8px;font-size:13px;font-weight:700;display:inline-block}
