@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.0.ff4da92d278107e4327f.woff2) format("woff2-variations");unicode-range:u+f9ca-fa0b,u+ff03-ff05,u+ff07,u+ff0a-ff0b,u+ff0d-ff19,u+ff1b,u+ff1d,u+ff20-ff5b,u+ff5d,u+ffe0-ffe3,u+ffe5-ffe6}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.1.e9eed4ab990df9b32679.woff2) format("woff2-variations");unicode-range:u+d723-d728,u+d72a-d733,u+d735-d748,u+d74a-d74f,u+d752-d753,u+d755-d757,u+d75a-d75f,u+d762-d764,u+d766-d768,u+d76a-d76b,u+d76d-d76f,u+d771-d787,u+d789-d78b,u+d78d-d78f,u+d791-d797,u+d79a,u+d79c,u+d79e-d7a3,u+f900-f909,u+f90b-f92e}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.2.9667e13e5c71c8804d7b.woff2) format("woff2-variations");unicode-range:u+d679-d68b,u+d68e-d69e,u+d6a0,u+d6a2-d6a7,u+d6a9-d6c3,u+d6c6-d6c7,u+d6c9-d6cb,u+d6cd-d6d3,u+d6d5-d6d6,u+d6d8-d6e3,u+d6e5-d6e7,u+d6e9-d6fb,u+d6fd-d717,u+d719-d71f,u+d721-d722}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.3.d07ddc91e2d7fe270f39.woff2) format("woff2-variations");unicode-range:u+d5bc-d5c7,u+d5ca-d5cb,u+d5cd-d5cf,u+d5d1-d5d7,u+d5d9-d5da,u+d5dc,u+d5de-d5e3,u+d5e6-d5e7,u+d5e9-d5eb,u+d5ed-d5f6,u+d5f8,u+d5fa-d5ff,u+d602-d603,u+d605-d607,u+d609-d60f,u+d612-d613,u+d616-d61b,u+d61d-d637,u+d63a-d63b,u+d63d-d63f,u+d641-d647,u+d64a-d64c,u+d64e-d653,u+d656-d657,u+d659-d65b,u+d65d-d666,u+d668,u+d66a-d678}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.4.7d1512c3df848df07122.woff2) format("woff2-variations");unicode-range:u+d507,u+d509-d50b,u+d50d-d513,u+d515-d53b,u+d53e-d53f,u+d541-d543,u+d545-d54c,u+d54e,u+d550,u+d552-d557,u+d55a-d55b,u+d55d-d55f,u+d561-d564,u+d566-d567,u+d56a,u+d56c,u+d56e-d573,u+d576-d577,u+d579-d583,u+d585-d586,u+d58a-d5a4,u+d5a6-d5bb}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.5.b0459a9cb2b2a7d33015.woff2) format("woff2-variations");unicode-range:u+d464-d477,u+d47a-d47b,u+d47d-d47f,u+d481-d487,u+d489-d48a,u+d48c,u+d48e-d4e7,u+d4e9-d503,u+d505-d506}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.6.b2892d1afd11c7d8653f.woff2) format("woff2-variations");unicode-range:u+d3bf-d3c7,u+d3ca-d3cf,u+d3d1-d3eb,u+d3ee-d3ef,u+d3f1-d3f3,u+d3f5-d3fb,u+d3fd-d400,u+d402-d45b,u+d45d-d463}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.7.12004c2a405f93e529ed.woff2) format("woff2-variations");unicode-range:u+d2ff,u+d302-d304,u+d306-d30b,u+d30f,u+d311-d313,u+d315-d31b,u+d31e,u+d322-d324,u+d326-d327,u+d32a-d32b,u+d32d-d32f,u+d331-d337,u+d339-d33c,u+d33e-d37b,u+d37e-d37f,u+d381-d383,u+d385-d38b,u+d38e-d390,u+d392-d397,u+d39a-d39b,u+d39d-d39f,u+d3a1-d3a7,u+d3a9-d3aa,u+d3ac,u+d3ae-d3b3,u+d3b5-d3b7,u+d3b9-d3bb,u+d3bd-d3be}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.8.6c093d90f06698c37864.woff2) format("woff2-variations");unicode-range:u+d257-d27f,u+d281-d29b,u+d29d-d29f,u+d2a1-d2ab,u+d2ad-d2b7,u+d2ba-d2bb,u+d2bd-d2bf,u+d2c1-d2c7,u+d2c9-d2ef,u+d2f2-d2f3,u+d2f5-d2f7,u+d2f9-d2fe}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.9.4acc65932ee0b3243c19.woff2) format("woff2-variations");unicode-range:u+d1b4,u+d1b6-d1f3,u+d1f5-d22b,u+d22e-d22f,u+d231-d233,u+d235-d23b,u+d23d-d240,u+d242-d256}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.10.f984e24c9b5033cf1353.woff2) format("woff2-variations");unicode-range:u+d105-d12f,u+d132-d133,u+d135-d137,u+d139-d13f,u+d141-d142,u+d144,u+d146-d14b,u+d14e-d14f,u+d151-d153,u+d155-d15b,u+d15e-d187,u+d189-d19f,u+d1a2-d1a3,u+d1a5-d1a7,u+d1a9-d1af,u+d1b2-d1b3}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.11.7ec4352c8a2fc218e8ce.woff2) format("woff2-variations");unicode-range:u+d04b-d04f,u+d051-d057,u+d059-d06b,u+d06d-d06f,u+d071-d073,u+d075-d07b,u+d07e-d0a3,u+d0a6-d0a7,u+d0a9-d0ab,u+d0ad-d0b3,u+d0b6,u+d0b8,u+d0ba-d0bf,u+d0c2-d0c3,u+d0c5-d0c7,u+d0c9-d0cf,u+d0d2,u+d0d6-d0db,u+d0de-d0df,u+d0e1-d0e3,u+d0e5-d0eb,u+d0ee-d0f0,u+d0f2-d104}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.12.2791473161084781130c.woff2) format("woff2-variations");unicode-range:u+cfa2-cfc3,u+cfc5-cfdf,u+cfe2-cfe3,u+cfe5-cfe7,u+cfe9-cff4,u+cff6-cffb,u+cffd-cfff,u+d001-d003,u+d005-d017,u+d019-d033,u+d036-d037,u+d039-d03b,u+d03d-d04a}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.13.4004ae875c92ffa81acd.woff2) format("woff2-variations");unicode-range:u+cef0-cef3,u+cef6,u+cef9-ceff,u+cf01-cf03,u+cf05-cf07,u+cf09-cf0f,u+cf11-cf12,u+cf14-cf1b,u+cf1d-cf1f,u+cf21-cf2f,u+cf31-cf53,u+cf56-cf57,u+cf59-cf5b,u+cf5d-cf63,u+cf66,u+cf68,u+cf6a-cf6f,u+cf71-cf84,u+cf86-cf8b,u+cf8d-cfa1}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.14.d268dee50e34b957539b.woff2) format("woff2-variations");unicode-range:u+ce3c-ce57,u+ce5a-ce5b,u+ce5d-ce5f,u+ce61-ce67,u+ce6a,u+ce6c,u+ce6e-ce73,u+ce76-ce77,u+ce79-ce7b,u+ce7d-ce83,u+ce85-ce88,u+ce8a-ce8f,u+ce91-ce93,u+ce95-ce97,u+ce99-ce9f,u+cea2,u+cea4-ceab,u+cead-cee3,u+cee6-cee7,u+cee9-ceeb,u+ceed-ceef}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.15.a72b09835fee78963aff.woff2) format("woff2-variations");unicode-range:u+cd92-cd93,u+cd96-cd97,u+cd99-cd9b,u+cd9d-cda3,u+cda6-cda8,u+cdaa-cdaf,u+cdb1-cdc3,u+cdc5-cdcb,u+cdcd-cde7,u+cde9-ce03,u+ce05-ce1f,u+ce22-ce34,u+ce36-ce3b}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.16.be08712f65580d4b433a.woff2) format("woff2-variations");unicode-range:u+ccef-cd07,u+cd0a-cd0b,u+cd0d-cd1a,u+cd1c,u+cd1e-cd2b,u+cd2d-cd5b,u+cd5d-cd77,u+cd79-cd91}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.17.9afc36d849e672fc95eb.woff2) format("woff2-variations");unicode-range:u+cc3f-cc43,u+cc46-cc47,u+cc49-cc4b,u+cc4d-cc53,u+cc55-cc58,u+cc5a-cc5f,u+cc61-cc97,u+cc9a-cc9b,u+cc9d-cc9f,u+cca1-cca7,u+ccaa,u+ccac,u+ccae-ccb3,u+ccb6-ccb7,u+ccb9-ccbb,u+ccbd-cccf,u+ccd1-cce3,u+cce5-ccee}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.18.a14ec8f0bb25b8cb55f8.woff2) format("woff2-variations");unicode-range:u+cb91-cbd3,u+cbd5-cbe3,u+cbe5-cc0b,u+cc0e-cc0f,u+cc11-cc13,u+cc15-cc1b,u+cc1d-cc20,u+cc23-cc27,u+cc2a-cc2b,u+cc2d,u+cc2f,u+cc31-cc37,u+cc3a,u+cc3c}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.19.3e26efb755349142f245.woff2) format("woff2-variations");unicode-range:u+caf4-cb47,u+cb4a-cb90}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.20.c6a9895fb920e995eabe.woff2) format("woff2-variations");unicode-range:u+ca4a-ca4b,u+ca4e-ca4f,u+ca51-ca53,u+ca55-ca5b,u+ca5d-ca60,u+ca62-ca83,u+ca85-cabb,u+cabe-cabf,u+cac1-cac3,u+cac5-cacb,u+cacd-cad0,u+cad2,u+cad4-cad8,u+cada-caf3}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.21.9a85bbc21d93b9e29a15.woff2) format("woff2-variations");unicode-range:u+c996-c997,u+c99a-c99c,u+c99e-c9bf,u+c9c2-c9c3,u+c9c5-c9c7,u+c9c9-c9cf,u+c9d2,u+c9d4,u+c9d7-c9d8,u+c9db,u+c9de-c9df,u+c9e1-c9e3,u+c9e5-c9e6,u+c9e8-c9eb,u+c9ee-c9f0,u+c9f2-c9f7,u+c9f9-ca0b,u+ca0d-ca28,u+ca2a-ca49}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.22.5bf6c38b01d9d00ccada.woff2) format("woff2-variations");unicode-range:u+c8e9-c8f4,u+c8f6-c8fb,u+c8fe-c8ff,u+c901-c903,u+c905-c90b,u+c90e-c910,u+c912-c917,u+c919-c92b,u+c92d-c94f,u+c951-c953,u+c955-c96b,u+c96d-c973,u+c975-c987,u+c98a-c98b,u+c98d-c98f,u+c991-c995}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.23.6c0bfbc965d3fc236b6f.woff2) format("woff2-variations");unicode-range:u+c841-c84b,u+c84d-c86f,u+c872-c873,u+c875-c877,u+c879-c87f,u+c882-c884,u+c887-c88a,u+c88d-c8c3,u+c8c5-c8df,u+c8e1-c8e8}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.24.b41d512abcf7c4961492.woff2) format("woff2-variations");unicode-range:u+c779-c77b,u+c77e-c782,u+c786,u+c78b,u+c78d,u+c78f,u+c792-c793,u+c795,u+c797,u+c799-c79f,u+c7a2,u+c7a7-c7ab,u+c7ae-c7bb,u+c7bd-c7c0,u+c7c2-c7c7,u+c7c9-c7dc,u+c7de-c7ff,u+c802-c803,u+c805-c807,u+c809,u+c80b-c80f,u+c812,u+c814,u+c817-c81b,u+c81e-c81f,u+c821-c823,u+c825-c82e,u+c830-c837,u+c839-c83b,u+c83d-c840}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.25.236bc3f20de2b36554a2.woff2) format("woff2-variations");unicode-range:u+c6bb-c6bf,u+c6c2,u+c6c4,u+c6c6-c6cb,u+c6ce-c6cf,u+c6d1-c6d3,u+c6d5-c6db,u+c6dd-c6df,u+c6e1-c6e7,u+c6e9-c6eb,u+c6ed-c6ef,u+c6f1-c6f8,u+c6fa-c703,u+c705-c707,u+c709-c70b,u+c70d-c716,u+c718,u+c71a-c71f,u+c722-c723,u+c725-c727,u+c729-c734,u+c736-c73b,u+c73e-c73f,u+c741-c743,u+c745-c74b,u+c74e-c750,u+c752-c757,u+c759-c773,u+c776-c777}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.26.0e36d92a69e87c61b270.woff2) format("woff2-variations");unicode-range:u+c5f5-c5fb,u+c5fe,u+c602-c605,u+c607,u+c609-c60f,u+c611-c61a,u+c61c-c623,u+c626-c627,u+c629-c62b,u+c62d,u+c62f-c632,u+c636,u+c638,u+c63a-c63f,u+c642-c643,u+c645-c647,u+c649-c652,u+c656-c65b,u+c65d-c65f,u+c661-c663,u+c665-c677,u+c679-c67b,u+c67d-c693,u+c696-c697,u+c699-c69b,u+c69d-c6a3,u+c6a6,u+c6a8,u+c6aa-c6af,u+c6b2-c6b3,u+c6b5-c6b7,u+c6b9-c6ba}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.27.f44277fe0be084a08cf5.woff2) format("woff2-variations");unicode-range:u+c517-c527,u+c52a-c52b,u+c52d-c52f,u+c531-c538,u+c53a,u+c53c,u+c53e-c543,u+c546-c547,u+c54b,u+c54d-c552,u+c556,u+c55a-c55b,u+c55d,u+c55f,u+c562-c563,u+c565-c567,u+c569-c56f,u+c572,u+c574,u+c576-c57b,u+c57e-c57f,u+c581-c583,u+c585-c586,u+c588-c58b,u+c58e,u+c590,u+c592-c596,u+c599-c5b3,u+c5b6-c5b7,u+c5ba,u+c5be-c5c3,u+c5ca-c5cb,u+c5cd,u+c5cf,u+c5d2-c5d3,u+c5d5-c5d7,u+c5d9-c5df,u+c5e1-c5e2,u+c5e4,u+c5e6-c5eb,u+c5ef,u+c5f1-c5f3}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.28.d42f5aef8a5a30c58b82.woff2) format("woff2-variations");unicode-range:u+c475-c4ef,u+c4f2-c4f3,u+c4f5-c4f7,u+c4f9-c4ff,u+c502-c50b,u+c50d-c516}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.29.562135410ee303ff105a.woff2) format("woff2-variations");unicode-range:u+c3d0-c3d7,u+c3da-c3db,u+c3dd-c3de,u+c3e1-c3ec,u+c3ee-c3f3,u+c3f5-c42b,u+c42d-c463,u+c466-c474}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.30.db18bc920ef987830f2a.woff2) format("woff2-variations");unicode-range:u+c32b-c367,u+c36a-c36b,u+c36d-c36f,u+c371-c377,u+c37a-c37b,u+c37e-c383,u+c385-c387,u+c389-c3cf}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.31.2f951ff87ce37e988338.woff2) format("woff2-variations");unicode-range:u+c26a-c26b,u+c26d-c26f,u+c271-c273,u+c275-c27b,u+c27e-c287,u+c289-c28f,u+c291-c297,u+c299-c29a,u+c29c-c2a3,u+c2a5-c2a7,u+c2a9-c2ab,u+c2ad-c2b3,u+c2b6,u+c2b8,u+c2ba-c2bb,u+c2bd-c2db,u+c2de-c2df,u+c2e1-c2e2,u+c2e5-c2ea,u+c2ee,u+c2f0,u+c2f2-c2f5,u+c2f7,u+c2fa-c2fb,u+c2fd-c2ff,u+c301-c307,u+c309-c30c,u+c30e-c312,u+c315-c323,u+c325-c328,u+c32a}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.32.05b9a8c5c37fe3ae1652.woff2) format("woff2-variations");unicode-range:u+c1bc-c1c3,u+c1c5-c1df,u+c1e1-c1fb,u+c1fd-c203,u+c205-c20c,u+c20e,u+c210-c217,u+c21a-c21b,u+c21d-c21e,u+c221-c227,u+c229-c22a,u+c22c,u+c22e,u+c230,u+c233-c24f,u+c251-c257,u+c259-c269}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.33.5005621d02ea60e25761.woff2) format("woff2-variations");unicode-range:u+c101-c11b,u+c11f,u+c121-c123,u+c125-c12b,u+c12e,u+c132-c137,u+c13a-c13b,u+c13d-c13f,u+c141-c147,u+c14a,u+c14c-c153,u+c155-c157,u+c159-c15b,u+c15d-c166,u+c169-c16f,u+c171-c177,u+c179-c18b,u+c18e-c18f,u+c191-c193,u+c195-c19b,u+c19d-c19e,u+c1a0,u+c1a2-c1a4,u+c1a6-c1bb}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.34.00036bd76529ecd5d8fd.woff2) format("woff2-variations");unicode-range:u+c049-c057,u+c059-c05b,u+c05d-c05f,u+c061-c067,u+c069-c08f,u+c091-c0ab,u+c0ae-c0af,u+c0b1-c0b3,u+c0b5,u+c0b7-c0bb,u+c0be,u+c0c2-c0c7,u+c0ca-c0cb,u+c0cd-c0cf,u+c0d1-c0d7,u+c0d9-c0da,u+c0dc,u+c0de-c0e3,u+c0e5-c0eb,u+c0ed-c0f3,u+c0f6,u+c0f8,u+c0fa-c0ff}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.35.f6542151c717369c369e.woff2) format("woff2-variations");unicode-range:u+bfa7-bfaf,u+bfb1-bfc4,u+bfc6-bfcb,u+bfce-bfcf,u+bfd1-bfd3,u+bfd5-bfdb,u+bfdd-c048}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.36.f58a7e8c7e2495832f8c.woff2) format("woff2-variations");unicode-range:u+bf07,u+bf09-bf3f,u+bf41-bf4f,u+bf52-bf54,u+bf56-bfa6}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.37.12ec7e41e0c52599d2d4.woff2) format("woff2-variations");unicode-range:u+be56,u+be58,u+be5c-be5f,u+be62-be63,u+be65-be67,u+be69-be74,u+be76-be7b,u+be7e-be7f,u+be81-be8e,u+be90,u+be92-bea7,u+bea9-becf,u+bed2-bed3,u+bed5-bed6,u+bed9-bee3,u+bee6-bf06}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.38.ee8f61565a80a6d00dfa.woff2) format("woff2-variations");unicode-range:u+bdb0-bdd3,u+bdd5-bdef,u+bdf1-be0b,u+be0d-be0f,u+be11-be13,u+be15-be43,u+be46-be47,u+be49-be4b,u+be4d-be53}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.39.89b5d1e08e6d3425ce00.woff2) format("woff2-variations");unicode-range:u+bd03,u+bd06,u+bd08,u+bd0a-bd0f,u+bd11-bd22,u+bd25-bd47,u+bd49-bd58,u+bd5a-bd7f,u+bd82-bd83,u+bd85-bd87,u+bd8a-bd8f,u+bd91-bd92,u+bd94,u+bd96-bd98,u+bd9a-bdaf}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.40.f832e008ab458b4d0970.woff2) format("woff2-variations");unicode-range:u+bc4e-bc83,u+bc86-bc87,u+bc89-bc8b,u+bc8d-bc93,u+bc96,u+bc98,u+bc9b-bc9f,u+bca2-bca3,u+bca5-bca7,u+bca9-bcb2,u+bcb4-bcbb,u+bcbe-bcbf,u+bcc1-bcc3,u+bcc5-bccc,u+bcce-bcd0,u+bcd2-bcd4,u+bcd6-bcf3,u+bcf7,u+bcf9-bcfb,u+bcfd-bd02}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.41.27850695d3fa6048271f.woff2) format("woff2-variations");unicode-range:u+bb90-bba3,u+bba5-bbab,u+bbad-bbbf,u+bbc1-bbf7,u+bbfa-bbfb,u+bbfd-bbfe,u+bc01-bc07,u+bc09-bc0a,u+bc0e,u+bc10,u+bc12-bc13,u+bc17,u+bc19-bc1a,u+bc1e,u+bc20-bc23,u+bc26,u+bc28,u+bc2a-bc2c,u+bc2e-bc2f,u+bc32-bc33,u+bc35-bc37,u+bc39-bc3f,u+bc41-bc42,u+bc44,u+bc46-bc48,u+bc4a-bc4d}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.42.f1f47838eeac248fb06a.woff2) format("woff2-variations");unicode-range:u+bae6-bafb,u+bafd-bb17,u+bb19-bb33,u+bb37,u+bb39-bb3a,u+bb3d-bb43,u+bb45-bb46,u+bb48,u+bb4a-bb4f,u+bb51-bb53,u+bb55-bb57,u+bb59-bb62,u+bb64-bb8f}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.43.c59210af636e1be8f39d.woff2) format("woff2-variations");unicode-range:u+ba30-ba37,u+ba3a-ba3b,u+ba3d-ba3f,u+ba41-ba47,u+ba49-ba4a,u+ba4c,u+ba4e-ba53,u+ba56-ba57,u+ba59-ba5b,u+ba5d-ba63,u+ba65-ba66,u+ba68-ba6f,u+ba71-ba73,u+ba75-ba77,u+ba79-ba84,u+ba86,u+ba88-baa7,u+baaa,u+baad-baaf,u+bab1-bab7,u+baba,u+babc,u+babe-bae5}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.44.3adb8026f34419b43dd0.woff2) format("woff2-variations");unicode-range:u+b96e-b973,u+b976-b977,u+b979-b97b,u+b97d-b983,u+b986,u+b988,u+b98a-b98d,u+b98f-b9ab,u+b9ae-b9af,u+b9b1-b9b3,u+b9b5-b9bb,u+b9be,u+b9c0,u+b9c2-b9c7,u+b9ca-b9cb,u+b9cd,u+b9d2-b9d7,u+b9da,u+b9dc,u+b9df-b9e0,u+b9e2,u+b9e6-b9e7,u+b9e9-b9f3,u+b9f6,u+b9f8,u+b9fb-ba2f}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.45.c950bddbb5917be22d5c.woff2) format("woff2-variations");unicode-range:u+b8bf-b8cb,u+b8cd-b8e0,u+b8e2-b8e7,u+b8ea-b8eb,u+b8ed-b8ef,u+b8f1-b8f7,u+b8fa,u+b8fc,u+b8fe-b903,u+b905-b917,u+b919-b91f,u+b921-b93b,u+b93d-b957,u+b95a-b95b,u+b95d-b95f,u+b961-b967,u+b969-b96c}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.46.0a8778c37a5af7760914.woff2) format("woff2-variations");unicode-range:u+b80d-b80f,u+b811-b817,u+b81a,u+b81c-b823,u+b826-b827,u+b829-b82b,u+b82d-b833,u+b836,u+b83a-b83f,u+b841-b85b,u+b85e-b85f,u+b861-b863,u+b865-b86b,u+b86e,u+b870,u+b872-b8af,u+b8b1-b8be}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.47.2c4c667a47c10579e08c.woff2) format("woff2-variations");unicode-range:u+b74d-b75f,u+b761-b763,u+b765-b774,u+b776-b77b,u+b77e-b77f,u+b781-b783,u+b785-b78b,u+b78e,u+b792-b796,u+b79a-b79b,u+b79d-b7a7,u+b7aa,u+b7ae-b7b3,u+b7b6-b7c8,u+b7ca-b7eb,u+b7ee-b7ef,u+b7f1-b7f3,u+b7f5-b7fb,u+b7fe,u+b802-b806,u+b80a-b80b}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.48.1b05a09883d5932cffe0.woff2) format("woff2-variations");unicode-range:u+b6a7-b6aa,u+b6ac-b6b0,u+b6b2-b6ef,u+b6f1-b727,u+b72a-b72b,u+b72d-b72e,u+b731-b737,u+b739-b73a,u+b73c-b743,u+b745-b74c}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.49.c34e4e0a977d3a9a1bda.woff2) format("woff2-variations");unicode-range:u+b605-b60f,u+b612-b617,u+b619-b624,u+b626-b69b,u+b69e-b6a3,u+b6a5-b6a6}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.50.31683d52bab340f1cd1f.woff2) format("woff2-variations");unicode-range:u+b55f,u+b562-b583,u+b585-b59f,u+b5a2-b5a3,u+b5a5-b5a7,u+b5a9-b5b2,u+b5b5-b5ba,u+b5bd-b604}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.51.6470f56f6f2b1c143b89.woff2) format("woff2-variations");unicode-range:u+b4a5-b4b6,u+b4b8-b4bf,u+b4c1-b4c7,u+b4c9-b4db,u+b4de-b4df,u+b4e1-b4e2,u+b4e5-b4eb,u+b4ee,u+b4f0,u+b4f2-b513,u+b516-b517,u+b519-b51a,u+b51d-b523,u+b526,u+b528,u+b52b-b52f,u+b532-b533,u+b535-b537,u+b539-b53f,u+b541-b544,u+b546-b54b,u+b54d-b54f,u+b551-b55b,u+b55d-b55e}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.52.f8ebf4308ad64b14c0a6.woff2) format("woff2-variations");unicode-range:u+b3f8-b3fb,u+b3fd-b40f,u+b411-b417,u+b419-b41b,u+b41d-b41f,u+b421-b427,u+b42a-b42b,u+b42d-b44f,u+b452-b453,u+b455-b457,u+b459-b45f,u+b462-b464,u+b466-b46b,u+b46d-b47f,u+b481-b4a3}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.53.d572c972386a334720ec.woff2) format("woff2-variations");unicode-range:u+b342-b353,u+b356-b357,u+b359-b35b,u+b35d-b35e,u+b360-b363,u+b366,u+b368,u+b36a-b36d,u+b36f,u+b372-b373,u+b375-b377,u+b379-b37f,u+b381-b382,u+b384,u+b386-b38b,u+b38d-b3c3,u+b3c6-b3c7,u+b3c9-b3ca,u+b3cd-b3d3,u+b3d6,u+b3d8,u+b3da-b3f7}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.54.d32d79a5bfee97967b8d.woff2) format("woff2-variations");unicode-range:u+b27c-b283,u+b285-b28f,u+b292-b293,u+b295-b297,u+b29a-b29f,u+b2a1-b2a4,u+b2a7-b2a9,u+b2ab,u+b2ad-b2c7,u+b2ca-b2cb,u+b2cd-b2cf,u+b2d1-b2d7,u+b2da,u+b2dc,u+b2de-b2e3,u+b2e7,u+b2e9-b2ea,u+b2ef-b2f3,u+b2f6,u+b2f8,u+b2fa-b2fb,u+b2fd-b2fe,u+b302-b303,u+b305-b307,u+b309-b30f,u+b312,u+b316-b31b,u+b31d-b341}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.55.40c79d7c08c7b3993052.woff2) format("woff2-variations");unicode-range:u+b1d6-b1e7,u+b1e9-b1fc,u+b1fe-b203,u+b206-b207,u+b209-b20b,u+b20d-b213,u+b216-b21f,u+b221-b257,u+b259-b273,u+b275-b27b}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.56.3c68c9e6b8a3950b6bf4.woff2) format("woff2-variations");unicode-range:u+b120-b122,u+b126-b127,u+b129-b12b,u+b12d-b133,u+b136,u+b138,u+b13a-b13f,u+b142-b143,u+b145-b14f,u+b151-b153,u+b156-b157,u+b159-b177,u+b17a-b17b,u+b17d-b17f,u+b181-b187,u+b189-b18c,u+b18e-b191,u+b195-b1a7,u+b1a9-b1cb,u+b1cd-b1d5}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.57.03c253665666831cf97a.woff2) format("woff2-variations");unicode-range:u+b05f-b07b,u+b07e-b07f,u+b081-b083,u+b085-b08b,u+b08d-b097,u+b09b,u+b09d-b09f,u+b0a2-b0a7,u+b0aa,u+b0b0,u+b0b2,u+b0b6-b0b7,u+b0b9-b0bb,u+b0bd-b0c3,u+b0c6-b0c7,u+b0ca-b0cf,u+b0d1-b0df,u+b0e1-b0e4,u+b0e6-b107,u+b10a-b10b,u+b10d-b10f,u+b111-b112,u+b114-b117,u+b119-b11a,u+b11c-b11f}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.58.fcb05d282329cd13acf0.woff2) format("woff2-variations");unicode-range:u+afac-afb7,u+afba-afbb,u+afbd-afbf,u+afc1-afc6,u+afca-afcc,u+afce-afd3,u+afd5-afe7,u+afe9-afef,u+aff1-b00b,u+b00d-b00f,u+b011-b013,u+b015-b01b,u+b01d-b027,u+b029-b043,u+b045-b047,u+b049,u+b04b,u+b04d-b052,u+b055-b056,u+b058-b05c,u+b05e}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.59.f16d04dacde7453503a9.woff2) format("woff2-variations");unicode-range:u+af03-af07,u+af09-af2b,u+af2e-af33,u+af35-af3b,u+af3e-af40,u+af44-af47,u+af4a-af5c,u+af5e-af63,u+af65-af7f,u+af81-afab}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.60.7ae3017396f18f80bbab.woff2) format("woff2-variations");unicode-range:u+ae56-ae5b,u+ae5e-ae60,u+ae62-ae64,u+ae66-ae67,u+ae69-ae6b,u+ae6d-ae83,u+ae85-aebb,u+aebf,u+aec1-aec3,u+aec5-aecb,u+aece,u+aed0,u+aed2-aed7,u+aed9-aef3,u+aef5-af02}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.61.67dc289db68a28b6f4b1.woff2) format("woff2-variations");unicode-range:u+ad9c-ada3,u+ada5-adbf,u+adc1-adc3,u+adc5-adc7,u+adc9-add2,u+add4-addb,u+addd-addf,u+ade1-ade3,u+ade5-adf7,u+adfa-adfb,u+adfd-adff,u+ae02-ae07,u+ae0a,u+ae0c,u+ae0e-ae13,u+ae15-ae2f,u+ae31-ae33,u+ae35-ae37,u+ae39-ae3f,u+ae42,u+ae44,u+ae46-ae49,u+ae4b,u+ae4f,u+ae51-ae53,u+ae55}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.62.0f3cbfc01455e0df0b73.woff2) format("woff2-variations");unicode-range:u+ace2-ace3,u+ace5-ace6,u+ace9-acef,u+acf2,u+acf4,u+acf7-acfb,u+acfe-acff,u+ad01-ad03,u+ad05-ad0b,u+ad0d-ad10,u+ad12-ad1b,u+ad1d-ad33,u+ad35-ad48,u+ad4a-ad4f,u+ad51-ad6b,u+ad6e-ad6f,u+ad71-ad72,u+ad77-ad7c,u+ad7e,u+ad80,u+ad82-ad87,u+ad89-ad8b,u+ad8d-ad8f,u+ad91-ad9b}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.63.578dea73bbecdbebd873.woff2) format("woff2-variations");unicode-range:u+ac25-ac2c,u+ac2e,u+ac30,u+ac32-ac37,u+ac39-ac3f,u+ac41-ac4c,u+ac4e-ac6f,u+ac72-ac73,u+ac75-ac76,u+ac79-ac7f,u+ac82,u+ac84-ac88,u+ac8a-ac8b,u+ac8d-ac8f,u+ac91-ac93,u+ac95-ac9b,u+ac9d-ac9e,u+aca1-aca7,u+acab,u+acad-acaf,u+acb1-acb7,u+acba-acbb,u+acbe-acc0,u+acc2-acc3,u+acc5-acdf}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.64.655f98243e6df944eb9d.woff2) format("woff2-variations");unicode-range:u+99df,u+99ed,u+99f1,u+99ff,u+9a01,u+9a08,u+9a0e-9a0f,u+9a19,u+9a2b,u+9a30,u+9a36-9a37,u+9a40,u+9a43,u+9a45,u+9a4d,u+9a55,u+9a57,u+9a5a-9a5b,u+9a5f,u+9a62,u+9a65,u+9a69-9a6a,u+9aa8,u+9ab8,u+9ad3,u+9ae5,u+9aee,u+9b1a,u+9b27,u+9b2a,u+9b31,u+9b3c,u+9b41-9b45,u+9b4f,u+9b54,u+9b5a,u+9b6f,u+9b8e,u+9b91,u+9b9f,u+9bab,u+9bae,u+9bc9,u+9bd6,u+9be4,u+9be8,u+9c0d,u+9c10,u+9c12,u+9c15,u+9c25,u+9c32,u+9c3b,u+9c47,u+9c49,u+9c57,u+9ce5,u+9ce7,u+9ce9,u+9cf3-9cf4,u+9cf6,u+9d09,u+9d1b,u+9d26,u+9d28,u+9d3b,u+9d51,u+9d5d,u+9d60-9d61,u+9d6c,u+9d72,u+9da9,u+9daf,u+9db4,u+9dc4,u+9dd7,u+9df2,u+9df8-9dfa,u+9e1a,u+9e1e,u+9e75,u+9e79,u+9e7d,u+9e7f,u+9e92-9e93,u+9e97,u+9e9d,u+9e9f,u+9ea5,u+9eb4-9eb5,u+9ebb,u+9ebe,u+9ec3,u+9ecd-9ece,u+9ed4,u+9ed8,u+9edb-9edc,u+9ede,u+9ee8,u+9ef4,u+9f07-9f08,u+9f0e,u+9f13,u+9f20,u+9f3b,u+9f4a-9f4b,u+9f4e,u+9f52,u+9f5f,u+9f61,u+9f67,u+9f6a,u+9f6c,u+9f77,u+9f8d,u+9f90,u+9f95,u+9f9c,u+ac02-ac03,u+ac05-ac06,u+ac09-ac0f,u+ac17-ac18,u+ac1b,u+ac1e-ac1f,u+ac21-ac23}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.65.04f5608248ecc5398eb7.woff2) format("woff2-variations");unicode-range:u+338c-339c,u+339f-33a0,u+33a2-33cb,u+33cf-33d0,u+33d3,u+33d6,u+33d8,u+33db-33dd,u+4e01,u+4e03,u+4e07-4e08,u+4e11,u+4e14-4e15,u+4e18-4e19,u+4e1e,u+4e32,u+4e38-4e39,u+4e42-4e43,u+4e45,u+4e4d-4e4f,u+4e56,u+4e58-4e59,u+4e5d-4e5e,u+4e6b,u+4e6d,u+4e73,u+4e76-4e77,u+4e7e,u+4e82,u+4e86,u+4e88,u+4e8e,u+4e90-4e92,u+4e94-4e95,u+4e98,u+4e9b,u+4e9e,u+4ea1-4ea2,u+4ea4-4ea6,u+4ea8,u+4eab,u+4ead-4eae,u+4eb6,u+4ec0-4ec1,u+4ec4,u+4ec7,u+4ecb,u+4ecd,u+4ed4-4ed5,u+4ed7-4ed9,u+4edd,u+4edf,u+4ee4,u+4ef0,u+4ef2,u+4ef6-4ef7,u+4efb,u+4f01,u+4f09,u+4f0b,u+4f0d-4f11,u+4f2f,u+4f34,u+4f36,u+4f38,u+4f3a,u+4f3c-4f3d}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.66.e62b83b62a94bc3aadd3.woff2) format("woff2-variations");unicode-range:u+3136,u+3138,u+313a-3140,u+3143-3144,u+3150,u+3152,u+3154-3156,u+3158-315b,u+315d-315f,u+3162,u+3164-318c,u+318e,u+3200-321b,u+3231,u+3239,u+3251-325a,u+3260-327b,u+327e-327f,u+328a-3290,u+3294,u+329e,u+32a5,u+3380-3384,u+3388-338b}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.67.9edd6fb75cc9feeb4022.woff2) format("woff2-variations");unicode-range:u+2f7d,u+2f7f-2f8b,u+2f8e-2f90,u+2f92-2f97,u+2f99-2fa0,u+2fa2-2fa3,u+2fa5-2fa9,u+2fac-2fb1,u+2fb3-2fbc,u+2fc1-2fca,u+2fcd-2fd4,u+3003,u+3012-3019,u+301c,u+301e-3020,u+3036,u+3041,u+3043,u+3045,u+3047,u+3049,u+304e,u+3050,u+3052,u+3056,u+305a,u+305c,u+305e,u+3062,u+3065,u+306c,u+3070-307d,u+3080,u+3085,u+3087,u+308e,u+3090-3091,u+30a1,u+30a5,u+30a9,u+30ae,u+30b1-30b2,u+30b4,u+30b6,u+30bc-30be,u+30c2,u+30c5,u+30cc,u+30d2,u+30d4,u+30d8-30dd,u+30e4,u+30e6,u+30e8,u+30ee,u+30f0-30f2,u+30f4-30f6,u+3133,u+3135}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.68.353636111cf3d73e4491.woff2) format("woff2-variations");unicode-range:u+2541-254b,u+25a4-25a9,u+25b1,u+25b5,u+25b9,u+25bf,u+25c1,u+25c3,u+25c9-25ca,u+25cc,u+25ce,u+25d0-25d1,u+25e6,u+25ef,u+260f,u+261d,u+261f,u+262f,u+2660,u+2664,u+2667-2669,u+266d,u+266f,u+2716,u+271a,u+273d,u+2756,u+2776-277f,u+278a-2793,u+2963,u+2965,u+2ac5-2ac6,u+2acb-2acc,u+2f00,u+2f04,u+2f06,u+2f08,u+2f0a-2f0b,u+2f11-2f12,u+2f14,u+2f17-2f18,u+2f1c-2f1d,u+2f1f-2f20,u+2f23-2f26,u+2f28-2f29,u+2f2b,u+2f2d,u+2f2f-2f32,u+2f38,u+2f3c-2f40,u+2f42-2f4c,u+2f4f-2f52,u+2f54-2f58,u+2f5a-2f66,u+2f69-2f70,u+2f72-2f76,u+2f78,u+2f7a-2f7c}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.69.2ce131d3e490137bd4d8.woff2) format("woff2-variations");unicode-range:u+2479-2487,u+249c-24d1,u+24d3-24d7,u+24d9-24e9,u+24eb-24f4,u+2500-2501,u+2503,u+250c-2513,u+2515-2516,u+2518-2540}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.70.78d7e5fc3c55bd56fb6e.woff2) format("woff2-variations");unicode-range:u+215b-215e,u+2162-2169,u+2170-2179,u+2195-2199,u+21b0-21b4,u+21bc,u+21c0,u+21c4-21c5,u+21cd,u+21cf-21d4,u+21e0-21e3,u+21e6-21e9,u+2200,u+2202-2203,u+2206-2209,u+220b-220c,u+220f,u+2211,u+2213,u+221a,u+221d-2220,u+2222,u+2225-2227,u+2229-222c,u+222e,u+2234-2237,u+223d,u+2243,u+2245,u+2248,u+2250-2253,u+225a,u+2260-2262,u+2264-2267,u+226a-226b,u+226e-2273,u+2276-2277,u+2279-227b,u+2280-2287,u+228a-228b,u+2295-2297,u+22a3-22a5,u+22bb-22bc,u+22ce-22cf,u+22da-22db,u+22ee-22ef,u+2306,u+2312,u+2314,u+2467-2478}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.71.a0ec9849e27bc15d0b47.woff2) format("woff2-variations");unicode-range:u+81-82,u+84,u+a2-a5,u+a7-a8,u+aa,u+ac,u+b1-b3,u+b6,u+b8-ba,u+bc-be,u+c0,u+c2,u+c6-cb,u+ce-d0,u+d4,u+d8-d9,u+db-dc,u+de-df,u+e6,u+eb,u+ee-f0,u+f4,u+f7-f9,u+fb,u+fe-ff,u+111,u+126-127,u+132-133,u+138,u+13f-142,u+149-14b,u+152-153,u+166-167,u+2bc,u+2c7,u+2d0,u+2d8-2d9,u+2db-2dd,u+391-394,u+396-3a1,u+3a3-3a9,u+3b2-3b6,u+3b8,u+3bc,u+3be-3c1,u+3c3-3c9,u+2010,u+2015-2016,u+2018-2019,u+201b,u+201f-2021,u+2025,u+2030,u+2033-2036,u+203c,u+203e,u+2042,u+2074,u+207a-207f,u+2081-2084,u+2109,u+2113,u+2116,u+2121,u+2126,u+212b,u+2153-2154}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.72.bce0e62efa706d77be46.woff2) format("woff2-variations");unicode-range:u+e8,u+2da,u+2160,u+2194,u+3054,u+3058,u+306d,u+3086,u+308d,u+30ac,u+30bb,u+30c4,u+30cd-30ce,u+30e2,u+3132,u+3146,u+3149,u+339d,u+4e3b,u+4f0a,u+4fdd,u+4fe1,u+5409,u+540c,u+5834,u+592a-592b,u+5b9a,u+5dde,u+5e0c,u+5e73,u+5f0f,u+60f3,u+653f,u+661f,u+662f,u+667a,u+683c,u+6b4c,u+6c11,u+767c,u+76ee,u+76f4,u+77f3,u+79d1,u+7a7a,u+7b2c,u+7d22,u+8207,u+8a00,u+8a71,u+9280,u+9580,u+958b,u+96c6,u+9762,u+98df,u+9ed1,u+ac2d,u+adc8,u+add3,u+af48,u+b014,u+b134-b135,u+b158,u+b2aa,u+b35f,u+b6a4,u+b9cf,u+bb63,u+bd23,u+be91,u+c29b,u+c3f4,u+c42c,u+c55c,u+c573,u+c58f,u+c78c,u+c7dd,u+c8f5,u+cad1,u+cc48,u+cf10,u+cf20,u+d03c,u+d07d,u+d2a0,u+d30e,u+d38d,u+d3a8,u+d3c8,u+d5e5,u+d5f9,u+d6e4,u+f90a,u+ff02,u+ff1c}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.73.189d130197f0eca453cc.woff2) format("woff2-variations");unicode-range:u+3b1,u+2466,u+25a1,u+25a3,u+261c,u+3008-3009,u+305b,u+305d,u+3069,u+30a7,u+30ba,u+30cf,u+30ef,u+3151,u+3157,u+4e4b,u+4e5f,u+4e8c,u+4eca,u+4ed6,u+4f5b,u+50cf,u+5149,u+5165,u+5171,u+5229,u+529b,u+5316,u+539f,u+53f2,u+571f,u+5728,u+58eb,u+591c,u+5b78,u+5c11,u+5c55,u+5ddd,u+5e02,u+5fb7,u+60c5,u+610f,u+611f,u+6625,u+66f8,u+6797,u+679c,u+682a,u+6d2a,u+706b,u+7406,u+767b,u+76f8,u+77e5,u+7acb,u+898b,u+8a69,u+8def,u+8fd1,u+901a,u+90e8,u+91cd,u+975e,u+ae14,u+ae6c,u+aec0,u+afc7,u+afc9,u+b01c,u+b028,u+b308,u+b311,u+b314,u+b31c,u+b524,u+b560,u+b764,u+b920,u+b9e3,u+bd48,u+be7d,u+c0db,u+c231,u+c270,u+c2e3,u+c37d,u+c3ed,u+c530,u+c6a5,u+c6dc,u+c7a4,u+c954,u+c974,u+d000,u+d565,u+d667,u+d6c5,u+d79d,u+ff1e}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.74.9a04cb80f498ead556d6.woff2) format("woff2-variations");unicode-range:u+131,u+2032,u+2465,u+2642,u+3048,u+3051,u+3083-3084,u+308f,u+30c0,u+30d1,u+30d3,u+30d6,u+30df,u+30e7,u+3153,u+4e16,u+4e8b,u+4ee5,u+5206,u+52a0,u+52d5,u+53e4,u+53ef,u+54c1,u+57ce,u+597d,u+5b8c,u+5ea6,u+5f8c,u+5f97,u+6210,u+6240,u+624b,u+6728,u+6bd4,u+7236,u+7269,u+7279,u+738b,u+7528,u+7530,u+767e,u+798f,u+8005,u+8a18,u+90fd,u+91cc,u+9577,u+9593,u+98a8,u+ac20,u+acf6,u+ad90,u+af5d,u+af80,u+afcd,u+aff0,u+b0a1,u+b0b5,u+b1fd,u+b2fc,u+b380,u+b51b,u+b584,u+b5b3,u+b8fd,u+b93c,u+b9f4,u+bb44,u+bc08,u+bc27,u+bc49,u+be55,u+be64,u+bfb0,u+bfc5,u+c178,u+c21f,u+c314,u+c4f1,u+c58d,u+c664,u+c698,u+c6a7,u+c6c1,u+c9ed,u+cac0,u+cacc,u+cad9,u+ccb5,u+cdcc,u+d0e4,u+d143,u+d320,u+d330,u+d54d,u+ff06,u+ff1f,u+ff5e}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.75.58d9c42644afbca8fefa.woff2) format("woff2-variations");unicode-range:u+b4,u+20a9,u+20ac,u+2190,u+24d8,u+2502,u+2514,u+2592,u+25c7-25c8,u+2663,u+3060,u+3064,u+3081,u+3088,u+30a3,u+30a6,u+30aa,u+30b5,u+30c7,u+30ca-30cb,u+30d0,u+30e3,u+30e5,u+339e,u+4e09,u+4eac,u+4f5c,u+5167-5168,u+516c,u+51fa,u+5408,u+540d,u+591a,u+5b57,u+6211,u+65b9,u+660e,u+6642,u+6700,u+6b63,u+6e2f,u+7063,u+7532,u+793e,u+81ea,u+8272,u+82b1,u+897f,u+8eca,u+91ce,u+ac38,u+ad76,u+ae84,u+aecc,u+b07d,u+b0b1,u+b215,u+b2a0,u+b310,u+b3d7,u+b52a,u+b618,u+b775,u+b797,u+bcd5,u+bd59,u+be80,u+bea8,u+bed1,u+bee4-bee5,u+c060,u+c2ef,u+c329,u+c3dc,u+c597,u+c5bd,u+c5e5,u+c69c,u+c9d6,u+ca29,u+ca5c,u+ca84,u+cc39,u+cc3b,u+ce89,u+cee5,u+cf65,u+cf85,u+d058,u+d145,u+d22d,u+d325,u+d37d,u+d3ad,u+d769,u+ff0c}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.76.216e3d28ad9fa85f38a4.woff2) format("woff2-variations");unicode-range:u+2161,u+2228,u+2299,u+2464,u+2517,u+2640,u+3042,u+304a,u+3053,u+3061,u+307f,u+3082,u+308c,u+3092,u+30a8,u+30ab,u+30ad,u+30b0,u+30b3,u+30b7,u+30c1,u+30c6,u+30c9,u+30d5,u+30d7,u+30de,u+30e0-30e1,u+30ec-30ed,u+4e0b,u+4e0d,u+4ee3,u+53f0,u+548c,u+5b89,u+5bb6,u+5c0f,u+611b,u+6771,u+6aa2,u+6bcd,u+6c34,u+6cd5,u+6d77,u+767d,u+795e,u+8ecd,u+9999,u+9ad8,u+ac07,u+ac1a,u+ac40,u+ad0c,u+ad88,u+ada4,u+ae01,u+ae65,u+aebd,u+aec4,u+afe8,u+b139,u+b205,u+b383,u+b38c,u+b42c,u+b461,u+b55c,u+b78f,u+b8fb,u+b9f7,u+bafc,u+bc99,u+bed8,u+bfcd,u+c0bf,u+c0f9,u+c167,u+c204,u+c20f,u+c22f,u+c258,u+c298,u+c2bc,u+c388,u+c501,u+c50c,u+c5b9,u+c5ce,u+c641,u+c648,u+c73d,u+ca50,u+ca61,u+cc4c,u+ceac,u+d0d4,u+d5f7,u+d6d7,u+ff1a}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.77.ca5a85d89459492eca27.woff2) format("woff2-variations");unicode-range:u+2103,u+2463,u+25c6,u+25cb,u+266c,u+3001,u+300a,u+3046,u+304c-304d,u+304f,u+3055,u+3059,u+3063,u+3066-3068,u+306f,u+3089,u+30b8,u+30bf,u+314f,u+4e0a,u+570b,u+5730,u+5916,u+5929,u+5c71,u+5e74,u+5fc3,u+601d,u+6027,u+63d0,u+6709,u+6734,u+751f,u+7684,u+82f1,u+9053,u+91d1,u+97f3,u+ac2f,u+ac4d,u+adc4,u+ade4,u+ae41,u+ae4d-ae4e,u+aed1,u+afb9,u+b0e0,u+b299,u+b365,u+b46c,u+b480,u+b4c8,u+b7b4,u+b819,u+b918,u+baab,u+bab9,u+be8f,u+bed7,u+c0ec,u+c19f,u+c1a5,u+c3d9,u+c464,u+c53d,u+c553,u+c570,u+c5cc,u+c633,u+c6a4,u+c7a3,u+c7a6,u+c886,u+c9d9-c9da,u+c9ec,u+ca0c,u+cc21,u+cd1b,u+cd78,u+cdc4,u+cef8,u+cfe4,u+d0a5,u+d0b5,u+d0ec,u+d15d,u+d188,u+d23c,u+d2ac,u+d729,u+d79b,u+ff01,u+ff08-ff09,u+ff5c}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.78.3584d41319fa85852666.woff2) format("woff2-variations");unicode-range:u+2039-203a,u+223c,u+25b3,u+25b7,u+25bd,u+25cf,u+266a,u+3002,u+300b,u+304b,u+3057,u+305f,u+306a-306b,u+307e,u+308a-308b,u+3093,u+30a2,u+30af,u+30b9,u+30c3,u+30c8,u+30e9-30eb,u+33a1,u+4e00,u+524d,u+5357,u+5b50,u+7121,u+884c,u+9751,u+ac94,u+aebe,u+aecd,u+af08,u+af41,u+af49,u+b010,u+b053,u+b109,u+b11b,u+b128,u+b154,u+b291,u+b2e6,u+b301,u+b385,u+b525,u+b5b4,u+b729,u+b72f,u+b738,u+b7ff,u+b837,u+b975,u+ba67,u+bb47,u+bc1f,u+bd90,u+bfd4,u+c27c,u+c324,u+c379,u+c3e0,u+c465,u+c53b,u+c58c,u+c610,u+c653,u+c6cd,u+c813,u+c82f,u+c999,u+c9e0,u+cac4,u+cad3,u+cbd4,u+cc10,u+cc22,u+ccb8,u+ccbc,u+cda5,u+ce84,u+cea3,u+cf67,u+cfe1,u+d241,u+d30d,u+d31c,u+d391,u+d401,u+d479,u+d5c9,u+d5db,u+d649,u+d6d4}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.79.301f9d45bce5ff33c342.woff2) format("woff2-variations");unicode-range:u+b0,u+e9,u+2193,u+2462,u+260e,u+261e,u+300e-300f,u+3044,u+30a4,u+30fb-30fc,u+314d,u+5973,u+6545,u+6708,u+7537,u+ac89,u+ac9c,u+acc1,u+ad04,u+ad75,u+ad7d,u+ae45,u+ae61,u+af42,u+b0ab,u+b0af,u+b0b3,u+b12c,u+b194,u+b1a8,u+b220,u+b258,u+b284,u+b2ff,u+b315,u+b371,u+b3d4-b3d5,u+b460,u+b527,u+b534,u+b810,u+b818,u+b98e,u+ba55,u+bbac,u+bc0b,u+bc40,u+bca1,u+bccd,u+bd93,u+be54,u+be5a,u+bf08,u+bf50,u+bf55,u+bfdc,u+c0c0,u+c0d0,u+c0f4,u+c100,u+c11e,u+c170,u+c20d,u+c274,u+c290,u+c308,u+c369,u+c539,u+c587,u+c5ff,u+c6ec,u+c70c,u+c7ad,u+c7c8,u+c83c,u+c881,u+cb48,u+cc60,u+ce69,u+ce6b,u+ce75,u+cf04,u+cf08,u+cf55,u+cf70,u+cffc,u+d0b7,u+d1a8,u+d2c8,u+d384,u+d47c,u+d48b,u+d5dd,u+d5e8,u+d720,u+d759,u+f981}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.80.4c6228d8b1f5c20a07d1.woff2) format("woff2-variations");unicode-range:u+e0,u+e2,u+395,u+3b7,u+3ba,u+2460-2461,u+25a0,u+3010-3011,u+306e,u+30f3,u+314a,u+314c,u+5927,u+65b0,u+7e41,u+97d3,u+9ad4,u+ad49,u+ae0b,u+ae0d,u+ae43,u+ae5d,u+aecf,u+af3c,u+af64,u+afd4,u+b080,u+b084,u+b0c5,u+b10c,u+b1e8,u+b2ac,u+b36e,u+b451,u+b515,u+b540,u+b561,u+b6ab,u+b6b1,u+b72c,u+b730,u+b744,u+b800,u+b8ec,u+b8f0,u+b904,u+b968,u+b96d,u+b987,u+b9d9,u+bb36,u+bb49,u+bc2d,u+bc43,u+bcf6,u+bd89,u+be57,u+be61,u+bed4,u+c090,u+c130,u+c148,u+c19c,u+c2f9,u+c36c,u+c37c,u+c384,u+c3df,u+c575,u+c584,u+c660,u+c719,u+c816,u+ca4d,u+ca54,u+cabc,u+cb49,u+cc14,u+cff5,u+d004,u+d038,u+d0b4,u+d0d3,u+d0e0,u+d0ed,u+d131,u+d1b0,u+d31f,u+d33d,u+d3a0,u+d3ab,u+d514,u+d584,u+d6a1,u+d6cc,u+d749,u+d760,u+d799}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.81.97f95f86855a460417d8.woff2) format("woff2-variations");unicode-range:u+24,u+60,u+3b9,u+3bb,u+3bd,u+2191,u+2606,u+300c-300d,u+3131,u+3134,u+3139,u+3141-3142,u+3148,u+3161,u+3163,u+321c,u+4eba,u+5317,u+ac31,u+ac77,u+ac9f,u+acb9,u+acf0-acf1,u+acfd,u+ad73,u+af3d,u+b00c,u+b04a,u+b057,u+b0c4,u+b188,u+b1cc,u+b214,u+b2db,u+b2ee,u+b304,u+b4ed,u+b518,u+b5bc,u+b625,u+b69c-b69d,u+b7ac,u+b801,u+b86c,u+b959,u+b95c,u+b985,u+ba48,u+bb58,u+bc0c,u+bc38,u+bc85,u+bc9a,u+bf40,u+c068,u+c0bd,u+c0cc,u+c12f,u+c149,u+c1e0,u+c22b,u+c22d,u+c250,u+c2fc,u+c300,u+c313,u+c370,u+c3d8,u+c557,u+c580,u+c5e3,u+c62e,u+c634,u+c6f0,u+c74d,u+c783,u+c78e,u+c796,u+c7bc,u+c92c,u+ca4c,u+cc1c,u+cc54,u+cc59,u+ce04,u+cf30,u+cfc4,u+d140,u+d321,u+d38c,u+d399,u+d54f,u+d587,u+d5d0,u+d6e8,u+d770}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.82.c6e35e43b3c6d0683e54.woff2) format("woff2-variations");unicode-range:u+d7,u+ea,u+fc,u+2192,u+25bc,u+3000,u+3137,u+3145,u+315c,u+7f8e,u+ac13,u+ac71,u+ac90,u+acb8,u+ace7,u+ad7f,u+ae50,u+aef4,u+af34,u+afbc,u+b048,u+b09a,u+b0ad,u+b0bc,u+b113,u+b125,u+b141,u+b20c,u+b2d9,u+b2ed,u+b367,u+b369,u+b374,u+b3cb,u+b4ec,u+b611,u+b760,u+b81b,u+b834,u+b8b0,u+b8e1,u+b989,u+b9d1,u+b9e1,u+b9fa,u+ba4d,u+ba78,u+bb35,u+bb54,u+bbf9,u+bc11,u+bcb3,u+bd05,u+bd95,u+bdd4,u+be10,u+bed0,u+bf51,u+c0d8,u+c232,u+c2b7,u+c2eb,u+c378,u+c500,u+c52c,u+c549,u+c568,u+c598,u+c5c9,u+c61b,u+c639,u+c67c,u+c717,u+c78a,u+c80a,u+c90c-c90d,u+c950,u+c9e7,u+cbe4,u+cca9,u+cce4,u+cdb0,u+ce78,u+ce94,u+ce98,u+cf8c,u+d018,u+d034,u+d0f1,u+d1b1,u+d280,u+d2f8,u+d338,u+d380,u+d3b4,u+d610,u+d69f,u+d6fc,u+d758}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.83.39c27cf531e8f3a9e1ac.woff2) format("woff2-variations");unicode-range:u+e7,u+2022,u+203b,u+25c0,u+2605,u+2661,u+3147,u+318d,u+672c,u+8a9e,u+acaa,u+acbc,u+ad1c,u+ae4a,u+ae5c,u+b044,u+b054,u+b0c8-b0c9,u+b2a6,u+b2d0,u+b35c,u+b364,u+b428,u+b454,u+b465,u+b4b7,u+b4e3,u+b51c,u+b5a1,u+b784,u+b790,u+b7ab,u+b7f4,u+b82c,u+b835,u+b8e9,u+b8f8,u+b9d8,u+b9f9,u+ba5c,u+ba64,u+babd,u+bb18,u+bb3b,u+bbff,u+bc0d,u+bc45,u+bc97,u+bcbc,u+be45,u+be75,u+be7c,u+bfcc,u+c0b6,u+c0f7,u+c14b,u+c2b4,u+c30d,u+c4f8,u+c5bb,u+c5d1,u+c5e0,u+c5ee,u+c5fd,u+c606,u+c6c5,u+c6e0,u+c708,u+c81d,u+c820,u+c824,u+c878,u+c918,u+c96c,u+c9e4,u+c9f1,u+cc2e,u+cd09,u+cea1,u+cef5,u+cef7,u+cf64,u+cf69,u+cfe8,u+d035,u+d0ac,u+d230,u+d234,u+d2f4,u+d31d,u+d575,u+d578,u+d608,u+d614,u+d718,u+d751,u+d761,u+d78c,u+d790}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.84.9ee98afe13c60abfd032.woff2) format("woff2-variations");unicode-range:u+2665,u+3160,u+4e2d,u+6587,u+65e5,u+ac12,u+ac14,u+ac16,u+ac81,u+ad34,u+ade0,u+ae54,u+aebc,u+af2c,u+afc0,u+afc8,u+b04c,u+b08c,u+b099,u+b0a9,u+b0ac,u+b0ae,u+b0b8,u+b123,u+b179,u+b2e5,u+b2f7,u+b4c0,u+b531,u+b538,u+b545,u+b550,u+b5a8,u+b6f0,u+b728,u+b73b,u+b7ad,u+b7ed,u+b809,u+b864,u+b86d,u+b871,u+b9bf,u+b9f5,u+ba40,u+ba4b,u+ba58,u+ba87,u+baac,u+bbc0,u+bc16,u+bc34,u+bd07,u+bd99,u+be59,u+bfd0,u+c058,u+c0e4,u+c0f5,u+c12d,u+c139,u+c228,u+c529,u+c5c7,u+c635,u+c637,u+c735,u+c77d,u+c787,u+c789,u+c8c4,u+c989,u+c98c,u+c9d0,u+c9d3,u+cc0c,u+cc99,u+cd0c,u+cd2c,u+cd98,u+cda4,u+ce59,u+ce60,u+ce6d,u+cea0,u+d0d0-d0d1,u+d0d5,u+d14d,u+d1a4,u+d29c,u+d2f1,u+d301,u+d39c,u+d3bc,u+d4e8,u+d540,u+d5ec,u+d640,u+d750}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.85.6709986d3cccaefb9a7f.woff2) format("woff2-variations");unicode-range:u+5e,u+25b2,u+25b6,u+314e,u+ac24,u+ace1,u+ace4,u+ae68,u+af2d,u+b0d0,u+b0e5,u+b150,u+b155,u+b193,u+b2c9,u+b2dd,u+b3c8,u+b3fc,u+b410,u+b458,u+b4dd,u+b5a0,u+b5a4,u+b5bb,u+b7b5,u+b838,u+b840,u+b86f,u+b8f9,u+b960,u+b9e5,u+bab8,u+bb50,u+bc1d,u+bc24-bc25,u+bca8,u+bcbd,u+bd04,u+bd10,u+bd24,u+be48,u+be5b,u+be68,u+c05c,u+c12c,u+c140,u+c15c,u+c168,u+c194,u+c219,u+c27d,u+c2a8,u+c2f1,u+c2f8,u+c368,u+c554-c555,u+c559,u+c564,u+c5d8,u+c5fc,u+c625,u+c65c,u+c6b1,u+c728,u+c794,u+c84c,u+c88c,u+c8e0,u+c8fd,u+c998,u+c9dd,u+cc0d,u+cc30,u+ceec,u+cf13,u+cf1c,u+cf5c,u+d050,u+d07c,u+d0a8,u+d134,u+d138,u+d154,u+d1f4,u+d2bc,u+d329,u+d32c,u+d3d0,u+d3f4,u+d3fc,u+d56b,u+d5cc,u+d600-d601,u+d639,u+d6c8,u+d754,u+d765}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.86.b5868e4366425b3c4f93.woff2) format("woff2-variations");unicode-range:u+3c-3d,u+2026,u+24d2,u+314b,u+ac11,u+acf3,u+ad74,u+ad81,u+adf9,u+ae34,u+af43,u+afb8,u+b05d,u+b07c,u+b110,u+b118,u+b17c,u+b180,u+b18d,u+b192,u+b2cc,u+b355,u+b378,u+b4a4,u+b4ef,u+b78d,u+b799,u+b7a9,u+b7fd,u+b807,u+b80c,u+b839,u+b9b4,u+b9db,u+ba3c,u+bab0,u+bba4,u+bc94,u+be4c,u+c154,u+c1c4,u+c26c,u+c2ac,u+c2ed,u+c4f4,u+c55e,u+c561,u+c571,u+c5b5,u+c5c4,u+c654-c655,u+c695,u+c6e8,u+c6f9,u+c724,u+c751,u+c775,u+c7a0,u+c7c1,u+c874,u+c880,u+c9d5,u+c9f8,u+cabd,u+cc29,u+cc2c,u+cca8,u+ccab,u+ccd0,u+ce21,u+ce35,u+ce7c,u+ce90,u+cee8,u+cef4,u+cfe0,u+d070,u+d0b9,u+d0c1,u+d0c4,u+d0c8,u+d15c,u+d1a1,u+d2c0,u+d300,u+d314,u+d3ed,u+d478,u+d480,u+d48d,u+d508,u+d53d,u+d5e4,u+d611,u+d61c,u+d68d,u+d6a8,u+d798}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.87.62f4806e38ce0a842b62.woff2) format("woff2-variations");unicode-range:u+23,u+25,u+5f,u+a9,u+ac08,u+ac78,u+aca8,u+acac,u+ace8,u+ad70,u+adc0,u+addc,u+b137,u+b140,u+b208,u+b290,u+b2f5,u+b3c5,u+b3cc,u+b420,u+b429,u+b529,u+b530,u+b77d,u+b79c,u+b7a8,u+b7c9,u+b7f0,u+b7fc,u+b828,u+b860,u+b9ad,u+b9c1,u+b9c9,u+b9dd-b9de,u+b9e8,u+ba38-ba39,u+babb,u+bc00,u+bc8c,u+bca0,u+bca4,u+bcd1,u+bcfc,u+bd09,u+bdf0,u+be60,u+c0ad,u+c0b4,u+c0bc,u+c190,u+c1fc,u+c220,u+c288,u+c2b9,u+c2f6,u+c528,u+c545,u+c558,u+c5bc,u+c5d4,u+c600,u+c644,u+c6c0,u+c6c3,u+c721,u+c798,u+c7a1,u+c811,u+c838,u+c871,u+c904,u+c990,u+c9dc,u+cc38,u+cc44,u+cca0,u+cd1d,u+cd95,u+cda9,u+ce5c,u+cf00,u+cf58,u+d150,u+d22c,u+d305,u+d328,u+d37c,u+d3f0,u+d551,u+d5a5,u+d5c8,u+d5d8,u+d63c,u+d64d,u+d669,u+d734,u+d76c}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.88.8e8c46257230ec0aba9c.woff2) format("woff2-variations");unicode-range:u+26,u+2b,u+3e,u+40,u+7e,u+ac01,u+ac19,u+ac1d,u+aca0,u+aca9,u+acb0,u+ad8c,u+ae09,u+ae38,u+ae40,u+aed8,u+b09c,u+b0a0,u+b108,u+b204,u+b298,u+b2d8,u+b2eb-b2ec,u+b2f4,u+b313,u+b358,u+b450,u+b4e0,u+b54c,u+b610,u+b780,u+b78c,u+b791,u+b8e8,u+b958,u+b974,u+b984,u+b9b0,u+b9bc-b9bd,u+b9ce,u+ba70,u+bbfc,u+bc0f,u+bc15,u+bc1b,u+bc31,u+bc95,u+bcc0,u+bcc4,u+bd81,u+bd88,u+c0c8,u+c11d,u+c13c,u+c158,u+c18d,u+c1a1,u+c21c,u+c4f0,u+c54a,u+c560,u+c5b8,u+c5c8,u+c5f4,u+c628,u+c62c,u+c678,u+c6cc,u+c808,u+c810,u+c885,u+c88b,u+c900,u+c988,u+c99d,u+c9c8,u+cc3d-cc3e,u+cc45,u+cd08,u+ce20,u+cee4,u+d074,u+d0a4,u+d0dd,u+d2b9,u+d3b8,u+d3c9,u+d488,u+d544,u+d559,u+d56d,u+d588,u+d615,u+d648,u+d655,u+d658,u+d65c}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.89.31f0f2ffbb59b38da982.woff2) format("woff2-variations");unicode-range:u+d,u+7c,u+ac10,u+ac15,u+ac74,u+ac80,u+ac83,u+acc4,u+ad11,u+ad50,u+ad6d,u+adfc,u+ae00,u+ae08,u+ae4c,u+b0a8,u+b124,u+b144,u+b178,u+b274,u+b2a5,u+b2e8,u+b2f9,u+b354,u+b370,u+b418,u+b41c,u+b4f1,u+b514,u+b798,u+b808,u+b824-b825,u+b8cc,u+b978,u+b9d0,u+b9e4,u+baa9,u+bb3c,u+bc18,u+bc1c,u+bc30,u+bc84,u+bcf5,u+bcf8,u+bd84,u+be0c,u+be14,u+c0b0,u+c0c9,u+c0dd,u+c124,u+c2dd,u+c2e4,u+c2ec,u+c54c,u+c57c-c57d,u+c591,u+c5c5-c5c6,u+c5ed,u+c608,u+c640,u+c6b8,u+c6d4,u+c784,u+c7ac,u+c800-c801,u+c9c1,u+c9d1,u+cc28,u+cc98,u+cc9c,u+ccad,u+cd5c,u+cd94,u+cd9c,u+cde8,u+ce68,u+cf54,u+d0dc,u+d14c,u+d1a0,u+d1b5,u+d2f0,u+d30c,u+d310,u+d398,u+d45c,u+d50c,u+d53c,u+d560,u+d568,u+d589,u+d604,u+d6c4,u+d788}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.90.2a00f5ab952659c45f0d.woff2) format("woff2-variations");unicode-range:u+ac04,u+ac1c,u+ac70,u+ac8c,u+acbd,u+acf5,u+acfc,u+ad00,u+ad6c,u+adf8,u+b098,u+b0b4,u+b294,u+b2c8,u+b300,u+b3c4,u+b3d9,u+b4dc,u+b4e4,u+b77c,u+b7ec,u+b85d,u+b97c,u+b9c8,u+b9cc,u+ba54,u+ba74,u+ba85,u+baa8,u+bb34,u+bb38,u+bbf8,u+bc14,u+bc29,u+bc88,u+bcf4,u+bd80,u+be44,u+c0c1,u+c11c,u+c120,u+c131,u+c138,u+c18c,u+c218,u+c2b5,u+c2e0,u+c544,u+c548,u+c5b4,u+c5d0,u+c5ec,u+c5f0,u+c601,u+c624,u+c694,u+c6a9,u+c6b0,u+c6b4,u+c6d0,u+c704,u+c720,u+c73c,u+c740,u+c744,u+c74c,u+c758,u+c77c,u+c785,u+c788,u+c790-c791,u+c7a5,u+c804,u+c815,u+c81c,u+c870,u+c8fc,u+c911,u+c9c4,u+ccb4,u+ce58,u+ce74,u+d06c,u+d0c0,u+d130,u+d2b8,u+d3ec,u+d504,u+d55c,u+d569,u+d574,u+d638,u+d654,u+d68c}@font-face{font-display:swap;font-family:Pretendard Variable;font-style:normal;font-weight:45 920;src:url(/static/media/PretendardVariable.subset.91.2a65916bfd0c1779b1ae.woff2) format("woff2-variations");unicode-range:u+20-22,u+27-2a,u+2c-39,u+3a-3b,u+3f,u+41-4e,u+4f-5d,u+61-7b,u+7d,u+a0-a1,u+ab,u+ad-ae,u+b7,u+bb,u+bf,u+2013-2014,u+201c-201d,u+2122,u+ac00,u+ace0,u+ae30,u+b2e4,u+b85c,u+b9ac,u+c0ac,u+c2a4,u+c2dc,u+c774,u+c778,u+c9c0,u+d558}*{box-sizing:border-box}:root{--learning-question-bg:var(--color-surface);--learning-question-border:var(--color-primary);--learning-answer-bg:var(--color-success-soft);--learning-answer-border:var(--color-success);--learning-drawing-bg:var(--color-warning-soft);--learning-drawing-border:var(--color-warning);--learning-grid-line:color-mix(in srgb,var(--color-muted) 22%,#0000);--learning-grid-image:linear-gradient(var(--learning-grid-line) 1px,#0000 1px),linear-gradient(90deg,var(--learning-grid-line) 1px,#0000 1px);--learning-grid-size:20px 20px;--color-bg:#e1e4e8;--color-surface:#eef0f2;--color-surface-soft:#dde3eb;--color-line:#c4ccd6;--color-text:#1b2d47;--color-muted:#52627a;--color-primary:#255dbe;--color-on-primary:#fff;--color-primary-soft:#dce5f1;--color-success:#256747;--color-on-success:#fff;--color-success-soft:#dcebe2;--color-danger:#b13235;--color-on-danger:#fff;--color-danger-soft:#f0dcdf;--color-warning:#815609;--color-warning-soft:#eee3c9;--color-secondary:#a4452d;--color-focus:#255dbe;--color-overlay:#121d2d8c;--color-on-image:#fff4e3;--color-image-caption-bg:#ffffffe0;--color-image-caption-text:#1b2d47;--shadow-warm:0 3px 12px #1b2d4714;--color-ink:var(--color-bg);--color-ink-2:var(--color-surface);--color-cream:var(--color-text);--color-gold:var(--color-primary);--color-coral:var(--color-secondary);--color-rust:var(--color-danger);--color-teal:var(--color-success);--font-ui:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,system-ui,"Segoe UI",Roboto,"Helvetica Neue","Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",sans-serif;--radius-control:8px;--radius-panel:12px;--text-page-title:clamp(1.5rem,3vw,2rem);--weight-page-title:750;--text-section-title:1.125rem;--weight-section-title:700;--text-group-title:1rem;--weight-group-title:600;--text-control:1rem;--weight-control:600;--panel-padding:20px;--control-height:44px;color-scheme:light}:root[data-theme=dark]{--color-bg:#241e1a;--color-surface:#382c24;--color-surface-soft:#42342a;--color-line:#66513e;--color-text:#fff4e3;--color-muted:#c7a98a;--color-primary:#ffd66b;--color-on-primary:#241e1a;--color-primary-soft:#4a3b2a;--color-success:#2ec4b6;--color-on-success:#142b28;--color-success-soft:#263e35;--color-danger:#ffaca2;--color-on-danger:#3b1717;--color-danger-soft:#4e2c2a;--color-warning:#ffd66b;--color-warning-soft:#4a3b2a;--color-secondary:#ffa184;--color-focus:#ffd66b;--color-overlay:#0d0a08b3;--shadow-warm:0 3px 12px #00000024;color-scheme:dark}::selection{background:#255dbe;background:var(--color-primary);color:#fff;color:var(--color-on-primary)}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid #255dbe;outline:2px solid var(--color-focus);outline-offset:3px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#e1e4e8;background:var(--color-ink);color:#1b2d47;color:var(--color-text);font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Segoe UI,Roboto,Helvetica Neue,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,sans-serif;font-family:var(--font-ui);margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.markdown-text{white-space:pre-wrap;word-break:break-word}.markdown-text strong{font-weight:800}.markdown-text em{font-style:italic}.markdown-text s{text-decoration:line-through}.reading-practice-shell{--learning-dialog-bg:#e9e6f2;--learning-dialog-border:#cec8dd;align-items:stretch;box-sizing:border-box;display:flex;flex-direction:column;gap:10px;justify-content:flex-start;min-height:100%;padding:6px 0 12px;width:100%}:root[data-theme=dark] .reading-practice-shell{--learning-dialog-bg:#302b40;--learning-dialog-border:#625775}.reading-practice-card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:none;display:flex;flex-direction:column;min-height:0;overflow:visible;width:min(920px,100%)}.reading-practice-top{grid-gap:10px;align-items:center;border-bottom:1px solid var(--color-line);display:grid;gap:10px;grid-template-columns:44px minmax(0,1fr) 44px;padding:14px 16px 10px}.reading-practice-title-block{min-width:0;text-align:center}.reading-practice-kicker{color:var(--color-primary);font-size:12px;font-weight:900;text-transform:uppercase}.reading-practice-title{color:var(--color-text);font-size:20px;line-height:1.2;margin:3px 0 0}.reading-practice-content{color:var(--color-text);cursor:pointer;font-size:19px;line-height:1.75;outline:none;overflow:visible;padding:18px}.reading-practice-content:focus-visible{box-shadow:none;outline:2px solid var(--color-focus);outline-offset:-2px}.reading-practice-section{border-left:3px solid #0000;border-radius:6px;margin:0;padding:8px 12px;white-space:pre-wrap}.reading-practice-section+.reading-practice-section{margin-top:18px}.reading-practice-section-next,.reading-practice-section-prev{color:var(--color-muted)}.reading-practice-section-current{background:var(--color-primary-soft);border-left-color:var(--color-primary);color:var(--color-text);cursor:crosshair;font-size:1.12em;line-height:1.82;position:relative}.reading-practice-scene-row{grid-gap:10px;align-items:center;color:var(--color-primary);display:grid;font-size:.86em;font-weight:900;gap:10px;grid-template-columns:minmax(24px,1fr) auto minmax(24px,1fr);text-align:center;text-transform:uppercase}.reading-practice-scene-row span[aria-hidden=true]{background:var(--color-primary-soft);height:1px}.reading-practice-speech-row{align-items:flex-start;display:flex;flex-direction:column;gap:5px;margin:6px 0}.reading-practice-speech-row.speaker-b{align-items:flex-end}.reading-speech-with-avatar{align-items:flex-end;display:flex;gap:7px;max-width:min(90%,663px);min-width:0}.reading-speech-with-avatar.speaker-b{flex-direction:row-reverse}.reading-speech-avatar{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:50%;box-sizing:border-box;color:var(--color-muted);display:flex;flex:0 0 34px;height:34px;justify-content:center;overflow:hidden;width:34px}.reading-speech-avatar img{height:100%;object-fit:cover;width:100%}.reading-practice-current-speech .reading-speech-with-avatar>.reading-practice-speech-bubble,.reading-speech-with-avatar>.reading-practice-speech-bubble{flex:1 1 auto;max-width:none;min-width:0;overflow-wrap:anywhere;width:auto}.reading-practice-current-speech .reading-speech-with-avatar{max-width:100%}.reading-practice-current-speech .reading-speech-with-avatar.without-avatar{width:min(100%,760px)}.reading-practice-speech-flip-row>.reading-speech-with-avatar{width:100%}.reading-practice-speaker-name{color:var(--color-muted);font-size:.72em;font-weight:950;text-transform:uppercase}.reading-practice-speech-bubble{--reading-speech-bubble-bg:var(--learning-dialog-bg);background:var(--reading-speech-bubble-bg);border:1px solid var(--learning-dialog-border);border-radius:9px;box-shadow:none;color:var(--color-text);isolation:isolate;max-width:min(76%,620px);overflow:visible;padding:10px 13px;position:relative}.reading-practice-speech-bubble:before{background:var(--reading-speech-bubble-bg);bottom:12px;clip-path:polygon(100% 0,100% 100%,0 50%);content:none;display:none;height:20px;left:-12px;pointer-events:none;position:absolute;width:13px;z-index:0}.reading-practice-current-speech.speaker-b .reading-practice-speech-bubble:before,.reading-practice-speech-row.speaker-b .reading-practice-speech-bubble:before{clip-path:polygon(0 0,100% 50%,0 100%);left:auto;right:-12px}.reading-practice-current-speech,.reading-practice-section-current.reading-practice-section-pause{cursor:pointer}.reading-practice-current-speech .reading-practice-speech-row.is-current{align-items:center;margin:0;text-align:center}.reading-practice-current-speech.speaker-b .reading-practice-speaker-name{color:var(--color-muted)}.reading-practice-current-speech .reading-practice-speech-bubble{--reading-speech-bubble-bg:var(--learning-question-bg);border-color:var(--color-primary);box-shadow:none;max-width:min(88%,680px)}.reading-practice-current-speech.speaker-b .reading-practice-speech-bubble{box-shadow:none}.reading-practice-speech-flip-button:disabled{cursor:default;opacity:.38;transform:none}.reading-practice-speech-flip-row{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:44px minmax(0,1fr) 44px;width:min(100%,760px)}.reading-practice-speech-flip-row .reading-practice-speech-bubble{box-sizing:border-box;cursor:pointer;max-width:none;min-width:0;text-align:center;width:100%}.reading-practice-speech-flip-button{align-items:center;background:#0000;border:0;border-radius:50%;color:var(--color-success);cursor:pointer;display:inline-flex;height:44px;justify-content:center;padding:0;touch-action:manipulation;transition:color .14s ease,background .14s ease,transform .14s ease;width:44px}.reading-practice-current-speech.speaker-b .reading-practice-speech-flip-button{color:var(--color-primary)}.reading-practice-speech-flip-button:focus-visible,.reading-practice-speech-flip-button:hover{background:var(--color-success-soft);outline:2px solid #0000;transform:scale(1.06)}.reading-practice-current-speech.speaker-b .reading-practice-speech-flip-button:focus-visible,.reading-practice-current-speech.speaker-b .reading-practice-speech-flip-button:hover{background:var(--color-primary-soft)}.reading-practice-section-current.reading-repeat-pop{animation:readingRepeatBoxMotion .36s cubic-bezier(.18,1.22,.32,1) both}.reading-practice-section-current.reading-practice-current-speech.speaker-b.reading-repeat-pop{animation-name:readingRepeatBoxMotion}.reading-practice-drawing-frame{min-height:72px;position:relative}.reading-practice-drawing-frame.has-drawing-cue{padding-top:22px}.reading-drawing-cue{color:var(--color-success);display:inline-flex;height:16px;left:0;pointer-events:none;position:absolute;top:0;width:16px;z-index:4}.reading-practice-drawing-canvas{cursor:crosshair;height:100%;inset:0;position:absolute;touch-action:none;width:100%;z-index:3}.reading-nav-button{min-height:44px;padding:0;width:44px}.reading-nav-button,.reading-practice-session-status{align-items:center;background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:6px;color:var(--color-text);cursor:pointer;display:inline-flex;font-weight:900;justify-content:center}.reading-practice-session-status{font-size:.82em;isolation:isolate;line-height:1;margin-left:8px;min-height:28px;min-width:62px;overflow:hidden;padding:2px 9px;position:relative;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;vertical-align:initial}.reading-practice-session-tools{align-items:center;display:inline-flex;gap:6px;margin-left:8px;position:relative;vertical-align:initial;z-index:4}.reading-practice-session-tools .reading-practice-session-status{margin-left:0}.reading-practice-current-speech .reading-practice-session-tools{display:flex;margin-top:8px;width:fit-content}.reading-practice-current-speech.speaker-b .reading-practice-session-tools{margin-left:auto;margin-right:8px}.reading-practice-session-tools .reading-practice-continue-cue{margin-left:0}.reading-browser-tts-button{align-items:center;background:var(--color-surface-soft);border:1px solid var(--color-primary);border-radius:50%;color:var(--color-primary);cursor:pointer;display:inline-flex;flex:0 0 30px;height:30px;justify-content:center;padding:0;touch-action:manipulation;transition:transform .16s ease,background .16s ease,box-shadow .16s ease;width:30px}.reading-browser-tts-button:focus-visible,.reading-browser-tts-button:hover{background:var(--color-surface-soft);box-shadow:none;outline:none;transform:scale(1.06)}.reading-browser-tts-button.is-speaking{animation:readingBrowserTtsPulse 1.1s ease-in-out infinite;border-color:var(--color-success);box-shadow:none;color:var(--color-success)}.reading-browser-tts-button.is-locked{background:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted)}.reading-practice-session-status.auto-repeat-charging{border-color:var(--color-success);box-shadow:none;transform:scale(1.04)}.reading-practice-session-status.auto-repeat-charging:after{animation:readingAutoRepeatCharge 1s linear forwards;background:color-mix(in srgb,var(--color-success) 22%,#0000);content:"";inset:0;position:absolute;transform-origin:left center;z-index:-1}.reading-practice-session-status.auto-repeat-burst{animation:readingAutoRepeatBurst .76s cubic-bezier(.16,1.4,.32,1) both}.reading-practice-continue-cue{align-items:center;background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:999px;color:var(--color-text);display:inline-flex;font-size:.72em;font-weight:850;justify-content:center;line-height:1;margin-left:8px;padding:3px 9px}.reading-practice-session-status.repeat-burst{animation:none}.reading-practice-current-speech.speaker-b .reading-practice-session-status.repeat-burst{animation-name:none}.reading-repeat-score-pop{animation:readingRepeatScoreFloat .72s cubic-bezier(.16,1.22,.32,1) both;animation:readingRepeatScoreFloat var(--reading-repeat-feedback-duration,.72s) cubic-bezier(.16,1.22,.32,1) both;background:var(--color-success-soft);border-radius:999px;box-shadow:none;color:var(--color-success);font-size:15px;font-weight:950;line-height:1;padding:4px 9px;pointer-events:none;position:absolute;right:16px;top:50%;z-index:2}.reading-practice-current-speech.speaker-b .reading-repeat-score-pop{background:var(--color-primary-soft);box-shadow:none;color:var(--color-primary)}.reading-repeat-bonus-pop{align-items:center;animation:readingRepeatBonusFloat .72s ease-out both;animation:readingRepeatBonusFloat var(--reading-repeat-feedback-duration,.72s) ease-out both;background:var(--color-success-soft);border:1px solid var(--color-success);border-radius:6px;bottom:48px;box-shadow:none;box-sizing:border-box;color:var(--color-success);display:inline-flex;flex-wrap:wrap;font-size:12px;font-weight:900;gap:7px;left:8px;line-height:1.3;max-width:calc(100% - 16px);overflow-wrap:anywhere;padding:6px 9px;pointer-events:none;position:absolute;white-space:normal;width:max-content;z-index:5}.reading-repeat-bonus-pop>span{max-width:100%;min-width:0}.reading-practice-current-speech.speaker-b .reading-repeat-bonus-pop{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}@keyframes readingRepeatBoxMotion{0%{transform:translateY(0) scale(1)}38%{transform:translateY(-3px) scale(1.012)}to{transform:translateY(0) scale(1)}}@keyframes readingRepeatScoreFloat{0%{opacity:0;transform:translate3d(0,-40%,0) scale(.72)}28%{opacity:1;transform:translate3d(0,-75%,0) scale(1.08)}to{opacity:0;transform:translate3d(0,-150%,0) scale(1)}}@keyframes readingRepeatBonusFloat{0%{opacity:0;transform:translateY(5px) scale(.88)}24%,72%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-7px) scale(1)}}@keyframes readingBrowserTtsPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes readingAutoRepeatCharge{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes readingAutoRepeatBurst{0%{filter:none;transform:scale(1)}38%{box-shadow:none;filter:none;transform:scale(1.14)}to{filter:none;transform:scale(1)}}@media (max-width:640px){.reading-practice-top{gap:8px;grid-template-columns:40px minmax(0,1fr) 40px;padding:10px 12px 8px}.reading-practice-title{font-size:17px}.reading-practice-content{font-size:17px;padding:14px}.reading-nav-button{min-height:40px;width:40px}.reading-practice-speech-flip-row{gap:4px;grid-template-columns:40px minmax(0,1fr) 40px}.reading-practice-speech-flip-button{height:40px;width:40px}}.reading-browser-tts-button:focus-visible,.reading-practice-speech-flip-button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.reading-practice-current-speech.speech-side-question .reading-practice-speech-bubble{--reading-speech-bubble-bg:var(--learning-question-bg);border-color:var(--learning-question-border)}.reading-practice-current-speech.speech-side-answer .reading-practice-speech-bubble{--reading-speech-bubble-bg:var(--learning-answer-bg);border-color:var(--learning-answer-border)}.reading-practice-section-current:not(.reading-practice-current-speech){background:var(--color-primary-soft);border-left-color:var(--color-primary)}.reading-practice-section-current:not(.reading-practice-current-speech) .reading-practice-drawing-frame{background-image:radial-gradient(circle,var(--learning-grid-line) 1px,#0000 1px);background-size:var(--learning-grid-size)}.flashcard-map{--map-card-gap:20px;color:var(--color-text);margin:0 auto;max-width:900px;padding:0;width:100%}.flashcard-map-item.is-public-note-card{background:var(--color-surface);border-color:var(--color-line)}.flashcard-map-item.is-public-note-card:after,.flashcard-map-item.is-public-note-card:before{display:none}.flashcard-map-context{color:var(--color-muted);display:block;font-size:12px;line-height:1.5;margin:6px 0;overflow-wrap:anywhere;white-space:pre-wrap}.flashcard-map-search-bar{align-items:center;background-color:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 auto 16px;max-width:none;padding:10px 14px}.flashcard-map-results{align-items:center;color:var(--color-muted);display:flex;flex-wrap:wrap;font-size:13px;gap:8px;justify-content:space-between;min-height:44px}.flashcard-map-results button{background:#0000;border:1px solid var(--color-line);border-radius:6px;color:var(--color-cream);cursor:pointer;font:inherit;min-height:44px;padding:6px 12px}.flashcard-map-results button:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px}.flashcard-map-search{flex:1 1 380px;gap:10px}.flashcard-map-search,.map-search-field{align-items:center;display:flex;min-width:0}.map-search-field{background-color:var(--color-bg);border:1px solid var(--color-line);border-radius:6px;color:var(--color-muted);flex:1 1;gap:8px;min-height:44px;padding:0 11px}.map-search-field:focus-within{border-color:var(--color-gold);box-shadow:0 0 0 3px var(--color-primary-soft)}.map-search-field input{background:#0000;border:0;color:var(--color-text);font:inherit;min-width:0;outline:0;padding:0;width:100%}.map-search-field input::placeholder{color:var(--color-muted)}.flashcard-map-legend{background:#0000;border:0;border-radius:0;margin:var(--map-card-gap) auto 20px auto;max-width:none;padding:0}.legend-title{color:var(--color-cream);font-size:14px;font-weight:600;margin-bottom:10px}.legend-items{display:flex;flex-wrap:wrap;gap:20px}.legend-item{align-items:center;display:flex;gap:8px}.legend-indicator{border:2px solid;border-radius:4px;height:20px;width:20px}.legend-indicator.practice-none{background-color:#dc354526;border-color:#dc3545}.legend-indicator.practice-low{background-color:#ffc10726;border-color:#ffc107}.legend-indicator.practice-medium{background-color:#17a2b826;border-color:#17a2b8}.legend-indicator.practice-high{background-color:#28a74526;border-color:#28a745}.legend-indicator.practice-very-high{background-color:#6f42c126;border-color:#6f42c1}.legend-label{color:var(--color-muted);font-size:13px}.flashcard-map-grid{grid-gap:var(--map-card-gap);display:grid;gap:var(--map-card-gap);grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin:0 auto;max-width:none}.flashcard-map-item{border:2px solid var(--color-line);border-radius:12px;box-shadow:var(--shadow-warm);container-type:inline-size;cursor:pointer;display:flex;flex-direction:column;min-height:150px;padding:20px;position:relative;transition:all .3s ease}.flashcard-map-item,.flashcard-map-item.flipped{background-color:var(--color-surface)}.flashcard-map-item.flipped .flashcard-map-text{color:var(--color-muted);font-style:italic}.flashcard-map-item.reading-card .flashcard-map-text{align-items:flex-start;justify-content:flex-start;text-align:left}.flashcard-map-item.practice-none{background-color:color-mix(in srgb,var(--color-danger-soft) 80%,#0000);border-color:#dc3545}.flashcard-map-item.practice-low{background-color:color-mix(in srgb,var(--color-warning-soft) 80%,#0000);border-color:#ffc107}.flashcard-map-item.practice-medium{border-color:#17a2b8}.flashcard-map-item.practice-high,.flashcard-map-item.practice-medium{background-color:color-mix(in srgb,var(--color-success-soft) 80%,#0000)}.flashcard-map-item.practice-high{border-color:#28a745}.flashcard-map-item.practice-very-high{background-color:color-mix(in srgb,var(--color-primary-soft) 80%,#0000);border-color:#6f42c1}.flashcard-map-level-badge{background:#0000;border:0;border-radius:4px;color:var(--color-primary);flex-shrink:0;font-size:11px;font-weight:900;line-height:1;margin-left:0;padding:0;pointer-events:none;text-align:center}.flashcard-map-item:hover{box-shadow:var(--shadow-warm);transform:translateY(-4px)}.flashcard-map-content{background:#0000;border:0;border-radius:6px;color:inherit;cursor:pointer;display:flex;flex:1 1;flex-direction:column;font:inherit;gap:15px;min-width:0;padding:0;text-align:inherit;width:100%}.flashcard-map-content:focus-visible,.flashcard-map-edit-btn:focus-visible,.flashcard-map-reading-body:focus-visible,.flashcard-map-reading-modal .modal-close:focus-visible{outline:2px solid var(--color-gold);outline-offset:4px}.flashcard-map-text{word-wrap:break-word;align-items:center;color:var(--color-cream);display:flex;flex:1 1;font-size:18px;font-weight:500;justify-content:center;line-height:1.4;max-height:100px;overflow-wrap:break-word;overflow-y:auto;padding:5px;text-align:center;white-space:pre-wrap}.flashcard-map-text.small-font{font-size:14px;line-height:1.3}.flashcard-map-text::-webkit-scrollbar{width:6px}.flashcard-map-text::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.flashcard-map-text::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.flashcard-map-text::-webkit-scrollbar-thumb:hover{background:#0000004d}.flashcard-map-actions{margin-left:auto;position:relative}.flashcard-map-actions:has([aria-expanded=true]){z-index:5}.flashcard-map-actions-menu{background:var(--color-surface);border:1px solid var(--color-line);border-radius:10px;bottom:100%;box-shadow:0 6px 20px #0002;min-width:150px;padding:5px;position:absolute;right:0}.flashcard-map-actions-menu button{align-items:center;background:#0000;border:0;border-radius:6px;color:var(--color-text);cursor:pointer;display:flex;font:inherit;gap:8px;min-height:42px;padding:8px;text-align:left;white-space:nowrap;width:100%}.flashcard-map-actions-menu button:focus-visible,.flashcard-map-actions-menu button:hover{background:var(--color-primary-soft)}.flashcard-map-edit-btn{background:none;border:none;border-radius:4px;color:var(--color-gold);cursor:pointer;display:grid;flex:0 0 44px;font-size:18px;height:44px;line-height:1;margin-block:-6px;opacity:.92;padding:4px;place-items:center;transition:all .2s ease;width:44px;z-index:10}.flashcard-map-edit-btn:hover{background-color:var(--color-primary-soft);opacity:1;transform:scale(1.1)}.flashcard-map-edit-btn:active{transform:scale(.95)}.flashcard-map-stats{border-top:1px solid var(--color-line);display:flex;flex-direction:column;gap:5px;margin-top:15px;padding-top:10px}.flashcard-map-stat-line{align-items:center;color:var(--color-muted);display:flex;flex-wrap:nowrap;font-size:14px;font-weight:700;gap:6px;justify-content:center;text-align:center;white-space:nowrap}.flashcard-map-type-line{color:var(--color-success);font-size:12px;font-weight:900;text-align:center;text-transform:uppercase}@container (max-width: 220px){.flashcard-map-stat-line{font-size:12px;gap:2px}.flashcard-map-stat-line .grade-label{font-size:11px}.flashcard-map-stat-line .practice-icon{font-size:14px}}.flashcard-map-reading-modal-overlay{z-index:1000}.flashcard-map-reading-modal{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);display:grid;grid-template-rows:auto minmax(0,1fr);max-height:min(760px,calc(100vh - 48px));overflow:hidden;width:min(760px,calc(100vw - 32px))}.flashcard-map-reading-modal .modal-header{border-bottom:1px solid var(--color-line)}.flashcard-map-reading-modal .modal-header h2{color:var(--color-cream);font-size:22px;margin:0}.flashcard-map-reading-body{font-size:17px;line-height:1.7;overflow-y:auto;padding:22px;white-space:pre-wrap}.flashcard-map-dialog-preview{display:flex;flex-direction:column;gap:12px;white-space:normal}.flashcard-map-dialog-row{display:flex;justify-content:flex-start}.flashcard-map-dialog-row.speaker-b{justify-content:flex-end}.flashcard-map-dialog-situation-row{grid-gap:10px;align-items:center;color:var(--color-muted);display:grid;font-size:13px;font-weight:900;gap:10px;grid-template-columns:minmax(24px,1fr) auto minmax(24px,1fr);margin:4px auto;max-width:min(76%,560px);text-align:center}.flashcard-map-dialog-situation-line{background:var(--color-line);height:1px}.flashcard-map-dialog-situation-line:last-child{background:var(--color-line)}.flashcard-map-dialog-story-row{color:var(--color-muted);line-height:1.65;margin:2px auto;max-width:min(86%,620px);padding:10px 14px}.flashcard-map-dialog-bubble,.flashcard-map-dialog-story-row{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:8px;white-space:pre-wrap}.flashcard-map-dialog-bubble{color:var(--color-cream);max-width:min(78%,560px);padding:11px 14px}.flashcard-map-dialog-row.speaker-b .flashcard-map-dialog-bubble{background:var(--color-success-soft);border-color:#2ec4b652}.practice-icon{font-size:16px}.flashcard-map-stat-value{color:var(--color-cream);font-weight:800}.flashcard-map-stat-separator{color:var(--color-muted)}.grade-label{color:var(--color-gold);font-size:13px;font-weight:900}.flashcard-map-evaluation{align-items:center;color:var(--color-gold);display:flex;font-size:14px;font-weight:600;gap:5px;justify-content:center;text-align:center}.grade-icon{font-size:16px}.flashcard-map-empty{align-items:center;display:flex;justify-content:center;min-height:300px;padding:40px}.flashcard-map-empty p{color:var(--color-muted);font-size:18px;text-align:center}@media (max-width:768px){.flashcard-map-results{width:100%}.legend-items{gap:12px}.legend-item{font-size:12px}.legend-indicator{height:16px;width:16px}.flashcard-map-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.flashcard-map{--map-card-gap:15px}.flashcard-map-item{min-height:120px;padding:15px}.flashcard-map-text{font-size:16px}.flashcard-map-text.small-font{font-size:13px}}@media (max-width:480px){.flashcard-map-search{align-items:stretch;flex-direction:column;gap:6px}.flashcard-map-grid{grid-template-columns:1fr}.legend-items{flex-direction:column;gap:8px}}.flashcard-map-completion-stamp{height:76px;object-fit:contain;opacity:.8;pointer-events:none;position:absolute;right:-8px;top:-16px;width:76px;z-index:1}.map-note-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;min-width:0}.map-note-actions .map-note-action{align-items:center;background:#2a201a;background:var(--color-surface,#2a201a);border:1px solid #67533b;border:1px solid var(--color-line,#67533b);border-radius:8px;border-radius:var(--radius-control,8px);color:#fff7e6;color:var(--color-cream,#fff7e6);cursor:pointer;display:inline-flex;font:inherit;font-size:.85rem;font-weight:650;gap:7px;justify-content:center;line-height:1.4;min-height:44px;padding:10px 13px}.map-note-actions .map-note-action-primary{background:#ffd66b;background:var(--color-gold,#ffd66b);border-color:#0000;color:var(--color-on-primary)}.map-note-actions .map-note-action-more{padding:10px;width:44px}.map-note-actions button:focus-visible{outline:2px solid #ffd66b;outline:2px solid var(--color-gold,#ffd66b);outline-offset:3px}.map-note-actions button:hover:not(:disabled){filter:brightness(1.12)}.map-note-actions button:disabled{cursor:default;opacity:.55}.map-note-actions svg{flex-shrink:0}.map-note-more{position:relative}.map-note-menu{background:#2a201a;background:var(--color-surface,#2a201a);border:1px solid #67533b;border:1px solid var(--color-line,#67533b);border-radius:8px;box-shadow:var(--shadow-warm);min-width:160px;padding:5px;position:absolute;right:0;top:calc(100% + 6px);width:max-content;z-index:20}.map-note-menu button{align-items:center;background:#0000;border:0;border-radius:4px;color:var(--color-text);cursor:pointer;display:flex;font:inherit;font-size:.9rem;gap:9px;min-height:44px;padding:10px 12px;width:100%}.map-note-menu button.map-note-menu-state.is-enabled{color:var(--color-success)}.map-note-menu button.map-note-menu-state.is-disabled{color:var(--color-muted)}.map-note-menu button.is-danger{color:var(--color-danger)}@media (max-width:600px){.map-note-actions{grid-gap:6px;display:grid;gap:6px;grid-template-columns:minmax(0,1fr) 44px;width:100%}.map-note-actions .map-note-action{padding-inline:10px}}.learning-session-header{color:var(--color-text);flex-shrink:0;padding:8px 0 4px;width:100%}.learning-session-heading{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:minmax(48px,1fr) minmax(0,2fr) minmax(48px,1fr)}.learning-exit-button{align-items:center;background:color-mix(in srgb,var(--color-surface) 36%,#0000);border:1px solid color-mix(in srgb,var(--color-line) 72%,#0000);border-radius:50%;color:var(--color-text);cursor:pointer;display:inline-flex;flex:0 0 48px;height:48px;justify-content:center;justify-self:start;min-height:48px;padding:0;position:relative;width:48px}.learning-exit-button svg{flex-shrink:0}.learning-exit-label{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.learning-exit-button:hover:not(:disabled){background:var(--color-surface-soft)}.learning-exit-button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.learning-exit-button:disabled{cursor:default;opacity:.5}.learning-session-title{grid-column:2;min-width:0;overflow-wrap:anywhere;text-align:center}.learning-session-header .learning-session-title .page-title-fx{text-align:center}.learning-session-title h1,.learning-session-title h2{color:inherit;font-size:clamp(16px,3.6vw,22px);line-height:1.3;margin:0}.learning-session-tools{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:minmax(44px,1fr) auto minmax(44px,1fr);margin-top:6px;min-height:44px}.learning-session-tools-left,.learning-session-tools-right{align-items:center;display:flex;gap:6px;min-width:0;position:relative}.learning-session-tools-right{justify-content:flex-end}.learning-import-button{align-items:center;background:#0000;border:0;color:var(--color-success);cursor:pointer;display:inline-flex;flex-shrink:0;height:44px;justify-content:center;padding:0;width:44px}.learning-import-button:focus-visible{border-radius:50%;outline:2px solid var(--color-focus);outline-offset:2px}.learning-import-button:disabled{cursor:default;opacity:.5}.learning-session-clock{font-feature-settings:"tnum";align-items:center;color:var(--color-primary);display:flex;font-size:clamp(13px,3.2vw,18px);font-variant-numeric:tabular-nums;gap:5px;justify-content:center;line-height:1.3;white-space:nowrap}.learning-session-tools .card-listening-button{height:44px;min-height:44px;min-width:44px;width:44px}:is(.writing-practice-page,.is-review-mode) .learning-session-header .learning-session-tools .card-listening-control .card-listening-button{background:#0000;border:0;box-shadow:none}.learning-session-tools .card-listening-error{background:var(--color-danger-soft);border-radius:6px;color:var(--color-danger);font-size:12px;left:0;line-height:1.4;max-width:calc(100vw - 40px);overflow-wrap:anywhere;padding:6px 8px;position:absolute;top:calc(100% + 4px);width:220px;z-index:12}.learning-session-tools .card-listening-progress{background:var(--color-surface);left:0;min-width:200px;position:absolute;top:100%;z-index:10}@media (max-width:380px){.learning-session-heading,.learning-session-tools{gap:4px}}.review-level-up-overlay{align-items:center;background:#000000a6;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:2200}.review-level-up-dialog{background:#20242c;background:var(--color-surface,#20242c);border-radius:16px;box-shadow:0 16px 60px #0000004d;color:#fff;color:var(--color-text,#fff);max-height:90dvh;overflow-y:auto;padding:24px;width:min(540px,100%)}.review-destination-tabs,.review-level-up-dialog footer,.review-level-up-dialog h2,.review-level-up-dialog header{align-items:center;display:flex;gap:12px}.review-level-up-dialog header{justify-content:space-between}.review-level-up-dialog h2{font-size:1.2rem;margin:0}.review-level-up-dialog label{grid-gap:8px;display:grid;gap:8px;margin-block:16px}.review-level-up-dialog input,.review-level-up-dialog select{background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;box-sizing:border-box;color:var(--color-text);font:inherit;padding:12px;width:100%}.review-level-up-dialog select option{background:var(--color-bg);color:var(--color-text)}.review-level-up-dialog button{background:#0000;border:1px solid #777;border:1px solid var(--color-border,#777);border-radius:8px;color:inherit;cursor:pointer;font:inherit;padding:10px 14px}.review-level-up-dialog button:disabled{cursor:default;opacity:.5}.review-level-up-dialog button[aria-pressed=true],.review-level-up-dialog button[type=submit]{background:#3268c8;background:var(--color-primary,#3268c8);color:#fff}.review-level-up-dialog .review-sentence{display:block;margin-block:8px;text-align:left;width:100%}.review-level-up-dialog :focus-visible{outline:3px solid #739fff;outline:3px solid var(--color-primary,#739fff);outline-offset:3px}.score-bonus-stack{align-items:flex-end;animation:scoreBonusFadeOut .72s ease-out both;animation:scoreBonusFadeOut var(--score-bonus-feedback-duration,.72s) ease-out both;display:flex;flex-direction:column;gap:5px;pointer-events:none}@keyframes scoreBonusFadeOut{0%,72%{opacity:1}to{opacity:0}}.score-bonus-chip{align-items:center;animation:scoreBonusPop .52s cubic-bezier(.2,1.4,.36,1) backwards;backface-visibility:hidden;background:var(--color-primary-soft);border:1px solid var(--color-primary);border-radius:999px;box-shadow:none;color:var(--color-primary);display:inline-flex;font-size:12px;font-weight:900;gap:7px;line-height:1;min-height:28px;padding:5px 10px;white-space:nowrap}.score-bonus-chip:nth-child(2){animation-delay:70ms}.score-bonus-chip-auto-repeat{animation:autoRepeatScorePop .98s cubic-bezier(.16,1.34,.28,1) backwards;background:var(--color-success-soft);border-color:var(--color-success);box-shadow:none;color:var(--color-success);font-size:13px;min-height:36px;padding:8px 14px}.score-bonus-chip-auto-repeat .score-bonus-points{color:var(--color-success);font-size:18px}.score-bonus-label{letter-spacing:.03em;text-transform:uppercase}.score-bonus-points{color:var(--color-primary);font-size:14px;text-shadow:none}@keyframes scoreBonusPop{0%{opacity:0;transform:translate3d(12px,-8px,0) scale(.78)}52%{opacity:1;transform:translate3d(0,2px,0) scale(1.08)}to{opacity:1;transform:translateZ(0) scale(1)}}@media (prefers-reduced-motion:reduce){.score-bonus-chip,.score-bonus-stack{animation:none}}.flashcard-container{align-items:center;display:flex;flex-direction:column;gap:12px;padding:20px}.flashcard-practice-count{background-color:var(--color-surface-soft);border-radius:20px;box-shadow:none;color:var(--color-text);font-size:15px;font-weight:600;padding:6px 16px}.flashcard{cursor:pointer;height:320px;perspective:1200px;position:relative;touch-action:none;-webkit-user-select:none;user-select:none;width:450px}.flashcard.is-interaction-disabled{pointer-events:none}.flashcard-inner{height:100%;position:relative;transform:translateZ(0) rotateY(0deg);transform:translate3d(var(--flashcard-drag-x,0),0,0) rotateY(var(--flashcard-rotation,0deg));transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .24s cubic-bezier(.22,1,.36,1);width:100%;will-change:transform}.flashcard.flashcard-touch-dragging .flashcard-inner{transition-duration:0s}.flashcard-inner.is-flipping{animation-duration:.7s;animation-fill-mode:both;animation-name:flashcardHorizontalFlip;animation-timing-function:cubic-bezier(.4,0,.2,1);transition:none}.flashcard-back,.flashcard-first-encounter,.flashcard-front{align-items:center;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:3px solid var(--color-line);border-radius:16px;box-shadow:none;display:flex;flex-direction:column;height:100%;justify-content:center;left:0;padding:35px;position:absolute;top:0;transform:translateZ(0);-webkit-transform:translateZ(0);transition:box-shadow .3s ease,border-color .3s ease,opacity .12s ease;width:100%}.flashcard-first-encounter{--practice-card-tail-color:var(--color-surface);background:var(--color-surface);border-color:var(--color-success);overflow:hidden;padding:48px 44px 34px}.flashcard-corner-caption-first-encounter{background:var(--color-primary-soft);border:1px solid var(--color-success);color:var(--color-primary)}.flashcard-first-encounter-content{grid-gap:10px;display:grid;gap:10px;grid-template-rows:minmax(0,1fr) minmax(0,1fr);height:100%;min-height:0;position:relative;width:100%;z-index:2}.flashcard-first-encounter-side{grid-gap:12px;align-items:center;background:var(--learning-question-bg);border:1px solid var(--color-line);border-color:var(--learning-question-border);border-radius:8px;color:var(--color-text);display:grid;gap:12px;grid-template-columns:34px minmax(0,1fr);min-height:0;padding:9px 14px}.flashcard-first-encounter-side.is-answer{background:var(--learning-answer-bg);border-color:var(--learning-answer-border);color:var(--color-text)}.flashcard-first-encounter-side-label{align-items:center;background:var(--color-primary);border-radius:50%;color:var(--color-on-primary);display:inline-flex;font-size:14px;font-weight:900;height:32px;justify-content:center;width:32px}.flashcard-first-encounter-side.is-answer .flashcard-first-encounter-side-label{background:var(--color-success);color:var(--color-on-success)}.flashcard-first-encounter-text{font-size:21px;line-height:1.35;max-height:100%;min-width:0;overflow-wrap:anywhere;overflow-y:auto;text-align:center;white-space:pre-wrap}.flashcard-first-encounter-side.small-font .flashcard-first-encounter-text{font-size:17px}.flashcard-first-encounter-side.is-answer .flashcard-side-memo-back{border-top-color:var(--color-line)}.flashcard-note-cover{background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:inherit;inset:0;opacity:.14;pointer-events:none;position:absolute;z-index:0}.flashcard-note-cover-back,.flashcard-note-cover-front{filter:none}.flashcard-inner.show-back .flashcard-back,.flashcard-inner.show-front .flashcard-front{opacity:1;pointer-events:auto;visibility:visible}.flashcard-inner.show-back .flashcard-front,.flashcard-inner.show-front .flashcard-back{opacity:0;pointer-events:none;visibility:hidden}.flashcard-inner.is-flipping .flashcard-back,.flashcard-inner.is-flipping .flashcard-front{opacity:1;pointer-events:none;visibility:visible}.flashcard-corner-caption{border-radius:999px;font-size:12px;font-weight:800;left:16px;letter-spacing:.04em;line-height:1;padding:6px 10px;pointer-events:none;position:absolute;text-transform:uppercase;top:16px;z-index:9}.flashcard-corner-caption-front{background:var(--color-primary-soft);color:var(--color-primary)}.flashcard-corner-caption-quick-test{align-items:center;background:var(--color-warning-soft);border:1px solid var(--color-warning);box-shadow:none;color:var(--color-warning);display:inline-flex;gap:8px;padding:7px 11px}.flashcard-corner-caption-quick-test strong{animation:quickTestCaptionPulse .9s ease-in-out infinite;color:var(--color-warning);font-size:13px;min-width:34px;text-align:center}.flashcard-corner-caption-quick-test.is-passed{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success)}.flashcard-corner-caption-quick-test.is-passed strong{animation:none;color:var(--color-success)}.flashcard-corner-caption-quick-test.is-expired{background:var(--color-surface-soft);border-color:var(--color-line);box-shadow:none;color:var(--color-muted)}.flashcard-corner-caption-quick-test.is-expired strong{animation:none;color:var(--color-muted);min-width:74px}.flashcard-corner-caption-back{background:var(--color-primary-soft);color:var(--color-primary)}@keyframes quickTestCaptionPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.flashcard-level-badge{border:1px solid var(--color-danger);border-radius:999px;font-size:13px;font-weight:900;left:16px;line-height:1;min-width:42px;padding:5px 9px;pointer-events:none;position:absolute;text-align:center;top:52px;z-index:9}.flashcard-level-badge,.flashcard-level-badge-back{background:var(--color-danger-soft);box-shadow:none;color:var(--color-danger)}.flashcard-level-badge-back{border-color:var(--color-danger)}.flashcard-size-badge{background:var(--color-surface);border:2px solid var(--color-primary);border-radius:50%;bottom:16px;color:var(--color-primary);display:inline-grid;font-size:14px;font-weight:950;height:32px;line-height:1;place-items:center;pointer-events:none;position:absolute;right:16px;width:32px;z-index:10}.flashcard-type-simple .flashcard-cleared-stamp{right:64px}.flashcard-cleared-stamp{bottom:22px;filter:none;height:auto;max-width:42%;opacity:.88;pointer-events:none;position:absolute;right:24px;transform:rotate(-10deg);width:148px;z-index:8}.flashcard-score-hud{align-items:flex-end;display:flex;flex-direction:column;gap:8px;pointer-events:none}.flashcard-score-hud,.session-count-badge{position:absolute;right:12px;top:12px;z-index:10}.session-count-badge{appearance:none;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:0;border-radius:20px;box-shadow:none;font-family:inherit;font-size:20px;font-weight:700;isolation:isolate;line-height:inherit;padding:8px 16px;pointer-events:auto;transition:all .3s ease}.flashcard-score-hud .session-count-badge{position:relative;right:auto;top:auto}.session-count-badge.count-0{background-color:var(--color-surface-soft);color:var(--color-muted)}.session-count-badge.count-1-4{background-color:var(--color-warning-soft);color:var(--color-warning)}.session-count-badge.count-5-9{background-color:#ffcc80;color:#6e3200}.session-count-badge.count-10-14{background-color:#ed870b;color:#261400}.session-count-badge.count-15-19{background-color:#c54612;color:#fff}.session-count-badge.count-20-plus{animation:pulse 2s infinite;background-color:var(--color-danger);color:var(--color-on-danger)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes badgeFlash{0%{box-shadow:none;transform:scale(1)}50%{box-shadow:none;transform:scale(1.25)}to{box-shadow:none;transform:scale(1)}}.session-count-badge.badge-flash{animation:badgeFlash .4s ease-out}.session-count-badge.auto-repeat-charging{box-shadow:none;overflow:hidden;transform:scale(1.08)}.session-count-badge.auto-repeat-charging:after{animation:autoRepeatCharge 1s linear forwards;background:color-mix(in srgb,var(--color-success) 22%,#0000);content:"";inset:0;position:absolute;transform-origin:left center;z-index:-1}.session-count-badge.auto-repeat-burst{animation:autoRepeatBurst .76s cubic-bezier(.16,1.4,.32,1) both}.session-count-badge.auto-repeat-idle-hint{animation:autoRepeatIdleHint 1.12s ease-in-out infinite;box-shadow:none;transform-origin:center}.flashcard.flashcard-auto-repeat-bursting .flashcard-back,.flashcard.flashcard-auto-repeat-bursting .flashcard-front{animation:autoRepeatCardPulse .98s cubic-bezier(.16,1.2,.3,1) both}@keyframes autoRepeatCharge{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes autoRepeatScorePop{0%{opacity:0;transform:translate3d(20px,-12px,0) scale(.6)}34%{opacity:1;transform:translate3d(-4px,2px,0) scale(1.18)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes autoRepeatBurst{0%{filter:none;transform:scale(1)}36%{box-shadow:none;filter:none;transform:scale(1.34)}to{filter:none;transform:scale(1)}}@keyframes autoRepeatIdleHint{0%,to{filter:none;transform:translateX(0) scale(1)}12%{transform:translateX(-2px) scale(1.13)}24%{transform:translateX(2px) scale(1.17)}36%{transform:translateX(-2px) scale(1.15)}48%{filter:none;transform:translateX(2px) scale(1.12)}62%{transform:translateX(0) scale(1.08)}}@keyframes autoRepeatCardPulse{0%{border-color:var(--color-line);box-shadow:none;filter:none}36%{border-color:var(--color-success);box-shadow:none;filter:none}to{border-color:var(--color-line);box-shadow:none;filter:none}}.gesture-hints{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:5}.gesture-arrow{appearance:none;background:#0000;border:0;color:var(--color-primary);cursor:pointer;font-family:inherit;font-size:28px;font-weight:900;line-height:inherit;opacity:1;padding:20px;pointer-events:auto;position:absolute;text-shadow:none;transition:color .2s ease,opacity .2s ease,transform .2s ease,background-color .2s ease;-webkit-user-select:none;user-select:none}.flashcard .gesture-arrow:focus-visible,.flashcard .session-count-badge:focus-visible{box-shadow:none;outline:3px solid var(--color-focus);outline-offset:2px}.flashcard .gesture-arrow:disabled,.flashcard .session-count-badge:disabled{cursor:not-allowed}.gesture-arrow-with-label{align-items:center;display:inline-flex;flex-direction:column;gap:2px;justify-content:center;line-height:1;min-height:58px;min-width:58px}.gesture-arrow-symbol{display:block;line-height:1}.gesture-arrow-symbol svg{display:block}.gesture-arrow-label{display:block;font-size:11px;font-style:italic;font-weight:750;letter-spacing:0;line-height:1.05;opacity:.86;text-shadow:none;text-transform:none}.flashcard.show-back .gesture-arrow-label,.gesture-arrow-label{color:var(--color-muted)}.gesture-arrow-answer-ok{align-items:center;border-radius:999px;box-shadow:none;display:inline-flex;font-size:24px;font-weight:900;height:46px;justify-content:center;width:46px}.gesture-arrow-with-label.gesture-arrow-answer-ok{height:58px;padding:0;width:58px}.gesture-arrow-with-label.gesture-arrow-answer-ok .gesture-arrow-label{color:var(--color-on-success);font-size:10px;font-style:normal;opacity:1}.gesture-arrow-answer-ok{background:var(--color-success);color:var(--color-on-success);text-shadow:none}.gesture-arrow-message{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:999px;box-shadow:none;display:inline-flex;font-size:22px;height:48px;justify-content:center;padding:0;width:48px}.flashcard.show-back .gesture-arrow,.gesture-arrow-message{color:var(--color-primary);text-shadow:none}.gesture-arrow:hover{opacity:1;transform:scale(1.2)}.flashcard.show-back .gesture-arrow:hover,.gesture-arrow:hover{color:var(--color-primary)}.flashcard.show-back .gesture-arrow-answer-ok:hover{color:var(--color-on-success)}.gesture-arrow:active{transform:scale(1.1)}.flashcard.show-back .gesture-arrow-disabled,.gesture-arrow-disabled{color:var(--color-muted);cursor:not-allowed;opacity:.38;pointer-events:auto}.flashcard.show-back .gesture-arrow-disabled:hover,.gesture-arrow-disabled:hover{background-color:initial;color:var(--color-muted)}.flashcard:hover .gesture-arrow{opacity:.9}.arrow-left{left:0;top:50%;transform:translateY(-50%)}.arrow-left:hover{background-color:initial;transform:translateY(-50%) scale(1.2)}.arrow-left.gesture-arrow-message:hover{background:var(--color-primary-soft);color:var(--color-primary);transform:translateY(-50%) scale(1.08)}.arrow-left:active{background-color:initial;transform:translateY(-50%) scale(1.1)}.arrow-left:focus,.arrow-left:focus-visible{background:#0000}.arrow-left.gesture-arrow-message:active{transform:translateY(-50%) scale(1.02)}.card-message-chooser{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:none;left:54px;max-height:260px;padding:12px;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);width:min(310px,calc(100% - 72px));z-index:20}.card-message-options{display:flex;flex-wrap:wrap;gap:6px;max-height:178px;overflow-y:auto}.card-message-option{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:999px;color:var(--color-text);cursor:pointer;font-size:12px;font-weight:800;min-height:30px;padding:0 9px}.card-message-option.is-selected{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.card-message-option:disabled{cursor:not-allowed;opacity:.34}.card-message-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}.card-message-actions button{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);cursor:pointer;font-weight:850;min-height:32px;padding:0 10px}.card-message-actions button:disabled{cursor:not-allowed;opacity:.45}.arrow-right{right:0;top:50%;transform:translateY(-50%)}.arrow-right:hover{background-color:var(--color-surface-soft);transform:translateY(-50%) scale(1.2)}.arrow-right.gesture-arrow-answer-ok:hover{background-color:var(--color-success);transform:translateY(-50%) scale(1.08)}.arrow-right:active{transform:translateY(-50%) scale(1.1)}.arrow-right.gesture-arrow-answer-ok:active{background-color:var(--color-success);transform:translateY(-50%) scale(1.02)}.arrow-up{left:50%;top:0;transform:translateX(-50%) translateY(12px)}.arrow-up:hover{background-color:var(--color-surface-soft);transform:translateX(-50%) translateY(12px) scale(1.2)}.arrow-up:active{transform:translateX(-50%) translateY(12px) scale(1.1)}.arrow-down{bottom:0;left:50%;transform:translateX(-50%) translateY(-12px)}.arrow-down:hover{background-color:var(--color-surface-soft);transform:translateX(-50%) translateY(-12px) scale(1.2)}.arrow-down:active{transform:translateX(-50%) translateY(-12px) scale(1.1)}.flashcard:hover .flashcard-back,.flashcard:hover .flashcard-front{border-color:var(--color-primary);box-shadow:none}.flashcard-front{background:var(--learning-question-bg);border-color:var(--learning-question-border)}.flashcard-back{background:var(--learning-answer-bg);border-color:var(--learning-answer-border);transform:rotateY(180deg);-webkit-transform:rotateY(180deg)}@keyframes flashcardHorizontalFlip{0%{transform:translateZ(0) rotateY(0deg);transform:translate3d(var(--flashcard-flip-drag-from,0),0,0) rotateY(var(--flashcard-flip-from,0deg))}to{transform:translateZ(0) rotateY(0deg);transform:translateZ(0) rotateY(var(--flashcard-flip-to,0deg))}}.flashcard-content{word-wrap:break-word;color:var(--color-text);font-size:26px;font-weight:400;line-height:1.6;max-height:220px;overflow-wrap:break-word;overflow-y:auto;padding:10px;position:relative;text-align:center;white-space:pre-wrap;width:100%;z-index:2}.flashcard-user-message-layer{inset:18px 22px;pointer-events:none;position:absolute;z-index:5}.flashcard-user-message{color:var(--color-danger);font-size:clamp(13px,3.1vw,18px);font-weight:900;line-height:1.1;max-width:34%;position:absolute;text-shadow:none;-webkit-user-select:none;user-select:none;white-space:nowrap}.flashcard-content>.markdown-text,.flashcard-side-memo{position:relative;z-index:2}.flashcard-content .markdown-text{font-family:var(--font-ui);font-synthesis:initial}.flashcard-side-memo{border-top:1px solid var(--color-line);color:var(--color-muted);font-size:15px;font-weight:650;line-height:1.45;margin-top:12px;padding-top:10px}.flashcard-side-memo-back{border-top-color:var(--color-line);color:var(--color-muted)}.flashcard-content:not(:has(.flashcard-side-memo)):after{content:"";display:block;height:45px}.flashcard-hint{position:relative;z-index:2}.flashcard-cleared-stamp,.flashcard-corner-caption,.gesture-hints,.session-count-badge{z-index:9}.flashcard-content.small-font{font-size:20px;line-height:1.5}.flashcard-back .flashcard-content{color:var(--color-text);font-weight:450}.flashcard-hint{color:var(--color-muted);font-size:15px;font-style:italic;font-weight:500;margin-top:24px;opacity:.8;transition:opacity .3s ease}.flashcard:hover .flashcard-hint{opacity:1}.flashcard-content::-webkit-scrollbar{width:8px}.flashcard-content::-webkit-scrollbar-track{background:var(--color-surface-soft);border-radius:4px}.flashcard-content::-webkit-scrollbar-thumb{background:var(--color-line);border-radius:4px}.flashcard-content::-webkit-scrollbar-thumb:hover{background:var(--color-muted)}@media (max-width:600px){.flashcard{height:280px;max-width:450px;width:100%}.flashcard-content{font-size:20px;max-height:160px;padding:8px}.flashcard-content.small-font{font-size:16px}.flashcard-back,.flashcard-front{padding:25px}.flashcard-corner-caption{font-size:11px;left:12px;padding:5px 8px;top:12px}.flashcard-cleared-stamp{bottom:16px;right:16px;width:116px}.flashcard-hint{font-size:13px;margin-top:16px}}@media (max-width:480px){.flashcard{height:260px;max-width:450px;width:100%}.flashcard-back,.flashcard-first-encounter,.flashcard-front{padding:20px}.flashcard-first-encounter{padding:42px 16px 28px}.flashcard-first-encounter-side{gap:8px;grid-template-columns:28px minmax(0,1fr);padding:7px 9px}.flashcard-first-encounter-side-label{font-size:12px;height:27px;width:27px}.flashcard-first-encounter-text{font-size:17px}.flashcard-first-encounter-side.small-font .flashcard-first-encounter-text{font-size:15px}.flashcard-corner-caption{left:10px;top:10px}.flashcard-cleared-stamp{bottom:12px;right:12px;width:96px}.flashcard-size-badge{bottom:12px;font-size:12px;height:28px;right:12px;width:28px}.flashcard-type-simple .flashcard-cleared-stamp{right:52px}.flashcard-content{font-size:20px;max-height:none;padding:6px}.flashcard-content.small-font{font-size:16px}}@media (min-width:601px) and (max-width:900px){.flashcard{height:290px;width:380px}.flashcard-content{font-size:23px}.flashcard-content.small-font{font-size:18px}}.practice-session-card .flashcard{max-width:none}.flashcard.show-back .gesture-arrow-answer-ok{color:var(--color-on-success)}.flashcard-self-test-zones{background:linear-gradient(90deg,#dc41411f 0 50%,#26a5681f 50% 100%);border-radius:inherit;inset:0;pointer-events:none;position:absolute;z-index:1}.flashcard-self-test .flashcard-back .flashcard-content{max-width:calc(100% - 88px)}.flashcard.flashcard-self-test .gesture-arrow-answer-no,.flashcard.flashcard-self-test .gesture-arrow-answer-no:hover,.flashcard.flashcard-self-test .gesture-arrow-answer-ok,.flashcard.flashcard-self-test .gesture-arrow-answer-ok:hover{align-items:center;border-radius:50%;color:#fff;display:inline-flex;font-size:24px;font-weight:700;height:46px;justify-content:center;min-width:46px;padding:0;width:46px}.flashcard.flashcard-self-test .gesture-arrow-answer-no{background:#bc3535}.flashcard.flashcard-self-test .gesture-arrow-answer-ok{background:#247c4c}.flashcard-self-test-feedback{align-items:center;animation:selfTestChoiceFeedback 1.5s ease-out both;background:#e0f4e7;border:1px solid #86bd98;border-radius:8px;color:#185339;display:flex;font-size:18px;font-weight:650;gap:8px;left:16px;letter-spacing:0;line-height:1.2;max-width:calc(100% - 128px);padding:8px 12px;pointer-events:none;position:absolute;top:14px;z-index:10}.flashcard-has-self-test-feedback .flashcard-corner-caption{visibility:hidden}.flashcard-self-test-feedback.is-no{background:#ffebe6;border-color:#d6a396;color:#773c32}.flashcard-self-test-feedback-symbol{font-size:20px;font-weight:750}@keyframes selfTestChoiceFeedback{0%{opacity:0;transform:translateY(8px) scale(.94)}15%,75%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-6px) scale(1)}}@media (prefers-reduced-motion:reduce){.flashcard-self-test-feedback{animation:none}}.reading-audio-controls{display:flex;flex-direction:column;font-size:12px;gap:4px;min-width:0}.reading-audio-error{background:#0000;border:0;color:#b83d45;color:var(--color-danger,#b83d45);font-size:12px}.reading-audio-highlight{border-radius:8px;outline:2px solid #2c68d5;outline:2px solid var(--color-primary,#2c68d5);outline-offset:3px}.reading-audio-single{background:#0000;border:0;color:inherit;padding:7px}.reading-audio-loading{outline:1px dashed var(--color-muted);outline-offset:2px}.reading-audio-play{align-items:center;background:var(--color-success-soft);border:1px solid var(--color-success);border-radius:50%;color:var(--color-success);cursor:pointer;display:inline-flex;flex-shrink:0;height:44px;justify-content:center;width:44px}.reading-audio-play.is-off{background:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted)}.practice-current-note:has(.reading-audio-controls){flex-wrap:wrap}.practice-current-note>.reading-audio-controls{display:contents}.practice-current-note .reading-audio-play{order:3}.practice-current-note .reading-audio-error{flex:1 0 100%;order:12}.evaluation-panel{align-items:center;background:#0000;border:0;display:flex;gap:8px;justify-content:center;min-height:52px;padding:4px 0;position:relative;text-align:center}.evaluation-prompt{align-items:center;color:var(--color-muted);display:flex;flex-direction:column;font-size:12px;font-weight:500;gap:2px;line-height:1.2;margin:0;min-width:0;white-space:nowrap}.star-rating-container{display:flex;flex-shrink:0;gap:2px;justify-content:center;margin:0}.evaluation-panel .star-btn{align-items:center;background:none;border:0;cursor:pointer;display:inline-flex;font-size:34px;justify-content:center;line-height:1;min-height:44px;min-width:44px;padding:0;transition:transform .16s ease,color .16s ease}.evaluation-panel .star-btn:disabled{cursor:wait;opacity:.6}.evaluation-panel .star-btn.filled{color:var(--color-primary)}.evaluation-panel .star-btn.empty{color:var(--color-muted)}.evaluation-panel .star-btn.selected{transform:scale(1.08)}.evaluation-panel .star-btn:focus-visible{border-radius:6px;outline:2px solid var(--color-focus);outline-offset:-2px}.evaluation-panel .star-btn.quick-limit-muted{color:var(--color-muted)}.evaluation-panel.grade-updated .star-btn.filled:not(.quick-limit-muted){color:var(--color-success)}@media (hover:hover) and (pointer:fine){.evaluation-panel .star-btn:hover:not(:disabled){transform:scale(1.08)}}.rating-label-container{bottom:calc(100% + 6px);display:flex;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;z-index:5}.rating-copy{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);max-width:min(100%,360px);padding:8px 12px}.rating-auto-cue,.rating-label{line-height:1.45;margin:0;overflow-wrap:anywhere}.rating-label{color:var(--color-text);font-size:13px;font-weight:500}.rating-copy-error .rating-label{color:var(--color-danger)}.rating-state-icons{align-items:center;display:inline-flex;gap:4px;height:14px;justify-content:center}.rating-time-limit-indicator{color:var(--color-muted);display:inline-flex}.inline-spinner{border:2px solid var(--color-line);border-radius:50%;border-top-color:var(--color-primary);display:inline-block;height:12px;width:12px}@media (prefers-reduced-motion:no-preference){.rating-copy-event{animation:ratingFeedbackEnter .24s ease-out}.inline-spinner{animation:evaluationSpin .8s linear infinite}}@keyframes ratingFeedbackEnter{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes evaluationSpin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.evaluation-panel .star-btn{transition:none}.evaluation-panel .star-btn.selected,.evaluation-panel .star-btn:hover:not(:disabled){transform:none}}.spinner-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:20px}.spinner{animation:spin 1s linear infinite;border-radius:50%}.spinner-small{border-top:3px solid var(--color-primary-soft);border:3px solid var(--color-primary-soft);border-top-color:var(--color-primary);height:20px;width:20px}.spinner-medium{border-top:4px solid var(--color-primary-soft);border:4px solid var(--color-primary-soft);border-top-color:var(--color-primary);height:40px;width:40px}.spinner-large{border-top:5px solid var(--color-primary-soft);border:5px solid var(--color-primary-soft);border-top-color:var(--color-primary);height:60px;width:60px}.spinner-message{color:var(--color-primary);font-size:14px;font-weight:600;margin-top:12px;text-align:center}.app-error-notice{--notice-accent:var(--color-danger);align-items:stretch;background:var(--color-danger-soft);border:1px solid var(--notice-accent);border-radius:10px;color:var(--color-text);display:flex;flex-direction:column;gap:16px;margin:16px 0;padding:18px 20px;text-align:left}.app-error-notice--network{--notice-accent:var(--color-primary);background:var(--color-warning-soft)}.app-error-notice-content{align-items:flex-start;display:flex;gap:12px;min-width:0}.app-error-notice-icon{flex-shrink:0;font-size:22px;line-height:1.4}.app-error-notice-text{color:var(--color-text);flex:1 1;font-size:15px;font-weight:500;line-height:1.6;min-width:0;overflow-wrap:anywhere}.app-error-notice-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.app-error-notice-btn{border:1px solid #0000;border-radius:6px;cursor:pointer;font:inherit;font-size:14px;font-weight:650;min-height:44px;min-width:44px;padding:8px 16px}.app-error-notice-btn-retry{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.app-error-notice-btn-dismiss{background:#0000;border-color:var(--color-line);color:var(--color-text)}.app-error-notice-btn-retry:hover:not(:disabled){background:var(--color-primary);filter:brightness(.94)}.app-error-notice-btn-dismiss:hover:not(:disabled){background:var(--color-surface-soft)}.app-error-notice-btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.app-error-notice-btn:disabled{cursor:not-allowed;opacity:.6}@media (max-width:600px){.app-error-notice{padding:14px}}.flashcard-form-container{background-color:var(--color-surface);border-radius:12px;box-shadow:var(--shadow-warm);margin:0 auto;max-width:600px;padding:30px;position:relative}.form-loading-overlay{align-items:center;background-color:var(--color-surface-soft);border-radius:12px;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.flashcard-form-container h2{color:var(--color-text);font-size:24px;margin-bottom:30px;margin-top:0;text-align:center}.flashcard-form{display:flex;flex-direction:column;gap:20px}.context-dialog-row{display:flex;width:100%}.context-dialog-row-before{justify-content:flex-start}.context-dialog-row-after{justify-content:flex-end}.context-dialog-row .context-dialog-input{background:var(--color-surface);border-radius:6px 6px 6px 2px;width:min(68%,380px)}.context-dialog-row-after .context-dialog-input{background:var(--color-surface);border-radius:6px 6px 2px 6px;text-align:right}.card-editor-group-front .form-label-row label{color:var(--color-warning)}.card-editor-group-back .form-label-row label{color:var(--color-success)}.card-editor-group-front .card-editor-primary,.flashcard-form .form-group input.card-editor-memo-front{background:var(--color-surface);background-color:var(--color-surface);border-color:var(--color-line);color:var(--color-text)}.card-editor-group-back .card-editor-primary,.flashcard-form .form-group input.card-editor-memo-back{background:var(--color-success-soft);background-color:var(--color-success-soft);border-color:var(--color-success);color:var(--color-text)}.card-editor-memo{box-shadow:none}.card-editor-memo::placeholder{color:var(--color-muted);opacity:1}.flashcard-form .form-group input.card-editor-memo:focus{background:var(--color-surface);background-color:var(--color-surface);color:var(--color-text)}.form-label-row{align-items:center;display:flex;gap:12px;justify-content:space-between}.card-type-switch{grid-gap:6px;background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:10px;display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr));padding:5px}.card-type-switch-create{grid-template-columns:repeat(3,minmax(0,1fr))}.card-type-switch-option{background:#0000;border:0;border-radius:7px;color:var(--color-muted);cursor:pointer;font:inherit;font-weight:850;min-height:38px}.card-type-switch-option.active{background:var(--color-primary);box-shadow:var(--shadow-warm);color:var(--color-on-primary)}.card-type-switch-option:disabled{cursor:not-allowed;opacity:.65}.markup-toolbar{display:flex;gap:8px}.markup-toolbar-btn{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);cursor:pointer;font-size:16px;font-weight:800;min-height:34px;min-width:34px}.markup-toolbar-icon-btn{align-items:center;display:inline-flex;justify-content:center}.markup-toolbar-btn:nth-child(2){font-style:italic}.markup-toolbar-btn:hover:not(:disabled){background:var(--color-primary-soft)}.form-field-label,.form-group label{color:var(--color-text);font-size:16px;font-weight:850;letter-spacing:.01em}.required{color:var(--color-danger);font-weight:700}.form-textarea{border:2px solid var(--color-line);border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:16px;padding:12px;resize:vertical;transition:border-color .3s ease;width:100%}.form-textarea:focus{border-color:var(--color-focus);outline:none}.form-textarea.error{border-color:#d32f2f}.form-textarea:disabled{background-color:var(--color-surface-soft);cursor:not-allowed}.flashcard-form-reading-textarea{line-height:1.55;min-height:260px}.error-message{align-items:center;color:var(--color-danger);display:flex;font-size:14px;gap:4px;margin-top:4px}.error-message:before{content:"⚠";font-size:16px}.submit-error{background-color:var(--color-danger-soft);border-left:4px solid #d32f2f;border-radius:6px;padding:12px}.form-actions{align-items:center;display:flex;gap:12px;justify-content:flex-end;margin-top:10px}.btn{border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;min-width:100px;padding:12px 24px;transition:all .3s ease}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-cancel{background-color:var(--color-surface-soft);color:var(--color-muted)}.btn-cancel:hover:not(:disabled){background-color:var(--color-surface-soft);box-shadow:var(--shadow-warm);transform:translateY(-1px)}.btn-cancel:active:not(:disabled){box-shadow:none;transform:translateY(0)}.btn-submit{background-color:var(--color-primary);color:var(--color-on-primary)}.btn-submit:hover:not(:disabled){background-color:var(--color-primary);box-shadow:var(--shadow-warm);transform:translateY(-1px)}.btn-submit:active:not(:disabled){box-shadow:var(--shadow-warm);transform:translateY(0)}.btn-level-up-form{align-items:center;background:var(--color-primary);border:1px solid var(--color-line);box-shadow:var(--shadow-warm);color:var(--color-on-primary);display:inline-flex;font-weight:800;gap:6px;justify-content:center}.btn-level-up-form:hover:not(:disabled){box-shadow:var(--shadow-warm);filter:brightness(1.04);transform:translateY(-1px)}.btn-level-up-form:active:not(:disabled){transform:translateY(0)}.btn-delete{background:var(--color-danger-soft);border:1px solid #b23a3047;color:var(--color-danger);margin-right:auto}.btn-delete:hover:not(:disabled){background:var(--color-danger-soft);box-shadow:var(--shadow-warm);transform:translateY(-1px)}.btn-delete:active:not(:disabled){box-shadow:var(--shadow-warm);transform:translateY(0)}@media (max-width:600px){.flashcard-form-container{margin:10px;padding:20px}.flashcard-form-container h2{font-size:20px;margin-bottom:20px}.form-textarea{font-size:14px}.form-label-row{align-items:center;flex-direction:row;gap:10px;justify-content:space-between}.markup-toolbar{flex-shrink:0;margin-left:auto}.form-actions{align-items:stretch;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.form-actions .btn-level-up-form{order:4}.form-actions .btn-submit{order:2}.form-actions .btn-cancel{order:3}.form-actions .btn-delete{grid-column:auto;order:1}.btn-delete{margin-right:0}.btn{width:100%}}.form-input{border:2px solid var(--color-line);border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:16px;padding:12px;transition:border-color .3s ease;width:100%}.form-input:focus{border-color:var(--color-focus);outline:none}.form-input:disabled{background-color:var(--color-surface-soft);cursor:not-allowed}.grade-selector{align-items:center;display:flex;gap:8px}.star-btn{background:none;border:none;color:var(--color-muted);cursor:pointer;font-size:32px;padding:4px;transition:transform .2s ease}.star-btn.filled{color:var(--color-warning)}.star-btn:hover:not(:disabled){transform:scale(1.2)}.star-btn:disabled{cursor:not-allowed;opacity:.6}.flashcard-form-container.level-up-form-container{background:var(--color-surface);color:var(--color-text)}.level-up-form-guidance{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-warning);font-size:.95rem;font-weight:600;line-height:1.45;margin:0;padding:14px 15px}.level-up-form{gap:18px}.level-up-form .context-dialog-row{align-items:center;gap:8px}.level-up-form .context-clear-button{align-items:center;background:#0000;border:0;border-radius:6px;color:var(--color-muted);cursor:pointer;display:inline-flex;flex:0 0 44px;height:44px;justify-content:center;padding:0;width:44px}.level-up-form .context-clear-button:hover:not(:disabled){background:var(--color-surface-soft);color:var(--color-text)}.level-up-form .context-clear-button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.level-up-form .context-clear-button:disabled{cursor:default;opacity:.35}.level-up-form-actions{display:flex;gap:12px;justify-content:flex-end}.level-up-target-fieldset{grid-gap:10px;border:1px solid var(--color-line);border-radius:8px;display:grid;gap:10px;margin:0;padding:12px}.level-up-target-fieldset legend{color:var(--color-text);font-weight:650;padding:0 6px}.level-up-target-fieldset input,.level-up-target-fieldset select{background:var(--color-surface);border:1px solid var(--color-line);border-radius:6px;box-sizing:border-box;color:var(--color-text);font:inherit;min-height:44px;min-width:0;padding:9px 11px;width:100%}.level-up-target-tabs{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.level-up-target-tabs button{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:6px;color:var(--color-text);display:inline-flex;font-weight:650;gap:6px;justify-content:center;min-height:40px}.level-up-target-tabs button.is-active{background:var(--color-success-soft);border-color:#2ec4b6;color:var(--color-success)}.btn-level-up-content-update{color:var(--color-on-primary)}.btn-level-up-content-update,.btn-level-up-content-update:hover:not(:disabled){background:var(--color-primary)}.flashcard-form-container.level-up-form-page-presentation{background:var(--color-surface);color:var(--color-text);color-scheme:inherit}.level-up-form-page-presentation .level-up-form-guidance{background:#0000;border:0;border-bottom:1px solid var(--color-line);border-radius:0;color:var(--color-muted);font-size:.87rem;font-weight:400;line-height:1.65;padding:0 0 16px}.level-up-form-page-presentation .level-up-target-hint{color:var(--color-muted);font-size:.82rem;line-height:1.6;margin:0}.level-up-form-page-presentation .card-type-switch,.level-up-form-page-presentation .level-up-target-fieldset{background:var(--color-surface-soft);border-color:var(--color-line)}.level-up-form-page-presentation .card-type-switch-option{color:var(--color-text)}.level-up-form-page-presentation .card-type-switch-option.active{background:var(--color-primary);color:var(--color-on-primary)}.level-up-form-page-presentation .form-group label,.level-up-form-page-presentation .level-up-target-fieldset legend{color:var(--color-primary);font-weight:650}.level-up-form-page-presentation .card-editor-group-back label{color:var(--color-success)}.level-up-form-page-presentation .required{color:var(--color-danger)}.level-up-form-page-presentation .level-up-form .form-group input.card-editor-memo:focus,.level-up-form-page-presentation .level-up-form input,.level-up-form-page-presentation .level-up-form input.card-editor-memo-front,.level-up-form-page-presentation .level-up-form select,.level-up-form-page-presentation .level-up-form textarea{background:var(--color-bg);border:1px solid var(--color-line);color:var(--color-text);font-size:1rem;line-height:1.6}.level-up-form-page-presentation .level-up-form .card-editor-group-back textarea,.level-up-form-page-presentation .level-up-form input.card-editor-memo-back{background:var(--color-success-soft);border-color:var(--color-success)}.level-up-form-page-presentation .level-up-form input::placeholder,.level-up-form-page-presentation .level-up-form textarea::placeholder{color:var(--color-muted);opacity:1}.level-up-form-page-presentation .level-up-target-tabs button,.level-up-form-page-presentation .markup-toolbar-btn{background:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-text)}.level-up-form-page-presentation .markup-toolbar-btn{min-height:40px;min-width:40px}.level-up-form-page-presentation .level-up-target-tabs button:hover:not(:disabled),.level-up-form-page-presentation .markup-toolbar-btn:hover:not(:disabled){background:var(--color-surface-soft)}.level-up-form-page-presentation .level-up-target-tabs button.is-active{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success)}.level-up-form-page-presentation .context-clear-button{color:var(--color-muted)}.level-up-form-page-presentation .context-clear-button:hover:not(:disabled){background:var(--color-surface-soft);color:var(--color-text)}.level-up-form-page-presentation .btn-cancel{background:#0000;border:1px solid var(--color-line);color:var(--color-text)}.level-up-form-page-presentation .btn-cancel:hover:not(:disabled){background:var(--color-surface-soft)}.level-up-form-page-presentation .level-up-target-tabs button{cursor:pointer;font:inherit;font-size:.9rem;min-height:44px}.level-up-form-page-presentation .level-up-form-actions .btn{line-height:1.4;min-height:44px;white-space:normal}.level-up-form-page-presentation button:focus-visible,.level-up-form-page-presentation input:focus-visible,.level-up-form-page-presentation select:focus-visible,.level-up-form-page-presentation textarea:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media (max-width:520px){.flashcard-form-container.level-up-form-container{margin:0;padding:16px}.level-up-form-actions{align-items:stretch;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.level-up-form-actions .btn{width:100%}}.gym-icon{--gym-icon-color:currentColor;align-items:center;color:inherit;display:inline-grid;flex:0 0 auto;grid-template-columns:6px 4px 18px 4px 6px;height:20px;width:38px}.gym-icon-bar,.gym-icon-grip,.gym-icon-plate{background:var(--gym-icon-color);display:block}.gym-icon-plate{border-radius:3px;box-shadow:inset 0 -2px 0 #0000002e;height:18px;width:6px}.gym-icon-grip{height:12px;opacity:.8;width:4px}.gym-icon-bar{border-radius:999px;height:5px;width:18px}.gym-icon-plate-left{transform:translateX(1px)}.gym-icon-plate-right{transform:translateX(-1px)}.scene-player{--scene-pattern-opacity:0.07;align-items:stretch;color:var(--color-text);display:flex;inset:0;justify-content:center;overflow:hidden;position:fixed;z-index:520}.scene-player:before{background-color:var(--color-primary);content:"";inset:0;-webkit-mask-image:url(/static/media/dumbbell-pattern.04269b4f1d7e3df06845.svg);mask-image:url(/static/media/dumbbell-pattern.04269b4f1d7e3df06845.svg);mask-mode:alpha;-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-size:240px 240px;mask-size:240px 240px;opacity:var(--scene-pattern-opacity);pointer-events:none;position:absolute;z-index:0}:root[data-theme=dark] .scene-player{--scene-pattern-opacity:0.10}.scene-player-coaching,.scene-player-opponent{background:var(--color-bg)}.scene-player-stage{box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;min-height:100dvh;overflow-y:auto;padding:calc(80px + env(safe-area-inset-top, 0px)) 16px 22px;position:relative;width:min(100%,600px);z-index:1}.scene-player-flare{animation:scene-player-light-sweep 1.6s ease-in-out infinite alternate;background:none;inset:0 8%;position:absolute;transform:skewX(-8deg)}.scene-player-meta{display:flex;gap:8px;justify-content:center;margin-bottom:10px;position:relative;z-index:2}.scene-player-meta span{background:var(--color-primary-soft);border:1px solid var(--color-primary);border-radius:999px;color:var(--color-primary);font-size:11px;font-weight:900;letter-spacing:.08em;padding:5px 9px;text-transform:uppercase}.scene-player-character-wrap{align-items:flex-end;animation:scene-player-character-in .52s cubic-bezier(.2,.85,.24,1) both;display:flex;justify-content:center;margin-bottom:16px;min-height:42dvh;position:relative;z-index:1}.scene-player-character{animation:scene-player-idle 1.55s ease-in-out infinite;filter:none;image-rendering:pixelated;max-height:43dvh;object-fit:contain;position:relative;width:min(62vw,270px);z-index:2}.scene-player-character-wrap-screen{align-items:center;background:var(--color-bg);border-radius:8px;height:min(54dvh,560px);min-height:0;overflow:hidden;width:100%}.scene-player-character-screen{animation:none;filter:none;height:100%;image-rendering:auto;max-height:none;object-fit:contain;width:100%}.scene-player-character-placeholder{height:30dvh;width:min(48vw,220px)}.scene-player-event-sprite{animation:scene-player-event-sprite-play .72s steps(8) infinite;background-position:0 0;background-repeat:no-repeat;background-size:1024px 128px;bottom:0;filter:none;height:128px;pointer-events:none;position:absolute;right:clamp(0px,6vw,44px);width:128px;z-index:3}.scene-player-vs{color:var(--color-primary);font-size:54px;font-weight:1000;left:50%;position:absolute;text-shadow:none;top:8%;transform:translateX(-50%) rotate(-8deg);z-index:3}.scene-player-dialogue{animation:scene-player-dialogue-in .42s ease-out .12s both;background:var(--color-surface);border:2px solid var(--color-primary);border-radius:8px;box-shadow:none;min-height:176px;padding:18px 18px 16px;position:relative;z-index:4}.scene-player-opponent .scene-player-dialogue{background:var(--color-surface);border-color:var(--color-primary);box-shadow:none}.scene-player-speaker{background:var(--color-primary-soft);border:1px solid var(--color-primary);border-radius:6px;color:var(--color-primary);font-size:12px;font-weight:900;letter-spacing:.08em;margin-bottom:10px;max-width:100%;overflow:hidden;padding:5px 10px;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;width:fit-content}.scene-player-message{color:var(--color-text);font-size:21px;font-weight:850;line-height:1.35;margin:0 0 18px;min-height:58px}.scene-player-cursor{animation:scene-player-cursor-blink .7s steps(1) infinite;background:var(--color-secondary);display:inline-block;height:1em;margin-left:3px;vertical-align:-.16em;width:8px}.scene-player-continue{align-items:center;background:var(--color-primary);border:0;border-radius:8px;box-shadow:none;color:var(--color-on-primary);cursor:pointer;display:flex;font-size:17px;font-weight:950;gap:10px;justify-content:center;min-height:50px;transition:transform .15s ease,filter .15s ease;width:100%}.scene-player-continue-icon{height:18px;width:36px}.scene-player-continue:hover{filter:none;transform:translateY(-1px)}.scene-player-continue:active{transform:translateY(1px)}@keyframes scene-player-character-in{0%{opacity:0;transform:translateY(28px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes scene-player-dialogue-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes scene-player-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes scene-player-light-sweep{0%{opacity:.36;transform:translateX(-4%) skewX(-8deg)}to{opacity:.72;transform:translateX(4%) skewX(-8deg)}}@keyframes scene-player-cursor-blink{0%,45%{opacity:1}46%,to{opacity:0}}@keyframes scene-player-event-sprite-play{0%{background-position:0 0}to{background-position:-1024px 0}}@media (max-height:640px){.scene-player-stage{padding:calc(72px + env(safe-area-inset-top, 0px)) 14px 14px}.scene-player-character-wrap{margin-bottom:12px;min-height:32dvh}.scene-player-character{max-height:32dvh;width:min(48vw,190px)}.scene-player-character-wrap-screen{height:min(42dvh,360px);min-height:0}.scene-player-character-screen{max-height:none;width:100%}.scene-player-message{font-size:18px}}.scene-player-audio-controls{display:flex;gap:8px;justify-content:flex-end;margin-block:8px}.scene-player-toolbar{align-items:center;display:flex;gap:8px;justify-content:flex-end;left:16px;position:absolute;right:16px;top:calc(12px + env(safe-area-inset-top, 0px));z-index:5}.scene-player-toolbar button{background:var(--color-surface);border:1px solid var(--color-line);color:var(--color-text);cursor:pointer;min-height:44px}.scene-player-toolbar button[aria-pressed=true]{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.scene-player-toolbar button:disabled{cursor:default;opacity:.4}.scene-player-toolbar button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.scene-player-round-control{border-radius:50%;display:grid;flex-shrink:0;place-items:center;width:44px}.scene-player-language{display:flex;margin-right:auto}.scene-player-language button{font:inherit;font-size:13px;padding:6px 10px}.scene-player-language button:first-child{border-radius:22px 0 0 22px}.scene-player-language button:last-child{border-radius:0 22px 22px 0}.scene-player-audio-controls button{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);cursor:pointer;font:inherit;min-height:44px;padding:8px 12px}@media (prefers-reduced-motion:reduce){.scene-player-character,.scene-player-character-wrap,.scene-player-cursor,.scene-player-dialogue,.scene-player-event-sprite,.scene-player-flare{animation:none}}.card-listening-control{display:contents}.card-listening-button{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:50%;color:var(--color-muted);cursor:pointer;display:inline-grid;flex:0 0 26px;height:26px;padding:0;place-items:center;width:26px}.card-listening-control.is-playing .card-listening-button,.card-listening-control.is-ready .card-listening-button{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success)}.card-listening-control.is-question-side.is-autoplay-off .card-listening-button{background:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted)}.card-listening-control.is-question-side.is-autoplay-on .card-listening-button{background:var(--color-success-soft);border-color:var(--color-success);box-shadow:none;color:var(--color-success)}.card-listening-control.is-playing .card-listening-button{box-shadow:none}.card-listening-control.is-error .card-listening-button{border-color:var(--color-danger);color:var(--color-danger)}.card-listening-button:disabled{cursor:not-allowed;opacity:.52}.card-listening-spinner{animation:cardListeningSpin .8s linear infinite}.card-listening-progress{grid-gap:7px;font-feature-settings:"tnum";align-items:center;color:var(--color-muted);display:grid;flex:1 0 100%;font-size:10px;font-variant-numeric:tabular-nums;gap:7px;grid-template-columns:34px minmax(100px,1fr) 34px;order:10}.card-listening-progress input{accent-color:var(--color-primary);width:100%}.card-listening-error{color:var(--color-danger);flex:1 0 100%;font-size:10px;order:11;text-align:center}@keyframes cardListeningSpin{to{transform:rotate(1turn)}}.learning-repeat-card{background:var(--learning-answer-bg);border:2px solid var(--learning-answer-border);border-radius:8px;color:var(--color-text);cursor:pointer;display:grid;font:inherit;height:100%;min-height:0;overflow:hidden;padding:8px;position:relative;text-align:center;touch-action:manipulation;width:100%}.learning-repeat-card:disabled{cursor:default}.learning-repeat-card:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.learning-repeat-faces{grid-gap:8px;display:grid;gap:8px;grid-template-rows:repeat(2,minmax(0,1fr));min-height:0}.learning-repeat-face{align-items:center;background:var(--learning-question-bg);border-radius:8px;display:flex;min-height:0;min-width:0;padding:8px;position:relative}.learning-repeat-face.is-answer{background:var(--learning-answer-bg);border-top:2px dashed var(--color-line)}.learning-repeat-label{background:var(--color-primary);border-radius:50%;bottom:8px;color:var(--color-on-primary);display:grid;font-size:12px;height:22px;left:8px;line-height:1;place-items:center;pointer-events:none;position:absolute;width:22px;z-index:1}.learning-repeat-face.is-answer .learning-repeat-label{background:var(--color-success);color:var(--color-on-success)}.learning-repeat-text{display:block;line-height:1.35;max-height:100%;min-width:0;overflow:auto;overflow-wrap:anywhere;overscroll-behavior:contain;width:100%}.learning-repeat-memo{color:var(--color-muted);display:block;font-size:14px;line-height:1.45;margin-top:10px}.learning-repeat-faces.is-repeat-feedback{animation:learningRepeatNudge .26s ease-out both}@keyframes learningRepeatNudge{0%{transform:translateY(3px)}45%{transform:translateY(-3px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.learning-repeat-faces.is-repeat-feedback{animation:none}}.learning-card-progress{flex-shrink:0;width:100%}.learning-repeat-progress{background:var(--color-surface-soft);border-radius:2px;height:4px;overflow:hidden;width:100%}.learning-repeat-progress>span{background:var(--color-primary);display:block;height:100%;transform-origin:left center;transition:transform .18s ease-out;width:100%}.learning-card-caption{font-feature-settings:"tnum";align-items:center;color:var(--color-muted);display:flex;flex-wrap:wrap;font-size:12px;font-variant-numeric:tabular-nums;gap:5px;justify-content:center;line-height:1.4;padding-top:8px}.learning-card-caption>span{align-items:center;display:inline-flex;gap:4px}.learning-repeat-action{align-items:center;background:var(--color-primary);border:1px solid var(--color-primary);border-radius:8px;color:var(--color-on-primary);cursor:pointer;display:flex;flex-shrink:0;font:inherit;font-weight:700;gap:8px;justify-content:center;min-height:48px;padding:12px 20px;width:100%}.learning-repeat-action:disabled{cursor:default;opacity:.5}.learning-repeat-action:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.learning-repeat-action:hover:not(:disabled){filter:brightness(.94)}.learning-repeat-step{background:#ffffff26;border-radius:8px;font-size:11px;font-weight:600;padding:3px 7px;white-space:nowrap}@media (prefers-reduced-motion:reduce){.learning-repeat-progress>span{transition:none}}.npc-encounter-overlay{align-items:stretch;background:var(--color-bg);color:var(--color-text);display:flex;height:100dvh;inset:0;justify-content:center;overflow:hidden;overscroll-behavior:none;position:fixed;z-index:610}.npc-encounter-overlay.is-review-mode{overflow:clip}.npc-encounter-fire{animation:npcFirePulse .84s ease-in-out infinite alternate;background:none;filter:none;height:38%;inset:auto -10% -18% -10%;pointer-events:none;position:absolute}.npc-encounter-overlay.is-critical{background:var(--color-bg)}.npc-encounter-overlay.is-opponent-critical:after,.npc-encounter-overlay.is-user-critical:after{animation:npcCriticalFrame .52s ease-in-out infinite alternate;border:6px solid var(--color-danger);box-shadow:none;content:"";inset:0;pointer-events:none;position:absolute}.npc-encounter-panel{box-sizing:border-box;container-type:inline-size;display:flex;flex-direction:column;gap:8px;height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:max(8px,env(safe-area-inset-top)) 14px max(8px,env(safe-area-inset-bottom));position:relative;width:min(100%,600px);z-index:1}.npc-encounter-panel>:not(.npc-encounter-workout){flex-shrink:0}.npc-encounter-topbar{grid-gap:8px;align-items:center;background:var(--color-surface);border:1px solid var(--color-primary);border-radius:8px;box-shadow:none;display:grid;gap:8px;grid-template-columns:1fr auto 1fr;padding:10px}.npc-review-header{margin-bottom:2px}.npc-review-notice{color:var(--color-danger);font-size:12px;line-height:1.4;margin:0}.npc-fighter{grid-gap:5px;display:grid;gap:5px;min-width:0}.npc-fighter.is-critical .npc-fighter-name,.npc-fighter.is-critical .npc-hp-value{animation:npcDangerBeat .38s ease-in-out infinite alternate;color:var(--color-danger);text-shadow:none}.npc-fighter-user{text-align:right}.npc-card-caption,.npc-fighter-name,.npc-hp-value{font-weight:1000;letter-spacing:.06em;text-transform:uppercase}.npc-fighter-name{color:var(--color-primary);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.npc-hp-track{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:999px;height:13px;overflow:hidden}.npc-hp-fill{height:100%;transition:width .3s ease}.npc-hp-fill-opponent{background:var(--color-danger)}.npc-hp-fill-user{background:var(--color-success);margin-left:auto}.npc-fighter.is-critical .npc-hp-track{border-color:var(--color-danger);box-shadow:none}.npc-fighter.is-critical .npc-hp-fill{animation:npcHpCritical .46s linear infinite;background:var(--color-danger)}.npc-hp-value{color:var(--color-text);font-size:12px}.npc-versus{background:var(--color-primary-soft);border:1px solid var(--color-primary);border-radius:999px;box-shadow:none;color:var(--color-primary);display:grid;height:42px;place-items:center;width:42px}.npc-timer{font-feature-settings:"tnum";align-items:center;background:var(--color-warning-soft);border:1px solid var(--color-warning);border-radius:999px;box-shadow:none;box-sizing:border-box;color:var(--color-warning);display:inline-flex;font-size:13px;font-variant-numeric:tabular-nums;font-weight:700;justify-content:center;left:8px;line-height:1;min-height:29px;min-width:34px;padding:7px 11px;position:absolute;text-align:center;text-shadow:none;top:8px;white-space:nowrap;z-index:1}.npc-timer.is-danger{border-color:var(--color-danger);box-shadow:none;color:var(--color-danger)}.npc-timer.is-timeout{background:var(--color-danger);color:var(--color-on-danger);text-shadow:none}.npc-monster-stage{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:8px;box-shadow:none;display:grid;flex:0 1 20%;max-height:180px;min-height:64px;overflow:hidden;place-items:end center;position:relative}.npc-monster-stage.is-coaching{align-items:center;background:#0000;border:0;border-radius:0;flex:0 0 auto;gap:12px;grid-template-columns:88px minmax(0,1fr) 44px;justify-items:stretch;max-height:none;min-height:88px;overflow:visible;padding:0}.npc-repeat-coach{height:88px;object-fit:contain;object-position:left center;width:100%}.npc-monster-stage.is-coaching .npc-monster-art-wrap{align-self:center;height:88px;width:100%}.npc-monster-stage.is-coaching .npc-monster-art{object-position:left center}.npc-monster-stage.is-coaching .npc-monster-placeholder{width:100%}.npc-repeat-bubble{background:var(--color-surface);border-radius:16px;font-size:14px;line-height:1.5;overflow-wrap:anywhere;padding:15px 18px;position:relative}.npc-repeat-bubble:before{background:inherit;clip-path:polygon(0 50%,100% 0,100% 100%);content:"";height:20px;left:-11px;position:absolute;top:50%;transform:translateY(-50%);width:12px}.npc-repeat-bubble strong{color:var(--color-primary);font-size:11px}.npc-repeat-bubble p{margin:4px 0 0}.npc-card-progress{font-feature-settings:"tnum";font-size:12px;font-variant-numeric:tabular-nums;font-weight:700;margin-top:4px;text-align:right}.npc-monster-stage.is-coaching .npc-monster-tools{flex-direction:column;position:static}.is-review-mode .npc-monster-stage.is-coaching{grid-template-columns:88px minmax(0,1fr)}.npc-review-dialogue-row{align-items:flex-start;display:flex;gap:12px}.npc-review-dialogue-row>span:first-child{flex:1 1;min-width:0}.npc-review-dialogue-row .npc-card-progress{flex:0 0 auto;margin:0;white-space:nowrap}.npc-review-repeat-action{grid-column:1/-1}@media (max-width:380px){.npc-monster-stage.is-coaching{gap:10px;grid-template-columns:64px minmax(0,1fr) 44px;min-height:64px}.is-review-mode .npc-monster-stage.is-coaching{grid-template-columns:64px minmax(0,1fr)}.npc-monster-stage.is-coaching :is(.npc-monster-art-wrap,.npc-repeat-coach){height:64px}.npc-repeat-bubble{padding:12px}}.npc-monster-art-wrap{display:grid;height:calc(100% - 10px);place-items:end center;position:relative;width:min(48%,190px);z-index:2}.npc-monster-art{display:block;filter:none;height:100%;object-fit:contain;object-position:center bottom;transform-origin:50% 88%;width:100%}.npc-monster-placeholder{color:var(--color-muted);display:grid;filter:none;height:100%;place-items:center;width:118px}.npc-encounter-workout{display:flex;flex:1 1;flex-direction:column;gap:8px;justify-content:safe center;min-height:0;padding-block:8px}.npc-encounter-workout>:not(.npc-encounter-card-wrap){flex-shrink:0}.npc-encounter-card-wrap{display:flex;flex:0 1 auto;height:100cqw;max-height:100cqw;min-height:min(200px,60cqw);position:relative}.npc-encounter-card{grid-gap:12px;background:var(--color-surface);border:2px solid var(--color-primary);border-radius:8px;box-shadow:none;color:var(--color-text);cursor:pointer;display:grid;gap:12px;grid-template-rows:minmax(0,1fr);min-height:0;padding:8px;touch-action:manipulation;width:100%}.npc-card-motion{grid-gap:8px;display:grid;gap:8px;grid-auto-rows:minmax(0,1fr);min-height:0;width:100%}.npc-card-motion.is-repeat-feedback{animation:npcPracticeRepeatNudge .26s ease-out both}.npc-point-feedback{pointer-events:none;position:absolute;right:12px;top:46px;z-index:6}.npc-encounter-drawing-canvas{border-radius:8px;cursor:crosshair;height:100%;inset:0;position:absolute;touch-action:none;width:100%;z-index:4}.npc-encounter-card.is-revealed{background:var(--color-surface-soft)}.npc-encounter-card.npc-card-mode-question{background:var(--learning-question-bg);border-color:var(--learning-question-border)}.npc-encounter-card.npc-card-mode-answer{background-color:var(--learning-drawing-bg);background-image:radial-gradient(circle,var(--learning-grid-line) 1px,#0000 1px);background-size:var(--learning-grid-size);border-color:var(--learning-drawing-border);color:var(--color-text)}.npc-judgment-feedback{animation:npcJudgmentFeedback .5s cubic-bezier(.16,1,.3,1) both;display:grid;inset:0;place-items:center;pointer-events:none;position:absolute;z-index:8}.npc-judgment-mark{grid-gap:8px;display:grid;font-size:14px;font-weight:800;gap:8px;justify-items:center;line-height:1.4;max-width:70%;padding:14px;text-align:center;width:clamp(110px,35cqw,170px)}.npc-judgment-mark svg{display:block;height:auto;width:100%}.npc-judgment-feedback.is-correct{color:var(--color-success)}.npc-judgment-feedback.is-retry{color:var(--color-danger)}@keyframes npcJudgmentFeedback{0%{opacity:0;transform:scale(.9)}20%,80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}.npc-card-mode-answer .npc-card-face{background:#0000}.npc-card-mode-answer .npc-card-back{animation:none;border-top-color:var(--learning-grid-line)}.npc-encounter-card-wrap .npc-drawing-cue{color:var(--color-muted)}.npc-card-mode-repeat .npc-card-front{background:var(--learning-question-bg)}.npc-card-mode-repeat .npc-card-back{background:var(--learning-answer-bg);border-color:var(--learning-answer-border)}.npc-transition-enter{animation:npcCardEnter .32s ease-out both}.npc-transition-flip-out{animation:npcCardFlipOut .18s ease-in both}.npc-transition-flip-in{animation:npcCardFlipIn .18s ease-out both}.npc-transition-repeat{animation:npcCardRepeatEnter .32s ease-out both}.npc-encounter-card-wrap[aria-busy=true] .npc-encounter-drawing-canvas{pointer-events:none}@keyframes npcCardEnter{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes npcCardFlipOut{0%{transform:perspective(1000px) rotateY(0)}to{transform:perspective(1000px) rotateY(-90deg)}}@keyframes npcCardFlipIn{0%{transform:perspective(1000px) rotateY(90deg)}to{transform:perspective(1000px) rotateY(0)}}@keyframes npcCardRepeatEnter{0%{opacity:.6;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.npc-encounter-card-wrap[aria-busy],.npc-judgment-feedback{animation:none}}.npc-encounter-card.npc-card-mode-repeat{background:var(--color-success-soft);border-color:var(--color-success)}.npc-drawing-cue{color:var(--color-muted);display:inline-flex;height:16px;pointer-events:none;position:absolute;right:42px;top:10px;width:16px;z-index:5}.npc-encounter-card.is-timeout{border-color:var(--color-danger);box-shadow:none}.npc-card-face{background:var(--learning-question-bg);border-radius:8px;display:flex;flex-direction:column;font-size:24px;gap:10px;justify-content:center;line-height:1.35;min-height:0;min-width:0;overflow-wrap:anywhere;padding:8px;position:relative;text-align:center}.npc-card-text{display:block}.npc-card-body,.npc-card-text{max-height:100%;min-height:0;overflow:auto;overscroll-behavior:contain}.npc-card-body .npc-card-text{max-height:none;overflow:visible}.npc-card-memo{color:var(--color-muted);display:block;font-size:14px;line-height:1.45;margin-top:10px;padding-top:8px}.npc-card-back{animation:npcAnswerDrop .28s ease-out both;border-top:2px dashed var(--color-line)}.npc-card-caption{background:var(--color-primary);border:1px solid var(--color-primary);border-radius:50%;bottom:8px;color:var(--color-on-primary);display:inline-grid;font-size:12px;height:22px;left:8px;line-height:1;place-items:center;pointer-events:none;position:absolute;width:22px;z-index:1}.npc-card-back .npc-card-caption{background:var(--color-success);border-color:var(--color-success);color:var(--color-on-success)}.npc-monster-tools{align-items:center;bottom:8px;display:flex;gap:8px;position:absolute;right:8px;z-index:5}.npc-level-up-button,.npc-monster-tools .card-listening-button{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:50%;color:var(--color-primary);cursor:pointer;display:inline-grid;flex:0 0 44px;height:44px;padding:0;place-items:center;width:44px}.npc-monster-tools .card-listening-button{background:var(--color-surface)}.npc-monster-tools .is-autoplay-on .card-listening-button{background:var(--color-primary-soft);border-color:var(--color-primary)}.npc-monster-tools .is-autoplay-off .card-listening-button{border-color:var(--color-line);color:var(--color-muted)}@media (max-height:650px){.npc-monster-stage{max-height:80px}}@media (max-height:520px){.npc-encounter-panel{gap:4px}.npc-encounter-workout{flex:1 0 auto}.npc-encounter-card-wrap{height:min(100cqw,52dvh)}.npc-encounter-topbar{padding:4px 8px}.npc-fighter{gap:2px}.npc-monster-stage{flex-basis:64px}.npc-monster-stage.is-coaching{grid-template-columns:64px minmax(0,1fr) 44px;min-height:64px}.is-review-mode .npc-monster-stage.is-coaching{grid-template-columns:64px minmax(0,1fr)}.npc-monster-stage.is-coaching :is(.npc-monster-art-wrap,.npc-repeat-coach){height:64px}.npc-repeat-bubble{font-size:13px;padding:12px}.npc-encounter-panel .npc-action-practice{font-size:18px;min-height:48px;padding:8px}}.npc-monster-tools .card-listening-button svg{height:20px;width:20px}.npc-monster-tools .card-listening-error{background:var(--color-danger-soft);border-radius:4px;bottom:calc(100% + 6px);color:var(--color-danger);font-size:12px;line-height:1.4;max-width:calc(100vw - 64px);overflow-wrap:anywhere;padding:6px 8px;position:absolute;right:0;width:220px}.npc-monster-tools button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.npc-level-up-button:not(:disabled):hover{background:var(--color-primary-soft)}.is-review-mode .learning-session-tools .npc-level-up-button{background:#0000;border:0}.npc-level-up-button:disabled{cursor:not-allowed;opacity:.5}.npc-encounter-actions{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr;min-height:48px}.npc-encounter-hint{align-self:center;color:var(--color-muted);font-size:13px;font-weight:800;grid-column:1/-1;justify-self:center}.npc-action{align-items:center;border:0;border-radius:8px;box-shadow:none;color:var(--color-on-primary);cursor:pointer;display:inline-flex;font-size:16px;font-weight:1000;gap:8px;justify-content:center;min-height:48px;transition:transform .12s ease,filter .12s ease}.npc-action:not(:disabled):active{box-shadow:none;transform:translateY(3px) scale(.98)}.npc-action:disabled{cursor:not-allowed;filter:none;opacity:.5}.npc-action-ok{animation:npcActionReady .76s ease-in-out infinite alternate;background:var(--color-success);color:var(--color-on-success)}.npc-action-repeat{background:var(--color-danger-soft);color:var(--color-danger)}.npc-encounter-card.is-timeout~.npc-encounter-actions .npc-action-repeat{animation:npcNoEmergency .42s ease-in-out infinite alternate}.npc-action-practice{animation:npcActionReady .56s steps(2) infinite alternate;background:var(--color-primary);font-size:22px;gap:12px;grid-column:1/-1;min-height:76px;padding:18px 24px}.npc-timer.is-practice{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success)}.npc-outcome{animation:npcOutcomePop .42s ease-out both;color:var(--color-text);font-size:13px;font-weight:1000;letter-spacing:.05em;min-height:22px;text-align:center;text-transform:uppercase}.npc-outcome-ok{color:var(--color-success);text-shadow:none}.npc-outcome-no,.npc-outcome-timeout{color:var(--color-danger)}.npc-encounter-skip{align-self:center;background:#0000;border:0;color:var(--color-muted);cursor:pointer;font-weight:900}@keyframes npcFirePulse{0%{opacity:.64;transform:translateY(0) scaleX(1)}to{opacity:1;transform:translateY(-10px) scaleX(1.05)}}@keyframes npcDangerBeat{0%{transform:scale(1)}to{transform:scale(1.18)}}@keyframes npcCriticalFrame{0%{opacity:.3}to{opacity:.86}}@keyframes npcHpCritical{0%,to{filter:none}50%{filter:none}}@keyframes npcActionReady{0%{filter:none}to{filter:none}}@keyframes npcNoEmergency{0%{filter:none;transform:translateY(0)}to{filter:none;transform:translateY(-2px)}}@keyframes npcAnswerDrop{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes npcPracticeRepeatNudge{0%,to{transform:translateY(0) scale(1)}36%{transform:translateY(-4px) scale(1.012)}68%{transform:translateY(2px) scale(.996)}}@keyframes npcOutcomePop{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.npc-card-motion.is-repeat-feedback{animation-duration:1ms}}.celebration-overlay{align-items:center;animation:celebrationOverlayIn .26s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:var(--color-overlay);box-sizing:border-box;display:flex;inset:0;justify-content:center;overflow:hidden;overscroll-behavior:contain;padding:24px;position:fixed;z-index:10000}.celebration-popup{animation:celebrationPopupIn .26s cubic-bezier(.2,.8,.2,1);background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:var(--shadow-warm);color:var(--color-text);max-height:100%;overflow-y:auto;padding:34px 28px 30px;position:relative;width:min(420px,100%)}.celebration-popup-level-up{--color-surface:#f5d970;--color-surface-soft:#ffe89c;--color-primary-soft:#ffe89c;--color-line:#b78b36;--color-text:#3f2b0b;--color-primary:#62400c}.celebration-close-btn{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:6px;color:var(--color-primary);cursor:pointer;font-family:inherit;font-size:18px;font-weight:900;height:32px;line-height:1;position:absolute;right:10px;top:10px;transition:background .16s ease,transform .16s ease,color .16s ease;width:32px}.celebration-close-btn:hover{background:var(--color-primary-soft);color:var(--color-text);transform:translateY(-1px)}.celebration-content{align-items:center;display:flex;flex-direction:column;gap:16px;text-align:center}.celebration-visual-stage{align-items:center;display:flex;flex-shrink:0;justify-content:center;overflow:visible;position:relative}.celebration-visual-stage.celebration-visual-stage-wide{height:clamp(92px,20vw,150px);overflow:visible;width:min(420px,calc(100vw - 76px))}.celebration-sprite{animation-fill-mode:forwards;background-position:0 0;background-repeat:no-repeat;filter:drop-shadow(0 10px 18px rgba(0,0,0,.38));image-rendering:pixelated;inset:0;position:absolute}.celebration-sprite.playing{animation-name:celebrationSpritePlay}.celebration-sprite.complete{background-position:0 0;background-position:var(--celebration-sprite-final-x,0) 0}.celebration-video{border-radius:14px;filter:drop-shadow(0 10px 18px rgba(0,0,0,.3))}.celebration-icon,.celebration-video{height:100%;inset:0;object-fit:contain;pointer-events:none;position:absolute;width:100%}.celebration-icon{animation:celebrationIconPop .62s ease-out both;filter:drop-shadow(0 10px 18px rgba(0,0,0,.38));image-rendering:auto;transform-origin:center}.celebration-icon.revealed{opacity:1}.celebration-icon.celebration-icon-wide{height:100%;object-fit:contain;position:static;transform-origin:center;width:100%}.celebration-message h2{color:var(--color-primary);font-size:30px;font-weight:900;letter-spacing:0;margin:0 0 10px}.celebration-subtitle{color:var(--color-text);font-size:18px;font-weight:800;line-height:1.38;margin:0;overflow-wrap:anywhere}.celebration-overlay-floating{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000}.celebration-popup-floating{background:#0000;border:0;box-shadow:none;color:var(--color-text);padding:18px;width:min(420px,100%)}.celebration-popup-floating .celebration-content{gap:10px}.celebration-popup-floating .celebration-message h2,.celebration-popup-floating .celebration-subtitle{background:var(--color-surface);border-radius:8px;box-decoration-break:clone;-webkit-box-decoration-break:clone;display:table;margin-inline:auto;max-width:100%;padding:5px 12px;text-shadow:none}.celebration-popup-floating .celebration-message h2{margin-bottom:2px}.celebration-popup-floating .celebration-subtitle{padding-block:6px}.celebration-popup-floating .celebration-close-btn{background:var(--color-surface-soft);box-shadow:var(--shadow-warm)}.celebration-overlay-transparent-dialog{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000}.celebration-popup-transparent-dialog{background:#0000;border:0;box-shadow:none;padding:18px;width:min(460px,100%)}.celebration-popup-transparent-dialog .celebration-content{gap:12px}.celebration-popup-transparent-dialog .celebration-message h2,.celebration-popup-transparent-dialog .celebration-subtitle{background:var(--color-surface);border-radius:8px;box-decoration-break:clone;-webkit-box-decoration-break:clone;display:table;margin-inline:auto;max-width:100%;padding:5px 12px;text-shadow:none}.celebration-popup-transparent-dialog .celebration-message h2{margin-bottom:2px}.celebration-popup-transparent-dialog .celebration-subtitle{padding-block:6px}.celebration-popup-transparent-dialog .celebration-close-btn{background:var(--color-surface-soft);box-shadow:var(--shadow-warm)}.celebration-popup-speech .celebration-content{align-items:center;flex-direction:row;gap:12px;text-align:left}.celebration-popup-speech .celebration-visual-stage{max-width:28%}.celebration-popup-speech .celebration-icon{object-position:left center}.celebration-popup-speech .celebration-message{background:var(--color-surface);border-radius:16px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.22));flex:1 1;min-width:0;overflow-wrap:anywhere;padding:16px;position:relative}.celebration-popup-speech .celebration-message:before{background:inherit;clip-path:polygon(0 50%,100% 0,100% 100%);content:"";height:20px;left:-11px;position:absolute;top:calc(50% - 10px);width:12px}.celebration-popup-speech .celebration-message h2,.celebration-popup-speech .celebration-subtitle{background:none;display:block;font-size:clamp(14px,4vw,18px);margin-inline:0;padding:0}.celebration-popup-speech .celebration-message h2{margin-bottom:8px}.celebration-overlay.closing{animation:celebrationOverlayOut .26s ease-in forwards}.celebration-popup.closing{animation:celebrationPopupOut .26s ease-in forwards}@keyframes celebrationOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes celebrationOverlayOut{0%{opacity:1}to{opacity:0}}@keyframes celebrationPopupIn{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes celebrationPopupOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(14px) scale(.97)}}@keyframes celebrationIconPop{0%{opacity:0;transform:translateY(8px) scale(.84)}62%{opacity:1;transform:translateY(-4px) scale(1.06)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes celebrationSpritePlay{0%{background-position:0 0}to{background-position:0 0;background-position:var(--celebration-sprite-play-end-x,0) 0}}@media (max-width:480px){.celebration-overlay{padding:18px}.celebration-popup{padding:30px 22px 26px}.celebration-visual-stage{height:104px;width:104px}.celebration-message h2{font-size:25px}.celebration-subtitle{font-size:16px}}@media (prefers-reduced-motion:reduce){.celebration-icon,.celebration-overlay,.celebration-overlay.closing,.celebration-popup,.celebration-popup.closing,.celebration-sprite,.celebration-sprite.playing{animation:none}.celebration-close-btn{transition:none}}.training-achievement-overlay{align-items:center;background:#0000;display:flex;inset:0;justify-content:center;padding:20px;pointer-events:all;position:absolute;z-index:9500}.training-achievement-card{align-items:center;animation:trainingAchievementCard 1s ease-out forwards;background:#0000;border:0;border-radius:0;box-shadow:none;color:var(--color-text);display:flex;flex-direction:column;gap:8px;padding:18px 20px 20px;text-align:center;width:min(320px,86vw)}.training-achievement-sprite{animation:trainingAchievementSprite 1s steps(4) forwards;background-repeat:no-repeat;background-size:320px 80px;height:80px;image-rendering:pixelated;width:80px}.training-achievement-message{background:var(--color-surface);border-radius:8px;box-decoration-break:clone;-webkit-box-decoration-break:clone;color:var(--color-warning);display:table;font-size:20px;font-weight:900;line-height:1.28;margin-inline:auto;max-width:100%;padding:7px 12px;text-shadow:none}@keyframes trainingAchievementSprite{0%{background-position:0 0}to{background-position:-320px 0;background-position:var(--training-achievement-sprite-play-end-x,-320px) 0}}@keyframes trainingAchievementCard{0%{opacity:0;transform:translateY(18px) scale(.92)}16%{opacity:1;transform:translateY(0) scale(1.03)}72%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.98)}}@media (max-width:480px){.training-achievement-card{padding:16px 16px 18px;width:min(280px,88vw)}.training-achievement-message{font-size:16px}}.confirm-dialog-overlay{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:var(--color-overlay);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:3000}.confirm-dialog{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-panel);box-shadow:var(--shadow-warm);color:var(--color-text);max-height:calc(100dvh - 40px);overflow-y:auto;padding:26px 22px 20px;position:relative;width:min(420px,100%)}.confirm-dialog-danger{background:var(--color-surface);border-color:var(--color-danger)}.confirm-dialog-close{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:var(--radius-control);color:var(--color-muted);cursor:pointer;font:inherit;height:var(--control-height);position:absolute;right:12px;top:12px;width:var(--control-height)}.confirm-dialog-close,.confirm-dialog-icon{align-items:center;display:inline-flex;justify-content:center}.confirm-dialog-icon{background:var(--color-primary-soft);border:1px solid var(--color-line);border-radius:50%;color:var(--color-primary);height:58px;margin-bottom:16px;width:58px}.confirm-dialog-danger .confirm-dialog-icon{background:var(--color-danger-soft);border-color:var(--color-danger);color:var(--color-danger)}.confirm-dialog-copy h2{color:var(--color-text);font-size:20px;font-weight:700;letter-spacing:0;line-height:1.4;margin:0}.confirm-dialog-copy p{color:var(--color-muted);font-size:15px;line-height:1.5;margin:10px 0 0}.confirm-dialog-actions{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-top:22px}.confirm-dialog-actions .confirm-dialog-confirm:only-child{grid-column:1/-1}.confirm-dialog-button{border:0;border-radius:var(--radius-control);cursor:pointer;font:inherit;font-size:var(--text-control);font-weight:var(--weight-control);min-height:var(--control-height);padding:10px 12px}.confirm-dialog-cancel{background:var(--color-surface-soft);color:var(--color-text)}.confirm-dialog-confirm{background:var(--color-primary);color:var(--color-on-primary)}.confirm-dialog-danger .confirm-dialog-confirm{background:var(--color-danger);color:var(--color-on-danger)}@media (max-width:520px){.confirm-dialog-overlay{padding:14px}.confirm-dialog{max-height:calc(100dvh - 28px);padding:24px 18px 18px}}.practice-session{background:var(--color-bg);bottom:0;box-sizing:border-box;display:flex;flex-direction:column;left:50%;max-width:600px;overflow:hidden;overscroll-behavior:none;padding:0 12px;position:fixed;top:env(safe-area-inset-top,0);transform:translateX(-50%);width:100%;z-index:100}.practice-session:not(.practice-session-reading){container-type:inline-size}.practice-session-workout{display:contents}.practice-session:not(.practice-session-reading) .practice-session-workout{display:flex;flex:1 1;flex-direction:column;justify-content:center;margin-bottom:env(safe-area-inset-bottom,0);min-height:0;padding-block:8px}.practice-session:not(.practice-session-reading) .practice-session-workout>.practice-card-memo:first-child{margin-top:0}.practice-session:not(.practice-session-reading) .practice-session-bottom,.practice-session:not(.practice-session-reading) .practice-session-footer{padding-bottom:0}.practice-session-memory-trial-first-try{background:var(--color-bg)}.practice-session-memory-trial-first-try .practice-learning-header .page-title-fx{color:var(--color-text);text-shadow:none}.practice-session-memory-trial-first-try .learning-session-clock{color:var(--color-danger);text-shadow:none}.practice-session-memory-trial-first-try .progress-bar{background:var(--color-danger-soft);border:1px solid var(--color-danger)}.practice-session-memory-trial-first-try .progress-bar-fill{background:var(--color-danger);box-shadow:none}.practice-session-memory-trial-first-try .practice-card-type-badge{color:var(--color-success)}.practice-session-memory-trial-first-try .practice-card-repeat-progress{color:var(--color-danger)}.practice-session-memory-trial-first-try .practice-session-card .flashcard-front{--practice-card-tail-color:var(--learning-question-bg);background:var(--learning-question-bg);border-color:var(--learning-question-border);box-shadow:none}.practice-session-memory-trial-first-try .practice-session-card .flashcard-back{--practice-card-tail-color:var(--learning-answer-bg);background:var(--learning-answer-bg);border-color:var(--learning-answer-border);box-shadow:none}.practice-session-memory-trial-first-try .practice-session-card .flashcard-front .flashcard-content,.practice-session-memory-trial-first-try .practice-session-card .flashcard-front .flashcard-side-memo{color:var(--color-text)}.practice-session-memory-trial-first-try .practice-session-card .flashcard-front .flashcard-side-memo{border-top-color:var(--color-danger)}.practice-session-memory-trial-first-try .practice-session-card .flashcard-note-cover{filter:none;opacity:.14}.practice-session-memory-trial-first-try .flashcard-corner-caption-front{background:var(--color-surface-soft);color:var(--color-primary)}.practice-session-memory-trial-first-try .flashcard-corner-caption-quick-test:not(.is-passed):not(.is-expired){background:var(--color-warning-soft);border-color:var(--color-warning);box-shadow:none;color:var(--color-warning)}.practice-session-memory-trial-first-try .flashcard-corner-caption-quick-test:not(.is-passed):not(.is-expired) strong{color:var(--color-warning)}.practice-session-memory-trial-first-try .flashcard-score-hud .session-count-badge{border:1px solid var(--color-danger);box-shadow:none}.practice-session-memory-trial-first-try .flashcard-score-hud .session-count-badge.count-0{background:var(--color-surface-soft);color:var(--color-muted)}.practice-session-memory-trial-first-try .evaluation-panel:not(.grade-updated) .star-btn.filled:not(.quick-limit-muted){color:var(--color-warning);text-shadow:none}.practice-card-memo,.practice-learning-header,.practice-session-bottom,.practice-session-card .flashcard-container{transition:filter .18s ease,opacity .18s ease,transform .18s ease}.practice-session.practice-session-overlay-active .practice-card-memo,.practice-session.practice-session-overlay-active .practice-learning-header,.practice-session.practice-session-overlay-active .practice-session-bottom,.practice-session.practice-session-overlay-active .practice-session-card .flashcard-container{filter:none;opacity:.72;transform:scale(.992)}.practice-loading-overlay{background-color:var(--color-overlay);z-index:200}.npc-encounter-choice,.practice-loading-overlay{align-items:center;display:flex;inset:0;justify-content:center;position:fixed}.npc-encounter-choice{background:var(--color-overlay);box-sizing:border-box;color:var(--color-text);padding:20px;z-index:605}.npc-encounter-choice-panel{background:var(--color-surface);border:2px solid var(--color-primary);border-radius:8px;box-shadow:none;padding:24px 18px 18px;text-align:center;width:min(100%,430px)}.npc-encounter-choice-panel svg{color:var(--color-text);filter:none}.npc-encounter-choice-panel h2{color:var(--color-text);font-size:26px;font-weight:1000;letter-spacing:.03em;margin:10px 0 8px;text-transform:uppercase}.npc-encounter-choice-panel p{color:var(--color-muted);font-size:14px;line-height:1.45;margin:0 0 18px}.npc-encounter-choice-actions{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.npc-encounter-choice-actions button{border:0;border-radius:8px;cursor:pointer;font-size:15px;font-weight:1000;min-height:48px}.npc-choice-fight{background:var(--color-primary);color:var(--color-on-primary)}.npc-choice-skip{background:var(--color-surface-soft);color:var(--color-muted)}.npc-encounter-choice-actions .npc-choice-fight:only-child{grid-column:1/-1}.practice-session-header{flex-shrink:0;padding:10px 0 6px}.practice-session-reading .practice-session-header{padding:6px 0 4px}.practice-session-header h2{color:var(--color-text);font-size:24px;font-weight:700;margin:0 0 8px;text-align:center}.practice-session-header .page-title-fx{display:flex;margin:0 auto 8px;width:fit-content}.practice-session-reading .practice-session-header .page-title-fx{margin-bottom:5px}.practice-header-row{align-items:center;display:flex;justify-content:center;margin-bottom:6px;position:relative}.practice-timer{color:var(--color-primary);font-family:Courier New,monospace;font-size:20px;font-weight:600;gap:8px;letter-spacing:2px;text-align:center}.btn-edit-card,.practice-timer{align-items:center;display:inline-flex}.btn-edit-card{border:1px solid var(--color-line);border-radius:6px;color:var(--color-muted);cursor:pointer;font-size:15px;gap:6px;line-height:1;padding:7px 11px;transition:background .15s,color .15s}.btn-edit-card,.btn-edit-card:hover{background:var(--color-surface-soft)}.btn-edit-card:hover{color:var(--color-text)}.btn-edit-card.btn-level-up-card{border-color:var(--color-success);font-weight:900}.btn-edit-card.btn-level-up-card,.btn-edit-card.btn-level-up-card:hover{background:var(--color-primary);color:var(--color-on-primary)}.btn-edit-card:disabled{cursor:not-allowed;opacity:.5}.btn-edit-card.practice-group-edit{border-radius:999px;flex:0 0 44px;gap:0;height:44px;justify-content:center;min-height:44px;min-width:44px;order:0;padding:0;position:static;width:44px}.progress-bar{background-color:var(--color-surface-soft);border-radius:3px;height:6px;margin-top:6px;overflow:hidden;width:100%}.practice-card-progress{border-radius:999px;bottom:6px;height:4px;left:10px;margin:0;pointer-events:none;position:absolute;right:10px;width:auto;z-index:3}.progress-bar-fill{background:var(--color-primary);height:100%;transition:width .3s ease}.practice-current-note{grid-column-gap:8px;grid-row-gap:4px;align-items:center;background:#0000;border:0;color:var(--color-muted);column-gap:8px;container-name:practice-note;container-type:inline-size;display:grid;flex-wrap:nowrap;font-size:12px;grid-template-columns:44px 44px minmax(0,1fr) 44px 44px;line-height:1.2;margin:4px 0 0;max-width:100%;min-height:44px;padding:0;row-gap:4px;width:100%}.practice-session-reading .practice-current-note{font-size:11px;margin-top:4px}.practice-current-note>.btn-edit-card.practice-group-edit{grid-column:1}.practice-current-note>.practice-card-actions{grid-column:5;grid-row:1;margin-left:0;order:4}.practice-card-actions .flashcard-map-actions-menu{bottom:auto;left:auto;right:0;top:100%}.practice-card-actions .flashcard-map-edit-btn{margin:0}.practice-current-note-name{color:var(--color-text);flex:1 1;font-size:clamp(15px,3.6vw,18px);font-weight:700;grid-column:3;grid-row:1;line-height:1.25;min-width:0;order:1;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.practice-sound-toggle{align-items:center;background:#0000;border:0;border-radius:999px;color:var(--color-text);cursor:pointer;display:inline-flex;flex-shrink:0;grid-column:1;grid-row:1;height:44px;justify-content:center;min-height:44px;min-width:44px;order:0;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease;width:44px}.practice-sound-toggle:hover{background:#0000;transform:translateY(-1px)}.practice-heading-note,.practice-mode-badge{display:none}.practice-sound-toggle.is-on{background:#0000;box-shadow:none;color:var(--color-primary)}.practice-sound-toggle.is-off{color:var(--color-muted)}.practice-current-note .card-listening-button{flex:0 0 44px;grid-column:1;grid-row:1;height:44px;min-height:44px;min-width:44px;order:3;width:44px}.practice-current-note .reading-audio-play{grid-column:4;grid-row:1}.practice-current-note .card-listening-error,.practice-current-note .card-listening-progress,.practice-current-note .reading-audio-error{grid-column:1/-1}.practice-card-type-badge{background:var(--color-success-soft);border:1px solid var(--color-success);border-radius:999px;color:var(--color-success);flex-shrink:0;font-size:11px;font-weight:850;line-height:1.2;padding:2px 7px;text-transform:uppercase}.practice-card-type-short,.practice-card-type-simple{background:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted)}.practice-card-type-normal,.practice-card-type-sentence{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success)}.practice-card-type-reading{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.practice-card-type-label-compact{display:none}@container practice-note (max-width: 270px){.practice-card-type-label-full{display:none}.practice-card-type-label-compact{display:inline}.practice-card-type-badge{min-width:23px;padding-inline:6px;text-align:center}}.practice-session-card{align-items:stretch;display:flex;flex:1 1;min-height:0;overflow:hidden;position:relative;transition:transform .3s ease,opacity .3s ease}.practice-session-card:not(.practice-session-card-reading){--practice-card-width:100cqw;--practice-card-top-gap:6px;--practice-card-height-limit:calc(var(--practice-card-width) + var(--practice-card-top-gap) + 14px);flex:0 1 auto;height:var(--practice-card-height-limit);max-height:var(--practice-card-height-limit)}.practice-session-workout>.practice-session-card:first-child{--practice-card-top-gap:0px}.practice-session-card-reading{-webkit-overflow-scrolling:touch;align-items:flex-start;overflow-y:auto;overscroll-behavior:contain}.practice-session-card .flashcard-container{align-items:stretch;flex:1 1;padding:6px 0;width:100%}.practice-session-card:not(.practice-session-card-reading)>.flashcard-container{padding-bottom:14px;padding-top:var(--practice-card-top-gap)}.practice-session-card .flashcard{height:100%;width:100%}.practice-session-card .flashcard-front{--practice-card-tail-color:var(--learning-question-bg)}.practice-session-card .flashcard-back{--practice-card-tail-color:var(--learning-answer-bg)}.practice-session-card:not(.practice-session-card-reading)>.flashcard-container{animation:practiceCardSlideInUp .3s ease-out 0ms both;animation:practiceCardSlideInUp .3s ease-out var(--practice-context-step-delay,0ms) both;backface-visibility:hidden}.practice-session-card.slide-left{animation:slideOutUp .3s ease forwards}.practice-session-card.slide-right{animation:slideOutDown .3s ease forwards}@keyframes slideOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}@keyframes slideOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}@keyframes practiceCardSlideInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.practice-card-memo{--practice-context-bubble-bg:var(--color-surface);--practice-context-bubble-border:var(--color-line);align-items:flex-start;background:var(--practice-context-bubble-bg);border:1px solid var(--practice-context-bubble-border);border-radius:16px;box-shadow:none;color:var(--color-text);display:flex;flex-shrink:0;font-size:14px;gap:0;line-height:1.5;margin:7px 0 5px;padding:11px 14px}.practice-card-memo-label{align-items:center;color:var(--color-primary);display:inline-flex;flex-shrink:0;font-size:13px;font-weight:850;gap:6px;letter-spacing:.02em;margin-top:1px;text-transform:uppercase}.practice-card-memo-text{color:var(--color-text);font-weight:650;white-space:pre-wrap;word-break:break-word}.practice-context-sequence-step{animation:practiceContextStepIn .34s ease-out 0ms forwards,practiceContextHighlight 1s ease-out .26s;animation:practiceContextStepIn .34s ease-out var(--practice-context-step-delay,0ms) forwards,practiceContextHighlight 1s ease-out calc(var(--practice-context-step-delay, 0ms) + .26s);backface-visibility:hidden;isolation:isolate;max-width:82%;opacity:0;overflow:visible;position:relative;transform:translateY(8px) scale(.992);width:fit-content}.practice-context-sequence-step:before{background:var(--practice-context-bubble-bg);bottom:12px;content:none;display:none;height:20px;pointer-events:none;position:absolute;width:13px;z-index:0}.practice-context-sequence-step.practice-context-sequence-step-1,.practice-context-sequence-step.practice-context-sequence-step-3{align-self:flex-start;margin-right:auto}.practice-context-sequence-step.practice-context-sequence-step-1:before,.practice-context-sequence-step.practice-context-sequence-step-3:before{clip-path:polygon(100% 0,100% 100%,0 50%);left:-12px}.practice-context-sequence-step.practice-context-sequence-step-2{align-self:flex-end;margin-left:auto}.practice-context-sequence-step.practice-context-sequence-step-2:before{clip-path:polygon(0 0,100% 50%,0 100%);right:-12px}.practice-context-sequence-step>*{position:relative;z-index:1}.practice-context-sequence-step:after{animation:none;background:#0000;border-radius:inherit;content:"";inset:0;pointer-events:none;position:absolute;z-index:2}.practice-context-sequence-card>.flashcard-container{flex:0 1 92%;width:92%}.practice-context-sequence-card:not(.practice-session-card-reading){--practice-card-width:92cqw}.practice-context-sequence-card.practice-context-sequence-step-1,.practice-context-sequence-card.practice-context-sequence-step-3{justify-content:flex-start}.practice-context-sequence-card.practice-context-sequence-step-2{justify-content:flex-end}.practice-context-sequence-card{overflow:visible}.practice-context-sequence-card .flashcard-back:after,.practice-context-sequence-card .flashcard-front:after{background:var(--practice-card-tail-color);bottom:20px;content:none;display:none;height:20px;pointer-events:none;position:absolute;width:12px;z-index:1}.practice-context-sequence-card.practice-context-sequence-step-1 .flashcard-front:after,.practice-context-sequence-card.practice-context-sequence-step-3 .flashcard-front:after{clip-path:polygon(100% 0,100% 100%,0 50%);left:-12px}.practice-context-sequence-card.practice-context-sequence-step-1 .flashcard-back:after,.practice-context-sequence-card.practice-context-sequence-step-2 .flashcard-front:after,.practice-context-sequence-card.practice-context-sequence-step-3 .flashcard-back:after{clip-path:polygon(0 0,100% 50%,0 100%);right:-12px}.practice-context-sequence-card.practice-context-sequence-step-2 .flashcard-back:after{clip-path:polygon(100% 0,100% 100%,0 50%);left:-12px}.practice-context-sequence-step-1{--practice-context-step-delay:0ms}.practice-context-sequence-step-2{--practice-context-step-delay:500ms}.practice-context-sequence-step-3{--practice-context-step-delay:680ms}@keyframes practiceContextStepIn{to{opacity:1;transform:translateY(0) scale(1)}}@keyframes practiceContextHighlight{0%,to{border-color:var(--color-primary);box-shadow:none;filter:none}20%,58%{border-color:var(--color-primary);box-shadow:none;filter:none}}@keyframes practiceContextWhiteWash{0%{opacity:.9}24%{opacity:.72}to{opacity:0}}@media (prefers-reduced-motion:reduce){.practice-context-sequence-step,.practice-session-card:not(.practice-session-card-reading)>.flashcard-container{animation:none;opacity:1;transform:none}.practice-context-sequence-step:after{animation:none;display:none}}@media (max-width:480px){.practice-context-sequence-step{max-width:88%}.practice-context-sequence-card>.flashcard-container{flex-basis:95%;width:95%}.practice-context-sequence-card:not(.practice-session-card-reading){--practice-card-width:95cqw}}.practice-session-bottom{flex-shrink:0;padding-bottom:env(safe-area-inset-bottom,8px)}.practice-evaluation-slot{display:flow-root}.practice-first-encounter-note{align-items:center;background:var(--color-success-soft);border:1px solid var(--color-success);border-radius:8px;color:var(--color-text);display:flex;gap:10px;justify-content:center;margin-top:5px;min-height:52px;padding:9px 14px;text-align:left}.practice-first-encounter-note strong{color:var(--color-success);flex:0 0 auto;font-size:13px;text-transform:uppercase}.practice-first-encounter-note span{font-size:13px;line-height:1.35}@media (max-width:480px){.practice-first-encounter-note{align-items:flex-start;flex-direction:column;gap:2px;min-height:48px;padding:7px 12px}}.practice-card-info{align-items:center;color:var(--color-muted);display:flex;flex-wrap:wrap;font-size:13px;gap:4px;justify-content:center;padding:4px 0 2px}.practice-card-info span{align-items:center;display:flex;gap:4px;white-space:nowrap}.practice-card-level{font-size:11px}.practice-card-level,.practice-card-repeat-progress{color:var(--color-primary);font-weight:600}.practice-card-progress-reading{border-radius:999px;bottom:auto;height:4px;left:auto;margin:0 0 4px;position:static;right:auto;width:100%}.practice-session-footer{padding:6px 0 4px;text-align:center}.btn-end-session{align-items:center;background:var(--color-primary-soft);border:1px solid var(--color-primary);border-radius:8px;box-shadow:none;color:var(--color-primary);cursor:pointer;display:inline-flex;font-size:15px;font-weight:650;gap:8px;justify-content:center;min-height:44px;padding:10px;transition:background .2s ease,border-color .2s ease,transform .2s ease;width:100%}.btn-end-session:hover{box-shadow:none;filter:none}.btn-end-session.is-encouraging,.btn-end-session:hover{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.btn-end-session.is-encouraging{font-weight:750}.btn-end-session:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.btn-end-session:active{box-shadow:none;filter:none;transform:translateY(1px)}.btn-end-session:disabled{box-shadow:none;cursor:not-allowed;filter:none;opacity:.58}.practice-session-empty{padding:40px;text-align:center}.practice-session-empty p{color:var(--color-muted);font-size:18px;margin-bottom:20px}.practice-session-empty button{background:var(--color-primary);border:none;border-radius:5px;color:var(--color-on-primary);cursor:pointer;font-size:16px;padding:10px 30px}.practice-edit-modal-overlay{background:var(--color-overlay);overflow:hidden;overscroll-behavior:none;touch-action:auto}.practice-edit-modal{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}.level-up-modal-level-caption{color:var(--color-primary);font-size:.82rem;font-weight:600;margin:4px 0 0}.practice-edit-modal .flashcard-form-container,.practice-edit-modal .level-up-form-container{margin:0;max-width:none}@media (max-width:600px){.practice-session-header{grid-gap:6px 10px;align-items:center;display:grid;gap:6px 10px;grid-template-areas:"title" "tools";grid-template-columns:minmax(0,1fr);padding:8px 8px 4px}.practice-session-reading .practice-session-header{padding:8px 8px 4px}.practice-session-header .page-title-fx{align-items:center;font-size:clamp(15px,3.6vw,18px);gap:8px;grid-area:title;justify-content:center;letter-spacing:0;line-height:1.25;margin:0;min-width:0;overflow-wrap:anywhere;padding:0;text-align:center;text-transform:none;width:auto}.practice-session-reading .practice-session-header .page-title-fx{margin:0}.practice-session-header .page-title-fx:after,.practice-session-header .page-title-fx:before{display:none}.practice-header-row{grid-area:tools;justify-content:center;margin:0;pointer-events:none}.practice-timer{font-feature-settings:"tnum";font-size:clamp(12px,3vw,15px);font-variant-numeric:tabular-nums;gap:5px;letter-spacing:0;line-height:1.25;white-space:nowrap}.practice-session-header>.practice-current-note{column-gap:6px;grid-area:tools;margin:0}.practice-current-note>.practice-current-note-name,.practice-session-header .practice-phase-full{display:none}.practice-mode-badge{border-radius:6px;display:inline-flex;flex-shrink:0;font-size:12px;font-weight:650;line-height:1.3;padding:4px 8px}.practice-mode-badge.is-fluency{background:var(--color-warning-soft);color:var(--color-warning)}.practice-mode-badge.is-core{background:var(--color-primary-soft);color:var(--color-primary)}.practice-mode-badge.is-quick{background:var(--color-success-soft);color:var(--color-success)}.practice-heading-note{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.practice-edit-modal-overlay{padding:0}.practice-edit-modal{margin:0}.practice-edit-modal .flashcard-form-container,.practice-edit-modal .level-up-form-container{border-radius:0;box-shadow:none;min-height:auto;padding:12px 12px calc(18px + env(safe-area-inset-bottom))}.practice-edit-modal .form-actions{background:var(--color-surface);border-top:1px solid var(--color-line);box-shadow:none;margin:8px 0 0;padding:10px 0 0;position:static}.practice-edit-modal .flashcard-form{gap:12px}.practice-edit-modal .form-textarea{min-height:84px}}.practice-learning-header .page-title-fx{align-items:center;color:var(--color-text);display:flex;flex-direction:column;font-size:clamp(15px,3.6vw,20px);gap:3px;line-height:1.3;margin:0;padding:0;width:100%}.practice-learning-header .page-title-fx:after,.practice-learning-header .page-title-fx:before{display:none}.practice-learning-header .practice-heading-note{color:var(--color-muted);display:block;font-size:13px;font-weight:500;max-width:100%;overflow-wrap:anywhere}.practice-learning-header .practice-mode-badge{display:none}.practice-audio-tools{align-items:center;display:flex;gap:4px;min-width:0;position:relative}.practice-audio-tools>.reading-audio-controls{position:relative}.practice-audio-tools .reading-audio-error{background:var(--color-danger-soft);left:0;padding:6px 8px;position:absolute;top:calc(100% + 4px);width:200px;z-index:12}.session-summary{box-sizing:border-box;display:flex;flex:1 1;flex-direction:column;gap:clamp(14px,2.2dvh,24px);justify-content:center;margin:0 auto;max-width:min(880px,100%);min-height:100%;overflow:hidden;overscroll-behavior:none;padding:clamp(16px,3dvh,28px) 16px;touch-action:manipulation;width:100%}.session-summary *,.session-summary :after,.session-summary :before{box-sizing:border-box;min-width:0}.summary-reveal{animation:summaryStepIn .42s ease-out forwards;animation-delay:0ms;animation-delay:var(--summary-reveal-delay,0ms);backface-visibility:hidden;opacity:0;transform:translateY(10px) scale(.985);transform-style:flat}.summary-reveal-step-1{--summary-reveal-delay:0ms}.summary-reveal-step-2{--summary-reveal-delay:180ms}.summary-reveal-step-3{--summary-reveal-delay:300ms}.summary-reveal-step-4{--summary-reveal-delay:420ms}.summary-reveal-step-5{--summary-reveal-delay:540ms}.summary-reveal-step-6{--summary-reveal-delay:660ms}.summary-reveal-step-7{--summary-reveal-delay:820ms}.summary-reveal-step-8{--summary-reveal-delay:960ms}.summary-reveal-step-9{--summary-reveal-delay:1100ms}.summary-reveal-step-10{--summary-reveal-delay:1240ms}.summary-reveal-step-11{--summary-reveal-delay:1380ms}@keyframes summaryStepIn{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){.summary-reveal{animation:none;opacity:1;transform:none}}.session-summary-header{flex-shrink:0;text-align:center}.session-summary-header h2{color:var(--color-success);font-size:clamp(26px,5vw,36px);line-height:1.15;margin:0}.session-summary-end-note{color:var(--color-muted);font-size:clamp(14px,2.8vw,16px);font-weight:700;line-height:1.45;margin:10px auto 0;max-width:560px}.infinity-mode-badge{align-items:center;background:var(--color-surface);border-radius:20px;box-shadow:var(--shadow-warm);display:inline-flex;gap:8px;margin-top:12px;padding:8px 16px}.infinity-mode-badge .infinity-symbol{animation:burning 1.5s ease-in-out infinite;color:var(--color-text);font-size:24px;font-weight:700}.infinity-mode-badge .infinity-label{color:var(--color-text);font-size:14px;font-weight:600;letter-spacing:1px;text-transform:uppercase}@keyframes burning{0%,to{text-shadow:none}50%{text-shadow:none}}.session-summary-stats{grid-gap:clamp(10px,1.8dvh,16px);display:grid;flex-shrink:0;gap:clamp(10px,1.8dvh,16px);grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.stat-card{grid-gap:7px;align-content:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:var(--shadow-warm);display:grid;gap:7px;justify-items:center;min-height:clamp(118px,16dvh,156px);padding:clamp(14px,2.2dvh,20px) 12px;text-align:center}.stat-icon{color:var(--color-gold)}.stat-value{font-size:clamp(30px,8vw,46px)}.stat-value-time{font-family:Courier New,monospace;font-size:clamp(22px,6vw,34px)}.record-label,.stat-label{color:var(--color-muted);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.session-summary-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;width:100%}.session-summary-actions .btn-back,.session-summary-actions .btn-new-session{min-width:min(190px,100%)}.session-summary-actions .btn-result-home{align-items:center;border-radius:8px;display:inline-flex;font-size:16px;font-weight:950;gap:10px;justify-content:center;min-height:52px;width:100%}.session-summary-actions .btn-result-home,.session-summary-actions .btn-result-home:hover{background:var(--color-primary);box-shadow:var(--shadow-warm);color:var(--color-on-primary)}.session-summary-actions .btn-result-home:hover{filter:brightness(1.04)}.session-summary-actions .btn-result-home:focus,.session-summary-actions .btn-result-home:focus-visible{background:var(--color-primary);color:var(--color-on-primary)}.session-summary-actions .btn-result-home:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.session-summary-time{grid-gap:clamp(10px,1.8dvh,16px);display:grid;flex-shrink:0;gap:clamp(10px,1.8dvh,16px);grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.record-card{align-content:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;display:grid;min-height:clamp(106px,14dvh,142px);padding:clamp(14px,2dvh,20px)}.record-label{color:var(--color-primary);margin-bottom:12px}.record-values{grid-gap:8px 12px;align-items:baseline;display:grid;gap:8px 12px;grid-template-columns:minmax(0,1fr) max-content}.record-values span{color:var(--color-muted);font-size:13px;font-weight:700}.record-values strong{font-feature-settings:"tnum";color:var(--color-success);font-family:Courier New,monospace;font-size:17px;font-variant-numeric:tabular-nums;min-width:4ch;overflow-wrap:normal;text-align:right;white-space:nowrap;word-break:keep-all}.session-summary-no-evaluations{background-color:var(--color-surface-soft);border-radius:8px;padding:24px;text-align:center}.session-summary-empty p,.session-summary-no-evaluations p{color:var(--color-muted);font-size:16px;margin:0}.session-summary-empty{padding:40px;text-align:center}@media (max-width:760px){.session-summary{gap:clamp(10px,1.8dvh,16px);max-width:100vw;padding:clamp(14px,2.4dvh,22px) 12px}.session-summary-stats{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{gap:6px;min-height:clamp(92px,13.5dvh,122px);padding:clamp(10px,1.8dvh,16px) 8px}.stat-value{font-size:28px}.stat-value-time{font-size:21px}.record-label,.stat-label{font-size:10px}.session-summary-time{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.record-card{min-height:clamp(96px,13dvh,118px);padding:clamp(10px,1.6dvh,14px);padding-inline:10px}.record-label{margin-bottom:8px}.record-values{gap:5px 4px}.record-values span{font-size:11px}.record-values strong{font-size:14px}.session-summary-actions{display:flex;gap:8px;margin-top:clamp(2px,1dvh,10px)}.session-summary-actions .btn-back,.session-summary-actions .btn-new-session{min-width:min(180px,100%);padding-inline:10px}.session-summary-actions .btn-result-home{background:var(--color-primary);color:var(--color-on-primary);min-width:100%}}@media (max-width:360px){.session-summary{justify-content:flex-start}.stat-card{min-height:64px}}.practice-player-error,.practice-player-loading,.practice-player-page{background:var(--color-bg);background:var(--practice-player-background,var(--color-bg));color:var(--color-text);margin:0 auto;min-height:100vh;padding:22px 20px 32px;width:min(100%,760px)}.practice-player-page{--practice-player-inline-padding:20px;--practice-player-top-padding:22px;--practice-player-controls-row-height:66px;align-items:center;display:flex;flex-direction:column;gap:13px;height:calc(100dvh - env(safe-area-inset-top, 0px));min-height:0;overflow:hidden;padding-bottom:calc(32px + var(--practice-player-controls-row-height));position:relative}.practice-player-page.has-note-theme{--practice-player-background:var(--note-theme-bottom-light,var(--note-theme-light));--practice-player-top-background:var(--note-theme-top,var(--note-theme-top-light,var(--note-theme-light)));transition:background-color .22s ease}:root[data-theme=dark] .practice-player-page.has-note-theme{--practice-player-background:var(--note-theme-bottom-dark,var(--note-theme-dark));--practice-player-top-background:var(--note-theme-top,var(--note-theme-top-dark,var(--note-theme-dark)))}.practice-player-page.has-card-content{padding-top:0}.practice-player-header{display:grid;min-height:48px;place-items:center;position:relative;width:100%}.practice-player-header-stats{align-items:center;display:flex;gap:15px;justify-content:center;min-width:0}.practice-player-timer{font-feature-settings:"tnum";align-items:center;color:var(--color-primary);display:inline-flex;font-variant-numeric:tabular-nums;font-weight:500;gap:7px}.practice-player-track-count{font-feature-settings:"tnum";color:var(--color-muted);font-size:.82rem;font-variant-numeric:tabular-nums}.practice-player-album{display:grid;flex:1 1 auto;min-height:0;place-items:center;position:relative;width:100%}.practice-player-cover{aspect-ratio:1;background:var(--color-surface);border:1px solid var(--color-primary);border-radius:5px;box-shadow:none;color:var(--color-primary);display:grid;overflow:hidden;place-items:center;position:relative;width:min(70vw,330px,45dvh)}.practice-player-cover img{display:block;height:100%;object-fit:cover;width:100%}.practice-player-page.has-card-content .practice-player-header{color:var(--color-on-image);left:var(--practice-player-inline-padding);position:absolute;text-shadow:none;top:var(--practice-player-top-padding);width:calc(100% - var(--practice-player-inline-padding)*2);z-index:4}.practice-player-page.has-card-content .practice-player-album{margin-inline:calc(var(--practice-player-inline-padding)*-1);min-height:min(20dvh,120px);width:calc(100% + var(--practice-player-inline-padding)*2)}.practice-player-page.has-card-content .practice-player-cover{aspect-ratio:auto;border:0;border-radius:0 0 5px 5px;box-shadow:none;height:100%;min-height:inherit;width:100%}.practice-player-page.has-card-content .practice-player-cover:after{background:linear-gradient(180deg,var(--color-bg) 0,color-mix(in srgb,var(--color-bg) 48%,#0000) 2.5%,#0000 6%,#0000 68%,color-mix(in srgb,var(--color-bg) 18%,#0000) 84%,var(--color-bg) 100%);background:linear-gradient(180deg,var(--practice-player-top-background,var(--practice-player-background,var(--color-bg))) 0,color-mix(in srgb,var(--practice-player-top-background,var(--practice-player-background,var(--color-bg))) 48%,#0000) 2.5%,#0000 6%,#0000 68%,color-mix(in srgb,var(--practice-player-background,var(--color-bg)) 18%,#0000) 84%,var(--practice-player-background,var(--color-bg)) 100%);content:"";inset:0;pointer-events:none;position:absolute;z-index:1}.practice-player-page.has-card-content .practice-player-cover-score,.practice-player-page.has-card-content .practice-player-cover>svg,.practice-player-page.has-card-content .practice-player-note-name{z-index:2}.practice-player-page .practice-player-cover.is-contained{aspect-ratio:auto;border:0;border-radius:16px;left:50%;max-height:calc(100% - 32px);max-width:calc(100% - 32px);min-height:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.practice-player-page .practice-player-cover.is-contained img{object-fit:contain}.practice-player-page .practice-player-cover.is-contained:after{content:none}.practice-player-note-name{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0c0c0bc7;border-radius:3px;bottom:9px;color:var(--color-on-image);font-size:.78rem;font-weight:400;line-height:1.3;max-width:calc(100% - 18px);overflow:hidden;padding:4px 7px;position:absolute;right:9px;text-overflow:ellipsis;white-space:nowrap}.practice-player-cover-score{animation:practice-player-cover-score-burst 1s ease-out both;background:var(--color-success-soft);border:1px solid var(--color-success);border-radius:5px;box-shadow:none;color:var(--color-success);font-size:1.55rem;font-weight:850;left:50%;line-height:1;min-width:72px;padding:7px 12px;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);z-index:2}@keyframes practice-player-cover-score-burst{0%{opacity:0;transform:translate(-50%,-35%) scale(.72)}24%{opacity:1;transform:translate(-50%,-50%) scale(1.18)}70%{opacity:1;transform:translate(-50%,-58%) scale(1)}to{opacity:0;transform:translate(-50%,-78%) scale(.94)}}.practice-player-content{background:#0000;border:0;max-height:min(40vh,370px);min-height:176px;overflow:auto;width:100%}.practice-player-content.is-card{display:flex;flex:0 1 auto;flex-direction:column;justify-content:flex-start;max-height:45%;min-height:0;overflow-y:auto;overscroll-behavior-y:contain}.practice-player-copy{align-items:center;color:var(--color-muted);display:flex;font-weight:400;min-height:36px;min-width:0;padding:4px 2px;transition:color .18s ease,opacity .18s ease}.practice-player-copy.is-question{color:var(--color-text)}.practice-player-copy .markdown-text{font-size:1.04rem;font-weight:400;line-height:1.42;width:100%}.practice-player-copy .markdown-text p{margin:0}.practice-player-copy .markdown-text strong,.practice-player-reading-text strong{font-weight:400}.practice-player-copy.is-active{color:var(--color-primary)}.practice-player-copy.is-active .markdown-text{font-size:1.09rem}.practice-player-reading-heading{background:var(--color-bg);background:var(--practice-player-background,var(--color-bg));padding:10px 2px 12px;position:static;text-align:center}.practice-player-page.has-reading-content .practice-player-album{margin-bottom:8px;min-height:0}.practice-player-page.has-reading-content .practice-player-cover{height:min(58vw,260px,30dvh);max-width:100%;width:min(58vw,260px,30dvh)}.practice-player-page.has-reading-content .practice-player-cover img{inset:0;object-fit:contain;position:absolute}.practice-player-page.has-reading-content .practice-player-content{flex:1 1 auto;max-height:none;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain}.practice-player-page.has-reading-content .practice-player-header,.practice-player-page.has-reading-content .practice-player-status,.practice-player-page.has-reading-content .practice-player-step-bar{flex-shrink:0}.practice-player-reading-heading h2{font-size:1rem;font-weight:400;margin:3px 0 0}.practice-player-reading-text{color:var(--color-text);font-size:1rem;font-weight:400;line-height:1.72;padding:8px 6px 20px;transition:color .18s ease}.practice-player-reading-text>*+*{margin-top:18px}.practice-player-reading-text .reading-practice-speech-row{padding:4px}.practice-player-reading-text .reading-practice-story-row{padding:8px}.practice-player-reading-text .reading-speech-with-avatar{max-width:94%}.practice-player-reading-text .reading-practice-speech-bubble{cursor:default}.practice-player-audio-progress,.practice-player-status{align-items:center;color:var(--color-muted);display:flex;font-size:.78rem;gap:10px;justify-content:space-between;width:100%}.practice-player-step-count{font-feature-settings:"tnum";color:var(--color-primary);font-variant-numeric:tabular-nums}.practice-player-step-bar{background:var(--color-surface-soft);border-radius:2px;height:4px;overflow:hidden;width:100%}.practice-player-step-bar>div{background:var(--color-success);height:100%;transition:width .18s ease}.practice-player-audio-progress input{accent-color:var(--color-primary);flex:1 1;min-width:0}.practice-player-notice{color:var(--color-primary);font-size:.75rem;min-height:20px;text-align:center;width:100%}.practice-player-controls{grid-gap:20px;align-items:center;display:grid;flex-shrink:0;gap:20px;grid-template-columns:repeat(3,64px);justify-content:center;min-height:var(--practice-player-controls-row-height);width:min(100%,290px)}.practice-player-main-control,.practice-player-skip-control{background:#0000;border:0;border-radius:0;color:var(--color-text);cursor:pointer;display:grid;height:56px;padding:0;place-items:center;transition:color .15s ease,transform .15s ease,opacity .15s ease;width:56px}.practice-player-main-control{color:var(--color-text);height:64px;width:64px}.practice-player-main-control.is-playing{background:#0000;color:var(--color-primary)}.practice-player-main-control:hover:not(:disabled),.practice-player-skip-control:hover:not(:disabled){color:var(--color-primary);transform:translateY(-1px)}.practice-player-main-control:disabled,.practice-player-skip-control:disabled{cursor:default;opacity:.28}.practice-player-end{left:0;position:absolute;right:auto;top:0}.practice-player-error button{align-items:center;background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:5px;color:var(--color-muted);cursor:pointer;display:inline-flex;font:inherit;gap:8px;justify-content:center;min-height:42px;padding:9px 18px}.practice-player-error-detail{font-size:.86rem;max-width:32rem;opacity:.78}.practice-player-preparation-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.72}.practice-player-error-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.practice-player-saving{background:var(--color-surface);display:grid;inset:0;place-items:center;position:absolute;z-index:5}.practice-player-error,.practice-player-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;text-align:center}.practice-player-error p{color:var(--color-muted);max-width:480px}.practice-player-results{min-height:100vh}@media (max-width:620px){.practice-player-page{--practice-player-inline-padding:14px;--practice-player-top-padding:15px;gap:11px;padding:15px 14px calc(24px + var(--practice-player-controls-row-height))}.practice-player-header-stats{gap:10px}.practice-player-timer{font-size:.84rem}.practice-player-album{min-height:0}.practice-player-cover{width:min(70vw,310px,44dvh)}.practice-player-note-name{font-size:.73rem}.practice-player-content{max-height:min(39vh,330px);min-height:0}.practice-player-copy{min-height:34px;padding:3px 2px}.practice-player-controls{gap:17px;grid-template-columns:repeat(3,58px)}}@media (max-width:440px){.practice-player-header{gap:4px;grid-template-rows:auto auto}.practice-player-end{grid-row:1;justify-self:start;position:static}.practice-player-header-stats{grid-row:2;justify-self:center}}.practice-player-page.has-card-content .practice-player-header-stats{background:#0c0c0bc7;border-radius:6px;padding:6px 10px}.practice-player-page.has-card-content .practice-player-timer,.practice-player-page.has-card-content .practice-player-track-count{color:var(--color-on-image)}.practice-player-page.has-card-content .practice-player-end{background:#0c0c0bc7;border-color:#0000;color:var(--color-on-image)}.practice-player-page.has-card-content .practice-player-end:hover:not(:disabled){background:#0c0c0be6;color:var(--color-on-image)}.note-card-frame{min-width:0;position:relative}.note-card{aspect-ratio:4/5;background-color:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:none;cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:0;overflow:hidden;padding:0;position:relative;text-align:left;touch-action:pan-y;transition:all .2s ease;width:100%}.note-card:hover{border-color:var(--color-primary);box-shadow:none;transform:translateY(-2px)}.note-card:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}.note-card:active{transform:translateY(0)}.note-card-move-enabled .note-card-cover{box-shadow:none;outline:2px solid var(--color-success);outline-offset:2px}.note-card-cover{background-color:var(--color-surface);display:block;height:100%;inset:0;min-height:0;overflow:hidden;position:absolute;width:100%}.note-card-cover-image{display:block;height:100%;object-fit:cover;width:100%}.note-card-default-cover-image{filter:saturate(.94) brightness(.96)}.note-card-disabled .note-card-cover-image{filter:grayscale(.72) saturate(.3) brightness(.56) contrast(.88)}.note-card-disabled{background-color:var(--color-surface-soft);border-color:var(--color-line);box-shadow:none}.note-card-disabled .note-card-cover:after{background:#0000;box-shadow:none;content:"";inset:0;pointer-events:none;position:absolute;z-index:1}.note-card-disabled .note-card-info{background-color:var(--color-surface-soft)}.note-card-disabled .note-card-meta,.note-card-disabled .note-card-title{color:var(--color-muted)}.note-card-flags{align-items:flex-start;display:flex;flex-direction:column;gap:4px;left:0;position:absolute;top:0;z-index:2}.note-card-new-flag{background:var(--color-primary);border-radius:0 0 6px 0;color:var(--color-on-primary);font-size:11px;font-weight:950;letter-spacing:.06em;padding:5px 8px;text-transform:uppercase}.note-card-disabled-mark{align-items:center;-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--color-surface);border:1px solid var(--color-line);border-radius:0 5px 5px 0;color:var(--color-muted);display:inline-flex;height:28px;justify-content:center;width:30px}.note-card-completion{bottom:6px;left:8px;pointer-events:none;position:absolute;right:8px;z-index:5}.note-card-completion-line{display:flex}.note-card-completion-track{background:var(--color-success-soft);border-radius:999px;box-shadow:none;flex:1 1;height:4px;overflow:hidden}.note-card-completion-track span{background:var(--color-success);border-radius:inherit;display:block;height:100%}.note-card-completion-complete{bottom:auto;display:flex;justify-content:center;top:50%;transform:translateY(-50%)}.note-card-completion-stamp{align-items:center;background:var(--color-surface);border:2px solid var(--color-primary);border-radius:4px;box-shadow:none;color:var(--color-primary);display:inline-flex;font-size:12px;font-weight:950;justify-content:center;letter-spacing:.08em;min-height:24px;min-width:112px;text-transform:uppercase;transform:rotate(-2deg)}.note-card-info{grid-gap:5px;background:var(--color-overlay);border-top:0;bottom:0;box-sizing:border-box;display:grid;flex-shrink:0;gap:5px;left:0;min-width:0;padding:12px;position:absolute;right:0;width:100%;z-index:4}.note-card-title-row{display:contents}.note-card-title{color:var(--color-on-image);display:block;font-size:15px;font-weight:850;line-height:1.25;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-card-options-area{position:absolute;right:7px;top:7px;z-index:7}.note-card-options-btn{align-items:center;background:#0000;border:0;border-radius:999px;color:var(--color-muted);cursor:pointer;display:inline-flex;height:30px;justify-content:center;padding:0;width:30px}.note-card-options-btn:focus,.note-card-options-btn:hover{background:var(--color-surface-soft);border-color:var(--color-focus);color:var(--color-text);outline:none}.note-card-menu{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:none;display:grid;min-width:128px;padding:6px;position:absolute;right:0;top:36px;z-index:8}.note-card-menu button{background:#0000;border:0;border-radius:6px;color:var(--color-text);cursor:pointer;font-size:13px;font-weight:800;padding:9px 10px;text-align:left}.note-card-menu button:focus,.note-card-menu button:hover{background:var(--color-primary-soft);color:var(--color-primary);outline:none}.note-card-menu button:focus-visible,.note-card-options-btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.note-card-meta{align-items:center;color:var(--color-on-image);display:flex;flex-wrap:wrap;font-size:12px;gap:5px 8px;line-height:1.35}.note-card-menu button:disabled,.note-card-menu button:disabled:hover{background:#0000;color:var(--color-muted);cursor:not-allowed}.note-card-count{align-items:center;display:inline-flex;font-weight:800;gap:3px}.note-card-count,.note-card-date,.note-card-grade{color:var(--color-on-image)}.note-card-grade{align-items:center;display:inline-flex;gap:3px}@media (max-width:600px){.note-card{gap:0}.note-card-title{font-size:14px}.note-card-meta{font-size:11px}}@media (prefers-reduced-motion:reduce){.note-card{transition:none}}.note-list-container{background:#0000;border:0;border-radius:0;box-shadow:none;margin:0 auto;max-width:1200px;padding:0;width:100%}.note-list-count{background-color:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:12px;color:var(--color-muted);display:block;font-size:14px;font-weight:750;margin:0 0 10px auto;padding:4px 12px;width:max-content}.note-list-summary{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-bottom:10px}.note-list-summary .note-list-count{box-sizing:border-box;font-size:13px;font-weight:700;margin:0;order:-1}.note-list-completed-toggle,.note-list-summary .note-list-count{align-items:center;display:inline-flex;min-height:36px;padding:6px 10px}.note-list-completed-toggle{background:#0000;border:1px solid var(--color-line);border-radius:12px;color:var(--color-muted);cursor:pointer;font:inherit;font-size:13px;font-weight:700;gap:6px}.note-list-completed-toggle[aria-pressed=true]{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.note-list-completed-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.note-list-filter-empty{color:var(--color-muted);padding:24px 12px;text-align:center}.note-list-loading{align-items:center;color:var(--color-muted);display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.note-list-spinner{animation:spin 1s linear infinite;border-top:4px solid var(--color-line);border:4px solid var(--color-line);border-radius:50%;border-top-color:var(--color-primary);height:40px;margin-bottom:16px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.note-list-loading p{font-size:16px;margin:0}.note-list-empty{align-items:center;background-color:var(--color-surface);border:1px dashed var(--color-line);border-radius:8px;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.note-list-empty-icon{font-size:64px;margin-bottom:16px;opacity:.6}.note-list-empty-title{color:var(--color-text);font-size:24px;font-weight:600;margin:0 0 12px}.note-list-empty-message{color:var(--color-muted);font-size:16px;margin:0;max-width:400px}.note-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}@media (max-width:600px){.note-list-count{flex:0 0 auto;font-size:13px;padding:4px 10px;white-space:nowrap}.note-grid{gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}@media (max-width:480px){.note-grid{gap:10px;grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){.note-list-spinner{animation:none;transition:none}}[role=listitem]{position:relative}.note-card-drag-handle{align-items:center;background:var(--color-bg);border:1px solid var(--color-line);border-radius:999px;color:var(--color-text);cursor:grab;display:flex;font-size:0;height:32px;justify-content:center;left:8px;line-height:1;opacity:0;pointer-events:none;position:absolute;top:8px;touch-action:none;transition:opacity .15s,background .15s;-webkit-user-select:none;user-select:none;width:32px;z-index:6}.note-card-drag-handle:before{content:"⋮⋮";font-size:18px;font-weight:900;line-height:1}.note-card-drag-handle.is-visible{opacity:1;pointer-events:auto}.note-card-drag-handle:active,.note-card-drag-handle:hover{background:var(--color-success-soft);cursor:grabbing}.practice-settings-overlay{align-items:center;-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--color-overlay);display:flex;inset:0;justify-content:center;padding:18px;position:fixed;z-index:1000}.practice-settings-modal{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:8px;box-shadow:none;max-height:min(90vh,720px);overflow-y:auto;overscroll-behavior:contain;padding:14px;width:min(100%,520px)}.practice-stage-list{grid-gap:12px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}.practice-stage-card{grid-gap:16px;align-items:center;border:1px solid #0000;border-radius:7px;color:var(--color-text);cursor:pointer;display:grid;gap:16px;grid-template-columns:clamp(94px,26vw,126px) minmax(0,1fr);min-height:142px;overflow:hidden;padding:12px;text-align:left;transition:transform .16s ease,border-color .16s ease,filter .16s ease,box-shadow .16s ease;width:100%}.practice-stage-card-test{background:var(--color-primary-soft);border-color:var(--color-primary);box-shadow:none}.practice-stage-card-listening{background:var(--color-success-soft);border-color:var(--color-success);box-shadow:none}.practice-stage-card:hover{box-shadow:none;filter:none;transform:translateY(-2px)}.practice-stage-card:active{transform:translateY(0) scale(.99)}.practice-stage-card:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.practice-stage-card:disabled{cursor:not-allowed;filter:none;opacity:.58;transform:none}.practice-stage-image{aspect-ratio:1;border-radius:6px;box-shadow:none;display:block;object-fit:cover;width:100%}.practice-stage-copy{display:flex;flex-direction:column;gap:8px;min-width:0}.practice-stage-copy strong{color:var(--color-primary);font-size:22px;font-weight:900;letter-spacing:0;line-height:1.12}.practice-stage-card-listening .practice-stage-copy strong{color:var(--color-success)}.practice-stage-copy span{color:var(--color-muted);font-size:14px;font-weight:600;letter-spacing:0;line-height:1.48}@media (max-width:420px){.practice-settings-overlay{padding:12px}.practice-settings-modal{padding:10px}.practice-stage-card{gap:12px;grid-template-columns:92px minmax(0,1fr);min-height:124px;padding:10px}.practice-stage-copy span{font-size:12px;line-height:1.42}.practice-stage-copy strong{font-size:18px}}.training-hero{grid-gap:12px 28px;align-items:center;background:var(--color-surface-soft);border:1px solid var(--color-primary);border-radius:12px;border-radius:var(--radius-panel,12px);color:var(--color-text);display:grid;gap:12px 28px;grid-template-areas:"title title" "portrait quote" "portrait streak" "portrait action";grid-template-columns:minmax(120px,.36fr) minmax(0,1fr);min-height:238px;min-width:0;padding:24px 30px;width:100%}.training-hero-portrait{align-items:center;align-self:stretch;display:flex;grid-area:portrait;justify-content:center;min-width:0}.training-hero-trainer{display:block;filter:none;height:186px;image-rendering:pixelated;image-rendering:crisp-edges;object-fit:contain;width:min(100%,184px)}.training-hero-trainer[src*=calendar_cheerful_][src$=".webp"],.training-hero-trainer[src*=calendar_depressed_][src$=".webp"],.training-hero-trainer[src*=calendar_normal_][src$=".webp"]{image-rendering:auto}.training-hero-title{font-size:var(--text-section-title);font-weight:var(--weight-section-title);grid-area:title;letter-spacing:0}.training-hero-quote,.training-hero-title{color:var(--color-text);line-height:1.4;margin:0}.training-hero-quote{--bubble-fill:var(--color-surface);background:var(--bubble-fill);border:0;border-radius:16px;font-size:clamp(20px,2.25vw,27px);font-weight:400;grid-area:quote;max-width:38ch;min-width:0;overflow-wrap:anywhere;padding:14px 18px;position:relative;word-break:keep-all}:root[data-theme=dark] .training-hero-quote{--bubble-fill:color-mix(in srgb,var(--color-primary-soft) 88%,var(--color-primary))}.training-hero-quote:before{background:var(--bubble-fill);clip-path:polygon(0 50%,100% 0,100% 100%);content:"";height:20px;left:-12px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:13px}.training-hero-quote-text{display:block}.training-hero-streak{align-items:baseline;display:flex;flex-wrap:wrap;gap:5px 10px;grid-area:streak;line-height:1.5;min-width:0}.training-hero-status-message,.training-hero-streak-label,.training-hero-today{color:var(--color-muted);font-size:13px;overflow-wrap:anywhere}.training-hero-streak-count{color:var(--color-primary);font-size:21px;font-weight:800;white-space:nowrap}.training-hero-today{align-items:baseline;display:inline-flex;gap:5px}.training-hero-today-label{color:var(--color-text);font-weight:400}.training-hero-today-points{color:var(--color-success);font-size:21px;font-weight:800;white-space:nowrap}.training-hero-start{align-items:center;background:var(--color-primary);border:1px solid #0000;border-radius:8px;border-radius:var(--radius-control,8px);box-shadow:none;color:var(--color-on-primary);cursor:pointer;display:inline-flex;font:inherit;font-size:17px;font-weight:800;gap:10px;grid-area:action;justify-content:center;justify-self:start;line-height:1.3;min-height:52px;padding:12px 20px;transition:transform .16s ease,filter .16s ease;width:min(100%,460px)}.training-hero-start img{flex:0 0 auto;height:26px;object-fit:contain;width:26px}.training-hero-start:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-1px)}.training-hero-start:active:not(:disabled){transform:translateY(0)}.training-hero-start:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}.training-hero-start:disabled{background-color:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted);cursor:wait;opacity:1}@media (max-width:600px){.training-hero{gap:10px 16px;grid-template-areas:"title title" "portrait quote" "streak streak" "action action";grid-template-columns:82px minmax(0,1fr);min-height:0;padding:18px}.training-hero-trainer{height:112px;width:82px}.training-hero-title{font-size:18px}.training-hero-quote{align-self:center;font-size:clamp(17px,4.5vw,21px);padding:10px 12px}.training-hero-start{font-size:16px;min-height:48px;width:100%}}@media (prefers-reduced-motion:no-preference){.training-hero-trainer{animation:training-hero-trainer-enter .52s ease-out both}.training-hero-quote{animation:training-hero-bubble-enter .42s ease-out .1s both;transform-origin:left center}.training-hero-quote-text{animation:training-hero-text-enter .44s ease-out .18s both}}@keyframes training-hero-trainer-enter{0%{transform:translateY(8px) scale(.96)}65%{transform:translateY(-2px) scale(1.01)}to{transform:translateY(0) scale(1)}}@keyframes training-hero-bubble-enter{0%{transform:translateX(-4px) scale(.97)}to{transform:translateX(0) scale(1)}}@keyframes training-hero-text-enter{0%{transform:translateY(5px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.training-hero-start{transition:none}}.home-learning-previews{color:var(--color-text);margin-block:0;min-width:0;width:100%}.home-learning-previews__label{color:var(--color-text);font-size:1rem;font-weight:700;margin:0 0 12px}.home-learning-previews__grid{grid-gap:12px;align-items:start;display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}.home-learning-preview{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:12px;box-shadow:none;display:flex;flex-direction:column;min-width:0;padding:18px}.home-learning-preview--triumph{background:var(--color-surface);border-color:var(--color-success)}.home-learning-preview--library{background:var(--color-surface);border-color:var(--color-warning)}.home-learning-preview__header{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:52px minmax(0,1fr) auto;margin-bottom:14px}.home-learning-preview__art{height:52px;object-fit:contain;width:52px}.home-learning-preview__header h3{color:var(--color-text);font-size:1.05rem;font-weight:750;line-height:1.4;margin:0;overflow-wrap:anywhere}.home-learning-previews__error button{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:7px;color:var(--color-text);cursor:pointer;font:inherit;min-height:44px}.home-learning-preview__viewport{background:#0000;border:0;border-radius:4px;display:grid;flex:1 1;font:inherit;grid-template-rows:1fr;isolation:isolate;min-height:9rem;min-width:0;overflow:clip;padding:6px 0 18px;position:relative;text-align:left;width:100%}.home-learning-preview__flip{cursor:pointer;-webkit-user-select:text;user-select:text}.home-learning-preview-lock{align-items:center;border:1px solid var(--color-line);border-radius:12px;color:var(--color-text);display:flex;gap:12px;padding:14px}.home-learning-preview-lock>svg{flex-shrink:0}.home-learning-preview-lock h3{font-size:1rem;margin:0}.home-learning-preview-lock p{font-size:.875rem;margin:4px 0 0}.home-learning-preview__stage{align-items:center;display:grid;min-width:0}.home-learning-preview__measure>span,.home-learning-preview__stage>*{grid-area:1/1;min-width:0}.home-learning-preview__measure>span,.home-learning-preview__outgoing,.home-learning-preview__placeholder,.home-learning-preview__text{color:var(--color-text);display:block;font-size:clamp(1.125rem,1.5vw,1.3rem);line-height:1.75;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.home-learning-preview__measure{display:grid;pointer-events:none;-webkit-user-select:none;user-select:none;visibility:hidden}.home-learning-preview__viewport .home-learning-preview__placeholder{align-self:center;color:var(--color-muted);font-size:.95rem;grid-row:1/-1}.home-learning-preview__outgoing{pointer-events:none}.home-learning-preview__viewport.is-changing .home-learning-preview__outgoing{animation:homePreviewUpOut .42s ease-in-out both}.home-learning-preview__viewport.is-changing .home-learning-preview__text{animation:homePreviewUpIn .42s ease-in-out both}.home-learning-preview__footer{align-items:center;background:#0000;border:0;border-radius:0;border-top:1px solid var(--color-line);color:var(--color-primary);cursor:pointer;display:flex;font:inherit;gap:10px;justify-content:space-between;min-height:48px;padding:12px 0 0;text-align:left;width:100%}.home-learning-preview__footer svg{flex-shrink:0}.home-learning-preview__footer:not(:disabled):hover .home-learning-preview__count{color:var(--color-text)}.home-learning-preview__count{color:var(--color-muted);flex:1 1 7rem;font-size:.82rem;line-height:1.5;overflow-wrap:anywhere}.home-learning-previews__error button{align-items:center;display:inline-flex;font-size:.85rem;font-weight:650;gap:7px;justify-content:center;padding:8px 11px}.home-learning-preview button:focus-visible,.home-learning-previews__error button:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.home-learning-preview button:disabled,.home-learning-previews__error button:disabled{background-color:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted);cursor:default;opacity:1}.home-learning-previews__error{align-items:center;background:var(--color-danger-soft);border:1px solid var(--color-danger);border-radius:8px;color:var(--color-danger);display:flex;flex-wrap:wrap;font-size:.9rem;gap:10px;justify-content:space-between;margin-bottom:12px;padding:10px 14px}@keyframes homePreviewUpIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes homePreviewUpOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@media (max-width:600px){.home-learning-previews__label{font-size:.9rem;margin-bottom:8px}.home-learning-previews__grid{align-items:start;gap:10px;grid-template-columns:minmax(0,1fr)}.home-learning-preview{padding:10px 14px}.home-learning-preview__header{gap:8px;grid-template-columns:32px minmax(0,1fr) auto;margin-bottom:2px;min-height:44px}.home-learning-preview__art{height:32px;width:32px}.home-learning-preview__header h3{font-size:.95rem}.home-learning-preview__viewport{display:flex;flex:0 0 auto;flex-direction:column;gap:3px;min-height:44px;padding:2px 0 8px}.home-learning-preview__stage{align-items:start;position:relative}.home-learning-preview__measure{display:none}.home-learning-preview__outgoing{inset:0;position:absolute}.home-learning-preview__outgoing,.home-learning-preview__text{font-size:1rem;line-height:1.5}.home-learning-preview__footer{min-height:44px;padding-top:6px}.home-learning-preview__count{font-size:.78rem}}@media (prefers-reduced-motion:reduce){.home-learning-preview *,.home-learning-preview__viewport.is-changing .home-learning-preview__outgoing,.home-learning-preview__viewport.is-changing .home-learning-preview__text{animation:none;transition:none}}.home-learning-preview__text.writing-faint-hint{color:#9b9da3}.writing-expression-toggle.writing-faint-hint{color:#9b9da326}.practice-pool-recommendation{--recommendation-color:var(--color-danger);align-items:flex-start;background:var(--color-danger-soft);border-left:3px solid var(--recommendation-color);color:var(--recommendation-color);display:flex;font-family:var(--font-ui);font-size:14px;font-weight:400;gap:9px;letter-spacing:0;line-height:1.6;margin:0;overflow-wrap:anywhere;padding:12px}.practice-pool-recommendation svg{color:var(--recommendation-color);flex:0 0 auto;margin-top:2px}.notes-page-heading-copy .practice-pool-recommendation{margin-top:8px}.tournament-result-overlay{align-items:center;background:var(--color-overlay);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1200}.tournament-result-popup{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:8px;box-shadow:none;color:var(--color-text);padding:24px;position:relative;width:min(520px,100%)}.tournament-result-popup.is-win{border-color:var(--color-warning)}.tournament-result-popup.is-loss{border-color:var(--color-muted)}.tournament-result-champion{background:var(--color-surface);border-color:var(--color-warning)}.tournament-result-close{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);cursor:pointer;font-weight:900;height:34px;position:absolute;right:12px;top:12px;width:34px}.tournament-result-heading{padding:4px 36px 18px;text-align:center}.tournament-result-heading span{color:var(--color-primary);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.tournament-result-heading h2{color:var(--color-text);font-size:1.75rem;margin:6px 0}.tournament-result-heading p{color:var(--color-muted);font-size:.95rem;margin:0}.tournament-result-fighters{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:1fr auto 1fr}.tournament-result-fighter{grid-gap:7px;align-content:start;border:1px solid var(--color-line);border-radius:8px;display:grid;gap:7px;justify-items:center;min-height:210px;min-width:0;padding:14px 10px}.tournament-result-fighter,.tournament-result-fighter.is-sad{background:var(--color-surface-soft)}.tournament-result-fighter img{height:112px;object-fit:contain;width:112px}.tournament-result-fighter-label{color:var(--color-muted);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.tournament-result-fighter strong{color:var(--color-text);font-size:.95rem;max-width:100%;overflow-wrap:anywhere;text-align:center}.tournament-result-score{color:var(--color-primary);font-size:1.45rem;font-weight:950}.tournament-champion-stage{grid-gap:12px;background:var(--color-warning-soft);border:1px solid var(--color-primary);border-radius:8px;display:grid;gap:12px;justify-items:center;padding:18px;text-align:center}.tournament-champion-stage img{filter:none;height:148px;object-fit:contain;width:148px}.tournament-champion-name{grid-gap:4px;display:grid;gap:4px}.tournament-champion-name span{color:var(--color-primary);font-size:12px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.tournament-champion-name strong{color:var(--color-text);font-size:1.45rem;overflow-wrap:anywhere}.tournament-champion-stage p{color:var(--color-muted);font-weight:750;line-height:1.45;margin:0}.tournament-result-vs{color:var(--color-coral);font-size:.9rem;font-weight:950}.tournament-result-primary{background:var(--color-primary);border:none;border-radius:8px;color:var(--color-on-primary);cursor:pointer;font-weight:950;margin-top:18px;min-height:44px;width:100%}@media (max-width:520px){.tournament-result-popup{padding:18px}.tournament-result-fighters{grid-template-columns:1fr}.tournament-result-vs{text-align:center}}.notification-overlay{align-items:center;background:var(--color-overlay);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1150}.notification-popup{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:var(--shadow-warm);color:var(--color-text);max-height:calc(100dvh - 40px);overflow-y:auto;padding:28px;position:relative;width:min(500px,100%)}.notification-close{background:var(--color-surface-soft);border:0;border-radius:50%;color:var(--color-cream);cursor:pointer;display:grid;height:36px;padding:0;place-items:center;position:absolute;right:12px;top:12px;width:36px}.notification-heading{padding-right:38px}.notification-heading span{color:var(--color-gold);display:block;font-size:.75rem;font-weight:900;margin-bottom:6px;text-transform:uppercase}.notification-heading h2{color:var(--color-cream);font-size:1.45rem;letter-spacing:0;margin:0;overflow-wrap:anywhere}.notification-message{color:var(--color-text);line-height:1.65;margin:22px 0;overflow-wrap:anywhere;white-space:pre-wrap}.notification-dismiss-option{align-items:center;color:var(--color-muted);cursor:pointer;display:flex;gap:9px;margin-bottom:18px}.notification-dismiss-option input{accent-color:var(--color-gold);height:18px;width:18px}.notification-primary{background:var(--color-gold);border:0;border-radius:8px;color:var(--color-on-primary);cursor:pointer;font-weight:900;min-height:44px;width:100%}@media (max-width:520px){.notification-overlay{padding:12px}.notification-popup{max-height:calc(100dvh - 24px);padding:22px 18px}}.main-page{background:#0000;min-height:0;padding:8px 0 32px;position:relative}.main-page-content{margin:0 auto;max-width:1180px}.home-training-hub{grid-gap:20px;display:grid;gap:20px;margin-bottom:28px;min-width:0}.home-tournament-entry{grid-gap:12px 16px;align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:12px;border-radius:var(--radius-panel,12px);color:var(--color-text);cursor:pointer;display:grid;font-family:inherit;gap:12px 16px;grid-template-columns:auto auto minmax(0,1fr) auto auto;min-height:72px;padding:16px 20px;text-align:left;transition:border-color .16s ease,background .16s ease;width:100%}.home-tournament-entry:hover{background:var(--color-surface-soft);border-color:var(--color-primary)}.home-tournament-entry:focus-visible,.main-page .add-note-container button:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.home-tournament-icon{display:block;height:32px;object-fit:contain;width:32px}.home-tournament-title{font-size:16px;font-weight:750;min-width:0;overflow-wrap:anywhere}.home-tournament-status{color:var(--color-muted);font-size:14px;line-height:1.55;overflow-wrap:anywhere;word-break:keep-all}.home-tournament-phase{background:var(--color-primary-soft);border-radius:5px;color:var(--color-primary);font-size:12px;line-height:1.4;max-width:160px;overflow-wrap:anywhere;padding:5px 9px;white-space:normal}.home-tournament-arrow{color:var(--color-muted);grid-column:5;justify-self:end}.home-tournament-entry-active,.home-tournament-entry-active:hover{background:var(--color-text);border-color:var(--color-text);color:var(--color-bg)}.home-tournament-entry-active:hover{border-color:var(--color-primary)}.home-tournament-entry-active .home-tournament-arrow,.home-tournament-entry-active .home-tournament-status{color:inherit}.home-tournament-entry-active .home-tournament-phase{background:var(--color-bg);color:var(--color-text)}.home-tournament-entry-signup .home-tournament-phase{background:var(--color-primary-soft)}.add-note-container{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end;margin:0 0 16px}.main-page .add-note-container button{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:none;color:var(--color-text);cursor:pointer;font:inherit;font-size:14px;font-weight:700;min-height:44px;padding:10px 16px}.main-page .add-note-container .btn-import{border-color:var(--color-primary);color:var(--color-primary)}.main-page .add-note-container button:hover{border-color:var(--color-primary)}.main-page-loading{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:none;display:flex;justify-content:center;min-height:400px}@media (max-width:768px){.main-page{padding:0 0 32px}.home-training-hub{gap:16px}.home-tournament-entry{gap:8px 12px;grid-template-columns:auto minmax(0,1fr) auto auto;padding:14px 16px}.home-tournament-title{grid-column:2}.home-tournament-phase{grid-column:3;grid-row:1}.home-tournament-arrow{grid-column:4;grid-row:1}.home-tournament-status{grid-column:1/-1;grid-row:2}}@media (max-width:480px){.main-page{padding:0 0 24px}.home-tournament-entry{gap:7px 9px;padding:12px 14px}.home-tournament-title{font-size:15px}.home-tournament-phase{font-size:11px;max-width:120px;padding:4px 6px}}@media (prefers-reduced-motion:reduce){.main-page button{transition:none}}.main-page-home{padding:0}.main-page-home .main-page-content{min-width:0;width:100%}.main-page-home .home-training-hub{gap:16px;margin-bottom:0}.main-page-home .home-learning-previews__label{margin-bottom:8px}.main-page-home .home-learning-previews__grid{gap:12px}.main-page-home .home-learning-preview{padding:14px}.main-page-home .home-learning-preview__header{margin-bottom:4px}.main-page-home .home-learning-preview__viewport{min-height:44px;padding-bottom:8px}.main-page-home .home-tournament-entry{flex:0 0 auto;min-height:60px;padding-block:10px}.main-page.notes-page{padding-top:0}.notes-page .add-note-container{justify-content:flex-start}.notes-page-header-actions .btn-import{align-items:center;background:#0000;border:0;border-radius:8px;border-radius:var(--radius-control,8px);box-shadow:none;color:var(--color-primary);cursor:pointer;display:inline-flex;filter:none;flex:0 0 var(--control-height);font:inherit;font-size:var(--text-control);font-weight:var(--weight-control);height:var(--control-height);justify-content:center;min-height:var(--control-height);padding:0;transform:none;transition:border-color .16s ease,color .16s ease,background-color .16s ease;width:var(--control-height)}.notes-page-header-actions .btn-import:hover{background:var(--color-primary-soft);box-shadow:none;color:var(--color-primary);filter:none;transform:none}.notes-page-header-actions .btn-import:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.home-empty-state,.home-loading-state{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-panel);color:var(--color-text);margin-block:auto;padding:clamp(20px,5vw,48px)}.home-empty-state h2{font-size:var(--text-page-title);margin:0 0 12px}.home-empty-state p{color:var(--color-muted);line-height:1.6}.home-empty-actions{display:flex;flex-wrap:wrap;gap:12px;margin-block:20px}.home-empty-notes,.main-page .home-empty-actions button{align-items:center;background:var(--color-primary-soft);border:1px solid var(--color-primary);border-radius:var(--radius-control);color:var(--color-primary);cursor:pointer;display:inline-flex;font:inherit;font-weight:650;justify-content:center;min-height:44px;padding:10px 16px;text-decoration:none}@media (max-width:600px){.main-page-home .home-learning-previews__grid{align-items:stretch;gap:8px}.main-page-home .home-learning-preview{padding:8px 12px}.main-page-home .home-learning-preview__header{margin-bottom:0}.main-page-home .home-learning-preview__viewport{flex:0 0 auto;padding:0 0 4px}.main-page-home .home-learning-preview__stage{margin-block:auto}.main-page-home .home-learning-preview__footer{padding-top:4px}.main-page-home .home-tournament-entry{gap:4px 8px;padding:8px 12px}.main-page-home .home-tournament-status{font-size:.8125rem}}.notes-import-notice{align-items:center;background:var(--color-success-soft);border-left:3px solid var(--color-success);color:var(--color-text);display:flex;gap:10px;margin-bottom:18px;padding:12px 14px}.notes-import-notice>svg{color:var(--color-success);flex-shrink:0}.notes-import-notice>span{flex:1 1;min-width:0;overflow-wrap:anywhere}.notes-import-notice>button{background:#0000;border:0;color:inherit;cursor:pointer;display:grid;flex-shrink:0;height:44px;padding:0;place-items:center;width:44px}.app-logo{aspect-ratio:4/1;display:block;height:auto;max-width:100%;object-fit:contain;width:176px}:root{--app-header-height:69px;--app-bottom-nav-height:0px}.app-navigation{background:var(--color-surface);border-bottom:1px solid var(--color-line);flex-shrink:0;width:100%}.app-navigation-inner{align-items:center;box-sizing:border-box;display:flex;gap:20px;justify-content:space-between;margin:0 auto;max-width:1200px;min-height:68px;min-height:calc(var(--app-header-height) - 1px);padding:12px 24px}.app-navigation-identity{align-items:center;display:flex;gap:16px;min-width:0}.app-navigation-brand{align-items:center;box-sizing:border-box;display:inline-flex;flex-shrink:1;justify-content:center;min-height:44px;min-width:0;padding-block:0;text-decoration:none}.app-navigation-links{align-items:center;display:flex;gap:6px}.app-navigation-link,.app-navigation-profile{align-items:center;border:1px solid #0000;border-radius:8px;box-sizing:border-box;color:var(--color-muted);display:inline-flex;font-size:14px;font-weight:600;gap:7px;justify-content:center;line-height:1.4;min-height:44px;min-width:44px;padding:10px 12px;text-decoration:none;white-space:nowrap}.app-navigation-profile{background:#0000;border:0;color:var(--color-text);flex-shrink:0;padding:8px 10px}.app-navigation-link:hover,.app-navigation-profile:hover{color:var(--color-text)}.app-navigation-link:hover{background:var(--color-surface-soft)}.app-navigation-link.is-current{background:var(--color-primary-soft);border-color:var(--color-line);color:var(--color-primary)}.app-navigation-level,.app-navigation-profile.is-current{color:var(--color-primary)}.app-navigation-level{font-feature-settings:"tnum";background:var(--color-primary-soft);border-radius:5px;font-size:12px;font-variant-numeric:tabular-nums;padding:2px 6px}.app-navigation-brand:focus-visible,.app-navigation-link:focus-visible,.app-navigation-profile:focus-visible,.app-skip-link:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.app-skip-link{background:var(--color-primary);border-radius:6px;color:var(--color-on-primary);left:12px;padding:12px 18px;position:absolute;top:8px;transform:translateY(-160%);z-index:100}.app-skip-link:focus{transform:translateY(0)}@media (max-width:1000px){.app-navigation-inner{gap:16px;padding-inline:16px}.app-navigation-identity{gap:10px}.app-navigation-profile-label{display:none}.app-navigation-links{gap:2px}.app-navigation-link{font-size:13px;padding-inline:8px}}@media (max-width:760px){:root{--app-header-height:65px;--app-bottom-nav-height:calc(64px + env(safe-area-inset-bottom, 0px))}.app-navigation-inner{padding:10px 16px}.app-navigation-identity{justify-content:space-between;width:100%}.app-navigation:not(.is-home-route){background:#0000;border-bottom:0}.app-navigation:not(.is-home-route) .app-navigation-inner{min-height:0;padding:0}.app-navigation:not(.is-home-route) .app-navigation-identity{display:none}.app-navigation-links{grid-gap:2px;align-items:stretch;background:var(--color-surface);border-top:1px solid var(--color-line);box-sizing:border-box;display:grid;gap:2px;grid-template-columns:repeat(4,minmax(0,1fr));height:0;height:var(--app-bottom-nav-height);inset:auto 0 0;padding:5px max(8px,env(safe-area-inset-right,0px)) calc(5px + env(safe-area-inset-bottom, 0px)) max(8px,env(safe-area-inset-left,0px));position:fixed;z-index:100}.app-navigation-link{flex-direction:column;font-size:12px;gap:3px;line-height:1.25;padding:4px 2px;text-align:center;white-space:normal}.app-navigation-link svg{flex-shrink:0}.app-navigation-link.is-current{border-color:#0000}}@media (max-width:360px){.app-navigation-inner{padding-inline:12px}.app-navigation-profile{gap:5px;padding-inline:8px}}.theme-selector{grid-gap:10px;color:var(--color-text);display:grid;gap:10px;min-width:0;width:100%}.theme-selector-label{font-size:.875rem;font-weight:600;text-align:left}.theme-selector-options{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.theme-selector .theme-selector-option{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:none;color:var(--color-text);cursor:pointer;display:flex;font:inherit;font-size:.8125rem;font-weight:500;gap:8px;justify-content:flex-start;line-height:1.5;min-height:48px;min-width:0;padding:10px 12px;text-align:left}.theme-selector-option svg{flex-shrink:0}.theme-selector-option span{min-width:0;overflow-wrap:normal;word-break:keep-all}.theme-selector .theme-selector-option[aria-pressed=true]{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary);font-weight:650}.theme-selector .theme-selector-option:hover:not(:disabled){border-color:var(--color-primary)}.theme-selector .theme-selector-option:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.theme-selector .theme-selector-option:disabled{cursor:default;opacity:.6}.theme-selector-hint{color:var(--color-muted);font-size:.75rem;line-height:1.6;margin:0;text-align:left}.login-form>.theme-selector,.user-page-section>.theme-selector{border-top:1px solid var(--color-line);padding-top:18px}.user-page-section>.theme-selector{margin-top:22px}.user-page-section .theme-selector-options{max-width:500px}@media (max-width:380px){.theme-selector .theme-selector-option{gap:6px;padding:9px 8px}}.login-page{align-items:stretch;background:var(--color-bg);box-sizing:border-box;display:flex;flex-direction:column;inset:0;overflow-y:auto;padding:max(20px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));position:fixed;z-index:100}.login-page:before{background:none;background-size:64px 64px;content:"";display:none;inset:0;-webkit-mask-image:none;mask-image:none;opacity:.35;pointer-events:none;position:absolute}.login-page-actions{align-items:center;align-self:flex-end;display:flex;flex-shrink:0;gap:8px;margin-bottom:28px;position:relative;z-index:3}.login-language-toggle,.login-pwa-install-button{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:none;color:var(--color-text);cursor:pointer;font:inherit;font-size:13px;font-weight:600;letter-spacing:.03em;min-height:44px;min-width:58px;padding:8px 13px}.login-pwa-install-button{align-items:center;color:var(--color-text);display:inline-flex;gap:7px;justify-content:center}.login-language-toggle:hover,.login-pwa-install-button:hover{border-color:var(--color-success);color:var(--color-success)}.login-language-toggle:disabled,.login-pwa-install-button:disabled{background-color:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted);cursor:not-allowed;opacity:1}.login-install-dialog-overlay{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--color-overlay);display:grid;inset:0;padding:20px;place-items:center;position:fixed;z-index:20}.login-install-dialog{grid-gap:14px;background:var(--color-surface);border:1px solid var(--color-primary);border-radius:14px;box-shadow:none;color:var(--color-text);display:grid;gap:14px;padding:28px;position:relative;width:min(420px,100%)}.login-install-dialog h2,.login-install-dialog p{margin:0}.login-install-dialog h2{color:var(--color-primary);font-size:22px}.login-install-dialog p{color:var(--color-text);font-size:15px;line-height:1.6}.login-install-dialog-icon{background:var(--color-success-soft);border:1px solid var(--color-success);border-radius:50%;color:var(--color-success);display:grid;height:52px;place-items:center;width:52px}.login-install-dialog-close{background:var(--color-bg);border:1px solid var(--color-line);border-radius:50%;color:var(--color-muted);cursor:pointer;display:grid;height:40px;place-items:center;position:absolute;right:12px;top:12px;width:40px}.login-install-dialog-done{background:var(--color-primary);border:0;border-radius:8px;color:var(--color-on-primary);cursor:pointer;font:inherit;font-weight:900;min-height:44px}.login-hero{grid-gap:clamp(28px,5vw,72px);align-items:center;display:grid;flex-shrink:0;gap:clamp(28px,5vw,72px);grid-template-columns:minmax(0,1fr) minmax(340px,440px);margin:auto;position:relative;width:min(1040px,100%);z-index:1}.login-brand-panel,.login-form{background:var(--color-surface);border:1px solid var(--color-line)}.login-brand-panel,.login-form{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.login-brand-panel{align-items:center;align-self:center;background:#0000;border:0;display:flex;flex-direction:column;gap:28px;justify-content:center;justify-self:start;max-width:100%;padding:24px 0;width:100%}.login-brand-copy{grid-gap:12px;display:grid;gap:12px;min-width:0}.login-wordmark{display:flex;flex-wrap:wrap;font-size:clamp(28px,3.8vw,46px);font-weight:800;gap:0 10px;line-height:1.18;text-shadow:none}.login-wordmark-club,.login-wordmark-language,.login-wordmark-pt{display:block}.login-wordmark-language{color:var(--color-text)}.login-wordmark-pt{color:var(--color-primary)}.login-wordmark-club{color:var(--color-coral)}.login-subtitle{color:var(--color-muted);font-size:12px;font-weight:600;letter-spacing:.08em;margin-top:0;text-transform:uppercase}.login-character{filter:none;flex:0 0 auto;height:208px;image-rendering:pixelated;image-rendering:crisp-edges;margin-bottom:0;object-fit:contain;object-position:center;pointer-events:none;width:160px}.login-character[src$=".webp"]{image-rendering:auto}.login-overlay{align-items:center;display:flex}.login-form{border-radius:14px;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;gap:18px;padding:clamp(24px,4vw,36px);width:100%}.login-form-heading{grid-gap:6px;display:grid;gap:6px;margin-bottom:4px}.login-form-heading h1{color:var(--color-text);font-size:28px;font-weight:700;line-height:1.3;margin:0;overflow-wrap:anywhere}.login-form-heading p{color:var(--color-muted);font-size:14px;line-height:1.6;margin:0}.login-description{color:var(--color-text);font-size:17px;line-height:1.8;margin:4px 0 0;max-width:36ch}.login-password-input{position:relative}.login-form .login-password-input input{padding-right:52px}.login-password-input button{background:#0000;border:0;border-radius:6px;color:var(--color-muted);cursor:pointer;display:grid;height:44px;padding:0;place-items:center;position:absolute;right:4px;top:50%;transform:translateY(-50%);width:44px}.login-password-input button:hover:not(:disabled){color:var(--color-primary)}.login-field-hint{color:var(--color-muted);font-size:12px;line-height:1.6;margin:0}.login-page a:focus-visible,.login-page button:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.login-form input:not([type=checkbox]){box-sizing:border-box;min-height:48px}.login-page button:disabled{background-color:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted);cursor:default;opacity:1}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{color:var(--color-text);font-size:14px;font-weight:700}.form-group input,.form-group select{background-color:var(--color-bg);border:1px solid var(--color-line);border-radius:10px;color:var(--color-text);font-size:15px;padding:13px 15px;transition:border-color .2s,box-shadow .2s,background-color .2s;width:100%}.form-group input:focus,.form-group select:focus{background-color:var(--color-bg);border-color:var(--color-primary);box-shadow:none;outline:2px solid var(--color-focus);outline-offset:2px}.form-group input::placeholder{color:var(--color-muted)}.form-group input:disabled,.form-group select:disabled{background-color:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted);cursor:not-allowed;opacity:1}.login-error{background-color:var(--color-danger-soft);border:1px solid var(--color-danger);border-radius:10px;color:var(--color-danger)}.login-error,.login-message{font-size:14px;padding:11px 14px}.login-message{background-color:var(--color-success-soft);border:1px solid var(--color-success);border-radius:10px;color:var(--color-success)}.login-agreement-panel{grid-gap:12px;background:var(--color-bg);border:1px solid var(--color-primary);border-radius:12px;color:var(--color-text);display:grid;gap:12px;padding:16px}.login-agreement-panel h2{color:var(--color-primary);font-size:18px;line-height:1.2;margin:0}.login-agreement-panel p{color:var(--color-muted);font-size:14px;line-height:1.5;margin:0}.login-agreement-list{grid-gap:8px;color:var(--color-muted);display:grid;font-size:13px;gap:8px;line-height:1.45;margin:0;max-height:min(210px,28vh);overflow-y:auto;padding:0 0 0 18px}.login-agreement-emphasis{background:var(--color-success-soft);border:1px solid var(--color-success);border-radius:10px;color:var(--color-success)!important;font-weight:800;padding:10px 12px}.login-agreement-check{align-items:flex-start;color:var(--color-text);cursor:pointer;display:flex;font-size:13px;font-weight:750;gap:10px;line-height:1.45}.login-agreement-check input{accent-color:var(--color-primary);flex:0 0 auto;height:18px;margin-top:1px;width:18px}.login-agreement-actions{grid-gap:10px;display:grid;gap:10px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.login-secondary-button{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:10px;color:var(--color-text);cursor:pointer;font:inherit;font-size:15px;font-weight:850;padding:15px 18px}.login-secondary-button:disabled{background-color:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted);cursor:not-allowed;opacity:1}.login-links{border-top:1px solid var(--color-line);display:flex;flex-direction:column;font-size:14px;gap:12px;padding-top:16px}.login-links a{color:var(--color-primary);font-weight:600;text-decoration:none}.login-button{background:var(--color-primary);border:none;border-radius:10px;box-shadow:none;color:var(--color-on-primary);cursor:pointer;font-size:16px;font-weight:700;min-height:48px;padding:15px 24px;transition:transform .2s,box-shadow .2s,filter .2s;width:100%}.login-button:hover:not(:disabled){filter:brightness(1.04)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{background-color:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted);cursor:not-allowed;opacity:1}.login-account-link{color:var(--color-muted);display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:center;line-height:1.6}.login-links .login-recovery-link{align-self:center;color:var(--color-muted);font-size:13px;font-weight:400}.login-links a:hover{text-decoration:underline;text-underline-offset:3px}@media (max-width:760px){.login-page{overflow-y:auto;padding:max(14px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom))}.login-hero{gap:20px;grid-template-columns:1fr;max-width:440px}.login-brand-panel{grid-gap:16px;align-items:center;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) 72px;padding:0;width:100%}.login-wordmark{font-size:clamp(26px,6vw,34px);max-width:none}.login-subtitle{font-size:11px}.login-character{height:96px;margin-bottom:0;width:72px}.login-description{font-size:14px;line-height:1.65}.login-brand-copy{gap:7px}.login-form{padding:24px}.login-form input{font-size:16px}.login-page-actions{margin-bottom:22px}.login-agreement-actions{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.login-page *,.login-page :after,.login-page :before{animation:none!important;transition:none!important}}.admin-page{background:var(--color-bg);color:var(--color-text);min-height:100vh;padding:24px}.admin-header,.admin-login-card,.admin-panel,.admin-tabs{margin:0 auto;max-width:1120px}.admin-login-card,.admin-panel{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:none}.admin-login-card{margin-top:clamp(40px,12vh,120px);padding:24px;width:min(480px,100%)}.admin-brand,.admin-header,.admin-panel-title{align-items:center;display:flex;gap:12px}.admin-brand{color:var(--color-primary);margin-bottom:20px}.admin-brand h1,.admin-header h1,.admin-panel-title h2{color:var(--color-text);margin:0}.admin-brand p,.admin-header p{color:var(--color-muted);font-weight:800;margin:4px 0 0}.admin-create-form,.admin-login-form{grid-gap:10px;display:grid;gap:10px}.admin-login-form label{color:var(--color-text);font-size:13px;font-weight:850}.admin-create-form input,.admin-create-form select,.admin-filters input,.admin-filters select,.admin-login-form input,.admin-notification-editor input,.admin-notification-editor textarea{background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;box-sizing:border-box;color:var(--color-text);font:inherit;min-height:42px;min-width:0;padding:0 12px}.admin-notification-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.admin-notification-editor{grid-gap:9px;background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;display:grid;gap:9px;padding:16px}.admin-notification-editor label,.admin-notification-editor strong{color:var(--color-text);font-size:13px;font-weight:900}.admin-notification-editor textarea{min-height:132px;padding:11px 12px;resize:vertical}.admin-active-toggle,.admin-notification-heading,.admin-pagination{align-items:center;display:flex}.admin-notification-heading{gap:12px;justify-content:space-between}.admin-active-toggle{gap:7px}.admin-active-toggle input{height:18px;min-height:auto;padding:0;width:18px}.admin-scene-filters{grid-template-columns:minmax(180px,1fr) minmax(130px,auto) minmax(180px,auto)}.admin-scene-table td:nth-child(2),.admin-scene-table td:nth-child(3),.admin-scene-table td:nth-child(5){max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-pagination{gap:14px;justify-content:center;margin-top:14px}.admin-pagination button{background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);cursor:pointer;display:inline-grid;height:40px;place-items:center;width:40px}.admin-pagination span{color:var(--color-muted);font-weight:900;min-width:72px;text-align:center}@media (max-width:720px){.admin-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-tabs button{justify-content:center;padding:0 8px}.admin-notification-grid,.admin-scene-filters{grid-template-columns:1fr}}.admin-create-form button,.admin-delete-user,.admin-filters button,.admin-login-form button,.admin-logout,.admin-preset-upload button,.admin-publish-action,.admin-secondary-action{border:0;border-radius:8px;cursor:pointer;font:inherit;font-weight:900;min-height:42px}.admin-create-form button,.admin-filters button,.admin-login-form button,.admin-preset-upload button,.admin-publish-action{background:var(--color-primary);color:var(--color-on-primary)}.admin-header{justify-content:space-between;margin-bottom:16px}.admin-tabs{display:flex;gap:8px;margin-bottom:16px}.admin-tabs button{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-muted);cursor:pointer;display:inline-flex;font:inherit;font-weight:900;gap:7px;min-height:42px;padding:0 16px}.admin-tabs button.is-active{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.admin-logout{align-items:center;background:var(--color-danger-soft);border:1px solid var(--color-danger);color:var(--color-danger);display:inline-flex;gap:8px;padding:0 14px}.admin-panel{margin-bottom:16px;padding:18px}.admin-release-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-release-summary{grid-gap:6px;background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;display:grid;gap:6px;margin-top:12px;overflow-wrap:anywhere;padding:12px}.admin-release-summary strong,.admin-validation-panel strong{color:var(--color-text)}.admin-change-grid small,.admin-panel-help,.admin-release-empty,.admin-release-summary small,.admin-validation-list small{color:var(--color-muted);font-weight:700}.admin-release-status{background:var(--color-success-soft);border-radius:999px;color:var(--color-success);font-size:12px;font-weight:900;padding:3px 8px;width:fit-content}.admin-panel-help{line-height:1.5;margin:12px 0}.admin-panel-help code{color:var(--color-primary)}.admin-preset-upload{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.admin-preset-upload input[type=file]{color:var(--color-text);flex:1 1 320px}.admin-preset-upload button,.admin-publish-action,.admin-secondary-action{align-items:center;display:inline-flex;gap:7px;justify-content:center;padding:0 14px}.admin-secondary-action{background:var(--color-primary-soft);border:1px solid var(--color-primary);color:var(--color-primary);margin-top:10px}.admin-publish-action{margin-top:16px}.admin-publish-confirmation{grid-gap:8px;display:grid;gap:8px;margin-top:16px}.admin-publish-confirmation label{color:var(--color-muted);font-size:13px;font-weight:800}.admin-publish-confirmation input{background:var(--color-bg);border:1px solid var(--color-primary);border-radius:8px;box-sizing:border-box;color:var(--color-text);font:inherit;min-height:42px;padding:0 12px;width:min(440px,100%)}.admin-change-grid,.admin-stat-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}.admin-change-grid>div,.admin-stat-grid span{grid-gap:5px;background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;display:grid;gap:5px;padding:11px}.admin-change-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-change-grid small,.admin-validation-list small{overflow-wrap:anywhere}.admin-validation-list{grid-gap:6px;border-radius:8px;display:grid;gap:6px;margin-top:14px;padding:12px}.admin-validation-list.is-warning{background:var(--color-warning-soft);border:1px solid var(--color-warning)}.admin-validation-list.is-error{background:var(--color-danger-soft);border:1px solid var(--color-danger)}.admin-market-overlay button:disabled,.admin-page button:disabled{background:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted);cursor:not-allowed;opacity:1}.admin-panel-title{color:var(--color-primary)}.admin-panel-title span{color:var(--color-muted);font-size:13px;font-weight:900}.admin-create-form{grid-template-columns:1fr 1fr 1fr 130px 140px auto;margin-top:14px}.admin-toolbar{grid-gap:12px;display:grid;gap:12px}.admin-filters{grid-gap:10px;display:grid;gap:10px;grid-template-columns:minmax(180px,1fr) 220px auto}.admin-table-wrap{margin-top:14px;overflow-x:auto;width:100%}.admin-user-table{border-collapse:collapse;min-width:760px;width:100%}.admin-user-table td,.admin-user-table th{border-bottom:1px solid var(--color-line);padding:12px 10px;text-align:left;vertical-align:middle}.admin-user-table th{color:var(--color-primary);font-size:12px;text-transform:uppercase}.admin-user-table td{color:var(--color-text);font-weight:750}.admin-user-table small{color:var(--color-muted);display:block;font-weight:700;margin-top:4px}.admin-membership-select{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:4px;color:var(--color-text);min-width:118px;padding:7px 8px}.is-stale-unverified{background:var(--color-danger-soft)}.admin-status-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:900;min-height:26px;padding:0 9px}.admin-status-pill.is-verified{background:var(--color-success-soft);color:var(--color-success)}.admin-status-pill.is-unverified{background:var(--color-warning-soft);color:var(--color-warning)}.admin-delete-user{align-items:center;background:var(--color-danger-soft);border:1px solid var(--color-danger);color:var(--color-danger);display:inline-flex;gap:6px;padding:0 10px}.admin-error,.admin-message{border-radius:8px;font-size:14px;font-weight:800;margin:0 auto 14px;max-width:1120px;padding:11px 14px}.admin-error{background:var(--color-danger-soft);border:1px solid var(--color-danger);color:var(--color-danger)}.admin-message{background:var(--color-success-soft);border:1px solid var(--color-success);color:var(--color-success)}.admin-empty{color:var(--color-muted)!important;text-align:center!important}.admin-market-switcher{display:flex;gap:8px;padding:10px}.admin-market-switcher button{align-items:center;background:var(--color-surface);border:1px solid var(--color-primary);border-radius:5px;color:var(--color-text);cursor:pointer;display:inline-flex;font:inherit;font-weight:850;gap:7px;min-height:40px;padding:0 13px}.admin-market-switcher button.is-active{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success)}.admin-market-reported{align-items:center;color:var(--color-text);display:inline-flex;font-size:.78rem;font-weight:800;gap:6px}.admin-market-reported input{width:auto}.admin-market-alert{color:var(--color-danger)!important;font-weight:950}.admin-icon-action{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:4px;color:var(--color-text);cursor:pointer;display:inline-grid;height:34px;place-items:center;width:34px}.admin-icon-action.is-danger{border-color:var(--color-danger);color:var(--color-danger)}.admin-market-overlay{background:var(--color-overlay);display:grid;inset:0;padding:18px;place-items:center;position:fixed;z-index:2200}.admin-market-inspector{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:7px;color:var(--color-text);max-height:calc(100dvh - 36px);overflow-y:auto;padding:18px;width:min(820px,100%)}.admin-market-inspector>header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.admin-market-inspector h2,.admin-market-inspector h3,.admin-market-inspector p{margin-top:0}.admin-market-inspector header small{color:var(--color-muted)}.admin-market-inspector header button,.admin-market-remove,.admin-market-report button{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:4px;color:var(--color-text);cursor:pointer;font:inherit;font-weight:800;min-height:36px;padding:0 10px}.admin-market-cover{aspect-ratio:4/3;background:var(--color-bg);border-radius:6px;object-fit:cover;width:min(320px,100%)}.admin-market-cover.is-empty{color:var(--color-muted);display:grid;place-items:center}.admin-market-snapshot{border-top:1px solid var(--color-line);margin:16px 0 22px;max-height:310px;overflow-y:auto}.admin-market-snapshot article{border-bottom:1px solid var(--color-line);padding:10px 0}.admin-market-snapshot article p{color:var(--color-text);margin:4px 0 0;white-space:pre-wrap}.admin-market-report{border-bottom:1px solid var(--color-line);display:flex;gap:12px;justify-content:space-between;padding:10px 0}.admin-market-report small{color:var(--color-muted);display:block;margin-top:3px}.admin-market-report p{margin:5px 0 0}.admin-market-report>span{align-items:center;display:flex;gap:6px}.admin-market-remove{align-items:center;border-color:var(--color-danger);color:var(--color-danger);display:inline-flex;gap:7px;margin-top:20px}@media (max-width:820px){.admin-page{padding:16px}.admin-header{align-items:flex-start}.admin-change-grid,.admin-create-form,.admin-filters,.admin-release-grid,.admin-stat-grid{grid-template-columns:1fr}}.admin-scene-selection .admin-filters{flex-wrap:wrap;gap:12px;margin-block:12px}.admin-scene-selection label{display:flex;flex-direction:column;gap:4px;min-width:0}.admin-scene-selection input,.admin-scene-selection select{max-width:100%}.admin-scene-browser{color:var(--color-text);margin:0 auto;max-width:1100px;padding:24px 16px}.admin-scene-browser-toolbar{background:var(--color-surface);border:1px solid var(--color-line);border-radius:12px;padding:20px}.admin-scene-browser-heading{align-items:center;display:flex;gap:12px;justify-content:space-between}.admin-scene-browser h1{font-size:24px;margin:8px 0}.admin-scene-browser a{color:var(--color-primary)}.admin-scene-browser p{line-height:1.5}.admin-scene-browser-filters{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.admin-scene-browser-filters label{display:flex;flex:1 1 200px;flex-direction:column;gap:6px;min-width:0}.admin-scene-browser button,.admin-scene-browser select{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);font:inherit;min-height:44px;padding:8px 12px}.admin-scene-browser select{width:100%}.admin-scene-browser button{cursor:pointer}.admin-scene-browser button:disabled{cursor:default;opacity:.45}.admin-scene-browser-navigation{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.admin-scene-browser-preview{border:1px solid var(--color-line);border-radius:12px;margin-top:20px;overflow:hidden}.admin-scene-browser-caption{background:var(--color-surface);display:flex;flex-wrap:wrap;gap:8px 16px;overflow-wrap:anywhere;padding:16px}.admin-scene-browser .scene-player-embedded{inset:auto;min-height:560px;position:relative;z-index:0}.admin-scene-browser .scene-player-embedded .scene-player-stage{min-height:560px}.admin-scene-browser-note{font-size:13px;padding:0 16px}@media (max-width:600px){.admin-scene-browser{padding:12px 8px}.admin-scene-browser-toolbar{padding:12px}.admin-scene-browser-heading{align-items:flex-start;flex-direction:column}}.admin-preset-browser{color:var(--color-text);margin:0 auto;max-width:1200px;padding:24px 16px}.admin-preset-browser-toolbar{background:var(--color-surface);border:1px solid var(--color-line);border-radius:12px;padding:20px}.admin-preset-browser a{color:var(--color-primary);text-underline-offset:3px}.admin-preset-browser-heading{align-items:center;display:flex;gap:16px;justify-content:space-between}.admin-preset-browser h1{font-size:24px;margin:16px 0}.admin-preset-browser p{line-height:1.5}.admin-preset-browser-filters{display:flex;flex-wrap:wrap;gap:16px;margin-top:20px}.admin-preset-browser-filters label{display:flex;flex:1 1 220px;flex-direction:column;gap:6px;min-width:0}.admin-preset-browser :is(button,select,input){background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);font:inherit;min-height:44px;padding:8px 12px}.admin-preset-browser input{caret-color:var(--color-primary);min-width:0}.admin-preset-browser button{cursor:pointer}.admin-preset-browser button:disabled{cursor:default;opacity:.5}.admin-preset-browser button:not(:disabled):hover{border-color:var(--color-primary)}.admin-preset-browser :focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.admin-preset-browser-group{margin-top:32px}.admin-preset-browser h2{font-size:18px;margin:0 0 12px;overflow-wrap:anywhere}.admin-preset-browser h2 span{font-size:14px;font-weight:400;margin-left:8px}.admin-preset-browser-scroll{border:1px solid var(--color-line);border-radius:12px;overflow-x:auto;scrollbar-color:var(--color-line) var(--color-surface)}.admin-preset-browser table{background:var(--color-surface);border-collapse:collapse;font-size:14px;min-width:760px;width:100%}.admin-preset-browser :is(th,td){border-bottom:1px solid var(--color-line);padding:14px 16px;text-align:left;vertical-align:top}.admin-preset-browser thead{background:var(--color-bg)}.admin-preset-browser tbody tr:last-child>*{border-bottom:0}.admin-preset-browser tbody th{max-width:360px;min-width:220px;overflow-wrap:anywhere}.admin-preset-browser tbody td:nth-child(2){max-width:220px;overflow-wrap:anywhere}.admin-preset-browser small{display:block;font-size:12px;font-weight:400;margin-top:6px}.admin-preset-browser .is-number{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}@media (max-width:600px){.admin-preset-browser{padding:12px 8px}.admin-preset-browser-toolbar{padding:12px}.admin-preset-browser h1{font-size:22px}}.user-page{color:var(--color-text);padding:20px 0}.user-page-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin:0 auto 24px;max-width:1080px;min-height:76px;position:relative}.user-page-logout{align-items:center;border:1px solid var(--color-line);border-radius:8px;cursor:pointer;display:inline-flex;font:inherit;font-weight:var(--weight-control);justify-content:center;min-height:var(--control-height);transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}.user-page-header .btn-back-inline{flex-shrink:0}.user-page-logout{background:var(--color-surface-soft);color:var(--color-text);gap:8px;margin-left:auto;padding:0 16px}.user-page-logout:hover{filter:brightness(1.04);transform:translateY(-1px)}.user-page-title-block{flex:1 1;min-width:0;text-align:left}.user-page-title-block h1{margin:0}.user-page-title-block p{color:var(--color-muted);font-size:13px;font-weight:400;line-height:1.55;margin:5px 0 0}.page-title-user{color:var(--color-text);text-align:left}.user-page-section{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-panel);margin:0 auto 20px;max-width:1080px;padding:var(--panel-padding)}.user-page-title{color:var(--color-text);font-size:var(--text-section-title);font-weight:var(--weight-section-title);margin:0 0 16px}.user-page .user-page-subtitle{border-top:1px solid var(--color-line);color:var(--color-text);font-size:var(--text-group-title);font-weight:var(--weight-group-title);margin:24px 0 12px;padding-top:20px}.user-page .user-profile-overview{grid-gap:32px;align-items:center;display:grid;gap:32px;grid-template-columns:minmax(0,1fr) minmax(230px,.7fr)}.user-page .user-profile-overview .user-profile-card{background:none;border:0;margin:0;padding:0}.user-page .user-setting-row{align-items:center;display:flex;gap:24px;justify-content:space-between}.user-page .user-setting-row label{font-size:.9375rem;font-weight:600}.user-page .user-first-encounter-setting{margin-bottom:20px}.user-page .user-setting-row p{color:var(--color-muted);font-size:.8125rem;line-height:1.6;margin:6px 0 0;max-width:600px}.user-page .user-setting-row select{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);font:inherit;min-height:44px;min-width:130px;padding:8px 12px}.user-page .user-danger-section{background:var(--color-danger-soft);border-color:var(--color-danger);margin-top:32px}.user-page .user-danger-section .user-page-title{color:var(--color-danger)}.user-page .user-danger-section .user-danger-zone{border-top:0;margin-top:0;padding-top:0}.user-page .user-danger-zone p{font-weight:400;line-height:1.6}.user-page .user-password-card:last-child{margin-bottom:0}.user-page .user-password-open{font-weight:600;justify-content:flex-start}.user-page .user-danger-actions button[type=button]{background:#0000;border-color:var(--color-line);color:var(--color-text)}.user-profile-card{grid-gap:10px;border:1px solid var(--color-line);border-radius:8px;display:grid;gap:10px;margin-bottom:14px;padding:18px}.user-account-card,.user-profile-card{background:var(--color-bg)}.user-account-heading{align-items:center;display:flex;gap:12px;justify-content:space-between}.user-membership-badge{background:var(--color-primary-soft);border:1px solid var(--color-primary);border-radius:6px;color:var(--color-primary);font-size:.72rem;font-weight:900;padding:6px 10px;text-transform:uppercase}.user-membership-badge.is-trial{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success)}.user-membership-badge.is-user{background:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted)}.user-membership-message{background:var(--color-primary-soft);border-left:3px solid var(--color-primary);color:var(--color-text);line-height:1.55;margin:14px 0;padding:14px 16px}.user-membership-message.is-trial{background:var(--color-success-soft);border-left-color:var(--color-success)}.user-membership-message.is-user{background:var(--color-surface-soft);border-left-color:var(--color-line)}.user-account-details{color:var(--color-text);display:flex;flex-wrap:wrap;font-weight:750;gap:8px 16px}.user-danger-zone{grid-gap:12px;align-items:center;border-top:1px solid var(--color-danger);display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;margin-top:6px;padding-top:14px}.user-danger-zone strong{color:var(--color-danger);font-size:14px}.user-danger-zone p{color:var(--color-muted);font-size:13px;font-weight:700;margin:4px 0 0}.user-danger-actions button,.user-delete-account-button{background:var(--color-danger-soft);border:1px solid var(--color-danger);border-radius:8px;color:var(--color-danger);cursor:pointer;font-weight:850;min-height:var(--control-height);padding:0 12px}.user-delete-account-button{align-items:center;display:inline-flex;gap:7px;justify-content:center;white-space:nowrap}.user-delete-account-form{grid-gap:8px;display:grid;gap:8px;justify-items:end}.user-delete-account-form input{background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;box-sizing:border-box;color:var(--color-text);min-height:var(--control-height);padding:0 12px;width:min(240px,100%)}.user-danger-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:end}.user-password-card{background:var(--color-bg)}.user-password-card:not(.is-open){padding:0}.user-password-open{align-items:center;background:var(--color-surface-soft);border:0;border-radius:8px;color:var(--color-text);cursor:pointer;display:inline-flex;font:inherit;font-weight:var(--weight-control);gap:8px;justify-content:center;min-height:var(--control-height);padding:0 14px}.user-password-open:hover{background:var(--color-surface-soft);color:var(--color-primary)}.user-password-form{grid-gap:10px;display:grid;gap:10px}.user-password-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:minmax(0,1fr)}.user-delete-account-form label,.user-password-grid label{color:var(--color-text);font-size:.875rem;font-weight:600}.user-form-help{color:var(--color-muted);font-size:.875rem;line-height:1.6;margin:0 0 4px}.user-level-summary{grid-gap:10px;display:grid;gap:10px;padding:4px 0}.user-level-summary>div{align-items:center;display:flex;gap:12px;justify-content:space-between}.user-level-summary strong{color:var(--color-primary);font-size:1.25rem}.user-level-summary p{color:var(--color-muted);font-size:.8125rem;margin:0}.user-level-summary progress{accent-color:var(--color-success);background:var(--color-surface-soft);border:0;border-radius:4px;height:8px;overflow:hidden;width:100%}.user-level-summary progress::-webkit-progress-bar{background:var(--color-surface-soft)}.user-level-summary progress::-webkit-progress-value{background:var(--color-success)}.user-level-summary progress::-moz-progress-bar{background:var(--color-success)}.user-password-grid input{background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);font:inherit;min-height:var(--control-height);min-width:0;padding:11px 12px}.user-password-message{color:var(--color-success);font-size:13px;font-weight:800}.user-profile-name{color:var(--color-text);font-size:clamp(26px,5vw,36px);font-weight:750;line-height:1.3;overflow-wrap:anywhere}.user-stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.user-stat-box{grid-gap:7px;align-content:center;background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;display:grid;gap:7px;justify-items:center;min-height:116px;min-width:0;padding:14px 12px;text-align:center}.user-stat-icon{color:var(--color-primary)}.user-stat-label{color:var(--color-muted);font-size:12px;font-weight:600;line-height:1.5}.user-stat-value{color:var(--color-text);font-size:clamp(28px,5vw,36px);font-weight:750;line-height:1;overflow-wrap:anywhere}.user-stat-value-time{font-size:clamp(24px,6vw,34px)}.user-nickname-display,.user-nickname-editor{grid-gap:10px;display:grid;gap:10px;min-width:0}.user-nickname-display{align-items:center;grid-template-columns:minmax(0,1fr) auto}.user-nickname-actions button,.user-nickname-display button{background:var(--color-surface-soft);cursor:pointer;font:inherit;font-size:var(--text-control);font-weight:var(--weight-control)}.user-nickname-actions button,.user-nickname-display button,.user-nickname-editor input{border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);min-height:var(--control-height);padding:0 12px}.user-nickname-editor input{background:var(--color-bg);box-sizing:border-box;font:inherit;width:100%}.user-nickname-actions{display:flex;flex-wrap:wrap;gap:8px}.user-nickname-error{color:var(--color-danger);font-size:13px;font-weight:700}@media (max-width:640px){.user-page .user-profile-overview{gap:24px;grid-template-columns:minmax(0,1fr)}.user-page .user-setting-row{align-items:stretch;flex-direction:column;gap:14px}.user-page{padding:12px 0}.user-page-header{display:flex}.user-page-title-block{flex:1 1}.user-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.user-stat-box{min-height:86px;padding:10px 8px}.user-stat-value{font-size:28px}.user-stat-value-time{font-size:22px}.user-stat-label{font-size:12px}.user-danger-zone,.user-nickname-display{grid-template-columns:1fr}.user-danger-zone{align-items:stretch}.user-delete-account-form{justify-items:stretch}.user-delete-account-form input{width:100%}.user-danger-actions{justify-content:stretch}.user-danger-actions button,.user-delete-account-button{width:100%}}.user-nickname-actions .user-save-button{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.month-navigation{--month-control-size:44px;--month-side-width:calc(var(--month-control-size)*2 + 2px);grid-gap:12px;background:#0000;display:grid;gap:12px;grid-template-columns:var(--month-side-width) minmax(0,1fr) var(--month-side-width);margin-bottom:16px;padding:4px 0 8px;position:relative}.month-navigation,.nav-button{align-items:center;border:0;border-radius:0}.nav-button{background:var(--color-surface);color:var(--color-text);cursor:pointer;display:inline-flex;flex:0 0 var(--month-control-size);height:var(--month-control-size);justify-content:center;padding:0;transition:background-color .2s ease,border-color .2s ease,transform .2s ease;-webkit-user-select:none;user-select:none;width:var(--month-control-size)}.nav-button:hover{background:var(--color-surface-soft);border-color:var(--color-focus)}.nav-button:active{transform:translateY(0)}.nav-button:disabled{cursor:not-allowed;opacity:.4}.nav-button:disabled:hover{background:var(--color-surface);border-color:var(--color-line);transform:none}.month-display{align-items:baseline;display:flex;flex-wrap:wrap;gap:2px 8px;justify-content:center;min-width:0;text-align:center}.month-step-controls{background:var(--color-surface);border:1px solid var(--color-line);border-radius:999px;display:flex;justify-self:end}.month-step-controls .nav-button-prev{border-radius:999px 0 0 999px}.month-step-controls .nav-button-next{border-left:1px solid var(--color-line);border-radius:0 999px 999px 0}.month-name{color:var(--color-text);font-size:22px;font-weight:700;letter-spacing:0;transition:color .3s ease}.month-name.current-month{color:var(--color-primary)}.month-year-label{color:var(--color-muted);font-size:15px;font-weight:600}.month-picker-anchor{justify-self:start;position:relative}.month-picker-toggle{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:50%;color:var(--color-text);cursor:pointer;display:inline-flex;font:inherit;font-size:13px;font-weight:600;height:var(--month-control-size);justify-content:center;padding:0;transition:background-color .2s ease,border-color .2s ease,color .2s ease;white-space:nowrap;width:var(--month-control-size)}.month-picker-toggle:hover,.month-picker-toggle[aria-expanded=true]{background:var(--color-surface-soft);border-color:var(--color-focus);color:var(--color-primary)}.month-option:focus-visible,.month-picker-close:focus-visible,.month-picker-toggle:focus-visible,.nav-button:focus-visible,.year-selector:focus-visible{outline:3px solid var(--color-primary-soft);outline-offset:2px}.month-picker-popover{background:var(--color-surface);border:1px solid var(--color-line);border-radius:12px;box-shadow:0 14px 32px #162a4629;left:0;opacity:0;padding:16px;pointer-events:none;position:absolute;top:calc(100% + 8px);transform:translateY(-6px) scale(.98);transform-origin:top left;transition:opacity .16s ease,transform .16s ease,visibility .16s ease;visibility:hidden;width:min(300px,calc(100vw - 32px));z-index:30}.month-picker-popover.is-open{opacity:1;pointer-events:auto;transform:translateY(0) scale(1);visibility:visible}.month-picker-header{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:14px}.month-picker-header h2{color:var(--color-text);font-size:16px;font-weight:700;margin:0}.month-picker-close{align-items:center;background:#0000;border:0;border-radius:6px;color:var(--color-muted);cursor:pointer;display:inline-flex;height:28px;justify-content:center;padding:0;width:28px}.month-picker-close:hover{background:var(--color-surface-soft);color:var(--color-text)}.month-picker-year-label{color:var(--color-muted);display:block;font-size:12px;font-weight:600;margin-bottom:6px}.year-selector{background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;box-sizing:border-box;color:var(--color-text);cursor:pointer;font:inherit;font-size:14px;font-weight:600;padding:9px 11px;width:100%}.year-selector:hover{background:var(--color-surface-soft);border-color:var(--color-focus)}.year-selector option{background-color:var(--color-bg);color:var(--color-text)}.month-picker-grid{grid-gap:7px;display:grid;gap:7px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.month-option{background:var(--color-bg);border:1px solid #0000;border-radius:7px;color:var(--color-text);cursor:pointer;font:inherit;font-size:13px;font-weight:600;min-height:36px;padding:5px 4px;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.month-option:hover{background:var(--color-surface-soft);border-color:var(--color-focus)}.month-option.is-selected{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}@media (max-width:600px){.month-navigation{gap:8px}.month-name{font-size:18px}}.day-cell{background:var(--color-surface);border:1px solid var(--color-line);border-radius:4px;display:flex;flex-direction:column;min-height:80px;padding:8px;transition:all .2s ease}.day-number{color:var(--color-cream);font-size:14px;font-weight:600;margin-bottom:4px}.day-stats{word-wrap:break-word;color:var(--color-muted);font-size:12px;margin-top:auto}.day-cell-practiced{background:var(--color-primary-soft);border-color:var(--color-line)}.day-cell-practiced:hover{border-color:var(--color-gold);box-shadow:var(--shadow-warm);transform:translateY(-2px)}.day-cell-practiced .day-number{color:var(--color-gold)}.day-cell-practiced .day-stats{color:var(--color-cream);font-weight:500}.day-cell-empty{border-color:var(--color-line)}.day-cell-empty,.day-cell-empty:hover{background:var(--color-surface)}.day-cell-empty .day-number{color:var(--color-muted)}.day-cell-today{border:2px solid var(--color-teal);box-shadow:var(--shadow-warm)}.day-cell-today .day-number{color:var(--color-teal);font-weight:700}.day-cell-other-month{opacity:.4;pointer-events:none}.day-cell-other-month .day-number{color:var(--color-muted)}@media (max-width:768px){.day-cell{min-height:60px;padding:6px}.day-number{font-size:12px}.day-stats{font-size:10px}}@media (max-width:480px){.day-cell{aspect-ratio:1;min-height:40px;min-width:40px;padding:4px}.day-number{font-size:11px}.day-stats{font-size:9px}}.calendar-grid{margin:0 auto;max-width:800px;width:100%}.calendar-grid-header{grid-gap:4px;background-color:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;display:grid;gap:4px;grid-template-columns:repeat(7,minmax(0,1fr));margin-bottom:8px;padding:12px 4px}.day-header{color:var(--color-cream);font-size:14px;font-weight:600;padding:8px 0;text-align:center}.calendar-days{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(7,minmax(0,1fr));padding:4px}.day-cell-empty-slot{min-height:80px;min-width:0}@media (max-width:768px){.day-header{font-size:12px;padding:6px 0}.day-cell-empty-slot{min-height:60px}}@media (max-width:480px){.calendar-grid-header{gap:2px;margin-bottom:4px;padding:8px 2px}.calendar-days{gap:2px;padding:2px}.day-header{font-size:0;line-height:1;overflow:hidden;padding:4px 0}.day-header:first-letter{font-size:11px}.day-cell-empty-slot{min-height:40px}}.monthly-summary{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-panel);box-shadow:var(--shadow-warm);margin-top:16px;padding:16px}.monthly-summary-title{color:var(--color-gold);font-size:var(--text-section-title);font-weight:var(--weight-section-title);letter-spacing:.04em;margin:0 0 16px;text-transform:uppercase}.monthly-summary-attendance{align-items:center;color:var(--color-muted);display:flex;font-size:13px;gap:8px 18px;margin:0 0 10px}.monthly-summary-attendance span{white-space:nowrap}.monthly-summary-attendance strong{font-feature-settings:"tnum";color:var(--color-text);font-variant-numeric:tabular-nums;font-weight:650}.monthly-summary-table{font-feature-settings:"tnum";border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums;table-layout:fixed;width:100%}.monthly-summary-table td,.monthly-summary-table th{border-bottom:1px solid var(--color-line);padding:10px 6px}.monthly-summary-table thead th{color:var(--color-muted);font-weight:500;padding-top:4px;text-align:right}.monthly-summary-table th:first-child{text-align:left;width:32%}.monthly-summary-table tbody th{color:var(--color-text);font-weight:500}.monthly-summary-table tbody th>span{align-items:center;display:flex;gap:7px}.monthly-summary-table tbody th svg{color:var(--color-primary);flex-shrink:0}.monthly-summary-table td{color:var(--color-text);font-weight:650;overflow-wrap:anywhere;text-align:right}.monthly-summary-table tbody tr:last-child>*{border-bottom:0}.monthly-summary-average-note{color:var(--color-muted);font-size:11px;line-height:1.5;margin:8px 0 0}.summary-visually-hidden{clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.monthly-summary-stats{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.summary-stat{grid-gap:7px;align-content:center;background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;box-shadow:var(--shadow-warm);display:grid;gap:7px;justify-items:center;min-height:116px;min-width:0;padding:14px 12px;text-align:center}.summary-stat-icon{color:var(--color-gold);filter:drop-shadow(0 2px 7px rgba(255,214,107,.22))}.stat-label{color:var(--color-muted);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.stat-value{color:var(--color-text);font-size:clamp(28px,5vw,42px);font-weight:900;line-height:1;overflow-wrap:anywhere;text-shadow:none}@media (max-width:768px){.monthly-summary{padding:14px}.monthly-summary-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-stat:first-child{order:1}.summary-stat:nth-child(5){order:2}.summary-stat:nth-child(2){order:3}.summary-stat:nth-child(6){order:4}.summary-stat:nth-child(3){order:5}.summary-stat:nth-child(7){order:6}.summary-stat:nth-child(4){order:7}.summary-stat:nth-child(8){order:8}}@media (max-width:480px){.monthly-summary-title{font-size:14px}.summary-stat{gap:6px;min-height:78px;padding:10px 8px}.stat-label{font-size:10px}.stat-value{font-size:28px}}.date-range-selector{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-panel);margin-top:24px;padding:24px}.date-range-title{color:var(--color-cream);font-size:var(--text-section-title);font-weight:var(--weight-section-title);margin:0 0 16px}.date-range-inputs{grid-gap:10px;align-items:flex-end;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.date-input-group{display:flex;flex:1 1;flex-direction:column;gap:8px;min-width:0}.date-label{color:var(--color-muted);font-size:14px;font-weight:500}.date-input{background:var(--color-bg);border:1px solid var(--color-line);border-radius:var(--radius-control);box-sizing:border-box;color:var(--color-text);font-family:inherit;font-size:16px;max-width:100%;min-height:var(--control-height);min-width:0;padding:10px 12px;transition:border-color .2s;width:100%}.calendar-date-range .date-range-selector{background:#0000;border:0;margin:12px 0;padding:0}.calendar-date-range .date-label{font-size:12px}.calendar-date-range .date-input{padding:8px 6px}.date-input:focus{border-color:var(--color-gold);box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}.date-input:hover{border-color:var(--color-line)}.date-input::-webkit-calendar-picker-indicator{cursor:pointer;filter:none}.validation-error{background:var(--color-danger-soft);border:1px solid #ff7a5973;border-radius:var(--radius-control);color:var(--color-danger);font-size:14px;margin-top:12px;padding:10px 12px}@media (max-width:768px){.date-range-selector{padding:20px}.date-range-inputs{align-items:stretch;gap:10px}.date-input-group{width:100%}}@media (max-width:480px){.date-range-selector{padding:16px}.date-range-inputs{align-items:stretch;gap:10px}.date-input-group{width:100%}.date-range-title{font-size:18px}.date-label{font-size:13px}.date-input{box-sizing:border-box;font-size:16px;padding:8px 10px;width:100%}}.daily-trend-section{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-panel);box-sizing:border-box;margin-top:24px;min-width:0;padding:20px;width:100%}.daily-trend-section-title{color:var(--color-text);font-size:var(--text-section-title);font-weight:var(--weight-section-title);margin:0 0 14px}.daily-trend-no-data{color:var(--color-muted);padding:40px 0;text-align:center}.trend-tooltip{background:var(--color-bg);border:1px solid var(--color-line);border-radius:6px;color:var(--color-text);font-size:13px;line-height:1.7;padding:10px 14px}.trend-tooltip-date{color:var(--color-muted);font-weight:600;margin-bottom:4px}.training-course{margin:18px 0}.training-course-summary{align-items:center;display:flex;gap:8px;justify-content:space-between}.training-course-summary>div{grid-gap:3px;display:grid;gap:3px}.training-course-summary strong{color:var(--color-text);font-size:15px}.training-course-help,.training-course-summary>div>span{color:var(--color-muted);font-size:12px}.training-course-summary button{align-items:center;background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;color:var(--color-primary);cursor:pointer;display:inline-flex;font-size:12px;gap:5px;justify-content:center;min-height:44px;padding:10px}.training-course-progress{background:var(--color-line);border-radius:3px;height:5px;margin:12px 0;overflow:hidden}.training-course-progress>span{background:var(--color-primary);display:block;height:100%}.training-course-stages{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(5,minmax(0,1fr))}.training-course-stages button{align-items:center;background:#0000;border:1px solid #0000;border-radius:8px;color:var(--color-muted);cursor:pointer;display:flex;flex-direction:column;font-size:11px;font-weight:700;gap:4px;min-height:52px;padding:6px 2px}.training-course-stages button>span{border:1px solid var(--color-line);border-radius:50%;display:grid;height:20px;place-items:center;width:20px}.training-course-stages button[aria-current=step]{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.training-course-help{line-height:1.5;margin:8px 0}.training-course-map{background:var(--color-bg);border:1px solid var(--color-line);border-radius:10px;overflow:clip;position:relative}.training-course button:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.training-course-canvas{isolation:isolate;position:relative;width:100%}.training-course-background{display:block;height:100%;inset:0;position:absolute;-webkit-user-select:none;user-select:none;width:100%}.training-course-stage-label{align-items:center;background:#172720df;border:1px solid #f2d59d70;border-radius:8px;color:#fff9e9;display:flex;gap:8px;left:10px;margin-top:12px;padding:7px 10px;pointer-events:none;position:absolute;z-index:2}.training-course-stage-label>span{color:#ffe1a4;font-size:17px;font-weight:900}.training-course-stage-label strong{font-size:12px}.training-course-character{pointer-events:none;position:absolute;width:auto;z-index:4}.training-course-character img{display:block;filter:drop-shadow(0 2px 2px #17272070);height:100%;max-width:none;width:auto}.training-course-pace{font-feature-settings:"tnum";align-items:center;background:#172720e8;border:1px solid #f5d38880;border-radius:5px;color:#fff9e9;display:flex;font-size:clamp(9px,2.6vw,11px);font-variant-numeric:tabular-nums;gap:4px;left:calc(100% + 5px);padding:4px 5px;position:absolute;top:50%;transform:translateY(-50%);white-space:nowrap}.training-course-pace>span{color:#ffe1a4;font-size:.85em;letter-spacing:.02em}.training-course-pace>strong{font-size:inherit;font-weight:700}.training-course-you{background:#172720;border:1px solid #f5d388;border-radius:10px;color:#fff9e9;font-size:10px;font-weight:800;left:50%;padding:2px 6px;position:absolute;top:-21px;transform:translateX(-50%);white-space:nowrap}.training-course-checkpoint{color:#ffe196;display:grid;justify-items:start;pointer-events:none;position:absolute;transform:translate(-5px,-100%);z-index:3}.training-course-checkpoint>span{background:#172720df;border:1px solid #fff9e970;border-radius:5px;color:#fff9e9;font-size:10px;font-weight:800;padding:3px 5px;white-space:nowrap}.training-course-checkpoint svg{fill:#ffc34a;stroke:#513415;stroke-width:1.8;filter:drop-shadow(0 1px 1px #17272080);height:36px;width:30px}.training-course-checkpoint.is-complete>span{background:#ffe1a4;border-color:#513415;color:#332613}.training-course-checkpoint.is-summit svg{height:48px;width:40px}.training-course-summit-estimate{background:#172720ed;border:1px solid #fff9e970;border-radius:5px;bottom:0;color:#fff9e9;left:calc(100% + 5px);padding:3px 5px;position:absolute}.training-course-summit-estimate .user-goal-estimate{grid-gap:1px;color:inherit;display:grid;font-size:10px;gap:1px;line-height:1.2;margin:0}.training-course-checkpoint.is-new svg{animation:training-flag-plant .7s ease-out;transform-origin:bottom left}.training-course-gap{background:var(--color-surface);height:14px}.training-course-stage-caption{background:#172720ed;border-radius:6px;color:#fff9e9;font-size:clamp(11px,1.3vw,14px);left:10px;line-height:1.55;margin:0;max-width:280px;overflow-wrap:anywhere;padding:6px 8px;pointer-events:none;position:absolute;transform:translateY(-50%);width:40%;word-break:keep-all;z-index:2}.training-course-stage-caption.is-mountain{bottom:10px;transform:none}@media (max-width:360px){.training-course-stage-label[data-stage=meadow],.training-course-stage-label[data-stage=river]{left:auto;right:10px}.training-course-stage-caption[data-stage=river]{transform:translateY(-75%)}.training-course-stage-caption.is-mountain{width:36%}}@keyframes training-flag-plant{0%{opacity:0;transform:translateY(-15px) rotate(-15deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@media (prefers-reduced-motion:reduce){.training-course-checkpoint.is-new svg{animation:none}}.user-goal-journey{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:8px;margin-bottom:16px;overflow:hidden;padding:18px;position:relative}.user-goal-journey:before{background:none;content:"";inset:0;opacity:.38;pointer-events:none;position:absolute}.user-goal-heading{grid-gap:12px;align-items:start;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;position:relative;z-index:1}.user-goal-current,.user-goal-target{grid-gap:4px;display:grid;gap:4px}.user-goal-heading span,.user-level-kicker{color:var(--color-muted);font-size:12px;font-weight:900;text-transform:uppercase}.user-goal-current>strong,.user-goal-target>strong{color:var(--color-primary);font-size:clamp(28px,8vw,42px);line-height:1}.user-goal-heading .user-goal-score-caption{font-weight:500;text-transform:none}.user-goal-estimate,.user-goal-heading .user-goal-score-caption{font-feature-settings:"tnum";font-size:12px;font-variant-numeric:tabular-nums;line-height:1.4;margin-top:2px;white-space:nowrap}.user-goal-estimate{align-items:baseline;color:var(--color-muted);display:flex;gap:4px}.user-goal-estimate time{display:block;font:inherit}.user-goal-heading .user-goal-estimate span{font-size:inherit;font-weight:500}.user-goal-journey>.training-course{margin-bottom:0}@media (max-width:640px){.user-goal-journey{padding:14px}.user-goal-heading{gap:8px}.user-goal-current>strong,.user-goal-target>strong{font-size:clamp(25px,7vw,36px)}}.practice-summary-progress{border-top:1px solid var(--color-line);margin-top:16px;padding:18px 4px 4px}.practice-summary-heading{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.practice-summary-heading h3{color:var(--color-cream);font-size:var(--text-group-title);font-weight:var(--weight-group-title);margin:0}.practice-summary-heading p{color:var(--color-muted);font-size:12px;line-height:1.4;margin:4px 0 0}.practice-summary-flow{align-items:center;display:grid;grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr) 26px minmax(0,1fr)}.practice-summary-stage{grid-gap:5px;display:grid;gap:5px;justify-items:center;min-width:0;text-align:center}.practice-summary-stage-icon{background:var(--color-surface);border:1px solid;border-radius:50%;box-shadow:var(--shadow-warm);display:grid;height:44px;place-items:center;width:44px}.practice-summary-stage strong{color:var(--color-text);font-size:26px;font-weight:950;line-height:1}.practice-summary-stage>span:last-child{color:currentColor;font-size:11px;font-weight:900;text-transform:uppercase}.practice-summary-stage.is-practicing{color:var(--color-secondary)}.practice-summary-stage.is-testing{color:var(--color-success)}.practice-summary-stage.is-complete{color:var(--color-warning)}.practice-summary-arrow{color:var(--color-muted);justify-self:center}.practice-summary-composition{background:#0a0908ad;border-radius:4px;box-shadow:var(--shadow-warm);display:flex;height:9px;margin-top:16px;overflow:hidden;width:100%}.practice-summary-composition span{height:100%;transition:width .32s ease}.practice-summary-composition .is-practicing{background:#ff8a63}.practice-summary-composition .is-testing{background:#52d6cc}.practice-summary-composition .is-complete{background:#ffd66b}.practice-summary-add-more{align-items:center;background:#ff8a6314;border-left:3px solid #ff8a63;color:var(--color-cream);display:flex;font-size:13px;font-weight:750;gap:8px;margin:14px 0 0;padding:10px 12px}.practice-summary-add-more svg{color:var(--color-secondary);flex:0 0 auto}.practice-summary-progress.is-compact .practice-summary-stage{gap:4px}.practice-summary-progress.is-compact .practice-summary-stage-icon{height:34px;width:34px}.practice-summary-progress.is-compact .practice-summary-composition{background:var(--color-line);height:8px;margin-top:12px}@media (max-width:480px){.practice-summary-progress{padding-top:14px}.practice-summary-heading{margin-bottom:14px}.practice-summary-heading h3{font-size:16px}.practice-summary-heading p{display:none}.practice-summary-flow{grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr)}.practice-summary-stage-icon{background:var(--color-surface);height:38px;width:38px}.practice-summary-stage strong{font-size:22px}.practice-summary-stage>span:last-child{font-size:9px}.practice-summary-arrow{width:18px}}.record-collection-card{--record-accent:#267d89;--record-tint:#e9f6f4;--record-paper:#f8faf9;--record-ink:#21334b;--record-caption:#4d6074;background:linear-gradient(140deg,#fff,#d4e9e9 22%,#f4e6f2 46%,#f9f5d8 72%,#bfcddc);border:1px solid #b9c8d5;border-radius:15px;box-shadow:0 3px 8px #21334b14,inset 0 0 0 1px #fffc;container-type:inline-size;display:flex;flex-direction:column;min-width:0;padding:5px;perspective:900px;perspective-origin:50% 45%;position:relative;transition:transform .18s ease,box-shadow .18s ease}.record-collection-card--focus{--record-accent:#b55040;--record-tint:#fff0e7}.record-collection-card--tournament{--record-accent:#7654a2;--record-tint:#f2eefa}.record-collection-card-artwork{aspect-ratio:1;background:var(--record-tint);border:1px solid #21334b1a;border-radius:10px 10px 3px 3px;flex:none;overflow:hidden;position:relative}.record-collection-card-artwork.is-locked{background:var(--record-tint);display:grid;place-items:center}.record-collection-card-placeholder{border:2px solid;border-radius:50%;color:var(--record-accent);display:grid;height:62%;opacity:.9;place-items:center;width:62%}.record-collection-card-artwork img{display:block;height:100%;image-rendering:auto;object-fit:cover;width:100%}.record-collection-card-number{font-feature-settings:"tnum";background:#f8faf9eb;border:1px solid #ffffffe6;border-radius:6px;box-shadow:0 1px 5px #21334b1f;color:#344a60;display:grid;font-size:11px;font-variant-numeric:tabular-nums;font-weight:800;height:25px;left:8px;letter-spacing:.06em;line-height:1;min-width:29px;padding:0 5px;place-items:center;position:absolute;top:8px}.record-collection-card-details{align-items:center;background:linear-gradient(150deg,var(--record-paper),var(--record-tint));border-radius:0 0 10px 10px;display:flex;flex:1 1;flex-direction:column;gap:5px;justify-content:center;min-height:104px;padding:13px 9px 17px;position:relative;text-align:center}.record-collection-card-details:after{background:var(--record-accent);border-radius:3px;bottom:5px;content:"";height:3px;opacity:.65;position:absolute;width:26px}.record-collection-card-label{text-wrap:balance;align-items:center;color:var(--record-caption);display:flex;font-size:12px;font-size:clamp(11px,6.2cqi,14px);font-weight:650;justify-content:center;line-height:1.4;min-height:2.8em;overflow-wrap:anywhere;word-break:keep-all}.record-collection-card-value{font-feature-settings:"tnum";color:var(--record-ink);display:block;font-size:30px;font-size:clamp(22px,15cqi,38px);font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.035em;line-height:1.15;max-width:100%;overflow-wrap:anywhere}.record-collection-card-value.is-text,.record-collection-card-value.is-time{font-size:21px;font-size:clamp(16px,10.2cqi,27px);letter-spacing:-.025em}.record-collection-card-value.is-time{overflow-wrap:normal;word-break:keep-all}.record-collection-card-value.is-text{font-size:clamp(14px,10.2cqi,27px)}:root[data-theme=dark] .record-collection-card{--record-paper:#302c2a;--record-ink:#fff4e3;--record-caption:#ded6ce;--record-accent:#8acfc8;--record-tint:#293d3b;background:linear-gradient(140deg,#dad8cc,#7d9ba3 22%,#a194b6 46%,#c1b391 72%,#637181);border-color:#8d8788;box-shadow:0 4px 12px #0000003d,inset 0 0 0 1px #ffffff38}:root[data-theme=dark] .record-collection-card--focus{--record-accent:#f2b191;--record-tint:#44322b}:root[data-theme=dark] .record-collection-card--tournament{--record-accent:#c5b0ed;--record-tint:#393146}@media (hover:hover) and (prefers-reduced-motion:no-preference){.record-collection-card:hover{box-shadow:0 8px 18px #21334b26,inset 0 0 0 1px #ffffffa6;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.record-collection-card{transition:none}}.record-collection-card .record-collection-card-trigger{background:#0000;border:0;border-radius:inherit;box-shadow:none;cursor:pointer;height:100%;inset:0;margin:0;padding:0;position:absolute;transform:none;width:100%;z-index:1}.record-collection-card-trigger:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.record-collection-card-inner{display:grid;flex:1 1;min-height:270px;position:relative;transform:rotateY(0deg);transform-origin:center center;transform-style:preserve-3d;transition:transform .62s cubic-bezier(.22,.75,.18,1)}.record-collection-card.is-flipped .record-collection-card-inner{transform:rotateY(180deg)}.record-collection-card-back,.record-collection-card-front{backface-visibility:hidden;grid-area:1/1;min-width:0}.record-collection-card-back,.record-collection-card-front{display:flex;flex-direction:column}.record-collection-card-back{background:linear-gradient(150deg,var(--record-paper),var(--record-tint));border-radius:10px;color:var(--record-ink);gap:12px;justify-content:center;padding:14px 10px;transform:rotateY(180deg)}.record-collection-card-back-title{color:var(--record-caption);font-size:13px;line-height:1.4;overflow-wrap:anywhere;text-align:center;word-break:keep-all}.record-collection-card-current{grid-gap:3px;display:grid;gap:3px;text-align:center}.record-collection-card-current>span{color:var(--record-caption);font-size:11px}.record-collection-card-current strong{font-feature-settings:"tnum";font-size:clamp(20px,13cqi,32px);font-variant-numeric:tabular-nums;line-height:1.25;overflow-wrap:anywhere}.record-collection-card-targets{list-style:none;margin:0;padding:0}.record-collection-card-targets li{align-items:center;border-top:1px solid color-mix(in srgb,var(--record-caption) 22%,#0000);color:var(--record-caption);display:flex;font-size:clamp(10px,6.3cqi,13px);gap:5px;justify-content:space-between;line-height:1.25;padding:8px 0}.record-collection-card-targets li.is-earned{color:var(--record-ink)}.record-collection-card-target-label{align-items:center;display:flex;gap:4px}.record-collection-card-targets strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.record-collection-card-hint{color:var(--record-caption);font-size:10px;line-height:1.4;text-align:center}.record-collection-card-tier{background:var(--record-paper);border:1px solid var(--record-tier-edge);border-radius:20px;bottom:7px;color:var(--record-ink);font-size:11px;font-weight:700;left:50%;padding:4px 9px;position:absolute;transform:translateX(-50%);white-space:nowrap}.record-collection-card-tier>span{color:var(--record-tier-edge);font-size:9px}.record-collection-card.record-tier-bronze{--record-tier-edge:#b45c45;--record-tier-light:#f7c6af;--record-tier-shadow:#793725}.record-collection-card.record-tier-silver{--record-tier-edge:#5282b4;--record-tier-light:#dcefff;--record-tier-shadow:#365a89}.record-collection-card.record-tier-gold{--record-tier-edge:#bd8b14;--record-tier-light:#fff0a1;--record-tier-shadow:#866008}:root .record-collection-card:is(.record-tier-bronze,.record-tier-silver,.record-tier-gold){background:linear-gradient(135deg,var(--record-tier-shadow),var(--record-tier-light) 23%,var(--record-tier-edge) 48%,var(--record-tier-light) 75%,var(--record-tier-shadow));border-color:var(--record-tier-edge);box-shadow:0 3px 12px #00000026,inset 0 0 0 1px var(--record-tier-light)}.record-collection-card:is(.record-tier-bronze,.record-tier-silver,.record-tier-gold):after{border:1px solid var(--record-tier-light);border-radius:12px;content:"";inset:2px;pointer-events:none;position:absolute}.record-collection-card-sr-only{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@media (prefers-reduced-motion:reduce){.record-collection-card-inner{transition:none}}.calendar-tabs,.library-navigation{border-bottom:1px solid var(--color-line);display:flex;gap:28px;margin:0 0 22px;padding:0;width:100%}.calendar-tabs button,.library-bookshop .library-navigation button{align-items:center;background:#0000;border:0;border-radius:0;color:var(--color-muted);cursor:pointer;display:inline-flex;font:inherit;font-size:1rem;font-weight:600;gap:8px;justify-content:center;min-height:var(--control-height);min-width:0;padding:15px 4px;position:relative}.calendar-tabs button.is-active,.library-bookshop .library-navigation button[aria-current=page]{color:var(--color-primary);font-weight:700}.calendar-tabs button.is-active:after,.library-bookshop .library-navigation button[aria-current=page]:after{background:var(--color-primary);border-radius:3px 3px 0 0;bottom:-1px;content:"";height:3px;left:0;position:absolute;right:0}@media (max-width:650px){.calendar-tabs,.library-navigation{gap:0;margin-bottom:16px}.calendar-tabs button,.library-bookshop .library-navigation button{flex:1 1;font-size:.875rem;gap:5px}}.calendar-page{color:var(--color-text);font-family:var(--font-ui);margin:0 auto;max-width:1200px;padding:0 0 20px}.calendar-page .monthly-summary-title,.calendar-page .record-collection-card-label,.calendar-page button,.calendar-page h1,.calendar-page h2,.calendar-page h3,.calendar-page input,.calendar-page select{font-family:var(--font-ui);letter-spacing:0}.calendar-page .daily-trend-section-title,.calendar-page .monthly-summary-title{font-size:var(--text-section-title);font-weight:var(--weight-section-title);text-transform:none}.calendar-page .practice-summary-stage>span:last-child,.calendar-page .record-collection-card-label,.calendar-page .stat-label,.calendar-page .user-goal-heading span,.calendar-page .user-level-kicker{font-weight:400;letter-spacing:0;text-transform:none}.calendar-page .practice-summary-stage strong,.calendar-page .record-collection-card-value,.calendar-page .stat-value{font-weight:650;letter-spacing:0}.calendar-page .practice-summary-add-more{font-weight:500}.calendar-title-block{min-width:0}.calendar-tab-panel{min-height:360px}.calendar-pace-panel,.calendar-summary-panel{margin:0;max-width:920px}.calendar-calendar-panel{min-width:0;width:100%}.calendar-page .calendar-grid{max-width:none}.calendar-page .monthly-summary{box-shadow:none}.calendar-page .monthly-summary-attendance{flex-wrap:wrap}.calendar-page .monthly-summary-title{color:var(--color-text)}.calendar-tabs button:hover{color:var(--color-primary)}.calendar-error button:focus-visible,.calendar-tabs button:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.calendar-summary-panel{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-panel);padding:20px}.calendar-lifetime-stats,.calendar-record-grid{grid-gap:16px;align-items:stretch;display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-page>.practice-summary-progress{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-panel);box-sizing:border-box;margin:0 0 12px;max-width:920px;padding:14px 20px}.calendar-cumulative-records,.calendar-records{border-top:1px solid var(--color-line);margin-top:24px;padding-top:20px}.calendar-summary-panel>.calendar-cumulative-records:first-child{border-top:0;margin-top:0;padding-top:0}.calendar-cumulative-records h2,.calendar-records h2,.calendar-records h3{color:var(--color-text);font-size:1rem;font-weight:600;margin:0 0 14px}.calendar-records h3{margin-top:24px}.calendar-page .calendar-metric-legend{align-items:center;color:var(--color-muted);display:flex;flex-wrap:wrap;font-size:.8125rem;gap:8px 20px;margin:12px 0}.calendar-page .calendar-metric-legend span{align-items:center;display:inline-flex;gap:6px}.calendar-page .calendar-metric-legend svg:first-child,.calendar-page .day-stat-time svg{color:var(--color-success)}.calendar-page .calendar-metric-legend span:last-child svg,.calendar-page .day-stat-score svg{color:var(--color-primary)}.calendar-page .day-stats{grid-gap:3px;font-feature-settings:"tnum";display:grid;font-variant-numeric:tabular-nums;gap:3px;text-align:left}.calendar-page .day-stats>span{align-items:center;display:flex;gap:4px;min-width:0;white-space:nowrap}.calendar-page .day-stats>span>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-page .day-stats svg{flex-shrink:0}.calendar-page .day-cell-practiced:hover{box-shadow:none;transform:none}.calendar-inline-error,.calendar-inline-status{border-radius:6px;font-weight:500;margin:12px 0 0;padding:10px 12px;text-align:center}.calendar-inline-status{background:var(--color-surface-soft);color:var(--color-muted)}.calendar-inline-error{background:var(--color-danger-soft);color:var(--color-danger)}.calendar-loading{color:var(--color-muted);padding:40px;text-align:center}.calendar-loading p{font-size:1.1rem}.calendar-error{background:var(--color-danger-soft);border:1px solid var(--color-danger);border-radius:var(--radius-panel);color:var(--color-danger);padding:40px;text-align:center}.calendar-error p{font-size:1.1rem;margin-bottom:20px}.calendar-error button{background:var(--color-primary);border:none;border-radius:var(--radius-control);color:var(--color-on-primary);cursor:pointer;font-size:1rem;min-height:var(--control-height);padding:10px 20px;transition:background-color .2s}.calendar-error button:hover{filter:brightness(1.04)}.calendar-error button:active{filter:brightness(.98)}@media (max-width:768px){.calendar-page{padding:0 0 12px}}@media (max-width:480px){.calendar-page>.practice-summary-progress{padding:12px 16px}.calendar-page .day-cell{aspect-ratio:auto;min-height:68px;min-width:0}.calendar-page .day-stats>span{gap:2px}.calendar-page .day-time-unit{display:inline}.calendar-page .day-stats{font-size:11px;line-height:1.3}.calendar-page .day-header{font-size:11px;line-height:1.4}.calendar-page .daily-trend-section{padding:14px 8px}.calendar-page .daily-trend-section-title{margin-left:6px}.calendar-page .day-stats svg{display:none}.calendar-page .day-stat-time{color:var(--color-success)}.calendar-page .day-stat-score{color:var(--color-primary)}.calendar-summary-panel{padding:12px}}@media (max-width:600px){.calendar-lifetime-stats,.calendar-record-grid{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}}.tournament-page{color:var(--color-text);margin:0 auto;max-width:1180px;min-height:100vh;padding:20px}.tournament-page-header{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:44px minmax(0,1fr);margin-bottom:22px;min-height:68px;text-align:left}.tournament-page-header>div{min-width:0;overflow-wrap:anywhere}.tournament-page-header .btn-back-inline{position:static}.tournament-page-header h1{color:var(--color-text);font-size:clamp(1.45rem,3vw,2.2rem);margin:0}.tournament-page-header p{color:var(--color-muted);font-weight:700;margin:4px 0 0}.tournament-error,.tournament-loading,.tournament-section{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:none}.tournament-error,.tournament-loading{padding:36px;text-align:center}.tournament-error{border-color:var(--color-danger)}.tournament-error button,.tournament-primary-btn{background:var(--color-primary);border:none;border-radius:8px;color:var(--color-on-primary);cursor:pointer;font-weight:950;min-height:44px}.tournament-section-heading span{color:var(--color-primary);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.tournament-muted{color:var(--color-muted);font-weight:650}.tournament-overview{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:12px;border-radius:var(--radius-lg,12px);margin-bottom:20px;overflow:hidden}.tournament-overview-hero{background:var(--color-surface-soft) url(/static/media/tournament_gate.e03c8158314fd67b2dcf.webp) center /cover no-repeat;background-blend-mode:soft-light}.tournament-overview-heading{padding:20px 24px}.tournament-detail-label,.tournament-eyebrow{color:var(--color-muted);display:block;font-size:12px;font-weight:650;line-height:1.5}.tournament-overview h2{color:var(--color-text);font-size:clamp(1.25rem,2.6vw,1.7rem);line-height:1.35;margin:5px 0 0}.tournament-overview-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:22px 24px}.tournament-overview-opponent,.tournament-overview-status{align-items:center;display:flex;gap:12px;min-width:0}.tournament-overview-opponent>div,.tournament-overview-schedule,.tournament-overview-status>div{grid-gap:5px;display:grid;font-size:13px;gap:5px;min-width:0;overflow-wrap:anywhere}.tournament-overview-grid strong{color:var(--color-text);font-size:16px;font-weight:750;line-height:1.5}.tournament-overview-name{color:var(--color-primary)}.tournament-overview-phase{color:var(--color-muted);font-size:12px}.tournament-overview-action{align-items:center;display:flex;gap:20px;padding:0 24px 22px}.tournament-overview-action p{color:var(--color-muted);flex:1 1;font-size:14px;line-height:1.65;margin:0;overflow-wrap:anywhere;word-break:keep-all}.tournament-overview-action .tournament-primary-btn{align-items:center;display:inline-flex;font-size:14px;font-weight:800;justify-content:center;min-width:180px;padding:12px 20px;text-align:center;text-decoration:none;width:auto}.tournament-overview-footer{border-top:1px solid var(--color-line);color:var(--color-muted);display:flex;flex-wrap:wrap;font-size:12px;gap:8px 20px;justify-content:space-between;line-height:1.5;padding:12px 24px}#tournament-signup:focus-visible,.tournament-bracket-scroll:focus-visible,.tournament-page :is(button,a,input):focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}#tournament-signup{scroll-margin-top:100px}.tournament-section{margin-bottom:16px;padding:18px}.tournament-section-heading{align-items:baseline;display:flex;gap:14px;justify-content:space-between;margin-bottom:14px}.tournament-section-heading h2{color:var(--color-text);font-size:1.15rem;margin:0}.tournament-name-field{grid-gap:8px;display:grid;gap:8px}.tournament-name-field span{color:var(--color-muted);font-size:13px;font-weight:850}.tournament-name-field input{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);font:inherit;min-height:44px;padding:0 12px;width:100%}.tournament-player-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));margin:14px 0}.tournament-player-grid button{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:8px;cursor:pointer;min-height:82px}.tournament-player-grid button.is-selected{border-color:var(--color-primary);box-shadow:none;outline:2px solid var(--color-primary);outline-offset:2px}.tournament-player-grid img{height:64px;object-fit:contain;width:64px}.tournament-form-error{color:var(--color-danger);font-weight:750}.tournament-primary-btn{width:100%}.tournament-primary-btn:disabled{background-color:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted);cursor:not-allowed;opacity:1}.tournament-confirmed-fighter{align-items:center;display:flex;gap:28px;justify-content:center;min-height:168px;padding:10px 18px 18px}.tournament-avatar-xl{height:136px;width:136px}.tournament-confirmed-fighter-copy{grid-gap:7px;display:grid;gap:7px;min-width:0}.tournament-confirmed-fighter-copy span{color:var(--color-success);font-size:.75rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.tournament-confirmed-fighter-copy strong{color:var(--color-text);font-size:clamp(1.7rem,5vw,2.8rem);line-height:1.1;max-width:min(52vw,430px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-participant-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.tournament-participant-row,.tournament-result-row{grid-gap:8px;align-items:center;background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:8px;display:grid;gap:8px;min-height:52px;min-width:0;padding:8px}.tournament-participant-row{grid-template-columns:32px 40px minmax(0,1fr) auto}.tournament-participant-row.is-eliminated{background:var(--color-surface-soft);border-color:var(--color-line);filter:grayscale(.9) saturate(.35);opacity:.85}.tournament-participant-row.is-eliminated .tournament-participant-name,.tournament-participant-row.is-eliminated .tournament-slot{color:var(--color-muted)}.tournament-participant-row.is-eliminated .tournament-type-badge{background:var(--color-surface-soft);color:var(--color-muted)}.tournament-participant-row.is-user{background:var(--color-success-soft);border-color:var(--color-success);box-shadow:none;filter:none;opacity:1;outline:2px solid var(--color-success);outline-offset:2px}.tournament-participant-row.is-user .tournament-participant-name,.tournament-participant-row.is-user .tournament-slot{color:var(--color-text)}.tournament-participant-row.is-user .tournament-type-badge{background:var(--color-success-soft);color:var(--color-success)}.tournament-rank,.tournament-slot{color:var(--color-primary);font-weight:950}.tournament-participant-name,.tournament-result-row strong{color:var(--color-text);font-weight:850;overflow-wrap:anywhere}.tournament-type-badge{background:var(--color-surface-soft);border-radius:999px;color:var(--color-muted);font-size:11px;font-weight:850;padding:4px 7px}.tournament-type-badge.human{background:var(--color-primary);color:var(--color-on-primary)}.tournament-avatar{flex:0 0 auto;object-fit:contain}.tournament-avatar-placeholder{background:var(--color-surface-soft);border:1px dashed var(--color-line);border-radius:8px;display:inline-block}.tournament-avatar-xs{height:28px;width:28px}.tournament-avatar-sm{height:40px;width:40px}.tournament-avatar-md{height:72px;width:72px}.tournament-user-group{grid-gap:14px;display:grid;gap:14px}.tournament-standing-table{grid-gap:6px;display:grid;gap:6px}.tournament-standing-head,.tournament-standing-table>div:not(.tournament-standing-head){grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:56px minmax(0,1fr) 42px 72px;min-height:38px;padding:6px 8px}.tournament-standing-head{color:var(--color-muted);font-size:12px;font-weight:900;text-transform:uppercase}.tournament-standing-table>div:not(.tournament-standing-head){background:var(--color-surface-soft);border-radius:8px}.tournament-standing-table .is-user{outline:1px solid var(--color-primary)}.tournament-standing-table span:nth-child(2){align-items:center;display:flex;gap:8px;min-width:0;overflow-wrap:anywhere}.tournament-match-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.tournament-match-card{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:8px;padding:12px}.tournament-match-card.is-resolved{border-color:var(--color-primary)}.tournament-match-meta{color:var(--color-muted);display:flex;font-size:11px;font-weight:900;justify-content:space-between;text-transform:uppercase}.tournament-match-fighters{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:1fr auto 1fr;margin-top:10px}.tournament-match-fighters>div{display:grid;height:124px;min-width:0;place-items:center;position:relative}.tournament-match-fighter .tournament-avatar{height:112px;width:min(112px,100%)}.tournament-match-fighter strong{bottom:2px;color:var(--color-text);font-size:.86rem;left:4px;line-height:1.25;overflow-wrap:anywhere;padding:3px 5px;position:absolute;right:4px;text-align:center;text-shadow:0 1px 2px var(--color-bg);z-index:1}.tournament-match-fighter .tournament-match-score{color:var(--color-primary);font-size:.75rem;font-weight:400;line-height:1.2;position:absolute;right:5px;text-shadow:0 1px 2px var(--color-bg);top:3px;z-index:1}.tournament-match-fighter.is-winner .tournament-match-score{color:var(--color-danger)}.tournament-match-fighters em{color:var(--color-coral);font-style:normal;font-weight:950}.tournament-match-fighters .is-winner{filter:none}.tournament-match-note{color:var(--color-muted);font-size:12px;margin:8px 0 0;text-align:center}.tournament-bracket-section{min-width:0}.tournament-bracket-scroll{border-radius:8px;overflow-x:auto;padding:8px 0}.tournament-final-focus{grid-gap:12px;background:var(--color-primary-soft);border:1px solid var(--color-focus);border-radius:8px;box-shadow:none;display:grid;gap:12px;margin:2px 0 16px;outline:2px solid var(--color-focus);outline-offset:2px;padding:12px}.tournament-final-focus-heading{align-items:center;color:var(--color-primary);display:flex;font-size:.78rem;font-weight:950;gap:10px;justify-content:space-between;letter-spacing:.08em;text-transform:uppercase}.tournament-final-focus-heading strong{color:var(--color-text);font-size:.78rem}.tournament-final-fighters{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.tournament-final-fighters em{color:var(--color-primary);font-size:.88rem;font-style:normal;font-weight:950}.tournament-final-fighter{grid-gap:8px;align-items:center;background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:8px;display:grid;gap:8px;grid-template-columns:48px minmax(0,1fr) auto;min-height:54px;min-width:0;padding:8px}.tournament-final-fighter .tournament-avatar{height:48px;width:48px}.tournament-final-fighter strong{color:var(--color-text);font-size:.9rem;font-weight:900;min-width:0;overflow-wrap:anywhere}.tournament-final-fighter span{color:var(--color-primary);font-size:1rem;font-weight:950}.tournament-final-fighter.is-winner{background:var(--color-primary-soft);border-color:var(--color-primary)}.tournament-final-fighter.is-loser{filter:grayscale(.85) saturate(.5);opacity:.62}.tournament-final-fighter.is-user{border-color:var(--color-success);box-shadow:none;outline:2px solid var(--color-success);outline-offset:2px}.tournament-bracket{height:488px;margin-inline:auto;max-width:760px;position:relative;width:100%}.tournament-bracket-phase-label{color:var(--color-primary);font-size:.72rem;font-weight:750;letter-spacing:.04em;position:absolute;text-align:center;text-transform:uppercase;top:0;width:22%}.tournament-bracket-phase-label.is-current-phase{color:var(--color-text);text-decoration:underline;text-underline-offset:5px}.tournament-bracket-connectors{height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.tournament-bracket-connector{fill:none;stroke:var(--color-line);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tournament-bracket-connector.is-resolved{stroke:var(--color-primary)}.tournament-bracket-connector.is-active{stroke:var(--color-line)}.tournament-bracket-connector.is-user-path{stroke:var(--color-success);stroke-width:4}.tournament-bracket-match{grid-gap:2px;background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:8px;color:inherit;display:grid;font:inherit;gap:2px;height:48px;padding:2px;position:absolute;text-align:left;width:22%;z-index:1}.tournament-bracket-match.is-resolved{border-color:var(--color-primary)}.tournament-bracket-match.is-pending{background:var(--color-surface-soft);border-style:dashed}.tournament-bracket-match.is-current-phase{border-color:var(--color-primary)}.tournament-bracket-fighter{grid-gap:2px;align-items:center;background:var(--color-surface-soft);border-radius:6px;display:grid;gap:2px;grid-template-columns:18px minmax(0,1fr);min-height:19px;min-width:0;padding:0}.tournament-bracket-fighter .tournament-avatar-xs{height:18px;width:18px}.tournament-bracket-match.is-image-only{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));height:96px}.tournament-bracket-match.is-image-only .tournament-bracket-fighter{grid-template-columns:minmax(0,1fr);justify-items:center}.tournament-bracket-match.is-image-only .tournament-avatar-xs,.tournament-bracket-match.is-image-only .tournament-bracket-empty-avatar{height:40px;max-width:40px;object-fit:contain;width:100%}.tournament-bracket-fighter-name{color:var(--color-text);font-size:10px;line-height:1.25;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-bracket-fighter strong{color:var(--color-primary);font-size:.72rem;line-height:1;text-align:right}.tournament-bracket-fighter.is-empty{opacity:.58}.tournament-bracket-empty-avatar{background:var(--color-surface-soft);border:1px dashed var(--color-line);border-radius:50%;height:18px;width:18px}.tournament-bracket-fighter.is-winner{background:var(--color-primary-soft);outline:1px solid var(--color-primary)}.tournament-bracket-fighter.is-loser{opacity:.8}.tournament-bracket-fighter.is-loser .tournament-avatar{filter:grayscale(.9) saturate(.4)}.tournament-bracket-fighter.is-user{background:var(--color-success-soft);filter:none;opacity:1;outline:2px solid var(--color-success)}.tournament-bracket-match.is-user-match,.tournament-match-card.is-user-match{border-color:var(--color-success);border-left-width:4px}.tournament-user-marker{background:var(--color-success-soft);border-radius:4px;color:var(--color-success);display:inline-block;font-size:11px;font-weight:750;line-height:1.4;margin-right:4px;padding:2px 6px}.tournament-bracket-fighter-name .tournament-user-marker{margin-left:3px;padding:1px 3px}.tournament-path-hint{color:var(--color-muted);font-size:13px;line-height:1.6}.tournament-view-controls{display:flex;flex-wrap:wrap;gap:6px}.tournament-view-controls button{background:#0000;border:1px solid var(--color-line);border-radius:7px;color:var(--color-muted);cursor:pointer;font:inherit;font-size:13px;min-height:44px;padding:8px 14px}.tournament-view-controls button[aria-pressed=true]{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-text)}.tournament-bracket-list{grid-gap:24px;display:grid;gap:24px}.tournament-round-list h3{color:var(--color-text);font-size:15px;margin:0 0 10px}.tournament-bracket-fighter.is-user span,.tournament-bracket-fighter.is-user strong{color:var(--color-text)}.tournament-bracket-tooltip{background:var(--color-bg);border:1px solid var(--color-primary);border-radius:8px;box-shadow:none;left:50%;max-width:240px;min-width:160px;padding:8px;position:absolute;top:calc(100% + 8px);transform:translateX(-50%);z-index:10}.tournament-bracket-tooltip:after{background:var(--color-bg);border-left:1px solid var(--color-primary);border-top:1px solid var(--color-primary);content:"";height:10px;left:50%;position:absolute;top:-6px;transform:translateX(-50%) rotate(45deg);width:10px}.tournament-bracket-tooltip div{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;min-height:24px}.tournament-bracket-tooltip span{color:var(--color-text);font-size:.75rem;font-weight:850;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-bracket-tooltip strong{color:var(--color-primary);font-size:.78rem}.tournament-bracket-tooltip .is-winner span,.tournament-bracket-tooltip .is-winner strong{color:var(--color-primary)}.tournament-results{grid-gap:8px;display:grid;gap:8px}.tournament-my-result-title{color:var(--color-text);font-size:.9375rem;margin:0 0 4px}.tournament-results-toggle{align-items:center;background:#0000;border:0;color:var(--color-primary);cursor:pointer;display:flex;font:inherit;font-weight:600;gap:12px;justify-content:space-between;margin-block:16px 8px;min-height:44px;padding:8px 0;text-align:left;width:100%}.tournament-results-toggle:hover{text-decoration:underline;text-underline-offset:3px}.tournament-results-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.tournament-results-toggle svg{flex-shrink:0}.tournament-results-toggle:active{color:var(--color-text)}.tournament-past-results .tournament-result-row.is-user{outline:none}.tournament-past-results .tournament-result-row strong{overflow-wrap:anywhere}.tournament-past-results .tournament-rank,.tournament-past-results .tournament-result-row span:nth-child(4){font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tournament-results-collapse{margin-bottom:0}.tournament-result-row{grid-template-columns:54px 44px minmax(0,1fr) 80px 128px;min-height:48px;padding-block:4px}.tournament-result-row .tournament-avatar{height:44px;width:44px}.tournament-result-row.is-user{background:var(--color-success-soft);border-color:var(--color-success);box-shadow:none;outline:2px solid var(--color-success);outline-offset:2px}.tournament-result-row.is-user .tournament-rank,.tournament-result-row.is-user em,.tournament-result-row.is-user strong{color:var(--color-text)}.tournament-result-row.is-user span:nth-child(4){color:var(--color-primary)}.tournament-result-row span:nth-child(4){color:var(--color-primary);font-weight:950}.tournament-result-row em{color:var(--color-muted);font-style:normal;font-weight:800}@media (max-width:760px){.tournament-page{padding:12px}.tournament-page-header{gap:12px;padding-left:0;text-align:left}.tournament-overview-heading{padding:18px}.tournament-overview-grid{gap:16px;grid-template-columns:1fr;padding:18px}.tournament-overview-grid .tournament-avatar-md{height:52px;width:52px}.tournament-overview-action{grid-gap:14px;display:grid;gap:14px;padding:0 18px 18px}.tournament-overview-action .tournament-primary-btn{width:100%}.tournament-overview-footer{padding:12px 18px}.tournament-final-fighters,.tournament-match-grid{grid-template-columns:minmax(0,1fr)}.tournament-final-fighters>em{text-align:center}.tournament-participant-grid{grid-template-columns:minmax(0,1fr)}.tournament-section-heading{display:grid}.tournament-result-row{grid-template-columns:48px 64px minmax(0,1fr);min-height:82px;padding-block:8px}.tournament-result-row .tournament-avatar{align-self:center;grid-row:1/4;height:64px;width:64px}.tournament-result-row em,.tournament-result-row span:nth-child(4){grid-column:3}.tournament-past-results .tournament-result-row{grid-template-columns:40px 52px minmax(0,1fr)}.tournament-past-results .tournament-result-row .tournament-rank{grid-column:1;grid-row:1/4}.tournament-past-results .tournament-result-row .tournament-avatar{grid-column:2;height:52px;width:52px}.tournament-past-results .tournament-result-row strong{grid-column:3;grid-row:1}}.tournament-player-grid button span{color:var(--color-text);display:block;font-size:13px;overflow-wrap:anywhere}.tournament-entry-scene{color:var(--color-text);display:grid;min-height:100vh;padding:20px;place-items:center}.tournament-entry-panel{grid-gap:16px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:none;display:grid;gap:16px;padding:18px;width:min(760px,100%)}.tournament-entry-copy{grid-gap:8px;display:grid;gap:8px;text-align:center}.tournament-entry-event,.tournament-entry-support{margin:0}.tournament-entry-event{color:var(--color-text);font-size:clamp(1.2rem,3vw,1.8rem);font-weight:950}.tournament-entry-support{color:var(--color-muted);font-size:1rem;font-weight:750}.tournament-entry-button{background:var(--color-primary);border:none;border-radius:8px;color:var(--color-on-primary);cursor:pointer;font-weight:950;min-height:46px}.tournament-entry-button:disabled{background:var(--color-surface-soft);color:var(--color-muted);cursor:wait;opacity:1}@media (max-width:640px){.tournament-entry-panel,.tournament-entry-scene{padding:12px}}.triumph-page{color:var(--color-text);margin:0 auto;max-width:980px;padding:20px 18px 56px;width:100%}.triumph-page-header{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:44px minmax(0,1fr);margin-bottom:18px;min-height:74px;text-align:left}.triumph-page-header .btn-back-inline{position:static}.triumph-title-block{min-width:0;overflow-wrap:anywhere;text-align:left}.page-title-triumph{margin:0}.triumph-title-block p{color:var(--color-muted);font-weight:700;margin:6px 0 0}.triumph-training-start{--triumph-training-ink:var(--color-image-caption-text);background:var(--color-surface) url(/static/media/review_training.a760a0adf3a5dc886f3a.webp) center 42% /cover no-repeat;border:1px solid var(--color-success);border-radius:16px;display:flex;flex-direction:column;gap:18px;margin-bottom:18px;min-height:clamp(240px,54vw,300px);padding:26px 22px}.triumph-training-start h2{align-self:flex-start;background:var(--color-image-caption-bg);border-radius:8px;box-sizing:border-box;color:var(--triumph-training-ink);font-size:18px;font-weight:750;line-height:1.5;margin:0;max-width:100%;padding:6px 10px}.triumph-training-actions{grid-gap:10px;display:grid;gap:10px;margin-top:auto}.triumph-training-start button{align-items:center;background:var(--color-success);border:0;border-radius:8px;color:var(--color-on-success);cursor:pointer;display:flex;font:inherit;font-weight:700;gap:8px;justify-content:center;min-height:52px;padding:12px 20px}.triumph-training-start button:disabled{background:var(--color-surface-soft);color:var(--color-muted);cursor:default}.triumph-training-start p{background:var(--color-image-caption-bg);border-radius:8px;color:var(--triumph-training-ink);font-size:13px;line-height:1.5;margin:0;padding:6px 10px;text-align:center}.triumph-training-start .triumph-training-error{background:var(--color-surface);border-radius:8px;color:var(--color-danger);padding:8px 12px}.triumph-locked{grid-gap:14px;background:var(--color-surface);border:1px solid var(--color-primary);border-radius:8px;color:var(--color-muted);display:grid;gap:14px;justify-items:center;min-height:360px;padding:42px 22px;text-align:center}.triumph-locked h2{color:var(--color-text);margin:0}.triumph-locked p{color:var(--color-muted);font-weight:650;margin:0;max-width:380px}.triumph-stats-table-wrap{background:var(--color-surface);border:1px solid var(--color-success);border-radius:8px;box-shadow:none;margin-bottom:16px;overflow:hidden}.triumph-stats-table{border-collapse:collapse;color:var(--color-text);min-width:0;table-layout:fixed;width:100%}.triumph-stats-table td,.triumph-stats-table th{border-bottom:1px solid var(--color-line);font-weight:850;padding:12px 10px;text-align:right}.triumph-stats-table th:first-child{text-align:center;width:44px}.triumph-stats-row-icon{background:var(--color-bg);border:1px solid var(--color-primary);border-radius:8px;color:var(--color-primary);display:inline-grid;height:28px;place-items:center;width:28px}.triumph-stats-table thead th{background:var(--color-bg);color:var(--color-primary);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.triumph-stats-table tbody th{color:var(--color-muted)}.triumph-stats-table td{color:var(--color-text);font-size:1.05rem;overflow-wrap:anywhere}.triumph-stats-table tr:last-child td,.triumph-stats-table tr:last-child th{border-bottom:0}.triumph-board{background:var(--color-surface);border:1px solid var(--color-danger);border-radius:8px;padding:16px}.triumph-toolbar{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;margin-bottom:14px}.triumph-search{align-items:center;background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;display:flex;gap:8px;min-width:0;padding:10px 12px}.triumph-search input{background:#0000;border:0;color:var(--color-text);font:inherit;min-width:0;outline:0;width:100%}.triumph-search input::placeholder{color:var(--color-muted)}.triumph-search svg{flex-shrink:0}.triumph-filter-button,.triumph-pagination button,.triumph-review-button{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);cursor:pointer;display:inline-flex;font:inherit;font-weight:800;gap:7px;justify-content:center;min-height:42px;padding:0 13px}.triumph-filter-button.active{border-color:var(--color-primary);color:var(--color-primary)}.triumph-review-button{background:var(--color-primary);border-color:#0000;color:var(--color-on-primary);white-space:nowrap}.triumph-favorite-button:disabled,.triumph-pagination button:disabled,.triumph-review-button:disabled{background-color:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted);cursor:not-allowed;opacity:1}.triumph-card-list{grid-gap:10px;display:grid;gap:10px}.triumph-card-row{grid-gap:12px;align-items:center;background:var(--color-surface-soft);border:1px solid var(--color-primary);border-radius:8px;display:grid;gap:12px;grid-template-columns:54px minmax(0,1fr) 42px;min-height:108px;padding:12px}.triumph-card-row.is-home-highlight{background:var(--color-primary-soft);border-color:var(--color-focus);outline:3px solid var(--color-focus);outline-offset:2px}.triumph-card-stamp{filter:none;height:52px;object-fit:contain;opacity:.82;width:52px}.triumph-card-copy{min-width:0}.triumph-card-back,.triumph-card-front{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.triumph-card-front{color:var(--color-text);font-weight:850}.triumph-card-back{color:var(--color-muted);font-size:.94rem;margin-top:5px}.triumph-card-reading-title{white-space:nowrap}.triumph-card-reading-preview{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;line-height:1.35;max-height:2.7em;overflow:hidden;text-overflow:ellipsis;white-space:normal}.triumph-card-reading-preview .markdown-text{display:inline}.triumph-card-meta{color:var(--color-primary);display:flex;flex-wrap:wrap;font-size:11px;font-weight:850;gap:8px;letter-spacing:.04em;margin-top:10px;text-transform:uppercase}.triumph-favorite-button{background:#0000;border:0;border-radius:999px;color:var(--color-muted);cursor:pointer;height:42px;width:42px}.triumph-card-actions{grid-gap:8px;display:grid;gap:8px;justify-items:center}.triumph-level-up-button{background:#0000;border:0;border-radius:999px;color:var(--color-success);cursor:pointer;height:42px;width:42px}.triumph-level-up-overlay{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--color-overlay);display:grid;inset:0;padding:18px;place-items:center;position:fixed;z-index:1300}.triumph-level-up-modal{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:8px;box-shadow:none;max-height:min(90vh,820px);overflow-y:auto;width:min(620px,100%)}.triumph-level-up-header{align-items:flex-start;border-bottom:1px solid var(--color-primary);display:flex;gap:16px;justify-content:space-between;padding:18px 20px}.triumph-level-up-header h2,.triumph-level-up-header p{margin:0}.triumph-level-up-header p{color:var(--color-muted);margin-top:5px}.triumph-level-up-header>button{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);cursor:pointer;height:38px;width:38px}.triumph-reading-picker{grid-gap:8px;display:grid;gap:8px;padding:16px}.triumph-reading-picker>button{grid-gap:5px;background:var(--color-success-soft);border:1px solid var(--color-success);border-radius:8px;color:var(--color-text);cursor:pointer;display:grid;gap:5px;padding:13px;text-align:left}.triumph-reading-picker>button>span{color:var(--color-success);font-size:11px;font-weight:900;text-transform:uppercase}.triumph-favorite-button.active{color:var(--color-danger)}.triumph-favorite-button:disabled{background:#0000;border:0}.triumph-empty-results{color:var(--color-muted);font-weight:750;padding:32px 12px;text-align:center}.triumph-pagination{align-items:center;color:var(--color-muted);display:flex;font-weight:850;gap:12px;justify-content:center;margin-top:16px}@media (max-width:760px){.triumph-page{padding:16px 12px 42px}.triumph-toolbar{gap:6px}.triumph-search{gap:5px;padding:10px 7px}.triumph-search input{font-size:12px}.triumph-toolbar .triumph-review-button{font-size:12px;padding:0 9px}}@media (max-width:460px){.triumph-stats-table td,.triumph-stats-table th{padding:10px 5px}.triumph-stats-table th:first-child{width:36px}.triumph-stats-row-icon{border-radius:7px;height:24px;width:24px}.triumph-stats-table thead th{font-size:10px;letter-spacing:.02em}.triumph-stats-table td{font-size:.9rem}.triumph-card-row{grid-template-columns:42px minmax(0,1fr)}.triumph-card-stamp{height:40px;width:40px}.triumph-favorite-button{justify-self:center}.triumph-card-actions{grid-auto-flow:column;grid-column:2;justify-self:end}}.writing-hero{--writing-hero-ink:var(--color-image-caption-text);align-items:stretch;background:var(--color-surface) url(/static/media/gambler_question_hero.c02feb0e44bc6e6ab8d5.webp) 45% 30% /cover no-repeat;border:1px solid var(--color-primary);border-radius:16px;box-sizing:border-box;display:flex;flex-direction:column;gap:144px;isolation:isolate;margin-bottom:18px;min-height:clamp(340px,65vw,420px);overflow:hidden;padding:24px 20px;position:relative}.writing-hero-copy{grid-gap:4px;align-self:flex-start;background:var(--color-image-caption-bg);border-radius:8px;box-sizing:border-box;display:grid;gap:4px;max-width:100%;overflow-wrap:anywhere;padding:6px 10px}.writing-hero .writing-hero-prompt{color:var(--writing-hero-ink);font-size:18px;font-weight:750;line-height:1.5;margin:0}.writing-hero .writing-start{margin-top:auto;min-width:0;width:100%}.writing-hero .writing-primary{min-height:52px}@media(max-width:400px){.writing-hero{background-position:30% 30%}}.writing-start-icon{height:28px;object-fit:contain;width:28px}.writing-row .triumph-level-up-button{background:#0000;border:0}.writing-hero h1{font-size:32px;margin:8px 0}.writing-hero p,.writing-start small{color:var(--color-text-secondary)}.writing-eyebrow{color:var(--color-primary);font-size:12px;font-weight:700;letter-spacing:.16em}.writing-start{grid-gap:12px;display:grid;flex-shrink:0;gap:12px;text-align:center}.writing-primary{align-items:center;background:var(--color-primary);border:1px solid var(--color-primary);border-radius:8px;color:var(--color-bg);cursor:pointer;display:inline-flex;font-weight:700;gap:8px;justify-content:center;padding:12px 20px}.writing-page button:disabled{cursor:default;opacity:.5}.writing-page button:focus-visible,.writing-page textarea:focus-visible{outline:3px solid var(--color-primary);outline:3px solid var(--color-focus,var(--color-primary));outline-offset:3px}.writing-stats{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.writing-stats>div{grid-gap:10px;background:var(--color-surface);border:1px solid var(--color-primary);border-radius:8px;display:grid;gap:10px;padding:20px}.writing-stats span{color:var(--color-text-secondary);font-size:13px}.writing-stats strong{font-size:24px}.writing-filters{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:9px;display:inline-flex;gap:0;padding:3px}.writing-confirm button,.writing-exam-actions>button:not(.writing-primary),.writing-exam-heading button,.writing-filters button{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:7px;color:var(--color-text);cursor:pointer;padding:9px 12px}.writing-filters button[aria-pressed=true]{background:var(--color-primary-soft);color:var(--color-primary)}.writing-filters button{border:0;display:grid;min-height:40px;min-width:42px;place-items:center}.writing-score{background:var(--writing-score-color);border:0;border-radius:50%;box-sizing:border-box;color:#fff;display:flex;flex-direction:column;justify-content:center;opacity:1;text-align:center}.writing-score strong{font-size:21px;line-height:1}.writing-score small{font-size:10px}.writing-line{align-items:baseline;display:flex;gap:10px;margin:4px 0;overflow-wrap:anywhere}.writing-line>b{color:var(--color-text-secondary);flex-shrink:0;font-size:11px;width:58px}.writing-line p{margin:0}.writing-student{color:var(--color-text-secondary)}.writing-reference{color:light-dark(#225bb3,#8cbbff)}.writing-feedback-row{border-top:1px solid var(--color-border);grid-column:1/-1;min-width:0;padding-top:4px}.writing-feedback-detail{font-size:13px;overflow-wrap:anywhere;padding-top:8px}.writing-row .triumph-card-copy{position:relative}.writing-feedback{background:#0000;border:0;color:var(--color-primary);cursor:pointer;display:block;font-size:12px;margin-top:8px;overflow:hidden;padding:0;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.writing-feedback-tooltip{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:8px;box-shadow:0 6px 20px #0003;color:var(--color-text);font-size:13px;left:0;padding:14px;position:absolute;right:0;top:100%;z-index:5}.writing-exam{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:12px;padding:28px;position:relative}.writing-exam-heading{align-items:center;display:flex;justify-content:space-between}.writing-expression{color:var(--color-primary)}.writing-exam h2{font-size:23px;line-height:1.6}.writing-exam textarea{background:var(--color-bg);border:1px solid var(--color-primary);border-radius:8px;box-sizing:border-box;color:var(--color-text);font:inherit;margin:10px 0 18px;min-height:130px;padding:16px;resize:vertical;width:100%}.writing-exam-actions{display:flex;flex-wrap:wrap;gap:12px}.writing-result dt{color:var(--color-text-secondary);font-size:12px;margin-top:16px}.writing-result dd{margin:6px 0}.writing-result h2 small{color:var(--color-primary);font-size:16px}.writing-training{grid-gap:16px;display:grid;gap:16px;margin:20px auto 0;max-width:650px}.writing-training .npc-encounter-card{min-height:220px;width:100%}.writing-confirm{background:var(--color-surface);border:2px solid var(--color-primary);border-radius:12px;box-shadow:0 0 0 9999px #0008;height:fit-content;inset:20px;margin:auto;padding:28px;position:absolute;z-index:10}.writing-confirm button{margin-right:12px}.writing-error{border:1px solid #bf5151;border:1px solid var(--color-danger,#bf5151);border-radius:8px;margin-bottom:16px;padding:14px}@media(max-width:650px){.writing-stats{grid-template-columns:repeat(2,1fr)}.writing-row{gap:8px;grid-template-columns:42px minmax(0,1fr) 36px}.writing-row .triumph-card-actions{grid-column:auto}.writing-line>b{font-size:10px;width:48px}.writing-exam{padding:18px}}.writing-score--red{--writing-score-color:color-mix(in srgb,#dc3545 75%,#000)}.writing-score--amber{--writing-score-color:color-mix(in srgb,#ffc107 48%,#000)}.writing-score--teal{--writing-score-color:color-mix(in srgb,#17a2b8 65%,#000)}.writing-score--green{--writing-score-color:color-mix(in srgb,#28a745 65%,#000)}.writing-score--purple{--writing-score-color:#6f42c1}.writing-row .writing-score.is-perfect{--writing-score-color:#225bb3}.writing-score.is-perfect strong{font-size:18px}.writing-row .triumph-card-copy{padding-left:6px}.writing-feedback-detail p{margin:8px 0 0}.writing-feedback-detail .writing-student{color:light-dark(#626974,#aeb5bf)}.writing-page .triumph-toolbar{gap:8px;grid-template-columns:minmax(0,1fr) auto auto}.writing-page .triumph-review-button,.writing-page .triumph-search{grid-column:auto;min-width:0}.writing-page .triumph-search input{min-width:0}.writing-page .triumph-search svg{flex-shrink:0}.writing-page .triumph-review-button{white-space:nowrap}@media(max-width:650px){.writing-page .triumph-toolbar{gap:6px}.writing-page .triumph-search{gap:5px;padding:10px 7px}.writing-page .triumph-search input{font-size:12px}.writing-filters{padding:2px}.writing-filters button{min-height:36px;min-width:30px;padding:6px}.writing-page .triumph-review-button{font-size:12px;padding:10px 9px}.writing-page .writing-row{column-gap:12px;grid-template-columns:42px minmax(0,1fr) 36px}.writing-row .writing-score{height:42px;width:42px}.writing-row .triumph-card-copy{padding-left:2px}}.writing-page .writing-row{min-height:0;position:relative;row-gap:0}.writing-card-toggle{background:#0000;border:0;border-radius:inherit;cursor:pointer;height:100%;inset:0;padding:0;position:absolute;width:100%;z-index:1}.writing-row .triumph-card-actions{position:relative;z-index:2}.writing-row .writing-feedback-detail{border-top:1px solid var(--color-border);grid-column:1/-1;margin-top:10px;padding-top:10px}.writing-row:has(.writing-card-toggle:hover){border-color:var(--color-focus,var(--color-primary))}.writing-hero .writing-stats-summary{font-feature-settings:"tnum";color:var(--writing-hero-ink);font-size:12px;font-variant-numeric:tabular-nums;line-height:1.5;margin:0}.writing-row .writing-feedback-detail{grid-row-gap:8px;display:grid;grid-template-columns:subgrid;row-gap:8px}.writing-detail-line{align-items:baseline;display:grid;grid-column:1/-1;grid-template-columns:subgrid}.writing-detail-line>b{color:var(--color-text-secondary);font-size:10px;font-weight:600;grid-column:1}.writing-detail-line>.writing-detail-text{grid-column:2/-1;margin:0;min-width:0;padding-left:6px}.writing-detail-text p{margin:0}@media(max-width:650px){.writing-detail-line>.writing-detail-text{padding-left:2px}}.writing-history-separator{align-items:center;color:var(--color-muted);display:flex;font-size:13px;font-weight:700;gap:12px;margin:12px 0 4px}.writing-history-separator:after{background:var(--color-line);content:"";flex:1 1;height:1px}.writing-history-separator:first-child{margin-top:0}.writing-practice-page{box-sizing:border-box;color:var(--color-text);container-type:inline-size;gap:8px;margin:0 auto;max-width:600px;padding:max(8px,env(safe-area-inset-top)) 14px max(8px,env(safe-area-inset-bottom));width:100%}.writing-practice-page .learning-session-header{margin-bottom:2px}.writing-level-up-button{background:#0000;border:0;border-radius:50%;color:var(--color-success);cursor:pointer;display:grid;height:44px;padding:0;place-items:center;width:44px}.writing-level-up-button:disabled{cursor:default;opacity:.45}.writing-level-up-button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.writing-button-step{background:#ffffff26;border-radius:999px;font-size:11px;font-weight:600;padding:3px 7px;white-space:nowrap}.writing-repeat-flash{animation:autoRepeatCardPulse .76s ease-out;border:3px solid #0000;border-radius:inherit;inset:-3px;pointer-events:none;position:absolute}@media(prefers-reduced-motion:reduce){.writing-repeat-flash{animation:none}}.App-main:has(.writing-practice-page){display:flex;flex-direction:column}.writing-practice-page{display:flex;flex:1 1;flex-direction:column}.writing-practice-body{display:flex;flex:1 1;flex-direction:column;min-height:0;width:100%}.writing-practice-coach{flex-shrink:0}.writing-practice-phase{display:flex;flex:1 1;flex-direction:column;min-height:0}.writing-practice-phase>.writing-result,.writing-practice-phase>form{margin:auto 0;width:100%}.writing-expression-toggle{background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:4px 8px}.writing-practice-card{cursor:default;min-height:200px;padding:18px}.writing-practice-card .npc-card-face{font-size:clamp(20px,4.5vw,28px);padding:16px;text-align:center}button.writing-practice-card{cursor:pointer}.writing-practice-page textarea{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:8px;box-sizing:border-box;color:var(--color-text);font:inherit;height:calc(3em + 22px);line-height:1.5;margin:8px 0 16px;min-height:0;overflow-y:auto;padding:10px 14px;resize:none;width:100%}.writing-practice-card.npc-card-mode-question{min-height:140px;padding:12px}.writing-practice-card.npc-card-mode-question .npc-card-face{overflow-wrap:anywhere;padding:12px}.writing-practice-page label{display:block;margin-top:18px}.writing-practice-page .writing-training{display:flex;flex:1 1;flex-direction:column;gap:8px;justify-content:safe center;margin:0;max-width:none;min-height:0;padding-block:8px;width:100%}.writing-practice-page .writing-training>:not(.writing-repeat-card-wrap){flex-shrink:0}@media(max-height:520px){.writing-practice-page .writing-training{flex:1 0 auto}}.writing-practice-page .writing-result{grid-gap:14px;display:grid;gap:14px}.writing-practice-page .writing-result h2,.writing-practice-page .writing-result p{margin:0}.writing-practice-feedback{overflow-wrap:anywhere;width:100%}.writing-practice-page .writing-exam-actions{justify-content:flex-end}.writing-front-memo{border-top:1px solid var(--color-line);color:var(--color-muted);font-size:15px;font-weight:650;line-height:1.45;margin-top:12px;padding-top:10px}.writing-drawing-tools{align-items:center;color:var(--color-muted);display:flex;font-size:12px;gap:12px;justify-content:space-between}.writing-drawing-tools>span{align-items:center;display:flex;gap:6px}.writing-drawing-tools button{background:var(--color-surface);border:1px solid var(--color-line);border-radius:50%;color:var(--color-text);cursor:pointer;display:grid;height:36px;place-items:center;width:36px}.writing-answer-card.is-revealed{--learning-grid-image:radial-gradient(circle,var(--learning-grid-line) 1px,#0000 1px);gap:0;grid-template-rows:repeat(3,minmax(112px,1fr));isolation:isolate;padding:0 16px;position:relative}.writing-answer-card .npc-card-face{font-size:clamp(18px,4vw,25px);padding:32px 60px 24px 8px}.writing-answer-card .npc-card-face:first-of-type{padding-right:8px}.writing-answer-card .writing-reference{color:#225bb3}.writing-answer-card .writing-student-answer{color:#667080}.writing-earned-points{background:#ffdf83;border-radius:999px;color:#684a10;font-size:16px;font-weight:800;padding:5px 12px;pointer-events:none;position:absolute;right:12px;top:8px;z-index:1}.writing-answer-score{border:3px solid;color:#225bb3;height:48px;opacity:.85;outline:none;position:absolute;right:4px;top:50%;transform:translateY(-50%) rotate(-8deg);width:48px}.writing-answer-score strong{font-size:23px;white-space:nowrap}.writing-answer-score.is-perfect strong{font-size:19px}.writing-drawing-canvas{border-radius:8px;cursor:crosshair;height:100%;inset:0;position:absolute;touch-action:none;width:100%;z-index:2}.writing-score-breakdown{color:var(--color-muted);font-size:13px;text-align:center}.writing-gambler-feedback{align-items:center;display:flex;gap:14px;margin:8px 0}.writing-gambler-feedback img{flex:0 0 88px;height:88px;object-fit:contain;width:88px}.writing-gambler-bubble{background:var(--color-surface);border-radius:16px;flex:1 1;font-size:15px;line-height:1.6;min-width:0;padding:15px 18px;position:relative}.writing-gambler-bubble:before{background:inherit;clip-path:polygon(0 50%,100% 0,100% 100%);content:"";height:20px;left:-11px;position:absolute;top:50%;transform:translateY(-50%);width:12px}.writing-gambler-name{color:var(--color-primary);display:block;font-size:11px;font-weight:800;margin-bottom:5px}@media(max-width:380px){.writing-gambler-feedback{gap:10px}.writing-gambler-feedback img{flex-basis:64px;height:64px;width:64px}.writing-gambler-bubble{padding:12px}}.writing-coach-intro{gap:12px;margin:0 0 14px}.writing-coach-intro p{font-size:14px;line-height:1.5;margin:0}.writing-practice-phase{animation:writingPracticeEnter .25s ease-out both}.writing-practice-phase.is-answer{animation:writingPracticeReveal .3s ease-out both}@keyframes writingPracticeEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes writingPracticeReveal{0%{opacity:0;transform:perspective(1000px) rotateY(-12deg)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.writing-practice-phase,.writing-practice-phase.is-answer{animation:none}}.triumph-review-scene-exit{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);cursor:pointer;font:inherit;font-weight:700;min-height:44px;padding:8px 14px;position:fixed;right:max(16px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));z-index:530}.triumph-review-result{background:var(--color-bg);color:var(--color-text);display:grid;inset:0;overflow-y:auto;padding:max(24px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));place-items:safe center;position:fixed;z-index:610}.triumph-review-result-content{min-width:0;width:min(100%,880px)}.triumph-review-result-content *,.triumph-review-result-content :after,.triumph-review-result-content :before{box-sizing:border-box;min-width:0}.triumph-review-result h1{font-size:clamp(26px,5vw,36px);line-height:1.15;margin:0 0 12px}.triumph-review-result p{line-height:1.5;margin:0 0 24px;overflow-wrap:anywhere}.triumph-review-result-header{text-align:center}.triumph-review-result-header h1{color:var(--color-success)}.triumph-review-result-header p{color:var(--color-muted)}.triumph-review-summary{grid-gap:12px;font-feature-settings:"tnum";display:grid;font-variant-numeric:tabular-nums;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 24px}.triumph-review-summary>div{grid-gap:8px;align-content:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;display:grid;gap:8px;justify-items:center;min-height:clamp(118px,16dvh,156px);padding:20px 12px;text-align:center}.triumph-review-summary svg{color:var(--color-gold);grid-row:1}.triumph-review-summary dt{color:var(--color-muted);font-size:13px;font-weight:700;grid-row:3;overflow-wrap:anywhere}.triumph-review-summary dd{font-size:clamp(30px,6vw,46px);font-weight:900;grid-row:2;line-height:1;margin:0;overflow-wrap:anywhere}.triumph-review-result button{background:var(--color-primary);border:0;border-radius:8px;color:var(--color-on-primary);cursor:pointer;font:inherit;font-weight:700;min-height:52px;padding:12px 18px;width:100%}.triumph-review-result button:hover{filter:brightness(1.04)}.triumph-review-result button:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.triumph-review-result-back{align-items:center;display:flex;gap:8px;justify-content:center}.triumph-review-result-reveal{animation:triumphReviewResultIn .32s cubic-bezier(.16,1,.3,1) backwards;animation-delay:0ms;animation-delay:var(--triumph-review-result-delay,0ms)}.triumph-review-summary>div:first-child{--triumph-review-result-delay:120ms}.triumph-review-summary>div:nth-child(2){--triumph-review-result-delay:200ms}.triumph-review-summary>div:nth-child(3){--triumph-review-result-delay:280ms}.triumph-review-summary>div:nth-child(4){--triumph-review-result-delay:360ms}.triumph-review-result-back{--triumph-review-result-delay:440ms}@keyframes triumphReviewResultIn{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:760px){.triumph-review-result-content{max-width:520px}.triumph-review-summary{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.triumph-review-summary>div{min-height:clamp(110px,15dvh,136px);padding:16px 10px}}@media (prefers-reduced-motion:reduce){.triumph-review-result-reveal{animation:none}}.library-bookshop{color:var(--color-text);margin:0 auto;max-width:1180px;width:100%}.library-bookshop button,.library-bookshop input,.library-bookshop select{font:inherit}.library-bookshop button{cursor:pointer}.library-bookshop button:disabled{background-color:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted);cursor:default;opacity:1}.library-bookshop :focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}.library-heading-actions{align-items:center;display:flex;flex-shrink:0;gap:9px}.library-owner-actions button,.library-pagination button,.library-state button{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);padding:9px 12px}.library-owner-actions{display:flex;gap:8px}.library-owner-actions button{align-items:center;display:inline-flex;font-size:.8rem;height:42px;justify-content:center;padding:0;width:42px}.library-owner-actions button[aria-pressed=true]{border-color:var(--color-success);color:var(--color-success)}.library-search-toggle{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);display:inline-flex;height:42px;justify-content:center;padding:0;position:relative;transition:border-color .16s ease,color .16s ease,background-color .16s ease;width:42px}.library-heading-actions .library-owner-actions button,.library-heading-actions .library-search-toggle{background:#0000;border:0;box-sizing:border-box;color:var(--color-primary);flex:0 0 44px;height:44px;min-height:44px;padding:0;width:44px}.library-heading-actions .library-owner-actions button:hover,.library-heading-actions .library-owner-actions button[aria-pressed=true],.library-heading-actions .library-search-toggle.is-open,.library-heading-actions .library-search-toggle:hover{background:var(--color-primary-soft)}.library-search-toggle-count{align-items:center;background:var(--color-primary);border:2px solid var(--color-bg);border-radius:10px;color:var(--color-on-primary);display:inline-flex;font-size:.62rem;font-weight:800;height:18px;justify-content:center;line-height:1;min-width:18px;padding:0 4px;position:absolute;right:-6px;top:-6px}.library-tools{border-bottom:1px solid var(--color-line);padding:22px 0}.library-tools[hidden]{display:none}.library-active-filters{color:var(--color-primary);font-size:.72rem}.library-filter-content[hidden]{display:none}.library-filter-content:not([hidden]){margin-top:2px}.library-filter-summary{align-items:center;display:flex;gap:12px;justify-content:flex-end;margin-top:12px}.library-filter-summary .library-clear{min-height:var(--control-height)}.library-filter-row,.library-language-row{align-items:flex-end;display:flex;gap:12px}.library-filter-row{flex-wrap:wrap;margin-top:16px}.library-tools label{grid-gap:6px;color:var(--color-muted);display:grid;font-size:.73rem;gap:6px;min-width:128px}.library-tools select{color:var(--color-text);font-size:.86rem;max-width:230px;padding:8px 28px 8px 10px}.library-search,.library-tools select{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-control);min-height:var(--control-height)}.library-search{align-items:center;color:var(--color-muted);display:flex;flex:1 1;gap:9px;min-width:0;padding-left:12px}.library-search:focus-within{border-color:var(--color-focus)}.library-search input{background:#0000;border:0;color:var(--color-text);font-size:.86rem;min-width:0;outline:none;width:100%}.library-search input::placeholder{color:var(--color-muted);opacity:.8}.library-search button{align-self:stretch;background:#0000;border:0;border-left:1px solid var(--color-line);border-radius:0 6px 6px 0;color:var(--color-primary);font-size:.82rem;padding:8px 12px;white-space:nowrap}.library-clear{background:#0000;border:0;color:var(--color-muted);font-size:.8rem!important;min-height:var(--control-height);text-decoration:underline}.library-grouping{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}.library-grouping>span{color:var(--color-muted);font-size:.76rem;margin-right:6px}.library-grouping button{background:#0000;border:1px solid var(--color-line);border-radius:18px;color:var(--color-muted);font-size:.8rem;min-height:var(--control-height);padding:6px 14px}.library-grouping button[aria-pressed=true]{background:var(--color-surface);border-color:var(--color-primary);color:var(--color-primary);font-weight:800}.library-discovery{grid-gap:38px;display:grid;gap:38px;padding:32px 0}.library-discovery-groups{grid-gap:18px;align-items:start;display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr))}.library-browse-group-card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:none;color:var(--color-on-image);display:grid;grid-template-columns:minmax(0,1fr);min-height:0;min-width:0;overflow:hidden;padding:0;text-align:left;transition:transform .18s ease,border-color .18s ease}.library-browse-group-card:hover{border-color:var(--color-primary);box-shadow:none;transform:translateY(-3px)}.library-browse-group-card.is-market{border-color:color-mix(in srgb,var(--color-success) 50%,var(--color-line))}.library-browse-group-card.is-favorites{border-color:color-mix(in srgb,var(--color-primary) 55%,var(--color-line))}.library-browse-group-image-wrap{aspect-ratio:4/5;background:var(--color-surface-soft);display:block;grid-area:1/1;max-height:520px;min-height:0;position:relative;width:100%}.library-group-image{display:block;height:100%;min-height:220px;object-fit:cover;width:100%}.library-browse-group-card .library-group-image{inset:0;max-height:none;min-height:0;position:absolute}.library-browse-group-copy{align-items:flex-start;align-self:end;background:var(--color-overlay);display:flex;flex-direction:column;gap:0;grid-area:1/1;min-width:0;padding:20px 0;z-index:1}.library-browse-group-copy>.library-eyebrow,.library-browse-group-description,.library-browse-group-title{color:var(--color-on-image);letter-spacing:0;margin-inline:20px}.library-browse-group-copy>.library-eyebrow{font-weight:500;margin-bottom:8px}.library-browse-group-title{font-size:1.5rem;line-height:1.3;max-width:100%;overflow-wrap:anywhere}.library-browse-group-description{color:var(--color-on-image);font-size:.86rem;line-height:1.55;margin-top:10px;max-width:58ch;overflow-wrap:anywhere}.library-selected-group{align-items:center;color:var(--color-primary);display:flex;font-size:.8rem;gap:10px;margin-top:14px}.library-selected-group button{background:#0000;border:0;color:var(--color-muted);cursor:pointer;font-size:.78rem;text-decoration:underline}.library-shelf{min-width:0}.library-shelf>header{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.library-eyebrow{color:var(--color-primary);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.library-shelf.is-market .library-eyebrow{color:var(--color-success)}.library-results h2,.library-shelf h2{font-size:1.25rem;letter-spacing:0;margin:5px 0}.library-shelf p{color:var(--color-muted);font-size:.85rem;margin:6px 0 0}.library-shelf>header button{align-items:center;background:#0000;border:0;color:var(--color-text);display:inline-flex;flex-shrink:0;font-size:.82rem;gap:6px;min-height:44px}.library-book-grid{grid-gap:28px 22px;align-items:start;display:grid;gap:28px 22px;grid-template-columns:repeat(6,minmax(0,1fr))}.library-shelf .library-book-grid{gap:30px;grid-template-columns:repeat(4,minmax(0,1fr))}.library-book-list{grid-gap:0;display:grid;gap:0}.library-book{align-items:stretch;background:#0000;border:0;border-radius:8px;color:var(--color-text);display:flex;flex-direction:column;min-width:0;padding:0;text-align:left}.library-book-cover{aspect-ratio:2/3;background:var(--color-surface);border:1px solid var(--color-line);border-radius:5px 9px 9px 5px;box-shadow:none;display:block;overflow:hidden;position:relative;transition:transform .16s ease,border-color .16s ease;width:100%}.library-book-cover:after{background:none;content:"";inset:0;pointer-events:none;position:absolute}.library-book-cover img{display:block;height:100%;object-fit:cover;width:100%}.library-book:hover .library-book-cover{border-color:var(--color-primary);transform:translateY(-3px)}.library-book-imported{border:1px solid color-mix(in srgb,var(--color-success) 42%,var(--color-line));border-radius:999px;color:var(--color-success);font-size:.65rem;padding:2px 6px}.library-book-imported,.library-book-recommended{align-items:center;display:inline-flex;flex-shrink:0;gap:4px;line-height:1.2;margin-top:2px;white-space:nowrap}.library-book-recommended{background:var(--color-primary-soft);border:1px solid color-mix(in srgb,var(--color-primary) 55%,var(--color-line));border-radius:999px;color:var(--color-primary);font-size:.68rem;font-weight:800;padding:2px 7px}.library-book.is-selected-recommendation:not(.is-list){background:color-mix(in srgb,var(--color-primary-soft) 32%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-primary) 65%,var(--color-line));box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 18%,#0000);padding:8px}.library-book-count{align-items:center;background:var(--color-surface);border-radius:4px;bottom:7px;color:var(--color-text);display:inline-flex;font-size:.65rem;gap:4px;padding:5px 7px;position:absolute;right:7px;z-index:1}.library-book-author{color:var(--color-primary);font-size:.68rem;margin-top:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-book-author.is-community{color:var(--color-success)}.library-book-title-row{align-items:flex-start;display:flex;gap:8px;margin-top:5px;min-width:0;width:100%}.library-book-title{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;font-size:.93rem;line-height:1.4;margin-top:5px;overflow:hidden}.library-book-title-row .library-book-title{flex:1 1;margin-top:0;min-width:0}.library-book-meta{color:var(--color-muted);font-size:.72rem;margin-top:7px}.library-book-topic{color:var(--color-muted);font-size:.7rem;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-book-rating{align-items:center;color:var(--color-primary);display:inline-flex;font-size:.7rem;gap:4px;margin-top:7px}.library-book-status{align-self:flex-start;border:1px solid var(--color-line);border-radius:4px;color:var(--color-muted);font-size:.65rem;margin-top:7px;padding:3px 6px}.library-book-status.is-active{color:var(--color-success)}.library-book.is-list{grid-gap:16px;align-items:center;background:#0000;border:0;border-bottom:1px solid color-mix(in srgb,var(--color-line) 72%,#0000);border-radius:0;display:grid;gap:16px;grid-template-columns:112px minmax(0,1fr) 24px;padding:13px 8px 13px 0;transition:background-color .16s ease;width:100%}.library-book.is-list:hover{background:color-mix(in srgb,var(--color-surface-soft) 58%,#0000);box-shadow:none;transform:none}.library-book.is-list.is-selected-recommendation{background:color-mix(in srgb,var(--color-primary-soft) 42%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-primary) 65%,var(--color-line));border-radius:12px;box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 18%,#0000);padding-inline:10px}.library-book.is-list.is-selected-recommendation:hover{background:color-mix(in srgb,var(--color-primary-soft) 56%,var(--color-surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 24%,#0000)}.library-book.is-list .library-book-cover{aspect-ratio:4/3;border-radius:9px;box-shadow:none;width:112px}.library-book.is-list:hover .library-book-cover{transform:none}.library-book-details{grid-column-gap:8px;align-items:start;column-gap:8px;display:grid;grid-template-columns:minmax(0,1fr) auto;min-width:0}.library-book-details>*{grid-column:1/-1}.library-book.is-list .library-book-author{font-size:.68rem;margin-top:0;max-width:100%}.library-book.is-list .library-book-title-row{margin-top:4px}.library-book.is-list .library-book-title{font-size:1rem;line-height:1.3;margin-top:0;width:auto}.library-book-description{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--color-muted);display:-webkit-box;font-size:.78rem;line-height:1.45;margin-top:5px;max-width:70ch;overflow:hidden}.library-book.is-list .library-book-meta{font-size:.72rem;grid-column:1;grid-row:3;margin-top:7px}.library-book-card-count-inline{align-items:center;display:inline-flex;gap:4px}.library-book.is-list .library-book-rating{grid-column:2;grid-row:3;justify-self:end;margin-top:7px;white-space:nowrap}.library-book.is-list .library-book-status{margin-top:6px}.library-book-arrow{color:var(--color-muted);transition:color .16s ease,transform .16s ease}.library-book.is-list:hover .library-book-arrow{color:var(--color-primary);transform:translateX(2px)}.library-explore-all{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);display:flex;gap:12px;justify-content:center;min-height:54px}.library-results{padding:26px 0 32px}.library-results>header{align-items:center;display:flex;justify-content:space-between;margin-bottom:22px}.library-management-hint,.library-results>header span{color:var(--color-muted);font-size:.82rem}.library-result-groups{grid-gap:34px;display:grid;gap:34px}.library-result-group{min-width:0}.library-result-group>header{align-items:center;border-bottom:1px solid var(--color-line);display:flex;gap:10px;margin-bottom:0;padding:8px 0 6px}.library-result-group h3{color:var(--color-text);font-size:1rem;letter-spacing:0;margin:0}.library-result-group>header span{background:var(--color-surface);border-radius:12px;color:var(--color-muted);font-size:.7rem;min-width:24px;padding:3px 7px;text-align:center}.library-management-hint{margin:-10px 0 22px}.library-pagination{font-size:.85rem;gap:20px;margin-top:36px}.library-pagination,.library-state{align-items:center;color:var(--color-muted);display:flex;justify-content:center}.library-state{flex-direction:column;gap:12px;min-height:220px;padding:28px 12px;text-align:center}.library-state p{margin:0}.library-state[role=alert]{color:var(--color-coral)}.library-license{color:var(--color-muted);font-size:.7rem;padding:28px 0;text-align:center}@media (max-width:1000px){.library-book-grid{gap:24px 18px;grid-template-columns:repeat(4,minmax(0,1fr))}.library-shelf .library-book-grid{gap:22px}}@media (max-width:650px){.library-owner-actions{justify-content:flex-end}.library-language-row{flex-wrap:wrap;gap:12px}.library-tools label{flex:1 1;min-width:0}.library-tools select{max-width:none;min-width:0;width:100%}.library-search{flex-basis:100%}.library-filter-row{display:grid;grid-template-columns:1fr 1fr}.library-clear{justify-self:start}.library-book-grid,.library-shelf .library-book-grid{gap:25px 18px;grid-template-columns:repeat(2,minmax(0,1fr))}.library-book.is-list{gap:12px;grid-template-columns:88px minmax(0,1fr) 18px;padding:10px 4px 10px 0}.library-book.is-list .library-book-cover{border-radius:8px;width:88px}.library-book.is-list .library-book-title{font-size:.9rem}.library-book-description{font-size:.73rem}.library-shelf .library-book:nth-child(n+3){display:none}.library-shelf h2{font-size:1.12rem}.library-shelf p{font-size:.77rem}.library-shelf>header{gap:8px}.library-shelf>header button{font-size:.76rem}.library-discovery{gap:30px;padding-top:26px}}@media (prefers-reduced-motion:reduce){.library-book-cover{transition:none}.library-book:hover .library-book-cover{transform:none}}.map-view.note-detail-page,.note-detail-page{--note-detail-background:var(--color-bg);--note-detail-heading-color:var(--color-text);color:var(--color-text);margin:0 auto;max-width:940px;overflow-x:hidden;padding:0 0 40px;position:relative;width:100%}.map-view.note-detail-page.has-note-theme,.note-detail-page.has-note-theme{--note-detail-background:var(--note-theme-bottom-light,var(--note-theme-light));--note-detail-top-background:var(--note-theme-top,var(--note-theme-top-light,var(--note-theme-light)));--note-detail-heading-color:var(--note-theme-light-text,var(--note-theme-dark));background:var(--note-detail-background);transition:background-color .22s ease}:root[data-theme=dark] .map-view.note-detail-page.has-note-theme,:root[data-theme=dark] .note-detail-page.has-note-theme{--note-detail-background:var(--note-theme-bottom-dark,var(--note-theme-dark));--note-detail-top-background:var(--note-theme-top,var(--note-theme-top-dark,var(--note-theme-dark)));--note-detail-heading-color:var(--note-theme-dark-text,var(--note-theme-light));background:var(--note-detail-background)}.note-detail-overview{margin:0 auto;max-width:none;position:relative;width:100%}.note-detail-nav{align-items:center;display:flex;gap:16px;justify-content:space-between;left:50%;min-height:48px;padding:0 16px;pointer-events:none;position:absolute;top:16px;transform:translateX(-50%);width:100%;z-index:4}.note-detail-nav>*{pointer-events:auto}.note-detail-back{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in srgb,var(--color-surface) 36%,#0000);border:1px solid color-mix(in srgb,var(--color-line) 72%,#0000);border-radius:50%;box-shadow:0 4px 12px #0c1e3a14;cursor:pointer;display:inline-flex;flex:0 0 48px;font:inherit;font-weight:600;height:48px;justify-content:center;padding:0;width:48px}.note-detail-back,.note-detail-back:hover{color:var(--color-text)}.note-detail-back span{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.note-detail-top-actions{align-items:center;display:flex;flex-shrink:0;justify-content:flex-end;margin-left:auto;margin-right:0}.note-detail-top-actions .map-note-actions{display:flex;gap:0;width:auto}.note-detail-top-actions .quick-practice-actions{flex:0 0 48px;height:48px;width:48px}.note-detail-top-actions .quick-practice-actions .map-note-action-more,.note-detail-top-actions .quick-practice-actions .map-note-more{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in srgb,var(--color-surface) 36%,#0000);border:1px solid color-mix(in srgb,var(--color-line) 72%,#0000);border-radius:50%;height:48px;min-height:48px;padding:0;width:48px}.note-detail-top-actions .map-note-actions:not(.quick-practice-actions){-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in srgb,var(--color-surface) 36%,#0000);border:1px solid color-mix(in srgb,var(--color-line) 72%,#0000);border-radius:999px;gap:0;padding:0}.note-detail-top-actions .map-note-actions:not(.quick-practice-actions)>.map-note-action{background:#0000;border:0;border-radius:50%;flex:0 0 48px;height:48px;min-height:48px;padding:0;width:48px}.note-detail-top-actions .map-note-actions:not(.quick-practice-actions)>.map-note-more,.note-detail-top-actions .map-note-actions:not(.quick-practice-actions)>.map-note-more>.map-note-action-more{height:48px;min-height:48px;width:48px}.note-detail-top-actions .map-note-actions:not(.quick-practice-actions)>.map-note-more>.map-note-action-more{background:#0000;border:0;border-radius:50%;padding:0}.note-detail-top-actions .market-owner-actions{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in srgb,var(--color-surface) 36%,#0000);border:1px solid color-mix(in srgb,var(--color-line) 72%,#0000);border-radius:999px;gap:0;margin-left:0;padding:0}.note-detail-top-actions .market-owner-actions .market-owner-action{background:#0000;border:0;border-radius:50%;min-height:48px;padding:0 14px}.note-detail-top-actions .market-owner-actions .market-owner-action-more{height:48px;padding:0;width:48px}.note-detail-top-actions .map-note-actions:not(.quick-practice-actions)>.map-note-action:first-child span,.note-detail-top-actions .market-owner-actions .market-owner-action:first-child span{display:none}.note-detail-main{align-items:center;display:flex;flex-direction:column;gap:0;margin-bottom:24px;text-align:center;width:100%}.note-detail-cover{background:var(--note-detail-background);display:grid;flex:0 0 auto;margin:0;max-height:none;max-width:none;min-width:0;overflow:hidden;place-items:center;position:relative;width:100%;z-index:0}.note-detail-cover.has-measured-cover{aspect-ratio:var(--note-detail-cover-aspect-ratio)}.note-detail-cover.is-tall{aspect-ratio:auto;height:50vh;max-height:50vh}.note-detail-cover:after,.note-detail-cover:before{content:"";pointer-events:none;position:absolute;z-index:1}.note-detail-cover:before{background:linear-gradient(to bottom,var(--note-detail-background) 0,color-mix(in srgb,var(--note-detail-background) 48%,#0000) 46%,#0000 100%);background:linear-gradient(to bottom,var(--note-detail-top-background,var(--note-detail-background)) 0,color-mix(in srgb,var(--note-detail-top-background,var(--note-detail-background)) 48%,#0000) 46%,#0000 100%);height:clamp(14px,5%,26px);inset:0 0 auto}.note-detail-cover:after{background:linear-gradient(to bottom,#0000 0,color-mix(in srgb,var(--note-detail-background) 44%,#0000) 58%,var(--note-detail-background) 100%);inset:58% 0 0}.note-detail-cover>img{display:block;max-width:none;min-width:0}.note-detail-cover.is-tall>img,.note-detail-cover>img{height:100%;max-height:none;object-fit:cover;object-position:center;width:100%}.note-detail-cover.is-tall>img{inset:0;margin:0;min-width:100%;position:absolute}.note-detail-cover>img.is-fallback{max-height:none}.note-detail-cover.is-contained{border-radius:16px;flex:0 0 auto;margin:16px auto 20px;max-width:calc(100% - 32px)}.note-detail-cover.is-contained>img{object-fit:contain}.note-detail-cover.is-contained:after,.note-detail-cover.is-contained:before{content:none}.note-detail-cover .map-cover-placeholder{align-items:center;background:var(--color-surface-soft);display:flex;justify-content:center;min-height:min(50vh,420px);width:100%}.note-detail-copy{margin:0 auto;min-width:0;padding:0 16px;position:relative;width:min(100%,760px);z-index:2}.note-detail-title-row{align-items:center;display:flex;gap:12px;justify-content:center}.note-detail-title-row h1{color:var(--note-detail-heading-color);font-size:clamp(27px,5vw,36px);line-height:1.15;margin:0;min-width:0;overflow-wrap:anywhere}.note-detail-title-row>[role=group]{flex-shrink:0}.note-detail-description{color:var(--color-muted);line-height:1.65;margin:14px auto 0;max-width:620px;overflow-wrap:anywhere;white-space:pre-wrap}.note-detail-facts{color:var(--color-muted);display:flex;flex-wrap:wrap;font-size:12px;gap:0;justify-content:center;margin:16px 0 0}.note-detail-facts>span{align-items:center;background:#0000;border:0;border-radius:0;display:inline-flex;padding:0}.note-detail-facts>span+span:before{color:var(--color-muted);content:"·";margin:0 9px}.note-detail-action-row{align-items:center;display:flex;gap:12px;justify-content:center;margin:4px auto 26px;width:100%}.note-detail-primary-action{min-width:min(270px,calc(100% - 68px))}.note-detail-primary-action.has-learning-actions{max-width:100%;min-width:0;width:min(560px,calc(100% - 64px))}.note-detail-learning-actions{align-items:center;display:flex;gap:10px;justify-content:center;width:100%}.note-detail-learning-actions>.note-detail-favorite-action{flex:0 0 auto}.note-detail-learning-actions .map-note-actions,.note-detail-learning-actions>.map-note-actions{display:flex;flex:1 1 auto;gap:0;min-width:0;width:auto}.note-detail-learning-actions>.map-note-actions>.note-detail-button-primary{width:100%}.note-detail-favorite-action{align-items:center;display:inline-flex;flex-direction:column;position:relative}.note-detail-button.note-detail-favorite-button{border-radius:50%;flex:0 0 52px;height:52px;min-height:52px;padding:0;width:52px}.note-detail-favorite-button.is-favorite{background:color-mix(in srgb,var(--color-coral) 10%,var(--color-surface));border-color:var(--color-coral);color:var(--color-coral)}.note-detail-favorite-error{color:var(--color-danger);font-size:11px;max-width:220px;position:absolute;top:calc(100% + 5px);width:max-content}.note-detail-primary-action>.map-note-actions,.note-detail-primary-action>.market-owner-actions{width:100%}.note-detail-primary-action .map-note-actions>.map-note-more,.note-detail-primary-action .market-owner-actions>.market-owner-more{display:none}.note-detail-primary-action .map-note-action,.note-detail-primary-action .market-owner-action{border-radius:999px;min-height:52px;width:100%}.note-detail-primary-action .map-note-action span,.note-detail-primary-action .market-owner-action span{display:inline}.note-detail-primary-action>.note-detail-button{width:100%}.note-detail-secondary-action{flex:0 0 auto}.note-detail-secondary-action>button{border-radius:50%;height:52px;padding:0;width:52px}.note-detail-cta{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:20px}.note-detail-button{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);cursor:pointer;display:inline-flex;font:inherit;font-size:var(--text-control);font-weight:var(--weight-control);gap:8px;justify-content:center;min-height:44px;padding:9px 14px}.note-detail-button-primary,.note-detail-button.is-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.note-detail-button-primary{border-radius:999px;flex:1 1 auto;font-weight:700;min-height:52px}.map-view.note-detail-page.has-note-theme .note-detail-button-primary,.note-detail-page.has-note-theme .note-detail-button-primary{background:var(--note-theme-dark);background:var(--note-theme-light-text,var(--note-theme-dark));border-color:var(--note-theme-light-text,var(--note-theme-dark));color:var(--color-on-primary);color:var(--note-theme-light,var(--color-on-primary))}:root[data-theme=dark] .map-view.note-detail-page.has-note-theme .note-detail-button-primary,:root[data-theme=dark] .note-detail-page.has-note-theme .note-detail-button-primary{background:var(--note-theme-light);background:var(--note-theme-dark-text,var(--note-theme-light));border-color:var(--note-theme-dark-text,var(--note-theme-light));color:var(--color-text);color:var(--note-theme-dark,var(--color-text))}.note-detail-round-action{align-items:center;border-radius:50%;display:inline-flex;flex:0 0 52px;height:52px;justify-content:center;min-height:52px;padding:0;width:52px}.note-detail-button:disabled{cursor:default;opacity:.6}.note-detail-extra{padding-inline:16px;width:100%}.note-detail-cards{border-top:1px solid var(--color-line);margin-top:24px;padding-top:20px}.note-detail-page>.note-stats-panel{background:var(--color-bg);background:var(--note-detail-background,var(--color-bg));border:0;box-shadow:none}.note-detail-page>.note-stats-panel .note-stats-panel-title,.note-detail-page>.note-stats-panel .practice-summary-heading h3{color:var(--note-detail-heading-color)}.note-detail-page>.note-stats-panel .note-stats-stat{background:color-mix(in srgb,var(--color-bg) 50%,#0000)}.note-detail-page>.note-detail-cards{margin:24px auto 0;max-width:900px;padding:20px 18px 0;width:100%}.note-detail-page>.note-detail-cards,.note-detail-page>.note-detail-cards>.flashcard-map{background:var(--color-bg);background:var(--note-detail-background,var(--color-bg))}.note-detail-page>.note-detail-cards .flashcard-map-search-bar{background-color:color-mix(in srgb,var(--color-surface) 50%,#0000)}.note-detail-page>.note-detail-cards .map-search-field{background-color:color-mix(in srgb,var(--color-bg) 50%,#0000)}.note-detail-page>.note-detail-cards>header .note-detail-button{background:color-mix(in srgb,var(--color-surface) 50%,#0000)}.note-detail-page>.library-reviews{margin-inline:16px}.note-detail-cards>header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:16px}.note-detail-cards h2{color:var(--note-detail-heading-color);font-size:19px;margin:0}.note-detail-cards>header p{color:var(--color-muted);font-size:13px;margin:4px 0 0}.note-detail-error{color:var(--color-danger)}.note-publication-page{margin:auto;max-width:940px;padding:12px}.note-publication-help{color:var(--color-muted);line-height:1.6}@media (max-width:780px){.note-detail-cta>.is-primary{flex:1 1 200px}}@media (max-width:760px){.map-view.note-detail-page,.note-detail-page{margin-top:0}}@media (max-width:720px){.note-detail-page>.note-detail-cards{padding-inline:14px}}@media (max-width:420px){.note-detail-extra{padding-inline:12px}.note-detail-title-row h1{font-size:28px}.note-detail-nav{margin-bottom:8px}}.note-detail-page.is-note-disabled .map-cover-placeholder,.note-detail-page.is-note-disabled .note-detail-cover>img{filter:grayscale(1)}.detail-preview-pagination{align-items:center;display:flex;gap:12px;justify-content:center;margin-top:16px}.detail-preview-pagination button{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:5px;color:var(--color-text);cursor:pointer;display:inline-flex;font:inherit;font-weight:800;gap:4px;justify-content:center;min-height:40px;min-width:88px;padding:0 11px}.detail-preview-pagination button:disabled{background:var(--color-surface-soft);color:var(--color-muted);cursor:default}.detail-preview-pagination>span{color:var(--color-muted);font-size:.8rem;font-weight:800;min-width:52px;text-align:center}.study-path{color:#20252d;color:var(--text-primary,#20252d);margin:0 auto;max-width:1040px;padding:32px 24px 72px}.study-path-header{align-items:end;display:flex;gap:24px;justify-content:space-between;margin-bottom:28px}.study-path-header h1{font-size:clamp(28px,4vw,40px);margin:8px 0}.study-path-header p,.study-path-map header p{color:#667085;color:var(--text-secondary,#667085);margin:0}.study-path-eyebrow{align-items:center;color:#4768c5;display:flex;font-weight:700;gap:8px}.study-path button{cursor:pointer;font:inherit}.study-path-map-link,.study-path-placement button{align-items:center;background:#fff;border:1px solid #ccd4e0;border-radius:12px;color:inherit;display:inline-flex;font-weight:700;gap:8px;padding:12px 16px}.study-path-map,.study-path-next,.study-path-placement{background:#fff;background:var(--surface,#fff);border:1px solid #e1e5ec;border-radius:18px;margin:20px 0;padding:24px}.study-path-map h2,.study-path-next h2,.study-path-placement h2{margin:0 0 10px}.study-path-placement p{color:#667085}.study-path-placement>div{display:flex;gap:10px}.study-path-map-link:hover,.study-path-placement button:hover{border-color:#5474d2}.study-path-feature{grid-gap:12px;background:#eff3ff;border:0;border-radius:16px;color:inherit;display:grid;gap:12px;padding:22px;text-align:left;width:100%}.study-path-feature-bottom,.study-path-feature-meta{color:#596887;display:flex;justify-content:space-between}.study-path-feature strong{font-size:22px}.study-path-feature-bottom{align-items:center}.study-path-next h3{margin:24px 0 10px}.study-path-picks{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.study-path-picks button{grid-gap:8px;background:#0000;border:1px solid #e1e5ec;border-radius:12px;color:inherit;display:grid;gap:8px;padding:14px;text-align:left}.study-path-picks small,.study-path-picks span{color:#667085}.study-path-map header{margin-bottom:14px}.study-path-map ol{list-style:none;margin:0;padding:0}.study-path-map li{grid-gap:12px;align-items:center;border-top:1px solid #edf0f4;display:grid;gap:12px;grid-template-columns:42px 1fr auto;padding:10px 2px}.study-path-order{color:#758098;text-align:center}.study-path-map li button{grid-gap:3px;background:none;border:0;color:inherit;display:grid;gap:3px;padding:6px;text-align:left}.study-path-map li button span,.study-path-state{color:#758098;font-size:12px}.study-path-state{padding:0 8px}.study-path-map li.is-mastered .study-path-state{color:#31835c}.study-path-map li.is-imported .study-path-state{color:#4768c5}.study-path-error{color:#b42318}@media(max-width:620px){.study-path{padding:22px 14px 48px}.study-path-header{align-items:start;flex-direction:column}.study-path-map,.study-path-next,.study-path-placement{padding:18px}.study-path-map li{grid-template-columns:30px 1fr}.study-path-state{grid-column:2;padding-left:6px}}.cover-upload-widget{margin-bottom:16px;width:100%}.cover-upload-widget.is-uploading,.cover-upload-widget.is-uploading *{cursor:wait}.cover-source-tabs{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}.cover-source-tab{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:6px;color:var(--color-muted);cursor:pointer;font-size:13px;font-weight:700;padding:10px 12px;transition:all .2s ease}.cover-btn.disabled,.cover-btn:disabled,.cover-gallery-tile:disabled,.cover-source-tab:disabled{opacity:.58;pointer-events:none}.cover-source-tab.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.cover-upload-area{align-items:center;background-color:var(--color-surface-soft);border:2px dashed var(--color-line);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:8px;justify-content:center;padding:32px 16px;transition:all .2s ease}.cover-upload-area:hover{background-color:var(--color-primary);border-color:var(--color-primary)}.cover-upload-icon{font-size:32px}.cover-upload-text{color:var(--color-muted);font-size:14px;font-weight:600}.cover-upload-hint{color:var(--color-muted);font-size:12px}.cover-file-input{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.cover-preview-container{background-color:var(--color-surface-soft);border-radius:8px;overflow:hidden;position:relative}.cover-preview-image{border-radius:8px;display:block;max-height:240px;object-fit:cover;width:100%}.cover-gallery-panel{margin-top:12px}.cover-gallery-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));max-height:320px;overflow-y:auto;padding:2px}.cover-gallery-tile{background:var(--color-surface-soft);border:2px solid #0000;border-radius:8px;color:var(--color-muted);cursor:pointer;display:flex;flex-direction:column;gap:6px;min-width:0;padding:6px;text-align:left;transition:all .2s ease}.cover-gallery-tile.active,.cover-gallery-tile:hover{background:var(--color-primary-soft);border-color:var(--color-primary)}.cover-gallery-thumbnail{aspect-ratio:4/3;background:var(--color-line);border-radius:6px;display:block;object-fit:cover;width:100%}.cover-gallery-name{color:inherit;font-size:11px;font-weight:700;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cover-gallery-state{background:var(--color-surface-soft);border:1px dashed var(--color-line);border-radius:8px;color:var(--color-muted);font-size:13px;padding:20px 12px;text-align:center}.cover-preview-actions{display:flex;gap:8px;justify-content:center;padding:12px 0 4px}.cover-btn{border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;padding:6px 16px;text-align:center;transition:all .2s ease}.cover-btn:hover{box-shadow:0 2px 4px #00000026;transform:translateY(-1px)}.cover-btn:active{transform:translateY(0)}.cover-btn-change{color:var(--color-on-primary)}.cover-btn-change,.cover-btn-change:hover{background-color:var(--color-primary)}.cover-btn-remove{background-color:var(--color-surface-soft);color:var(--color-muted)}.cover-btn-remove:hover,.cover-error{background-color:var(--color-danger-soft);color:var(--color-danger)}.cover-error{align-items:center;border-left:3px solid var(--color-danger);border-radius:4px;display:flex;font-size:13px;gap:6px;margin-top:8px;padding:8px 12px}.cover-error-icon{flex-shrink:0;font-size:14px}.cover-error-text{flex:1 1;line-height:1.4}@media (max-width:600px){.cover-upload-area{padding:24px 12px}.cover-preview-image{max-height:180px}.cover-btn{font-size:12px;padding:6px 12px}.cover-gallery-grid{gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));max-height:260px}}.cover-upload-progress{grid-gap:8px;background:var(--color-primary-soft);border:1px solid #2196f338;border-radius:8px;color:var(--color-primary-soft);display:grid;font-size:13px;gap:8px;margin-top:10px;padding:10px 12px}.cover-upload-progress-row{align-items:center;display:flex;font-weight:700;gap:12px;justify-content:space-between}.cover-upload-progress-track{background:#2196f329;border-radius:999px;height:8px;overflow:hidden}.cover-upload-progress-fill{background:var(--color-primary);border-radius:inherit;height:100%;transition:width .18s ease}.note-composer-page{background:var(--color-bg);color:var(--color-text);min-height:100dvh;padding:28px 20px 56px}.note-composer-header,.note-composer-main,.note-composer-page>.note-editor{margin:0 auto;width:min(980px,100%)}.note-composer-header{grid-gap:8px 14px;align-items:center;display:grid;gap:8px 14px;grid-template-columns:44px minmax(0,1fr);margin-bottom:26px}.composer-modal-header h2,.note-composer-fields h2,.note-composer-header h1{letter-spacing:0;margin:0}.note-composer-header h1{font-size:var(--text-page-title);font-weight:var(--weight-page-title);min-width:0;overflow-wrap:anywhere}.note-composer-header>p{color:var(--color-muted);grid-column:2;line-height:1.55;margin:0}.composer-modal-kicker,.note-composer-eyebrow{color:var(--color-warning);font-size:.73rem;font-weight:800;letter-spacing:0;margin-bottom:4px;text-transform:uppercase}.composer-icon-button{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:50%;color:var(--color-text);cursor:pointer;display:inline-grid;flex:0 0 auto;height:44px;place-items:center;width:44px}.composer-icon-button:hover:not(:disabled){border-color:var(--color-success);color:var(--color-success)}.note-composer-fields{border-bottom:1px solid var(--color-line);border-top:1px solid var(--color-line);padding:24px 0 28px}.note-composer-fields h2{color:var(--color-muted);font-size:1rem;margin-bottom:18px}.note-composer-field{grid-gap:8px;display:grid;gap:8px;margin-bottom:18px}.composer-builder-editor label,.composer-preview-label,.composer-type-selector legend,.note-composer-field label{color:var(--color-muted);font-size:.83rem;font-weight:700}.composer-builder-editor textarea,.note-composer-field input,.note-composer-field textarea{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-control);box-sizing:border-box;color:var(--color-text);font-size:1rem;width:100%}.note-composer-field input{min-height:48px;padding:11px 13px}.note-composer-field input[readonly]{background:var(--color-surface);color:var(--color-muted)}.composer-builder-editor textarea,.note-composer-field textarea{font-family:Consolas,Courier New,monospace;line-height:1.6;padding:14px;resize:vertical}.note-composer-field textarea{min-height:420px}.composer-builder-editor textarea{height:100%;min-height:390px}.composer-builder-editor textarea:focus,.note-composer-field input:focus,.note-composer-field textarea:focus{border-color:#0000;outline:2px solid var(--color-focus);outline-offset:1px}.note-composer-practice-state{align-items:center;border-bottom:1px solid var(--color-line);border-top:1px solid var(--color-line);display:flex;gap:16px;justify-content:space-between;margin:0 0 20px;padding:14px 2px}.note-composer-practice-state-copy{align-items:flex-start;color:var(--color-success);display:flex;gap:10px;min-width:0}.note-composer-practice-state-copy>span{grid-gap:3px;display:grid;gap:3px}.note-composer-practice-state-copy strong{color:var(--color-text);font-size:.9rem}.note-composer-practice-state-copy small{color:var(--color-muted);line-height:1.4}.note-composer-state-switch{align-items:center;cursor:pointer;display:inline-flex;flex:0 0 auto;gap:9px}.note-composer-state-switch input{height:1px;opacity:0;position:absolute;width:1px}.note-composer-state-track{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:999px;display:block;height:24px;padding:2px;transition:background .16s ease,border-color .16s ease;width:42px}.note-composer-state-track>span{background:var(--color-muted);border-radius:50%;display:block;height:18px;transition:transform .16s ease,background .16s ease;width:18px}.note-composer-state-switch input:checked+.note-composer-state-track{background:var(--color-success-soft);border-color:var(--color-success)}.note-composer-state-switch input:checked+.note-composer-state-track>span{background:var(--color-success);transform:translateX(18px)}.note-composer-state-switch input:focus-visible+.note-composer-state-track{outline:2px solid var(--color-focus);outline-offset:3px}.note-composer-state-label{color:var(--color-muted);font-size:.82rem;font-weight:800;min-width:62px}.note-composer-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.composer-button,.composer-tool-button{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-control);color:var(--color-text);cursor:pointer;display:inline-flex;font:inherit;font-size:var(--text-control);font-weight:var(--weight-control);gap:8px;justify-content:center;min-height:var(--control-height);padding:9px 14px;text-decoration:none}.composer-button.secondary:hover:not(:disabled),.composer-tool-button:hover{background:var(--color-surface-soft);border-color:var(--color-line)}.composer-tool-button.primary-tool{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.note-composer-guidance{color:var(--color-muted);font-size:.9rem;margin:10px 0 20px}.composer-modal-actions,.note-composer-page-actions{display:flex;gap:10px;justify-content:flex-end}.composer-button.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.composer-button.primary:hover:not(:disabled){filter:brightness(1.06)}.composer-button:disabled{cursor:not-allowed;opacity:.55}.composer-page-error,.composer-preview-error{background:var(--color-danger-soft);border-left:3px solid var(--color-danger);color:var(--color-danger);line-height:1.45;margin:14px 0;padding:12px 14px}.composer-modal-overlay{background:var(--color-overlay);display:grid;inset:0;padding:18px;place-items:center;position:fixed;z-index:1600}.composer-builder-dialog,.composer-confirm-dialog{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;box-shadow:var(--shadow-warm);display:flex;flex-direction:column;max-height:calc(100dvh - 36px);overflow:hidden;width:min(1050px,100%)}.composer-confirm-dialog{width:min(860px,100%)}.composer-modal-header{align-items:flex-start;border-bottom:1px solid var(--color-line);display:flex;gap:16px;justify-content:space-between;padding:20px 22px 16px}.composer-modal-header h2{font-size:1.35rem}.composer-modal-header p{color:var(--color-muted);margin:6px 0 0}.composer-type-selector{border:0;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:16px 22px}.composer-type-selector legend{margin-bottom:8px}.composer-type-selector label{align-items:center;border:1px solid var(--color-line);border-radius:var(--radius-control);color:var(--color-muted);cursor:pointer;display:inline-flex;min-height:var(--control-height);padding:8px 12px;position:relative}.composer-type-selector label.selected{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.composer-type-selector input{opacity:0;pointer-events:none;position:absolute}.composer-builder-workspace{grid-gap:18px;display:grid;flex:1 1;gap:18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;overflow:auto;padding:0 22px 18px}.composer-builder-editor,.composer-builder-preview{display:flex;flex-direction:column;gap:8px;min-width:0}.composer-builder-preview{min-height:390px}.composer-preview-waiting{border:1px dashed var(--color-line);color:var(--color-muted);display:grid;min-height:200px;place-items:center}.composer-preview-error{align-items:flex-start;display:flex;gap:9px}.composer-modal-actions{border-top:1px solid var(--color-line);padding:14px 22px 18px}.composer-dialog-preview,.composer-qa-preview,.composer-reading-preview{background:var(--color-surface);border:1px solid var(--color-line);border-radius:8px;color:var(--color-text);min-height:250px;overflow:hidden;position:relative}.composer-qa-preview{align-items:center;cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:14px;justify-content:center;padding:38px 24px 28px;width:100%}.composer-qa-preview.compact{min-height:190px}.composer-preview-side{color:var(--color-success);font-weight:900;left:14px;position:absolute;top:13px}.composer-preview-flip-icon{bottom:12px;color:var(--color-muted);position:absolute;right:14px}.composer-qa-text{font-size:1.25rem;line-height:1.45;text-align:center}.composer-qa-memo{border-top:1px solid var(--color-line);color:var(--color-muted);padding-top:12px;text-align:center;width:100%}.composer-reading-preview-heading{align-items:center;background:var(--color-surface-soft);border-bottom:1px solid var(--color-line);display:flex;gap:8px;padding:14px 16px}.composer-reading-preview-heading h3{font-size:1.05rem;letter-spacing:0;margin:0}.composer-dialog-content,.composer-reading-preview-body{max-height:330px;overflow-y:auto;padding:18px}.composer-article-paragraph{line-height:1.6;margin-bottom:14px}.composer-dialog-scene{color:var(--color-muted);font-size:.84rem;margin:4px 0 14px;text-align:center}.composer-dialog-story{background:var(--color-surface);border-left:3px solid #d4a92d;line-height:1.5;margin:12px 0;padding:10px 12px}.composer-dialog-row{display:flex;margin:10px 0}.composer-dialog-row.speaker-b{justify-content:flex-end}.composer-dialog-bubble{background:var(--color-success-soft);border-radius:8px 8px 8px 2px;max-width:78%;padding:10px 12px}.composer-dialog-row.speaker-b .composer-dialog-bubble{background:var(--color-warning-soft);border-radius:8px 8px 2px 8px}.composer-dialog-row.display-only .composer-dialog-bubble{background:var(--color-surface-soft);color:var(--color-muted)}.composer-dialog-speaker{color:var(--color-muted);display:block;font-size:.7rem;font-weight:800;margin-bottom:4px}.composer-dialog-answer{border-top:1px solid #2d363033;font-weight:700;margin-top:8px;padding-top:8px}.composer-confirm-list{min-height:0;overflow-y:auto;padding:18px 22px}.composer-locale-fields{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));padding:16px 22px 0}.composer-locale-field{grid-gap:7px;display:grid;gap:7px}.composer-locale-field label{color:var(--color-muted);font-size:.83rem;font-weight:700}.composer-locale-fields select{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:var(--radius-control);color:var(--color-text);font:inherit;min-height:44px;padding:8px 11px;width:100%}.composer-locale-fields select:focus{border-color:#0000;outline:2px solid var(--color-focus);outline-offset:1px}.composer-locale-field small{color:var(--color-muted);font-size:.78rem;font-weight:400}.composer-confirm-list .flashcard-map{padding:0}.composer-confirm-list .flashcard-map-grid{margin:0}.composer-confirm-item{min-width:0;position:relative}.composer-confirm-item-number,.composer-confirm-item-type{font-size:.7rem;font-weight:900;position:absolute;top:10px;z-index:2}.composer-confirm-item-number{background:var(--color-success);border-radius:50%;color:var(--color-on-success);display:grid;height:23px;left:12px;place-items:center;width:23px}.composer-confirm-item-type{color:var(--color-muted);right:12px;text-transform:uppercase}.composer-confirm-item .composer-reading-preview-heading{padding-top:39px}.composer-spin{animation:composer-spin .8s linear infinite}.note-composer-loading{display:grid;min-height:60dvh;place-items:center}@keyframes composer-spin{to{transform:rotate(1turn)}}@media (max-width:760px){.note-composer-page{padding:18px 12px 36px}.note-composer-field textarea{min-height:52dvh}.composer-modal-overlay{padding:0}.composer-builder-dialog,.composer-confirm-dialog{border:0;border-radius:0;height:100dvh;max-height:100dvh;width:100%}.composer-builder-workspace{grid-template-columns:1fr}.composer-builder-editor textarea,.composer-builder-preview{min-height:300px}.note-composer-page-actions .composer-button{flex:1 1}.composer-locale-fields{grid-template-columns:1fr}.note-composer-practice-state{align-items:flex-start}}.note-editor{grid-gap:20px;color:var(--color-text);display:grid;gap:20px}.note-editor-fields{grid-gap:14px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:12px;border-radius:var(--radius-panel,12px);display:grid;gap:14px;margin:0;min-width:0;padding:var(--panel-padding)}.note-editor-fields legend{font-size:var(--text-section-title);font-weight:var(--weight-section-title);padding:0 8px}.note-editor-fields legend span{color:var(--color-muted);font-size:.85rem;margin-left:8px}.note-editor-fields label{grid-gap:6px;display:grid;gap:6px;min-width:0}.note-editor-fields>label:not(.note-editor-enabled),.note-editor-metadata-row>label{align-items:center;gap:12px;grid-template-columns:minmax(92px,.34fr) minmax(0,1fr)}.note-editor-fields>label:not(.note-editor-enabled)>span,.note-editor-metadata-row>label>span{color:var(--color-muted);font-weight:var(--weight-group-title)}.note-editor-fields>label:not(.note-editor-enabled)>:is(input,textarea,select),.note-editor-metadata-row>label>:is(input,textarea,select){grid-column:2}.note-editor-fields label small,.note-editor-fields p,.note-editor-fields small{color:var(--color-muted);line-height:1.6;margin:0}.note-editor-fields input:not([type=checkbox]):not([type=file]),.note-editor-fields select,.note-editor-fields textarea{background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;box-sizing:border-box;color:var(--color-text);font:inherit;min-height:44px;padding:10px 12px;width:100%}.note-editor-fields textarea{resize:vertical}.note-editor-dialog button:focus-visible,.note-editor-fields :is(input,textarea,select,button,summary):focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.note-editor-fields input:read-only,.note-editor-fields select:disabled{background:var(--color-surface-soft);color:var(--color-muted)}.note-editor-provenance{color:var(--color-muted);display:flex;flex-wrap:wrap;font-size:.9rem;gap:8px 20px}.note-editor-metadata-row{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr}.note-editor-cover{grid-gap:8px;display:grid;gap:8px;max-width:360px}.note-editor-fields .note-editor-enabled{align-items:center;display:flex;gap:10px;min-height:44px}.note-editor-enabled input{accent-color:var(--color-primary);height:20px;width:20px}.note-editor-bulk{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:8px;padding:12px}.note-editor-bulk summary{cursor:pointer;font-weight:var(--weight-group-title);min-height:var(--control-height)}.note-editor-bulk label{margin:10px 0}.note-editor-card-list{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;margin:0;padding:0}.note-editor-card-list>li{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:10px;min-width:0;overflow-wrap:anywhere;padding:12px}.note-editor-card-list>li>header{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:10px}.note-editor-card-list>li>header>div{display:flex}.note-editor-card-list .composer-dialog-content,.note-editor-card-list .composer-reading-preview-body{max-height:340px;overflow-y:auto}.note-editor-card-list .composer-qa-preview{min-height:110px;width:100%}.note-editor-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:8px}.note-editor-actions button{min-height:44px}.note-editor .composer-button.danger,.note-editor-dialog .composer-button.danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-on-danger)}.note-editor-dialog{background:var(--color-surface);border:1px solid var(--color-line);border-radius:12px;border-radius:var(--radius-panel,12px);box-sizing:border-box;color:var(--color-text);max-height:90dvh;overflow-y:auto;padding:24px;width:min(760px,100%)}.note-editor-dialog>h2{margin-top:0}.note-editor-change-summary{background:var(--color-primary-soft);border-radius:8px;display:flex;flex-wrap:wrap;gap:16px;padding:12px}.note-editor-review-metadata{grid-gap:8px;display:grid;gap:8px;margin:16px 0}.note-editor-review-metadata>div{grid-gap:12px;display:grid;gap:12px;grid-template-columns:minmax(90px,.3fr) minmax(0,1fr)}.note-editor-review-metadata dt{color:var(--color-muted)}.note-editor-review-metadata dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.note-editor-cover-change{background:var(--color-primary-soft);border:1px solid var(--color-line);border-radius:8px;overflow-wrap:anywhere;padding:12px}.note-editor-review-cards{grid-gap:10px;display:grid;gap:10px;margin-block:16px}.note-editor-review-cards>h3{font-size:var(--text-group-title);font-weight:var(--weight-group-title);margin:0}.note-editor-empty{padding:20px 0;text-align:center}@media (max-width:600px){.note-editor-fields{padding:14px}.note-editor-card-list{grid-template-columns:1fr}.note-editor-dialog{padding:18px}}.market-page{padding:20px 0 60px;width:min(1120px,calc(100% - 32px))}.market-detail-page,.market-page{color:var(--color-text);margin:0 auto}.market-detail-page{max-width:1180px;padding-bottom:56px;width:100%}.market-page-header{grid-gap:14px;align-items:center;border-bottom:1px solid var(--color-primary);display:grid;gap:14px;grid-template-columns:44px minmax(0,1fr) auto;padding-bottom:20px}.market-board h2,.market-page-header h1,.market-page-header span,.market-shelf h2{margin:0}.market-page-header h1{font-size:1.9rem}.market-page-header span{color:var(--color-success);font-size:.72rem;font-weight:900;text-transform:uppercase}.market-page-header>svg{color:var(--color-primary)}.market-page-header .market-publish-button{align-items:center;background:var(--color-primary);border:1px solid var(--color-success);border-radius:6px;color:var(--color-on-primary);cursor:pointer;display:inline-flex;font:inherit;font-weight:600;gap:7px;justify-content:center;min-height:44px;padding:0 14px;white-space:nowrap}.market-page-header .market-publish-button:hover{background:var(--color-primary)}.market-publish-page{margin:0 auto;max-width:820px}.market-publish-page .market-page-header h1{font-size:1.5rem}.market-publish-page .market-edit-form{border-top:0;margin-top:0;padding-top:20px}.market-detail-back,.market-icon-button{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:6px;color:var(--color-muted);cursor:pointer;display:inline-flex;justify-content:center;min-height:42px;min-width:42px}.market-highlights{padding:26px 0 8px}.market-shelf{margin-bottom:28px}.market-board>header,.market-shelf>header{align-items:baseline;display:flex;gap:8px;margin-bottom:12px}.market-board>header span,.market-shelf>header span{color:var(--color-muted);font-size:.78rem}.market-shelf-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr))}.market-tile{background:#0000;border:0;color:inherit;cursor:pointer;min-width:0;padding:0 0 10px;position:relative;text-align:left}.market-tile-cover{aspect-ratio:4/3;background:var(--color-success-soft);border:1px solid var(--color-line);border-radius:6px;display:block;margin-bottom:8px;overflow:hidden;position:relative}.market-tile-cover img{height:100%;object-fit:cover;width:100%}.market-tile-cover>span{align-items:center;background:var(--color-surface);border-radius:4px;bottom:6px;color:var(--color-text);display:inline-flex;font-size:.68rem;font-style:normal;gap:4px;padding:4px 6px;position:absolute;right:6px}.market-tile strong{margin-bottom:3px}.market-tile small,.market-tile strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.market-tile small{color:var(--color-muted)}.market-rating{align-items:center;color:var(--color-primary);display:inline-flex;font-size:.7rem;gap:4px}.market-status{border:1px solid;border-radius:4px;color:var(--color-success);display:inline-block;font-size:.62rem;font-style:normal;margin-top:5px;padding:2px 5px;text-transform:uppercase}.market-status-withdrawn{color:var(--color-muted)}.market-status-removed{color:var(--color-danger)}.market-board{border-top:1px solid var(--color-primary);margin-top:20px;padding-top:24px}.market-board-toolbar{grid-gap:8px;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 150px 94px;margin-bottom:13px}.market-board-toolbar label{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:5px;display:flex;gap:8px;min-height:44px;padding:0 12px}.market-board-toolbar input{background:#0000;border:0;color:var(--color-text);font:inherit;outline:0;width:100%}.library-review-pagination button,.market-board-toolbar button,.market-board-toolbar select,.market-pagination button{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:5px;color:var(--color-text);font:inherit;font-weight:800;min-height:42px}.market-board-list{border-top:1px solid var(--color-line)}.market-board-row{grid-gap:12px;align-items:center;background:#0000;border:0;border-bottom:1px solid var(--color-line);color:var(--color-text);cursor:pointer;display:grid;gap:12px;grid-template-columns:minmax(0,1.8fr) minmax(110px,.8fr) 110px 70px;min-height:54px;padding:8px 10px;text-align:left;width:100%}.market-board-row:hover{background:var(--color-success-soft)}.market-board-row strong{color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.market-board-row>span:last-child{align-items:center;display:inline-flex;gap:4px}.market-state{color:var(--color-muted);padding:30px;text-align:center}.library-review-error,.market-detail-error,.market-state.is-error{color:var(--color-danger)}.library-review-pagination,.market-pagination{align-items:center;display:flex;gap:12px;justify-content:center;margin-top:18px}.library-review-pagination button,.market-pagination button{min-width:90px}.market-detail-back{background:#0000;border:0;font:inherit;font-weight:700;gap:7px;margin:8px 0 20px;min-height:40px;padding:0 10px}.market-detail-back:hover{color:var(--color-primary)}.market-detail-main{grid-gap:42px;align-items:start;display:grid;gap:42px;grid-template-columns:minmax(210px,300px) minmax(0,1fr);padding:8px 0 44px}.market-detail-cover{background:var(--color-surface);border:1px solid var(--color-line);border-radius:7px;max-height:280px;max-width:100%;overflow:hidden;width:fit-content}.market-detail-cover img{display:block;height:auto;max-height:280px;max-width:100%;object-fit:contain;width:auto}.market-detail-copy{min-width:0;padding-top:10px}.market-detail-kicker{color:var(--color-success);font-size:.75rem;font-weight:900;text-transform:uppercase}.market-detail-title-row{align-items:center;display:flex;gap:12px;margin:8px 0 3px;min-width:0}.market-detail-copy h1{flex:1 1 auto;font-size:2.25rem;margin:0;min-width:0;overflow-wrap:anywhere}.market-detail-author{color:var(--color-muted);margin:0}.market-detail-description{color:var(--color-text);line-height:1.65;margin:20px 0;max-width:720px;white-space:pre-wrap}.market-detail-facts{display:flex;flex-wrap:wrap;gap:7px}.market-detail-facts span{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:5px;color:var(--color-text);display:inline-flex;font-size:.75rem;gap:5px;min-height:30px;padding:0 8px}.market-detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.library-review-form button,.market-detail-actions button,.market-edit-form button,.market-report-form button{align-items:center;background:var(--color-surface);border:1px solid var(--color-primary);border-radius:5px;color:var(--color-text);cursor:pointer;display:inline-flex;font:inherit;font-weight:900;gap:7px;justify-content:center;min-height:43px;padding:0 15px}.market-detail-actions button.is-primary{background:var(--color-primary);color:var(--color-on-primary)}.market-detail-actions button.is-danger{border-color:var(--color-danger);color:var(--color-danger)}.market-owner-actions{align-items:center;display:flex;flex:0 0 auto;gap:8px;margin-left:auto}.market-owner-action{align-items:center;background:var(--color-surface);border:1px solid var(--color-primary);border-radius:5px;color:var(--color-text);cursor:pointer;display:inline-flex;font:inherit;font-weight:850;gap:7px;justify-content:center;min-height:43px;padding:0 13px}.market-owner-action-more{padding:0;width:43px}.market-owner-action:focus-visible,.market-owner-menu button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.market-owner-action:disabled,.market-owner-menu button:disabled{background:var(--color-surface-soft);color:var(--color-muted);cursor:default}.market-owner-more{position:relative}.market-owner-menu{background:var(--color-surface);border:1px solid var(--color-line);border-radius:7px;box-shadow:none;min-width:160px;padding:5px;position:absolute;right:0;top:calc(100% + 6px);width:max-content;z-index:30}.market-owner-menu button{align-items:center;background:#0000;border:0;border-radius:4px;color:var(--color-text);cursor:pointer;display:flex;font:inherit;font-size:.9rem;gap:9px;min-height:44px;padding:10px 12px;width:100%}.market-owner-menu button.is-published{color:var(--color-success)}.market-owner-menu button.is-unpublished{color:var(--color-muted)}.market-owner-menu button.is-danger{color:var(--color-danger)}.market-edit-form,.market-report-form{grid-gap:10px;border-top:1px solid var(--color-line);display:grid;gap:10px;margin-top:18px;padding:15px 0}.market-edit-form fieldset{grid-gap:14px;border:0;display:grid;gap:14px;margin:0;min-width:0;padding:0}.market-edit-form input,.market-edit-form select,.market-edit-form textarea{box-sizing:border-box;min-width:0;width:100%}.market-edit-form fieldset:disabled{opacity:1}.market-edit-form button:disabled{cursor:wait}.market-edit-form label{grid-gap:5px;color:var(--color-muted);display:grid;font-size:.75rem;font-weight:600;gap:5px}.library-review-form input,.market-edit-form input,.market-edit-form select,.market-edit-form textarea,.market-report-form input,.market-report-form select{background:var(--color-bg);border:1px solid var(--color-line);border-radius:5px;color:var(--color-text);font:inherit;min-height:42px;padding:9px 10px}.market-edit-form textarea{min-height:100px;resize:vertical}.market-edit-form input,.market-edit-form select,.market-edit-form textarea{color-scheme:inherit;font-size:16px;font-weight:400}.market-edit-form .market-edit-cards-text{font-family:Consolas,SFMono-Regular,Liberation Mono,monospace;line-height:1.55;min-height:340px;resize:vertical;tab-size:2;white-space:pre}.market-edit-cards-field small{color:var(--color-muted);font-size:.7rem;font-weight:500;line-height:1.45}.market-edit-form .market-edit-metadata{grid-gap:8px;display:grid;gap:8px;grid-template-columns:100px minmax(0,1fr) minmax(0,1fr)}.market-edit-form footer{display:flex;gap:8px;justify-content:flex-end}.market-edit-form footer button{font-weight:600}.market-edit-form footer button[type=submit]{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.market-edit-cover{max-width:320px;min-width:0}.market-edit-cover>span{color:var(--color-text);display:block;font-size:.75rem;font-weight:600;margin-bottom:5px}.market-edit-cover .cover-upload-widget{margin-bottom:0}.market-edit-cover .cover-upload-area{background:var(--color-success-soft);border-color:var(--color-success);min-height:150px;text-align:center}.market-edit-cover .cover-upload-hint,.market-edit-cover .cover-upload-text{color:var(--color-text)}.market-edit-cover .cover-preview-container{background:var(--color-success-soft)}.market-edit-cover .cover-preview-image{height:200px;object-fit:contain}.market-edit-form .cover-file-input{border:0;height:.1px;min-height:0;padding:0;width:.1px}.market-edit-cover .cover-preview-actions{display:flex;gap:8px}.market-edit-cover .cover-btn{flex:1 1;font-size:14px;font-weight:600}.market-edit-cover .cover-btn-change{align-items:center;background:var(--color-primary);border-color:var(--color-success);color:var(--color-on-primary);display:flex;justify-content:center}.market-edit-cover .cover-upload-widget:focus-within .cover-upload-area{outline:2px solid var(--color-focus);outline-offset:2px}.market-report-form strong{align-items:center;color:var(--color-danger);display:flex;gap:7px}.market-report-sent{color:var(--color-success)}.library-reviews,.market-examples{border-top:1px solid var(--color-primary);margin-top:38px;padding-top:26px}.market-examples>header{grid-gap:18px;display:grid;gap:18px;grid-template-columns:190px 1fr;margin-bottom:14px}.library-reviews h2,.market-examples h2{font-size:1.15rem;margin:0}.market-examples header p{color:var(--color-muted);margin:0}.market-examples>div{grid-gap:7px;display:grid;gap:7px}.market-example{grid-gap:10px;border-bottom:1px solid var(--color-line);display:grid;gap:10px;grid-template-columns:34px minmax(0,1fr);padding:12px}.market-example>span{color:var(--color-coral);font-size:.72rem;font-weight:900}.market-example p{line-height:1.45;margin:0}.market-example p+p{color:var(--color-muted);margin-top:4px}.library-reviews-heading{align-items:center;display:flex;gap:14px;justify-content:space-between}.library-reviews-heading p{color:var(--color-muted);margin:5px 0 0}.library-review-stars{display:flex;gap:2px}.library-review-stars button{background:#0000;border:0;color:var(--color-muted);cursor:pointer;height:31px;padding:0;width:31px}.library-review-stars button.is-filled,.library-review-stars span.is-filled{color:var(--color-primary)}.library-review-stars.is-readonly span{color:var(--color-muted);display:inline-grid;height:18px;place-items:center;width:18px}.library-review-form{background:var(--color-success-soft);border:1px solid var(--color-success);border-radius:6px;margin:18px 0;padding:16px}.library-review-form>strong{display:block;margin-bottom:7px}.library-review-locked,.library-review-notice{color:var(--color-text);font-size:.8rem;margin:10px 0}.library-review-comment-row{grid-gap:7px;display:grid;gap:7px;grid-template-columns:minmax(0,1fr) auto}.library-review-form small{color:var(--color-muted);display:block;margin-top:4px;text-align:right}.library-review-row{grid-gap:10px;align-items:center;border-bottom:1px solid var(--color-line);display:grid;gap:10px;grid-template-columns:100px minmax(0,1fr) 100px;min-height:50px;padding:8px 0}.library-review-row p{color:var(--color-text);margin:0;overflow-wrap:anywhere}.library-review-row time{color:var(--color-muted);font-size:.72rem;text-align:right}.library-review-state{color:var(--color-muted)}.market-publish-overlay{background:var(--color-overlay);display:grid;inset:0;overflow-y:auto;padding:16px;place-items:center;position:fixed;z-index:1800}.market-publish-dialog{background:var(--color-surface);border:1px solid var(--color-success);border-radius:7px;box-shadow:none;color:var(--color-text);max-height:calc(100dvh - 32px);overflow-y:auto;width:min(560px,100%)}.market-publish-dialog>header{grid-gap:9px;align-items:center;border-bottom:1px solid var(--color-line);display:grid;gap:9px;grid-template-columns:32px minmax(0,1fr) 40px;padding:16px}.market-publish-dialog h2,.market-publish-dialog small{margin:0}.market-publish-dialog small{color:var(--color-success);font-weight:900;text-transform:uppercase}.market-publish-dialog header>button{background:#0000;border:0;color:var(--color-text);cursor:pointer;height:38px;width:38px}.market-publish-dialog>p{color:var(--color-text);line-height:1.5;margin:0;padding:15px 16px 0}.market-publish-dialog form{grid-gap:10px;display:grid;gap:10px;padding:16px}.market-publish-dialog label{grid-gap:5px;color:var(--color-muted);display:grid;font-size:.76rem;font-weight:850;gap:5px}.market-publish-dialog input,.market-publish-dialog select,.market-publish-dialog textarea{background:var(--color-bg);border:1px solid var(--color-line);border-radius:5px;color:var(--color-text);font:inherit;min-height:42px;padding:8px 10px}.market-publish-dialog textarea{min-height:100px;resize:vertical}.market-publish-dialog footer,.market-publish-dialog form>div{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.market-publish-dialog footer{margin-top:5px}.market-publish-dialog footer button{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:5px;color:var(--color-text);cursor:pointer;font:inherit;font-weight:900;min-height:44px}.market-publish-dialog footer button[type=submit]{background:var(--color-primary);color:var(--color-on-primary)}.library-review-form button:disabled,.market-edit-form fieldset:disabled :is(input,textarea,select,button),.market-edit-form footer button:disabled,.market-page-header button:disabled,.market-publish-dialog footer button:disabled{background:var(--color-surface-soft);border-color:var(--color-line);color:var(--color-muted);opacity:1}@media (max-width:760px){.market-page{padding-top:12px;width:min(100% - 24px,1120px)}.market-shelf-row{grid-template-columns:repeat(2,minmax(0,1fr))}.market-board-toolbar{grid-template-columns:minmax(0,1fr) 105px}.market-board-toolbar button{grid-column:1/-1}.market-board-row{grid-template-columns:minmax(0,1fr) 82px 52px}.market-board-row>span:nth-child(2){display:none}.market-detail-main{gap:20px;grid-template-columns:1fr}.market-detail-cover{margin:0 auto;max-width:min(100%,420px);width:fit-content}.market-detail-copy h1{font-size:1.8rem}.market-edit-form .market-edit-metadata{grid-template-columns:1fr}.market-edit-form footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.market-examples>header{gap:5px;grid-template-columns:1fr}.library-review-row{grid-template-columns:94px minmax(0,1fr)}.library-review-row time{grid-column:2;text-align:left}}.note-stats-panel{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-panel);box-shadow:var(--shadow-warm);margin:0 auto 28px;max-width:900px;padding:18px}.note-stats-summary-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.note-stats-stat{grid-gap:7px;align-content:center;background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;box-shadow:var(--shadow-warm);display:grid;gap:7px;justify-items:center;min-height:116px;min-width:0;padding:14px 12px;text-align:center}.note-stats-stat-icon{color:var(--color-primary);filter:drop-shadow(0 2px 7px rgba(255,214,107,.22))}.note-stats-stat-label{color:var(--color-muted);font-size:12px;font-weight:800;line-height:1.4}.note-stats-stat-value{color:var(--color-text);font-size:clamp(28px,6vw,38px);font-weight:900;line-height:1;overflow-wrap:anywhere;text-shadow:none}.note-stats-stat-sub{color:var(--color-muted);font-size:13px;font-weight:750;margin-left:3px}@media (max-width:720px){.note-stats-panel{padding:14px}.note-stats-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.note-stats-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.note-stats-stat{gap:6px;min-height:78px;padding:10px 8px}.note-stats-stat-value{font-size:28px}.note-stats-stat-label{font-size:12px}}.cancel-button:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.App{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;padding-top:env(safe-area-inset-top,0);position:relative}.App,.App-header{background:var(--color-bg);color:var(--color-text)}.App-header{border-bottom:1px solid var(--color-line);box-shadow:var(--shadow-warm);padding:.5rem 1rem;text-align:center}.App-header h1{font-size:1.5rem;font-weight:600;margin:0}.app-title-logo{display:inline-grid;font-family:var(--font-ui);gap:4px;justify-content:center;letter-spacing:0;line-height:1;min-height:52px;padding:4px 10px}.app-title-subtitle{color:var(--color-muted);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.page-title-fx{align-items:center;color:var(--color-cream);display:inline-flex;font-weight:950;justify-content:center;letter-spacing:.04em;line-height:1.08;margin-inline:auto;max-width:100%;padding:4px 14px 10px;position:relative;text-align:center;text-shadow:none;text-transform:uppercase;width:fit-content}.page-title-fx:after,.page-title-fx:before{content:"";left:50%;pointer-events:none;position:absolute;transform:translateX(-50%)}.page-title-fx:before{background:var(--color-primary);background:var(--title-accent,var(--color-primary));border-radius:999px;bottom:0;box-shadow:none;height:3px;width:min(100%,360px)}.page-title-fx:after{background:var(--color-bg);border:1px solid var(--title-accent,var(--color-gold));border-radius:999px;bottom:-4px;box-shadow:var(--shadow-warm);display:none;height:8px;width:46px}.page-title-practice{--title-accent:#2ec4b6;--title-glow:#2ec4b66b}.page-title-calendar{--title-accent:#ffd66b;--title-glow:#ffd66b6b}.page-title-tournament{--title-accent:#ff7a59;--title-glow:#ff7a5966}.page-title-map{--title-accent:#ffd66b;--title-glow:#ffd66b5c}.page-title-level-up{--title-accent:#2ec4b6;--title-glow:#2ec4b666}.App-main{box-sizing:border-box;flex:1 1;margin:0 auto;max-width:1200px;padding:1rem;width:100%}.App-main.App-main-practice-player{background:var(--color-bg);height:calc(100dvh - env(safe-area-inset-top, 0px));margin:0;max-width:none;overflow:hidden;padding:0}body:has(.practice-player-page),html:has(.practice-player-page){overflow:hidden;overscroll-behavior-y:none}.App:has(.practice-player-page){height:100dvh;min-height:0;overflow:hidden}.App-main.App-main-practice-player:has(.practice-player-page){flex:none;min-height:0}.App-main.App-main-note-detail{max-width:none;padding:0}.App:has(.note-detail-cover.has-measured-cover:not(.is-contained)>img):before,.App:has(.practice-player-page.has-card-content .practice-player-cover:not(.is-contained)>img):before{content:none}.App-main-note-detail:has(.note-detail-cover.has-measured-cover:not(.is-contained)>img){margin-top:calc(env(safe-area-inset-top, 0px)*-1)}.App-main-note-detail .note-detail-overview:has(.note-detail-cover.has-measured-cover:not(.is-contained)>img) .note-detail-nav{top:calc(16px + env(safe-area-inset-top, 0px))}.App-main-note-detail .note-detail-cover.has-measured-cover:not(.is-contained):has(>img){aspect-ratio:auto;height:calc(var(--note-detail-cover-height) + env(safe-area-inset-top, 0px));max-height:none}.App-main-practice-player:has(.has-card-content .practice-player-cover:not(.is-contained)>img){height:100dvh;margin-top:calc(env(safe-area-inset-top, 0px)*-1)}.practice-player-page.has-card-content:has(.practice-player-cover:not(.is-contained)>img){--player-safe-area-extension:env(safe-area-inset-top,0px);height:100dvh}.practice-player-page.has-card-content:has(.practice-player-cover:not(.is-contained)>img) .practice-player-header{top:calc(var(--practice-player-top-padding) + env(safe-area-inset-top, 0px))}.App-main-home{display:flex;flex-direction:column}@media (max-width:760px){.App-main.App-main-utility{padding:12px 12px 76px;padding:12px 12px calc(12px + var(--app-bottom-nav-height, 64px))}.App-main.App-main-utility.App-main-note-detail{padding:0 0 76px;padding:0 0 calc(12px + var(--app-bottom-nav-height, 64px))}}.App-main-utility .page-title-fx{color:var(--color-text);display:block;font-size:var(--text-page-title);font-weight:750;letter-spacing:-.025em;line-height:1.3;margin-inline:0;padding:0;text-align:left;text-shadow:none;text-transform:none}.App-main-utility .calendar-title-block p,.App-main-utility .level-up-title-block p,.App-main-utility .map-page-title-block p,.App-main-utility .page-title-fx,.App-main-utility .tournament-page-header p,.App-main-utility .triumph-title-block p,.App-main-utility .user-page-title-block p{overflow-wrap:anywhere;word-break:keep-all}.App-main-utility .page-title-fx:after,.App-main-utility .page-title-fx:before{display:none}.App-main-utility .app-page-header{align-items:flex-start;display:flex;gap:14px;justify-content:space-between;margin:0;min-height:0;padding:0 0 20px}.App-main-utility .app-page-header-copy{flex:1 1 auto;min-width:0}.App-main-utility .app-page-header h1{color:var(--color-text);font-size:var(--text-page-title);font-weight:750;letter-spacing:-.025em;line-height:1.3;margin:0;text-align:left}.App-main-utility .app-page-header p{color:var(--color-muted);font-size:.875rem;font-weight:400;line-height:1.55;margin:5px 0 0;overflow-wrap:anywhere;word-break:keep-all}.App-main-utility .app-page-header-actions{align-items:center;display:flex;flex:0 0 auto;gap:9px}.App-main-utility .btn-back-inline{background:#0000;border:1px solid var(--color-line);border-radius:var(--radius-control);box-shadow:none;height:var(--control-height);padding:10px;width:var(--control-height)}.App-main-utility .btn-back-inline:focus-visible{outline:2px solid var(--color-gold);outline-offset:3px}.App-main-utility .map-page-header{align-items:flex-start;flex-wrap:wrap;gap:16px;justify-content:flex-start;min-height:44px;padding-top:0;text-align:left}.App-main-utility .map-page-header .btn-back-inline{position:static}.App-main-utility .map-page-title-block{flex:1 1 180px;justify-items:start;min-width:0;overflow-wrap:anywhere;position:static;transform:none;width:auto}.App-main-utility .map-page-title-block p{font-weight:400;line-height:1.5}.App-main-utility .btn-copy-note{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-control);box-shadow:none;color:var(--color-cream);font-weight:600}@media (max-width:600px){.App-main-utility{padding:16px 12px}.App-main-utility .map-page-header{gap:12px}}.loading-message{color:var(--color-muted);font-size:18px;padding:40px;text-align:center}.error-message{background-color:var(--color-danger-soft);border:1px solid var(--color-line);border-radius:4px;margin:20px 0;padding:20px;text-align:center}.error-message p{color:var(--color-danger);margin:0 0 10px}.error-message button{border:none;border-radius:4px;color:var(--color-on-danger);cursor:pointer;padding:8px 16px}.error-message button,.error-message button:hover{background-color:var(--color-danger)}.success-message{background-color:var(--color-success-soft);border:1px solid var(--color-line);border-radius:4px;color:var(--color-success);margin:20px 0;padding:20px;text-align:center}.create-view,.edit-view,.import-view,.map-view,.practice-view{position:relative;width:100%}.view-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.view-header h2{margin:0}.view-header-centered{margin-bottom:20px;padding-top:10px;text-align:center}.view-header-centered h2{color:var(--color-cream);margin:0}.map-page-header{align-items:center;display:flex;justify-content:center;margin-bottom:20px;min-height:56px;padding-top:10px;position:relative;text-align:center}.map-page-header .btn-back-inline{left:0;position:absolute}.map-page-title-block{grid-gap:6px;display:grid;gap:6px;justify-items:center;left:50%;position:absolute;transform:translateX(-50%);width:min(100% - 112px,720px)}.map-page-title-block h1{font-size:clamp(1.5rem,4vw,2rem);margin:0}.map-page-title-block p{color:var(--color-muted);font-size:.95rem;font-weight:800;margin:0}.view-actions{display:flex;gap:10px}.btn-back-corner{align-items:center;background-color:initial;border:none;border-radius:6px;color:var(--color-muted);cursor:pointer;display:flex;font-size:24px;font-weight:600;height:44px;justify-content:center;left:calc(50% - 288px);line-height:1;min-width:auto;padding:8px 12px;position:fixed;top:10px;transition:all .2s ease;width:44px;z-index:150}.btn-back-corner:hover{color:var(--color-cream)}@media (max-width:600px){.btn-back-corner{left:12px}}.btn-back-corner:hover{background-color:var(--color-surface-soft);box-shadow:var(--shadow-warm);transform:translateY(-1px)}.btn-back-corner:active{box-shadow:none;transform:translateY(0)}.btn-back-inline{align-items:center;background:none;border:none;border-radius:4px;color:var(--color-cream);cursor:pointer;display:flex;flex-shrink:0;font-size:2rem;font-weight:600;justify-content:center;line-height:1;min-height:44px;min-width:44px;padding:8px 16px;transition:all .2s ease}.btn-back-inline:hover{background-color:var(--color-surface-soft);transform:translateX(-2px)}.btn-back-inline:active{transform:translateX(-4px)}.map-note-overview{margin:0 auto 28px;max-width:900px;width:100%}.map-detail-back{align-items:center;background:#0000;border:0;color:var(--color-muted);cursor:pointer;display:inline-flex;font:inherit;font-weight:700;gap:7px;margin:8px 0 20px;min-height:40px;padding:0 10px}.map-detail-back:hover{color:var(--color-primary)}.map-detail-back:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.map-detail-main{grid-gap:42px;align-items:center;display:grid;gap:42px;grid-template-columns:minmax(260px,420px) minmax(0,1fr);padding:8px 0 20px}.map-detail-copy{min-width:0;padding-top:10px}.map-detail-kicker{color:var(--color-success);font-size:.78rem;font-weight:900;margin-bottom:9px;text-transform:uppercase}.map-detail-title-row{align-items:center;display:flex;gap:16px;justify-content:space-between}.App-main-utility .map-detail-copy h1{flex:1 1 auto;font-size:clamp(1.8rem,4vw,2.35rem);line-height:1.12;margin:0;max-width:100%;min-width:0}.map-detail-title-row .map-note-actions{display:grid;flex:0 0 auto;grid-template-columns:auto 44px;margin:0;width:auto}.map-detail-title-row .map-note-action-primary{min-width:126px}.map-cover-banner{line-height:0;margin:0 auto 12px;max-width:900px}.map-cover-media{border-radius:10px;margin:0 auto;max-width:100%;overflow:hidden;position:relative;width:fit-content}.map-cover-banner.is-empty{min-height:0;overflow:visible}.map-cover-media--placeholder{aspect-ratio:3/2;background:var(--color-surface-soft);border:1px dashed var(--color-line);color:var(--color-muted);display:grid;place-items:center;width:min(100%,420px)}.map-cover-placeholder{display:grid;place-items:center}.map-cover-image{display:block;max-height:280px;max-width:100%;width:auto}.map-detail-main .map-cover-banner{margin:0;max-width:none;width:100%}.map-detail-main .map-cover-media{aspect-ratio:3/2;background:var(--color-surface);border:1px solid var(--color-line);border-radius:7px;width:100%}.map-detail-main .map-cover-media--placeholder{background:var(--color-surface-soft);border-style:dashed}.map-detail-main .map-cover-image{height:100%;max-height:none;object-fit:cover;width:100%}@media (max-width:720px){.map-note-overview{margin-bottom:18px}.map-detail-back{margin:0 0 16px;padding-inline:2px 10px}.map-detail-main{gap:20px;grid-template-columns:1fr;padding:0 0 18px}.map-detail-main .map-cover-banner{margin:0 auto;width:min(100%,420px)}.map-detail-copy{padding-top:0}.App-main-utility .map-detail-copy h1{font-size:1.55rem}.map-detail-title-row{gap:12px}}.practice-result-view{display:flex;flex-direction:column;height:100dvh;max-width:100vw;overflow:hidden;overscroll-behavior:none;touch-action:manipulation;width:100%}.btn-back,.btn-cancel,.btn-create,.btn-delete,.btn-import,.btn-new-session,.btn-practice,.btn-preset,.btn-refresh{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.btn-refresh{color:var(--color-on-primary)}.btn-refresh,.btn-refresh:hover{background-color:var(--color-primary)}.btn-refresh:hover{box-shadow:var(--shadow-warm);transform:translateY(-1px)}.btn-refresh:active{box-shadow:none;transform:translateY(0)}.btn-new-session,.btn-practice{background-color:var(--color-success);color:var(--color-on-success)}.btn-new-session:hover,.btn-practice:hover{background-color:var(--color-success);box-shadow:var(--shadow-warm);transform:translateY(-1px)}.btn-new-session:active,.btn-practice:active{box-shadow:none;transform:translateY(0)}.btn-create{color:var(--color-on-primary)}.btn-create,.btn-create:hover{background-color:var(--color-primary)}.btn-create:hover{box-shadow:var(--shadow-warm);transform:translateY(-1px)}.btn-create:active{box-shadow:none;transform:translateY(0)}.btn-import{background:var(--color-primary);box-shadow:var(--shadow-warm);color:var(--color-on-primary);font-weight:850}.btn-import:hover{box-shadow:var(--shadow-warm);filter:brightness(1.04);transform:translateY(-1px)}.btn-import:active{box-shadow:none;transform:translateY(0)}.btn-preset{background:var(--color-surface);border:1px solid var(--color-line);box-shadow:var(--shadow-warm);color:var(--color-cream);font-weight:850}.btn-preset:hover{background:var(--color-surface-soft);border-color:#ff7a5994;color:var(--color-coral);transform:translateY(-1px)}.btn-preset:active{box-shadow:none;transform:translateY(0)}.btn-back,.btn-cancel{background-color:var(--color-surface-soft);color:var(--color-text)}.btn-back:hover,.btn-cancel:hover{background-color:var(--color-surface-soft);box-shadow:var(--shadow-warm);transform:translateY(-1px)}.btn-back:active,.btn-cancel:active{box-shadow:none;transform:translateY(0)}.btn-delete{color:var(--color-on-danger);margin-top:20px}.btn-delete,.btn-delete:hover{background-color:var(--color-danger)}.btn-delete:hover{box-shadow:var(--shadow-warm);transform:translateY(-1px)}.btn-delete:active{box-shadow:none;transform:translateY(0)}.delete-note-container{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:center;padding:16px 20px}.btn-add-flashcards{background-color:var(--color-primary);border:none;border-radius:4px;color:var(--color-on-primary);cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.btn-add-flashcards:hover{background-color:var(--color-primary);box-shadow:var(--shadow-warm);transform:translateY(-1px)}.btn-add-flashcards:active{box-shadow:none;transform:translateY(0)}.btn-copy-note{border:none;border-radius:4px;color:var(--color-on-primary);cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.btn-copy-note,.btn-copy-note:hover{background-color:var(--color-primary)}.btn-copy-note:hover{box-shadow:var(--shadow-warm);transform:translateY(-1px)}.btn-copy-note:active{box-shadow:none;transform:translateY(0)}.btn-delete-note{background-color:var(--color-danger);border:none;border-radius:4px;color:var(--color-on-danger);cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.btn-delete-note:hover{background-color:var(--color-danger);box-shadow:var(--shadow-warm);transform:translateY(-1px)}.btn-delete-note:active{box-shadow:none;transform:translateY(0)}.btn-delete-note:disabled{background-color:var(--color-danger);box-shadow:none;cursor:not-allowed;transform:none}.edit-actions{margin-top:20px;text-align:center}.deleting-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.import-actions{margin-top:20px;text-align:center}.practice-empty{padding:40px;text-align:center}.practice-empty h2{color:var(--color-text);margin-bottom:10px}.practice-empty p{color:var(--color-muted);margin-bottom:20px}.practice-empty button{margin:10px}.practice-actions{gap:10px;margin-top:20px;text-align:center}.modal-overlay,.practice-actions{display:flex;justify-content:center}.modal-overlay{align-items:flex-start;background-color:#000000b3;bottom:0;left:0;overflow-y:auto;overscroll-behavior:contain;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background-color:var(--color-surface);border-radius:8px;box-shadow:var(--shadow-warm);display:flex;flex-direction:column;margin:auto 0;max-height:calc(100dvh - 40px);max-width:600px;min-height:0;width:100%}.flashcard-edit-modal-content,.modal-content{overflow:hidden}.flashcard-edit-modal-content>.flashcard-form-container,.flashcard-edit-modal-content>.level-up-form-container{-webkit-overflow-scrolling:touch;border-radius:0;box-shadow:none;flex:1 1;margin:0;max-width:none;min-height:0;overflow-y:auto;overscroll-behavior:contain;width:100%}.modal-header{align-items:center;background-color:var(--color-surface-soft);border-bottom:1px solid var(--color-line);display:flex;justify-content:space-between;padding:12px 16px}.modal-header h2{color:var(--color-text);font-size:20px;line-height:1.15;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:4px;color:var(--color-muted);cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;line-height:1;padding:0;transition:all .2s ease;width:32px}.modal-close:hover{background-color:var(--color-surface-soft);color:var(--color-text)}.import-dialog{display:flex;flex-direction:column;height:100%;min-height:0}.import-dialog-header{align-items:center;border-bottom:1px solid var(--color-line);display:flex;justify-content:space-between;padding:20px}.import-dialog-header h2{color:var(--color-text);font-size:24px;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:4px;color:var(--color-muted);cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.close-button:hover{background-color:var(--color-surface-soft);color:var(--color-text)}.import-dialog-body{flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px}.note-name-input-area{margin-bottom:20px}.note-name-input-area label{color:var(--color-text);display:block;font-size:14px;font-weight:500;margin-bottom:8px}.note-name-input{background-color:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:4px;box-sizing:border-box;color:var(--color-text);font-family:inherit;font-size:14px;padding:10px 12px;transition:border-color .2s ease;width:100%}.note-name-input:focus{border-color:var(--color-focus);box-shadow:0 0 0 2px #2196f31a;outline:none}.note-name-input::placeholder{color:var(--color-muted)}.import-dialog-footer{border-top:1px solid var(--color-line);display:flex;gap:10px;justify-content:flex-end;padding:20px}.import-method-tabs{border-bottom:2px solid var(--color-line);display:flex;gap:0;margin-bottom:20px}.method-tab{background:none;border:none;border-bottom:3px solid #0000;bottom:-2px;color:var(--color-muted);cursor:pointer;flex:1 1;font-size:16px;font-weight:500;padding:12px 20px;position:relative;transition:all .2s ease}.method-tab:hover{background-color:var(--color-surface-soft);color:var(--color-primary)}.method-tab.active{border-bottom-color:#2196f3;color:var(--color-primary)}.import-method-content{min-height:200px}.file-selection-area,.text-paste-area{padding:10px 0}.cancel-button{background-color:var(--color-surface);border:1px solid var(--color-line);border-radius:4px;color:var(--color-muted);cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.cancel-button:hover{background-color:var(--color-surface-soft);border-color:var(--color-line)}.import-button{background-color:var(--color-primary);border:none;border-radius:4px;color:var(--color-on-primary);cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.import-button:hover:not(:disabled){background-color:var(--color-primary);box-shadow:var(--shadow-warm);transform:translateY(-1px)}.import-button:active:not(:disabled){box-shadow:none;transform:translateY(0)}.import-button:disabled{background-color:var(--color-surface-soft);color:var(--color-muted);cursor:not-allowed;opacity:.6}.text-paste-area label{color:var(--color-muted);display:block;font-size:14px;font-weight:500;margin-bottom:10px}.text-input{background-color:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:4px;box-sizing:border-box;color:var(--color-text);font-family:Courier New,monospace;font-size:14px;line-height:1.5;padding:12px;resize:vertical;transition:border-color .2s ease;width:100%}.text-input:focus{border-color:var(--color-focus);box-shadow:0 0 0 2px #2196f31a;outline:none}.format-hint,.text-input::placeholder{color:var(--color-muted)}.format-hint{background-color:var(--color-surface-soft);border-left:3px solid var(--color-focus);border-radius:4px;font-size:13px;margin-top:10px;padding:10px}.file-picker-button,.format-hint strong{color:var(--color-primary)}.file-picker-button{background-color:var(--color-surface);border:1px solid var(--color-focus);border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.file-picker-button:hover{background-color:var(--color-primary);color:var(--color-on-primary)}.selected-file-info{align-items:center;background-color:var(--color-surface-soft);border-radius:4px;display:flex;gap:10px;margin-top:15px;padding:10px}.file-name{color:var(--color-text);font-weight:500}.file-size{color:var(--color-muted);font-size:13px}.file-content-preview{margin-top:15px}.file-content-preview label{color:var(--color-muted);display:block;font-size:14px;font-weight:500;margin-bottom:8px}.content-preview{word-wrap:break-word;background-color:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:4px;color:var(--color-text);font-family:Courier New,monospace;font-size:13px;line-height:1.5;max-height:200px;overflow-y:auto;padding:12px;white-space:pre-wrap}@media (max-width:768px){.App-header h1{font-size:1.25rem}.App-main{padding:.75rem}.view-header{align-items:stretch;gap:1rem}.view-actions,.view-header{flex-direction:column}.view-actions button{width:100%}.modal-content{max-height:calc(100dvh - 1.5rem);width:95%}.flashcard-edit-modal-content{border-radius:0;height:100dvh;max-height:100dvh;width:100%}.flashcard-edit-modal-content>.flashcard-form-container,.flashcard-edit-modal-content>.level-up-form-container{padding-bottom:calc(28px + env(safe-area-inset-bottom))}.import-method-tabs{flex-direction:column}.method-tab{border-bottom:none;border-left:3px solid #0000}.method-tab.active{border-bottom-color:#0000;border-left-color:#2196f3}}*{transition:background-color .2s ease,color .2s ease,transform .2s ease}.method-tab,.nav-link,button{min-height:44px;min-width:44px}
/*# sourceMappingURL=main.5f42fc52.css.map*/