@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:300;src:url(./onest-cyrillic-ext-300-normal-D71dtq-w.woff2)format("woff2"),url(./onest-cyrillic-ext-300-normal-CVEXGb1-.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:Onest;font-style:normal;font-display:swap;font-weight:300;src:url(./onest-cyrillic-300-normal-Dcqa6NY4.woff2)format("woff2"),url(./onest-cyrillic-300-normal-C0KwR0uu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:300;src:url(./onest-math-300-normal-BCrHImzY.woff2)format("woff2"),url(./onest-math-300-normal-B6yDjLW0.woff)format("woff");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:Onest;font-style:normal;font-display:swap;font-weight:300;src:url(./onest-symbols-300-normal-C9avkWLX.woff2)format("woff2"),url(./onest-symbols-300-normal-Ca5XqV6O.woff)format("woff");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:Onest;font-style:normal;font-display:swap;font-weight:300;src:url(./onest-vietnamese-300-normal-BauXs1Ff.woff2)format("woff2"),url(./onest-vietnamese-300-normal-rbn87Pts.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:Onest;font-style:normal;font-display:swap;font-weight:300;src:url(./onest-latin-ext-300-normal-BgZMjXpW.woff2)format("woff2"),url(./onest-latin-ext-300-normal-NTPrO95Y.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:Onest;font-style:normal;font-display:swap;font-weight:300;src:url(./onest-latin-300-normal-CQb7Hhx7.woff2)format("woff2"),url(./onest-latin-300-normal-BcBQOVFv.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:Onest;font-style:normal;font-display:swap;font-weight:400;src:url(./onest-cyrillic-ext-400-normal-C0aKJzIG.woff2)format("woff2"),url(./onest-cyrillic-ext-400-normal-CV3RJNZo.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:Onest;font-style:normal;font-display:swap;font-weight:400;src:url(./onest-cyrillic-400-normal-BTdD9fLi.woff2)format("woff2"),url(./onest-cyrillic-400-normal-BQq8x-Ju.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:400;src:url(./onest-math-400-normal-BOdeoExJ.woff2)format("woff2"),url(./onest-math-400-normal-BoceZrtY.woff)format("woff");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:Onest;font-style:normal;font-display:swap;font-weight:400;src:url(./onest-symbols-400-normal-BKpJPZvB.woff2)format("woff2"),url(./onest-symbols-400-normal-Cyp7MkQ3.woff)format("woff");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:Onest;font-style:normal;font-display:swap;font-weight:400;src:url(./onest-vietnamese-400-normal-5bytZ3jO.woff2)format("woff2"),url(./onest-vietnamese-400-normal-b_JsbRRP.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:Onest;font-style:normal;font-display:swap;font-weight:400;src:url(./onest-latin-ext-400-normal-DN_ZkHKd.woff2)format("woff2"),url(./onest-latin-ext-400-normal-n6Pl0Elk.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:Onest;font-style:normal;font-display:swap;font-weight:400;src:url(./onest-latin-400-normal-9AYXx_QC.woff2)format("woff2"),url(./onest-latin-400-normal-RaMPE1jb.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:Onest;font-style:normal;font-display:swap;font-weight:500;src:url(./onest-cyrillic-ext-500-normal-BRptT_Q-.woff2)format("woff2"),url(./onest-cyrillic-ext-500-normal-C2Nf5dsb.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:Onest;font-style:normal;font-display:swap;font-weight:500;src:url(./onest-cyrillic-500-normal-CJRUgmys.woff2)format("woff2"),url(./onest-cyrillic-500-normal-BMFE-GJD.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:500;src:url(./onest-math-500-normal-BAEyco5m.woff2)format("woff2"),url(./onest-math-500-normal-CFbo1AvL.woff)format("woff");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:Onest;font-style:normal;font-display:swap;font-weight:500;src:url(./onest-symbols-500-normal-x8bjkRDT.woff2)format("woff2"),url(./onest-symbols-500-normal-BnHuuehd.woff)format("woff");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:Onest;font-style:normal;font-display:swap;font-weight:500;src:url(./onest-vietnamese-500-normal-CYcoD-Qw.woff2)format("woff2"),url(./onest-vietnamese-500-normal-B-ujVS1X.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:Onest;font-style:normal;font-display:swap;font-weight:500;src:url(./onest-latin-ext-500-normal-BOsNMgOh.woff2)format("woff2"),url(./onest-latin-ext-500-normal-BG_GNqt_.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:Onest;font-style:normal;font-display:swap;font-weight:500;src:url(./onest-latin-500-normal-2-RsuwM3.woff2)format("woff2"),url(./onest-latin-500-normal-CVP923du.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{--text:#344861;--muted:#6e7c8c;--faint:#94a3b7;--bg:#fff;--line:#bec6d4;--line-strong:#344861;--given:#344861;--entered:#325aaf;--error:#e55c6c;--error-bg:#f7cfd6;--related:#e2ebf3;--same-value:#c3d7ea;--selected:#bbdefb;--accent:#325aaf;--button:#5a7bc0;--button-hover:#4f70b6;--tile:#eaeef4;--tile-hover:#dce3ed;--tile-active:#d2dae7;--cell:56px;color:var(--text);background:var(--bg);font-family:Onest,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{-webkit-tap-highlight-color:transparent;margin:0}button{font:inherit;cursor:pointer;background:var(--tile);color:var(--text);touch-action:manipulation;border:none;border-radius:4px;padding:8px 15px}button:disabled{cursor:default}button.primary{background:var(--button);color:#fff;font-weight:500}button.primary:hover{background:var(--button-hover)}.app{justify-content:center;padding:20px;display:flex}.game{align-items:flex-start;gap:20px;display:flex}.top-bar{align-items:center;gap:16px;height:29px;margin-bottom:12px;display:flex}.back{color:var(--muted);background:0 0;padding:4px 0;font-size:13px;font-weight:500}.back:hover{color:var(--accent)}.difficulty-bar{align-items:center;gap:3px;font-size:13px;font-weight:500;display:flex}.difficulty-label{color:var(--faint);margin-right:7px}.difficulty{color:var(--muted);background:0 0;padding:3px 8px;font-weight:500}.difficulty:hover,.difficulty.active{color:var(--accent)}.board-wrap{position:relative}.board{grid-template-columns:repeat(9, var(--cell));grid-template-rows:repeat(9, var(--cell));border:2px solid var(--line-strong);-webkit-user-select:none;user-select:none;display:grid}.board.placeholder{background:var(--tile)}.cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:calc(var(--cell) * .7);cursor:pointer;background:var(--bg);justify-content:center;align-items:center;font-weight:300;display:flex;position:relative}.cell:nth-child(9n){border-right:none}.cell:nth-child(n+73){border-bottom:none}.cell.box-right{border-right:2px solid var(--line-strong)}.cell.box-bottom{border-bottom:2px solid var(--line-strong)}.cell.given{color:var(--given)}.cell.entered{color:var(--entered)}.cell.related{background:var(--related)}.cell.same-value{background:var(--same-value)}.cell.error{color:var(--error)}.cell.error.same-value{background:var(--error-bg)}.cell.selected{background:var(--selected)}.notes{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);display:grid;position:absolute;inset:2px}.note{font-size:calc(var(--cell) * .2);color:var(--muted);justify-content:center;align-items:center;font-weight:400;line-height:1;display:flex}.note.same-value{color:var(--text);font-weight:500}.board-overlay{color:var(--text);background:#fffffff0;flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:15px;display:flex;position:absolute;inset:0}.resume{background:var(--button);color:#fff;border-radius:50%;width:61px;height:61px}.resume svg{width:22px;height:22px;margin-left:3px}.spinner{border:3px solid var(--tile);border-top-color:var(--accent);border-radius:50%;width:31px;height:31px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.side-panel{flex-direction:column;gap:15px;width:326px;padding-top:41px;display:flex}.status-bar{justify-content:space-between;align-items:center;padding:0 3px;display:flex}.stat{flex-direction:column;display:flex}.stat.time{text-align:right;flex-direction:row;align-items:center;gap:7px}.stat.time>div{flex-direction:column;display:flex}.stat-label{color:var(--faint);font-size:13px;font-weight:500}.stat-value{color:var(--muted);font-variant-numeric:tabular-nums;font-size:15px;font-weight:500}.stat-value.mistakes{color:var(--error)}.pause{width:26px;height:26px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.pause:hover:not(:disabled){background:var(--tile-hover)}.actions{justify-content:space-around;display:flex}.action{width:61px;height:61px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.action:hover:not(:disabled){background:var(--tile-hover)}.action:active:not(:disabled){background:var(--tile-active)}.badge{border:2px solid var(--bg);background:var(--faint);color:#fff;border-radius:10px;padding:2px 5px;font-size:10px;font-weight:500;line-height:14px;position:absolute;top:-5px;right:-8px}.badge.on{background:var(--accent)}.numpad{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.num{height:99px;color:var(--accent);background:var(--tile);justify-content:center;align-items:center;padding:0;font-size:41px;font-weight:300;transition:background-color .1s ease-in-out;display:flex}.num:hover:not(:disabled){background:var(--tile-hover)}.num:active:not(:disabled){background:var(--tile-active)}.num.done{color:var(--faint);background:#eaeef480;border-radius:4px}.new-game{background:var(--button);color:#fff;height:60px;font-size:15px;font-weight:500}.new-game:hover{background:var(--button-hover)}.modal-backdrop{background:#34486173;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:8px;width:min(280px,100vw - 80px);padding:20px 22px;font-size:14px;box-shadow:0 8px 34px #0003}.modal h2{margin:0 0 8px;font-size:18px;font-weight:500}.modal p{color:var(--muted);margin:0;line-height:1.45}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.modal button{padding:7px 13px}.modal-actions button:not(.primary):hover{background:var(--tile-hover)}.difficulty-list{flex-direction:column;gap:8px;margin-top:10px;display:flex}.start-screen,.setup,.results{flex-direction:column;align-items:center;margin-top:48px;display:flex}.start-screen h1,.setup h1,.results h1{margin:0 0 24px;font-size:32px;font-weight:500}.menu-button{width:260px;height:56px;margin-bottom:12px;font-size:17px;font-weight:500}.menu-button:not(.primary){color:var(--accent)}.menu-button:not(.primary):hover{background:var(--tile-hover)}.setup{align-items:stretch;width:100%;max-width:360px;margin-inline:auto}.setup h1{text-align:center}.setup .back{align-self:flex-start}.tabs{border-bottom:1px solid var(--line);margin-bottom:20px;display:flex}.tab{color:var(--muted);background:0 0;border-bottom:2px solid #0000;border-radius:0;flex:1;margin-bottom:-1px;font-weight:500}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.setup-form{flex-direction:column;gap:16px;display:flex}.field{color:var(--faint);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.field input{font:inherit;color:var(--text);border:1px solid var(--line);border-radius:4px;outline:none;padding:9px 12px;font-size:15px;font-weight:400}.field input:focus{border-color:var(--accent)}.field .code-input{letter-spacing:.3em;text-transform:uppercase;font-size:22px}.color-picker{gap:8px;display:flex}.swatch{border:3px solid var(--bg);width:28px;height:28px;box-shadow:0 0 0 1px var(--line);border-radius:50%;padding:0}.swatch.selected{box-shadow:0 0 0 2px var(--text)}.swatch:disabled{opacity:.2;cursor:not-allowed}.segmented{gap:4px;display:flex}.segment{color:var(--muted);flex:1;padding:7px 0;font-size:13px;font-weight:500}.segment.active{background:var(--accent);color:#fff}.submit{height:44px;margin-top:8px;font-size:15px}.submit:disabled{opacity:.5}.muted{color:var(--muted);font-weight:400}.lobby{gap:18px}.lobby h1{margin-bottom:0}.room-code{background:var(--tile);border-radius:8px;flex-direction:column;align-items:center;gap:6px;padding:16px;display:flex}.room-code-label{color:var(--faint);font-size:13px;font-weight:500}.room-code-value{letter-spacing:.2em;color:var(--accent);font-size:34px;font-weight:500}.room-code button{background:var(--bg);color:var(--accent);font-size:13px;font-weight:500}.room-link{color:var(--faint);-webkit-user-select:all;user-select:all;overflow-wrap:anywhere;font-size:11px}.players{flex-direction:column;gap:10px;display:flex}.player-row{align-items:center;gap:8px;min-height:28px;font-size:15px;display:flex}.dot{border-radius:50%;flex:none;width:12px;height:12px}.waiting{align-items:center;gap:8px;display:flex}.spinner.small{border-width:2px;width:14px;height:14px}.lobby>p{text-align:center;margin:0}.race-layout .side-panel{padding-top:0}.race{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.race-row{grid-template-columns:130px 1fr 18px 52px 96px;align-items:center;gap:10px;font-size:13px;font-weight:500;display:grid}.race-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.race-track{background:var(--tile);border-radius:3px;height:6px;position:relative}.race-fill{opacity:.35;border-radius:3px;transition:width .3s;position:absolute;inset:0 auto 0 0}.race-marker{border:2px solid var(--bg);border-radius:50%;width:16px;height:16px;transition:left .3s;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0000001a}.race-flag{color:var(--text);display:flex}.race-count{color:var(--muted);font-variant-numeric:tabular-nums}.race-mistakes{color:var(--faint);text-align:right}.race-mistakes.has-mistakes{color:var(--error)}.countdown{gap:4px;font-size:15px}.countdown-number{color:var(--accent);font-size:96px;font-weight:300;line-height:1}.results>p{margin:-16px 0 24px}.results-boards{flex-wrap:wrap;justify-content:center;gap:24px 40px;display:flex}.player-result{flex-direction:column;gap:10px;display:flex}.player-result-header{align-items:center;gap:8px;font-size:15px;display:flex}.winner-badge{background:var(--accent);color:#fff;border-radius:10px;margin-left:auto;padding:2px 8px;font-size:12px;font-weight:500}.board.mini{--cell:36px}.board.mini .cell{cursor:default}.player-stats{justify-content:space-between;margin:0;display:flex}.player-stats dt{color:var(--faint);font-size:12px;font-weight:500}.player-stats dd{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:15px;font-weight:500}.results-actions{gap:10px;margin-top:28px;display:flex}.results-actions button{width:160px;height:44px;font-size:15px}.results-actions button:disabled{opacity:.5}.rematch-note{min-height:20px;color:var(--accent);margin:10px 0 0;font-weight:500}.difficulty-picker{display:none}.difficulty-picker select{appearance:none;font:inherit;color:var(--muted);field-sizing:content;cursor:pointer;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236e7c8c' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 100% no-repeat;border:none;outline:none;padding:0 16px 0 0;font-size:15px;font-weight:500}@media (width<=900px){:root{--cell:min(56px, calc((100vw - 20px) / 9))}.app{padding:8px 8px 16px}.game{width:calc(var(--cell) * 9 + 4px);flex-direction:column;align-items:stretch;gap:0}.board-column,.side-panel{display:contents}.top-bar{order:0;height:auto;margin-bottom:6px}.top-bar .difficulty-bar{display:none}.status-bar{order:1;grid-template-columns:1fr auto 1fr;align-items:end;margin-bottom:8px;padding:0 2px;display:grid}.difficulty-picker{align-items:flex-start;display:flex}.stat-label{font-size:12px}.stat-value{font-size:15px}.mistakes-stat{grid-column:2;align-items:center}.stat.time{grid-column:3;justify-self:end}.board-wrap{order:2}.actions{order:3;justify-content:space-evenly;margin:12px 0 4px}.action{width:52px;height:52px}.action svg{width:28px;height:28px}.badge{font-size:10px;line-height:13px;top:-7px;right:-14px}.numpad{order:4;grid-template-columns:repeat(9,1fr);gap:0}.num,.num.done{height:calc(var(--cell) * 1.15);font-size:calc(var(--cell) * .8);background:0 0}.num:hover:not(:disabled){background:0 0}.num:active:not(:disabled){background:var(--tile)}.num.done svg{width:70%;height:70%}.new-game{order:5;height:44px;margin-top:8px;font-size:15px}.single .new-game{display:none}.race-layout{width:calc(var(--cell) * 9 + 4px)}.race{gap:4px;margin-bottom:10px}.race-row{grid-template-columns:minmax(0,72px) 1fr 14px auto auto;gap:6px;font-size:11px}.race-flag svg{width:13px;height:13px}.start-screen,.setup,.results{margin-top:16px}.results h1{font-size:26px}.board.mini{--cell:min(36px, calc((100vw - 24px) / 9))}}
