@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff)format("woff")}@font-face{font-family:Noto Sans SC;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/noto-sans-sc-core-700-8cd3f825.woff2)format("woff2");unicode-range:U+A9,U+B7,U+FC,U+2013,U+3001-3002,U+4E00,U+4E03,U+4E09-4E0B,U+4E0D,U+4E24,U+4E2A,U+4E2D,U+4E3B,U+4E48,U+4E5F-4E60,U+4E86,U+4E8C,U+4E8E,U+4E94,U+4EAE,U+4EC0,U+4ECA,U+4ECE,U+4ED6,U+4EE5,U+4EF6,U+4EFD,U+4F1A,U+4F46,U+4F4D,U+4F53,U+4F60,U+4F7F,U+4F9B,U+4FDD,U+4FE1,U+513F,U+5148,U+514D,U+5165,U+516C-516D,U+5173,U+5176,U+517B,U+518C-518D,U+51C6,U+51FA-51FB,U+5206,U+5219,U+5224,U+5230,U+523B,U+524D,U+529F-52A0,U+52A8-52A9,U+5355,U+5361,U+5373,U+53BB,U+53C2,U+53CC-53CD,U+53D6,U+53D8,U+53E3,U+53E5,U+53EA,U+53EF,U+53F7-53F8,U+5404,U+5408,U+540C,U+540E,U+5411,U+5458,U+5473,U+548C,U+54EA,U+56DE,U+56FE,U+5728,U+5730,U+573A,U+5750,U+5757,U+58F0,U+5907,U+590D,U+591A,U+5929,U+5931,U+594F,U+597D,U+59CB,U+5B50,U+5B57-5B58,U+5B66,U+5B69,U+5B83,U+5B8C,U+5B9A,U+5B9E,U+5BF9,U+5BFC,U+5C04,U+5C0F,U+5C31,U+5C40,U+5C81,U+5DF2,U+5E26,U+5E2E,U+5E38,U+5E76,U+5E94,U+5EA6,U+5F00,U+5F0F,U+5F39,U+5F52-5F53,U+5F55,U+5F80,U+5F85,U+5F97,U+5FAE,U+5FC3,U+5FEB,U+600E,U+6062,U+606F,U+60EF,U+6162,U+620F-6210,U+6216,U+6218,U+6237,U+624B,U+624D-624E,U+6253,U+626B,U+6280,U+628A,U+62E9,U+62FC,U+6307,U+6309,U+6311,U+636E,U+6389,U+6392,U+63A5,U+63D0,U+6491,U+6559,U+6570,U+6572,U+6574,U+6587,U+65B0,U+65B9,U+65E0,U+65F6,U+661F,U+666F,U+6682,U+6700,U+6709,U+672A,U+672C,U+673A,U+6765,U+679C,U+67E5,U+6807,U+6839,U+68C0,U+695A,U+6B21,U+6B63,U+6B65,U+6BB5,U+6BCD,U+6BCF,U+6C42,U+6C49,U+6CA1,U+6CD5,U+6CE2,U+6CE8,U+6E05,U+6E38,U+70B8-70B9,U+719F,U+7248,U+7387,U+751F,U+7528,U+7531,U+7535,U+7537,U+753B,U+7559,U+767B,U+7684,U+76D8,U+76F2,U+76F4,U+770B,U+7740,U+7801,U+786E,U+793A,U+79D1,U+79EF,U+79FB,U+7A0B,U+7A0D,U+7A33,U+7A97,U+7ACB,U+7AE5,U+7AEF,U+7B14,U+7B2C,U+7B49,U+7B54,U+7B97,U+7D2F,U+7EA0,U+7EA2,U+7EA7,U+7EC3-7EC4,U+7ED3,U+7EDC,U+7EDF,U+7EE7,U+7EE9,U+7EED,U+7EF4,U+7F16,U+7F51,U+7F6E,U+8005,U+800C,U+80FD,U+8111,U+811A,U+81EA,U+822A,U+8282,U+82CF,U+82F1,U+83B7,U+8425,U+8868,U+89C1,U+89C4,U+89E3,U+8BA1,U+8BA4,U+8BB0,U+8BBE,U+8BCD,U+8BD5,U+8BD7,U+8BDD,U+8BE5,U+8BED,U+8BF7,U+8BFB,U+8BFE,U+8C03,U+8D25-8D26,U+8D39,U+8D77,U+8D85,U+8D8A,U+8DA3,U+8DDF,U+8DE8,U+8DF3,U+8F7D,U+8F93,U+8FBE,U+8FC7,U+8FD0,U+8FD4,U+8FD9,U+8FDB,U+8FDE,U+9000,U+9009,U+901A,U+901F,U+904D,U+90A3,U+90FD,U+91CC-91CD,U+949F,U+94C1,U+9501,U+9519,U+9521,U+952E,U+95ED-95EE,U+9636,U+9650,U+96C6,U+96F6,U+9700,U+9762,U+97F3,U+97F5,U+9875,U+987A,U+9898,U+98DE,U+9988,U+9996,U+9AD8,U+9ED8,U+FF0C,U+FF1B}@font-face{font-family:Noto Sans SC;font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/noto-sans-sc-core-900-242bcae4.woff2)format("woff2");unicode-range:U+A9,U+B7,U+FC,U+2013,U+3001-3002,U+4E00,U+4E03,U+4E09-4E0B,U+4E0D,U+4E24,U+4E2A,U+4E2D,U+4E3B,U+4E48,U+4E5F-4E60,U+4E86,U+4E8C,U+4E8E,U+4E94,U+4EAE,U+4EC0,U+4ECA,U+4ECE,U+4ED6,U+4EE5,U+4EF6,U+4EFD,U+4F1A,U+4F46,U+4F4D,U+4F53,U+4F60,U+4F7F,U+4F9B,U+4FDD,U+4FE1,U+513F,U+5148,U+514D,U+5165,U+516C-516D,U+5173,U+5176,U+517B,U+518C-518D,U+51C6,U+51FA-51FB,U+5206,U+5219,U+5224,U+5230,U+523B,U+524D,U+529F-52A0,U+52A8-52A9,U+5355,U+5361,U+5373,U+53BB,U+53C2,U+53CC-53CD,U+53D6,U+53D8,U+53E3,U+53E5,U+53EA,U+53EF,U+53F7-53F8,U+5404,U+5408,U+540C,U+540E,U+5411,U+5458,U+5473,U+548C,U+54EA,U+56DE,U+56FE,U+5728,U+5730,U+573A,U+5750,U+5757,U+58F0,U+5907,U+590D,U+591A,U+5929,U+5931,U+594F,U+597D,U+59CB,U+5B50,U+5B57-5B58,U+5B66,U+5B69,U+5B83,U+5B8C,U+5B9A,U+5B9E,U+5BF9,U+5BFC,U+5C04,U+5C0F,U+5C31,U+5C40,U+5C81,U+5DF2,U+5E26,U+5E2E,U+5E38,U+5E76,U+5E94,U+5EA6,U+5F00,U+5F0F,U+5F39,U+5F52-5F53,U+5F55,U+5F80,U+5F85,U+5F97,U+5FAE,U+5FC3,U+5FEB,U+600E,U+6062,U+606F,U+60EF,U+6162,U+620F-6210,U+6216,U+6218,U+6237,U+624B,U+624D-624E,U+6253,U+626B,U+6280,U+628A,U+62E9,U+62FC,U+6307,U+6309,U+6311,U+636E,U+6389,U+6392,U+63A5,U+63D0,U+6491,U+6559,U+6570,U+6572,U+6574,U+6587,U+65B0,U+65B9,U+65E0,U+65F6,U+661F,U+666F,U+6682,U+6700,U+6709,U+672A,U+672C,U+673A,U+6765,U+679C,U+67E5,U+6807,U+6839,U+68C0,U+695A,U+6B21,U+6B63,U+6B65,U+6BB5,U+6BCD,U+6BCF,U+6C42,U+6C49,U+6CA1,U+6CD5,U+6CE2,U+6CE8,U+6E05,U+6E38,U+70B8-70B9,U+719F,U+7248,U+7387,U+751F,U+7528,U+7531,U+7535,U+7537,U+753B,U+7559,U+767B,U+7684,U+76D8,U+76F2,U+76F4,U+770B,U+7740,U+7801,U+786E,U+793A,U+79D1,U+79EF,U+79FB,U+7A0B,U+7A0D,U+7A33,U+7A97,U+7ACB,U+7AE5,U+7AEF,U+7B14,U+7B2C,U+7B49,U+7B54,U+7B97,U+7D2F,U+7EA0,U+7EA2,U+7EA7,U+7EC3-7EC4,U+7ED3,U+7EDC,U+7EDF,U+7EE7,U+7EE9,U+7EED,U+7EF4,U+7F16,U+7F51,U+7F6E,U+8005,U+800C,U+80FD,U+8111,U+811A,U+81EA,U+822A,U+8282,U+82CF,U+82F1,U+83B7,U+8425,U+8868,U+89C1,U+89C4,U+89E3,U+8BA1,U+8BA4,U+8BB0,U+8BBE,U+8BCD,U+8BD5,U+8BD7,U+8BDD,U+8BE5,U+8BED,U+8BF7,U+8BFB,U+8BFE,U+8C03,U+8D25-8D26,U+8D39,U+8D77,U+8D85,U+8D8A,U+8DA3,U+8DDF,U+8DE8,U+8DF3,U+8F7D,U+8F93,U+8FBE,U+8FC7,U+8FD0,U+8FD4,U+8FD9,U+8FDB,U+8FDE,U+9000,U+9009,U+901A,U+901F,U+904D,U+90A3,U+90FD,U+91CC-91CD,U+949F,U+94C1,U+9501,U+9519,U+9521,U+952E,U+95ED-95EE,U+9636,U+9650,U+96C6,U+96F6,U+9700,U+9762,U+97F3,U+97F5,U+9875,U+987A,U+9898,U+98DE,U+9988,U+9996,U+9AD8,U+9ED8,U+FF0C,U+FF1B}@font-face{font-family:Noto Sans Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-mono-cyrillic-ext-wght-normal-CFdLnqWt.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Noto Sans Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-mono-cyrillic-wght-normal-Bt8FJ3Mn.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Noto Sans Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-mono-greek-ext-wght-normal-D70fr4An.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Noto Sans Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-mono-greek-wght-normal-CxbW-kt-.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Noto Sans Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-mono-vietnamese-wght-normal-R4O-K-Ty.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Noto Sans Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-mono-latin-ext-wght-normal-Co5HW6fV.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-mono-latin-wght-normal-BOJxtwUa.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:oklch(93.3% .026 169.3);--surface:oklch(96.6% .015 164.7);--fg:oklch(26% .039 172.9);--muted:oklch(41.8% .041 172.5);--border:oklch(80.4% .037 167.4);--accent:oklch(78% .154 166.7);--scene:oklch(22.3% .032 177.5);--focus:oklch(85% .146 90.5);--pale:oklch(98.6% .011 167.8);--accent-soft:color-mix(in oklch, var(--accent) 14%, transparent);--fg-soft:color-mix(in oklch, var(--fg) 6%, transparent);--font-display:"PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-body:"PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--container:1120px;--gutter:32px;--radius:5px;--radius-lg:8px}.xiaoma-app{background:var(--bg);min-height:100vh;color:var(--fg);font-family:var(--font-body);flex-direction:column;font-weight:700;display:flex}.xiaoma-app :focus-visible{outline:3px solid var(--focus);outline-offset:3px}.xiaoma-topnav{z-index:40;background:color-mix(in oklch, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid color-mix(in oklch, var(--fg) 12%, transparent);position:sticky;top:0}.xiaoma-app.is-home .xiaoma-topnav{position:fixed;left:0;right:0}.xiaoma-topnav__inner{min-height:76px;max-width:var(--container);padding-inline:var(--gutter);justify-content:space-between;align-items:center;gap:16px;margin-inline:auto;display:flex}.xiaoma-brand{flex:none;align-items:center;gap:12px;font-size:18px;font-weight:800;display:inline-flex}.xiaoma-brand img,.xiaoma-brand svg,.xiaoma-brand .logo-mark{flex:none;width:40px;height:40px}.xiaoma-topnav nav{align-self:stretch;gap:16px;display:flex}.xiaoma-topnav nav a{color:var(--muted);white-space:nowrap;align-items:center;gap:5px;font-size:13px;display:inline-flex;position:relative}.xiaoma-topnav nav a small{font-family:var(--font-mono);letter-spacing:.06em;font-size:10px}.xiaoma-topnav nav a:hover,.xiaoma-topnav nav a.is-active{color:var(--fg)}.xiaoma-topnav nav a.is-active:after{content:"";background:var(--fg);height:3px;position:absolute;bottom:0;left:0;right:0}.xiaoma-topnav__actions{flex:none;align-items:center;gap:8px;display:flex}.xiaoma-btn{border-radius:var(--radius);letter-spacing:-.005em;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:11px 20px;font-size:15px;font-weight:800;transition:transform .15s,background .15s,border-color .15s,color .15s;display:inline-flex}.xiaoma-btn:hover{transform:translateY(-1px)}.xiaoma-btn:active{transform:translateY(1px)}.xiaoma-btn-primary{background:var(--accent);color:var(--fg);border-color:var(--accent)}.xiaoma-btn-primary:hover{background:color-mix(in oklch, var(--accent) 82%, var(--fg));color:var(--fg)}.xiaoma-btn-secondary{color:var(--fg);border-color:color-mix(in oklch, var(--fg) 28%, transparent);background:0 0}.xiaoma-btn-secondary:hover{border-color:var(--fg);background:color-mix(in oklch, var(--pale) 40%, transparent)}.xiaoma-btn-ghost{color:var(--fg);background:0 0;border-color:#0000;padding-inline:8px}.xiaoma-btn-ghost:hover{background:var(--fg-soft)}.xiaoma-btn-on-dark{border-color:color-mix(in oklch, var(--bg) 28%, transparent);color:var(--bg)}.xiaoma-btn-on-dark:hover{border-color:var(--bg);background:color-mix(in oklch, var(--bg) 10%, transparent);color:var(--bg)}.xiaoma-btn-icon{border:1px solid color-mix(in oklch, var(--fg) 28%, transparent);border-radius:var(--radius);width:44px;height:44px;color:var(--fg);place-items:center;display:grid}.xiaoma-btn-icon:hover{background:var(--fg-soft)}.xiaoma-btn-icon.is-active{border-color:var(--fg);background:var(--fg);color:var(--bg)}.xiaoma-account{border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:8px;min-height:44px;padding:4px 8px 4px 4px;display:flex}.xiaoma-account img,.xiaoma-account__avatar{-o-object-fit:cover;object-fit:cover;border-radius:4px;width:32px;height:32px}.xiaoma-account__avatar{background:var(--accent-soft);color:var(--fg);place-items:center;display:grid}.xiaoma-account__name{text-overflow:ellipsis;white-space:nowrap;max-width:6rem;font-size:13px;overflow:hidden}.xiaoma-main{width:100%;max-width:var(--container);padding:28px var(--gutter) 72px;flex:1;margin-inline:auto}.xiaoma-app.is-home .xiaoma-main{max-width:none;padding:0}.xiaoma-pagefoot{background:var(--scene);color:color-mix(in oklch, var(--bg) 72%, var(--muted));margin-top:auto;padding-block:56px;font-size:13px}.xiaoma-pagefoot strong{color:var(--bg)}.xiaoma-pagefoot a:hover{color:var(--accent)}.xiaoma-pagefoot__inner{max-width:var(--container);padding-inline:var(--gutter);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-inline:auto;display:flex}.xiaoma-pagefoot nav{flex-wrap:wrap;gap:20px;display:flex}.xiaoma-pagefoot__legal{text-align:right;font-family:var(--font-mono);font-size:12px}.xiaoma-mobile-nav{display:none}.xiaoma-loading{min-height:60vh;color:var(--muted);place-items:center;font-size:14px;display:grid}.page-eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);align-items:center;gap:12px;margin:0 0 12px;font-size:12px;display:flex}.page-eyebrow i{background:currentColor;width:28px;height:1px}.page-eyebrow.quiet{color:var(--muted)}.page-lead{max-width:60ch;color:var(--muted);margin:8px 0 0;font-size:16px;line-height:1.7}.page-hero{margin-bottom:28px}.page-hero h1{letter-spacing:-.02em;margin:0;font-size:clamp(32px,4.2vw,48px);font-weight:800;line-height:1.12}.page-hero__cta{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.stat-num{font-family:var(--font-mono);letter-spacing:-.04em;font-size:clamp(32px,5vw,56px);font-weight:800;line-height:.95}.stat-num small,.stat-unit{opacity:.7;margin-left:2px;font-size:.5em}.stat-label{color:var(--muted);margin:8px 0 0;font-size:14px}.stat-grid.is-locked .stat-num{color:var(--border)}.log-row{border-top:1px solid var(--border);grid-template-columns:88px 1fr auto;align-items:baseline;gap:24px;padding:22px 0;display:grid}.log-row h3{margin:0;font-size:19px}.log-row p{color:var(--muted);margin:4px 0 0;font-size:14px}.setting-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;padding:22px 0;display:flex}.setting-row p{max-width:48ch;color:var(--muted);margin:6px 0 0;font-size:14px}.faq-list>div{border-top:1px solid var(--border);padding:28px 0}.faq-list dt{margin:0;font-size:20px;font-weight:800}.faq-list dd{max-width:62ch;color:var(--muted);margin:8px 0 0;line-height:1.8}.metro-entry{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-wrap:wrap;align-items:center;gap:16px 20px;padding:20px 24px;display:flex}.metro-entry h2{margin:0;font-size:20px}.metro-entry p{max-width:48ch;color:var(--muted);margin:6px 0 0}.metro-entry .xiaoma-btn{margin-left:auto}.city-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.city-card{text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-height:96px;padding:16px 14px}.city-card:hover{border-color:var(--fg)}.city-card.is-on{background:var(--fg);color:var(--bg);border-color:var(--fg)}.city-card .short{font-family:var(--font-mono);font-size:28px;line-height:1}.city-card .meta{font-family:var(--font-mono);color:var(--muted);margin-top:8px;font-size:12px;display:block}.city-card.is-on .meta{color:color-mix(in oklch, var(--bg) 70%, var(--muted))}.line-card{border-top:1px solid var(--border);padding:22px 0}.line-card h3{margin:0 0 6px}.segment{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:1fr 1fr;padding:4px;display:grid}.segment button{min-height:40px;color:var(--muted);border-radius:3px;font-size:13px;font-weight:800}.segment button.is-on,.segment button[aria-pressed=true]{background:var(--fg);color:var(--bg)}.filter-row{flex-wrap:wrap;gap:8px;display:flex}.filter-row button,.filter-row a{border:1px solid var(--border);border-radius:var(--radius);min-height:44px;color:var(--muted);padding:0 14px;font-size:13px;font-weight:800}.filter-row button:hover,.filter-row a:hover{color:var(--fg);border-color:var(--fg)}.filter-row button[aria-pressed=true],.filter-row a.is-active{background:var(--fg);color:var(--bg);border-color:var(--fg)}.xiaoma-immersive{background:var(--scene);min-height:100vh;color:color-mix(in oklch, var(--bg) 86%, white)}@media (width<=920px){.xiaoma-topnav nav{display:none}.xiaoma-pagefoot{padding-bottom:96px}.xiaoma-mobile-nav{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:repeat(6,1fr);padding:6px;display:grid;position:fixed;bottom:12px;left:12px;right:12px}.xiaoma-mobile-nav a{min-height:44px;color:var(--muted);place-items:center;font-size:11px;font-weight:800;display:grid}.xiaoma-mobile-nav a.is-active{color:var(--fg);background:var(--bg);border-radius:var(--radius)}.stat-grid,.city-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.log-row{grid-template-columns:2.2rem 1fr}.log-row .pull{text-align:left;grid-column:2}.metro-entry .xiaoma-btn{width:100%;margin-left:0}}@media (width<=479px){.xiaoma-topnav__inner,.xiaoma-main{padding-inline:16px}.city-grid,.stat-grid{grid-template-columns:1fr 1fr}}.xiaoma-app .course-map-page,.xiaoma-app .pinyin-page{color:var(--fg)}.xiaoma-app .course-search,.xiaoma-app .course-search-result,.xiaoma-app .course-panel-card,.xiaoma-app .pinyin-card,.xiaoma-app .pinyin-faq-card{background:var(--surface);border-color:var(--border);box-shadow:none}.xiaoma-app .course-search__chip,.xiaoma-app .pinyin-toolbar__tabs a{border-color:var(--border);color:var(--muted);background:0 0}.xiaoma-app .course-search__chip.is-active,.xiaoma-app .course-search__chip[aria-pressed=true]{background:var(--fg);border-color:var(--fg);color:var(--bg)}.xiaoma-app .course-stat strong,.xiaoma-app .course-level__title-row h4,.xiaoma-app .pinyin-section__head h2{color:var(--fg)}.xiaoma-app .course-stat span:last-child,.xiaoma-app .course-level__main p,.xiaoma-app .course-search-result p{color:var(--muted)}.xiaoma-app .course-continue-card{background:var(--scene);border-radius:var(--radius-lg)}.xiaoma-app .course-continue-card__primary{background:var(--accent);color:var(--fg)}.xiaoma-app .course-library-card,.xiaoma-app .course-level__card{background:var(--surface);border-color:var(--border)}.xiaoma-app .course-level.is-current .course-level__card{border-color:var(--fg);box-shadow:0 0 0 3px color-mix(in oklch, var(--fg) 10%, transparent)}.continue-band{background:var(--scene);color:var(--bg);padding-block:clamp(36px,5vw,56px)}.continue-band .page-eyebrow,.continue-band .page-lead{color:color-mix(in oklch, var(--bg) 72%, var(--muted))}.continue-band .page-eyebrow i{background:currentColor}.continue-band h1,.continue-band h2{color:var(--bg)}.xiaoma-app .library-toolbar,.xiaoma-app .library-list{border-color:var(--border);background:0 0}.xiaoma-app .library-toolbar input,.xiaoma-app .library-toolbar select,.xiaoma-app .library-pager button{background:var(--surface);border-color:var(--border);color:var(--fg)}.membership-page,.checkout-page,.orders-page{padding-bottom:56px}.membership-hero{padding-bottom:28px}.membership-status,.checkout-card,.membership-empty,.checkout-message{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 12px 28px color-mix(in oklch, var(--fg) 7%, transparent)}.membership-status{align-items:center;gap:14px;margin-bottom:24px;padding:20px;display:flex}.membership-status__icon{background:var(--accent-soft);width:46px;height:46px;color:var(--fg);border-radius:50%;flex:none;place-items:center;display:grid}.membership-status strong,.membership-status p{margin:0}.membership-status p,.membership-plan p,.membership-note,.checkout-order small,.checkout-qr p,.checkout-redirect p{color:var(--muted)}.membership-status .xiaoma-btn{margin-left:auto}.membership-plans{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.membership-plan{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;min-height:360px;padding:24px;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex}.membership-plan:hover,.membership-plan.is-highlighted{border-color:var(--fg);box-shadow:0 12px 24px color-mix(in oklch, var(--fg) 10%, transparent);transform:translateY(-2px)}.membership-plan__top{justify-content:space-between;align-items:center;gap:12px;display:flex}.membership-plan__top span{border:1px solid var(--border);color:var(--muted);font-family:var(--font-mono);border-radius:999px;padding:3px 8px;font-size:11px}.membership-plan__top strong{font-size:22px}.membership-plan__price{color:var(--fg);font-family:var(--font-mono);margin-top:20px;font-size:34px;font-weight:800}.membership-plan>p{min-height:42px;line-height:1.6}.membership-plan ul{gap:9px;margin:12px 0 24px;padding:0;font-size:13px;list-style:none;display:grid}.membership-plan li{align-items:center;gap:8px;display:flex}.membership-plan li svg{color:#0f8f6e}.membership-plan__actions{flex-wrap:wrap;gap:10px;margin-top:auto;display:flex}.membership-plan__unavailable{border-top:1px solid var(--border);color:var(--muted);margin-top:auto;padding-top:13px;font-size:13px}.membership-note,.membership-error{margin:20px 0 0;font-size:13px;line-height:1.6}.membership-error{color:#a33731;border-left:3px solid #df655d;padding-left:11px}.membership-loading,.membership-empty{min-height:110px;color:var(--muted);justify-content:center;align-items:center;gap:10px;display:flex}.checkout-card{max-width:620px;margin:0 auto;display:grid;overflow:hidden}.checkout-order{border-bottom:1px solid var(--border);background:color-mix(in oklch, var(--accent) 11%, var(--surface));gap:7px;padding:25px;display:grid}.checkout-order>span{color:var(--muted);font-size:14px}.checkout-order strong{font-family:var(--font-mono);font-size:30px}.checkout-order small{font-family:var(--font-mono);overflow-wrap:anywhere;font-size:11px}.checkout-qr,.checkout-redirect{text-align:center;justify-items:center;gap:13px;padding:30px 24px;display:grid}.checkout-qr svg{border:8px solid #fff;width:min(220px,72vw);height:auto}.checkout-qr p,.checkout-redirect p{margin:0;line-height:1.6}.checkout-redirect .xiaoma-btn+.xiaoma-btn{margin-top:2px}.checkout-actions{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:17px 24px;display:flex}.membership-link-button{color:var(--muted);background:0 0;border:0;font-weight:800}.membership-link-button:hover{color:#a33731}.checkout-message{text-align:center;justify-items:center;max-width:470px;margin:clamp(48px,12vh,120px) auto;padding:34px;display:grid}.checkout-message>div{background:color-mix(in oklch, #df655d 12%, var(--surface));color:#a33731;border-radius:50%;place-items:center;width:48px;height:48px;display:grid}.checkout-message.is-success>div{background:var(--accent-soft);color:#0f8f6e}.checkout-message h1{margin:18px 0 5px;font-size:24px}.checkout-message p{color:var(--muted);margin:0 0 20px;line-height:1.6}.order-list{gap:10px;display:grid}.order-list__item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left;width:100%;color:var(--fg);grid-template-columns:minmax(0,1fr) auto 20px;align-items:center;gap:14px;padding:17px 18px;display:grid}.order-list__item:hover{border-color:var(--fg)}.order-list__item>div{gap:5px;display:grid}.order-list__item>div:nth-child(2){justify-items:end}.order-list__item span{color:var(--muted);font-size:12px}.order-list__item b{font-family:var(--font-mono)}.order-status.is-paid{color:#0f8f6e}.order-status.is-pending{color:#a26b00}.order-status.is-canceled,.order-status.is-failed,.order-status.is-refunded{color:#a33731}@media (width<=700px){.membership-plans{grid-template-columns:1fr}.membership-status{align-items:flex-start}.membership-status .xiaoma-btn{margin:56px 0 0 -70px}.membership-plan{min-height:0}.membership-plan__actions{margin-top:8px}.checkout-actions{flex-direction:column;align-items:flex-start}.order-list__item{padding:15px}}*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (width>=640px){.container{max-width:640px}}@media (width>=768px){.container{max-width:768px}}@media (width>=1024px){.container{max-width:1024px}}@media (width>=1280px){.container{max-width:1280px}}@media (width>=1536px){.container{max-width:1536px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.bottom-\[18\.5rem\]{bottom:18.5rem}.left-1\/2{left:50%}.left-3{left:.75rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-14{top:3.5rem}.top-2{top:.5rem}.top-20{top:5rem}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[61\]{z-index:61}.mx-auto{margin-left:auto;margin-right:auto}.\!mt-0{margin-top:0!important}.mb-3{margin-bottom:.75rem}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-44{height:11rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[100dvh\]{height:100dvh}.h-full{height:100%}.h-px{height:1px}.min-h-0{min-height:0}.min-h-32{min-height:8rem}.min-h-5{min-height:1.25rem}.min-h-56{min-height:14rem}.min-h-7{min-height:1.75rem}.min-h-\[45vh\]{min-height:45vh}.min-h-\[55vh\]{min-height:55vh}.min-h-\[60vh\]{min-height:60vh}.min-h-\[62vh\]{min-height:62vh}.min-h-\[640px\]{min-height:640px}.w-10{width:2.5rem}.w-12{width:3rem}.w-3{width:.75rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[min\(92vw\,30rem\)\]{width:min(92vw,30rem)}.w-\[min\(92vw\,520px\)\]{width:min(92vw,520px)}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0}.min-w-36{min-width:9rem}.max-w-4xl{max-width:56rem}.max-w-56{max-width:14rem}.max-w-\[1180px\]{max-width:1180px}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-1{flex:1}.flex-none{flex:none}.origin-center{transform-origin:50%}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0\.5{--tw-translate-x:.125rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.select-none{-webkit-user-select:none;user-select:none}.resize-y{resize:vertical}.resize{resize:both}.scroll-mt-20{scroll-margin-top:5rem}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.overflow-hidden{overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-2{border-width:2px}.border-l{border-left-width:1px}.border-\[\#25d6a2\]\/40{border-color:#25d6a266}.border-\[\#343a47\]{--tw-border-opacity:1;border-color:rgb(52 58 71/var(--tw-border-opacity,1))}.border-\[\#e85b8a\]{--tw-border-opacity:1;border-color:rgb(232 91 138/var(--tw-border-opacity,1))}.border-\[\#e85b8a\]\/50{border-color:#e85b8a80}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.border-white\/10{border-color:#ffffff1a}.bg-\[\#25d6a2\]{--tw-bg-opacity:1;background-color:rgb(37 214 162/var(--tw-bg-opacity,1))}.bg-\[\#262b35\]{--tw-bg-opacity:1;background-color:rgb(38 43 53/var(--tw-bg-opacity,1))}.bg-\[\#e6fbf4\]{--tw-bg-opacity:1;background-color:rgb(230 251 244/var(--tw-bg-opacity,1))}.bg-\[\#e7f0ff\]{--tw-bg-opacity:1;background-color:rgb(231 240 255/var(--tw-bg-opacity,1))}.bg-\[\#f4f4ef\]{--tw-bg-opacity:1;background-color:rgb(244 244 239/var(--tw-bg-opacity,1))}.bg-\[\#ffe9e3\]{--tw-bg-opacity:1;background-color:rgb(255 233 227/var(--tw-bg-opacity,1))}.bg-\[\#fff4cc\]{--tw-bg-opacity:1;background-color:rgb(255 244 204/var(--tw-bg-opacity,1))}.bg-black\/20{background-color:#0003}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.bg-slate-200\/65{background-color:#e2e8f0a6}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.bg-slate-950{--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.bg-slate-950\/40{background-color:#02061766}.bg-transparent{background-color:#0000}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gradient-to-t{background-image:linear-gradient(to top, var(--tw-gradient-stops))}.from-\[\#181c24\]{--tw-gradient-from:#181c24 var(--tw-gradient-from-position);--tw-gradient-to:#181c2400 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.fill-\[\#ffcc3d\]{fill:#ffcc3d}.fill-slate-100{fill:#f1f5f9}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-3{padding-bottom:.75rem}.pb-5{padding-bottom:1.25rem}.pl-5{padding-left:1.25rem}.pt-3{padding-top:.75rem}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[13px\]{font-size:13px}.text-\[9px\]{font-size:9px}.text-\[clamp\(1\.85rem\,5\.6vw\,2\.7rem\)\]{font-size:clamp(1.85rem,5.6vw,2.7rem)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-normal{letter-spacing:0}.text-\[\#0f6d56\]{--tw-text-opacity:1;color:rgb(15 109 86/var(--tw-text-opacity,1))}.text-\[\#0f8f6e\]{--tw-text-opacity:1;color:rgb(15 143 110/var(--tw-text-opacity,1))}.text-\[\#111827\]{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-\[\#285bb9\]{--tw-text-opacity:1;color:rgb(40 91 185/var(--tw-text-opacity,1))}.text-\[\#787f91\]{--tw-text-opacity:1;color:rgb(120 127 145/var(--tw-text-opacity,1))}.text-\[\#a46d00\]{--tw-text-opacity:1;color:rgb(164 109 0/var(--tw-text-opacity,1))}.text-\[\#b8462b\]{--tw-text-opacity:1;color:rgb(184 70 43/var(--tw-text-opacity,1))}.text-\[\#be3d24\]{--tw-text-opacity:1;color:rgb(190 61 36/var(--tw-text-opacity,1))}.text-\[\#e4a400\]{--tw-text-opacity:1;color:rgb(228 164 0/var(--tw-text-opacity,1))}.text-\[\#e85b8a\]{--tw-text-opacity:1;color:rgb(232 91 138/var(--tw-text-opacity,1))}.text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.text-rose-600{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity,1))}.text-slate-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-slate-950{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}.text-transparent{color:#0000}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_18px_48px_rgba\(0\,0\,0\,0\.38\)\]{--tw-shadow:0 18px 48px #00000061;--tw-shadow-colored:0 18px 48px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[left\,top\]{transition-property:left,top;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{color:var(--fg);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:PingFang SC,Noto Sans SC,Microsoft YaHei,Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}html{scrollbar-gutter:stable}html:has(.xiaoma-immersive){scrollbar-gutter:auto}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}::selection{background:#b8f4d6}.course-map-page{gap:2.25rem;padding-bottom:3rem;display:grid}.course-map-header{justify-content:space-between;align-items:end;gap:1.25rem;display:flex}.course-search{background:#fff;border:1px solid #dbe3ea;border-radius:.5rem;gap:.75rem;padding:1rem;display:grid;box-shadow:0 5px 16px #0f172a0d}.course-search__input{border:1px solid #cbd5e1;border-radius:.5rem;align-items:center;gap:.5rem;height:2.75rem;padding-inline:.75rem;transition:border-color .16s;display:flex}.course-search__input:focus-within{border-color:#25d6a2}.course-search__input input{background:0 0;border:none;outline:none;flex:1;min-width:0;height:100%;font-size:.875rem}.course-search__chips{flex-wrap:wrap;gap:.5rem;display:flex}.course-search__chip{color:#475569;white-space:nowrap;background:#fff;border:1px solid #cbd5e1;border-radius:999px;justify-content:center;align-items:center;height:2.25rem;padding-inline:.875rem;font-size:.8125rem;font-weight:800;transition:border-color .16s,color .16s,background-color .16s;display:inline-flex}.course-search__chip:hover{color:#0f8f6e;border-color:#25d6a2}.course-search__chip:disabled{cursor:default;opacity:.55}.course-progress-skeleton{align-content:center;gap:.75rem;min-height:8rem}.course-progress-skeleton>span{background:#dfe8e4;border-radius:.25rem;width:min(100%,18rem);height:.75rem;animation:1.2s ease-in-out infinite alternate course-progress-pulse;display:block}.course-progress-skeleton>span:nth-child(2){width:min(72%,12rem)}.course-progress-skeleton>span:nth-child(3){width:min(45%,7rem)}.course-progress-pending{color:#64748b;min-width:5rem;font-size:.75rem;font-weight:700}@keyframes course-progress-pulse{0%{opacity:.45}to{opacity:1}}.course-search__chip.is-active{color:#0f8f6e;background:#e6fbf4;border-color:#25d6a2}.course-search-results ul{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.course-search-result{background:#fff;border:1px solid #dbe3ea;border-radius:.5rem;padding:1rem;transition:border-color .16s;display:block}.course-search-result:hover,.course-search-result:focus-visible{border-color:#25d6a2;outline:none}.course-search-result strong{color:#0f172a;font-size:.9375rem;font-weight:900}.course-search-result__type{color:#0f8f6e;background:#e6fbf4;border-radius:.25rem;padding:.15rem .45rem;font-size:.6875rem;font-weight:800}.course-search-result p{color:#64748b;margin:.35rem 0 0;font-size:.8125rem;line-height:1.5}.course-search-results__empty{text-align:center;color:#64748b;margin:0;padding:2rem 0}.course-map-page{--course-mint:#25d6a2;--course-mint-dark:#0f8f6e;--course-mint-soft:#e6fbf4;--course-amber:#f5a524;--course-amber-dark:#b57a08;--course-amber-soft:#fff4e0;--course-ink:#0f2a22;--course-ink-deep:#04352a}.course-stat-strip{flex:none;align-items:center;gap:1.5rem;display:flex}.course-stat{text-align:center;justify-items:center;gap:.15rem;display:grid}.course-stat strong{color:#0f172a;font-family:JetBrains Mono,monospace;font-size:1.5rem;font-weight:900;line-height:1}.course-stat strong span{color:#94a3b8;font-size:.9rem;font-weight:800}.course-stat span:last-child{color:#64748b;font-size:.75rem;font-weight:700}.course-dashboard{gap:1rem;display:grid}.course-continue-card{background:linear-gradient(135deg, var(--course-ink) 0%, var(--course-ink-deep) 100%);color:#fff;border-radius:.75rem;flex-wrap:wrap;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.course-continue-card__badge{background:var(--course-mint);width:2.75rem;height:2.75rem;color:var(--course-ink);border-radius:50%;flex:none;place-items:center;font-weight:900;display:grid}.course-continue-card__body{flex:1;min-width:0}.course-continue-card__body h2{margin:0;font-size:1.0625rem;font-weight:900}.course-continue-card__body p{color:#b9ccc4;margin:.3rem 0 0;font-size:.8125rem}.course-continue-card__actions{flex:none;gap:.625rem;display:flex}.course-continue-card__primary,.course-continue-card__secondary{border-radius:.5rem;justify-content:center;align-items:center;height:2.5rem;padding-inline:1rem;font-size:.8125rem;font-weight:900;transition:opacity .16s;display:inline-flex}.course-continue-card__primary{background:var(--course-mint);color:var(--course-ink)}.course-continue-card__secondary{color:#fff;border:1px solid #ffffff40}.course-continue-card__primary:hover,.course-continue-card__secondary:hover{opacity:.85}.course-dashboard__row{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.course-panel-card{background:#fff;border:1px solid #dbe3ea;border-radius:.75rem;padding:1rem 1.125rem}.course-panel-card__head{color:#64748b;align-items:center;gap:.4rem;font-size:.8125rem;font-weight:800;display:flex}.course-streak-card{background:var(--course-amber-soft);border-color:#f5dfae}.course-streak-card__value{color:var(--course-amber-dark);margin-top:.5rem;font-family:JetBrains Mono,monospace;font-size:1.875rem;font-weight:900;line-height:1}.course-streak-card__value span{margin-left:.2rem;font-size:.9rem;font-weight:800}.course-streak-card__note{color:#a9762a;margin:.35rem 0 .75rem;font-size:.75rem;font-weight:700}.course-streak-card__dots{gap:.3rem;display:flex}.course-streak-card__dots span{background:#f5a52440;border-radius:999px;width:1.1rem;height:.4rem}.course-streak-card__dots span.is-active{background:var(--course-amber)}.course-streak-card__foot{color:#a9762a;margin:.6rem 0 0;font-size:.75rem;font-weight:700}.course-chart-card__aside{color:#94a3b8;margin-left:auto;font-weight:700}.course-chart-card__value{color:var(--course-mint-dark);align-items:baseline;gap:.2rem;margin-left:auto;font-family:JetBrains Mono,monospace;font-size:1.375rem;font-weight:900;display:inline-flex}.course-chart-card__value span{color:#94a3b8;font-size:.75rem;font-weight:800}.course-chart-card__empty{color:#94a3b8;margin:1rem 0;font-size:.8125rem}.course-bar-row{align-items:flex-end;gap:.4rem;height:4.5rem;margin-top:.75rem;display:flex}.course-bar{flex:1;align-items:flex-end;min-width:0;height:100%;display:flex}.course-bar__fill{background:#c7ede1;border-radius:999px 999px 2px 2px;width:100%;min-height:2px;display:block}.course-bar__fill.is-today{background:var(--course-mint)}.course-bar__fill.is-trend{background:linear-gradient(180deg, var(--course-mint) 0%, #a9ecd4 100%)}.course-bar-row--trend{gap:.25rem}.course-bar-row__labels{color:#94a3b8;gap:.4rem;margin-top:.4rem;font-size:.6875rem;font-weight:700;display:flex}.course-bar-row__labels span{text-align:center;flex:1}.course-bar-row__labels--between{justify-content:space-between}.course-bar-row__labels--between span{flex:none}.course-explorer{gap:1.5rem;display:grid}.course-filter-bar{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f7f8f4d9;border-radius:.625rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem .25rem;display:flex;position:sticky;top:4.5rem}.course-filter-bar__pills{flex-wrap:wrap;gap:.5rem;display:flex}.course-view-toggle{background:#eef1ea;border-radius:.5rem;flex:none;gap:.2rem;padding:.2rem;display:inline-flex}.course-view-toggle button{color:#64748b;border-radius:.375rem;align-items:center;gap:.3rem;height:1.875rem;padding-inline:.7rem;font-size:.75rem;font-weight:800;display:inline-flex}.course-view-toggle button[aria-pressed=true]{color:#0f172a;background:#fff;box-shadow:0 1px 3px #0f172a1f}.course-stage__head{flex-wrap:wrap;align-items:center;gap:.625rem;margin-bottom:1rem;display:flex}.course-stage__bullet{background:var(--course-mint);border-radius:.15rem;width:.5rem;height:.5rem}.course-stage--amber .course-stage__bullet{background:var(--course-amber)}.course-stage__head h3{color:#0f172a;margin:0;font-size:1.0625rem;font-weight:900}.course-stage__subtitle{color:#94a3b8;font-size:.8125rem;font-weight:700}.course-stage__progress{background:#e6ebe4;border-radius:999px;flex:8rem;width:8rem;height:.375rem;overflow:hidden}.course-stage__progress span{border-radius:inherit;background:var(--course-mint);height:100%;display:block}.course-stage--amber .course-stage__progress span{background:var(--course-amber)}.course-stage__percent{color:#64748b;flex:none;font-family:JetBrains Mono,monospace;font-size:.8125rem;font-weight:800}.course-level-list{gap:.75rem;margin:0;padding:0 0 0 1.125rem;list-style:none;display:grid;position:relative}.course-level-list:before{content:"";background:#e2e8f0;width:2px;position:absolute;top:.25rem;bottom:1.5rem;left:1.125rem}.course-level-list.is-grid{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));padding-left:0;display:grid}.course-level-list.is-grid:before{display:none}.course-level{align-items:stretch;gap:.875rem;display:flex;position:relative}.course-level-list.is-grid .course-level{display:block}.course-level__node{z-index:1;color:#94a3b8;background:#e2e8f0;border:3px solid #f7f8f4;border-radius:50%;flex:none;place-items:center;width:2.25rem;height:2.25rem;margin-left:-1.125rem;font-family:JetBrains Mono,monospace;font-weight:800;display:grid;position:relative}.course-level-list.is-grid .course-level__node{margin-bottom:.5rem;margin-left:0}.course-level--mint.is-in-progress .course-level__node,.course-level--mint.is-completed .course-level__node{background:var(--course-mint);color:var(--course-ink)}.course-level--amber.is-in-progress .course-level__node,.course-level--amber.is-completed .course-level__node{background:var(--course-amber);color:#4a3305}.course-level__card{background:#fff;border:1px solid #dbe3ea;border-radius:.625rem;flex-wrap:wrap;flex:1;align-items:center;gap:.75rem;min-width:0;padding:.75rem 1rem;display:flex}.course-level.is-current .course-level__card{border-color:var(--course-mint);box-shadow:0 0 0 3px #25d6a224}.course-level--amber.is-current .course-level__card{border-color:var(--course-amber);box-shadow:0 0 0 3px #f5a52429}.course-level__main{flex:12rem;min-width:0}.course-level__title-row{align-items:center;gap:.5rem;display:flex}.course-level__title-row h4{color:#0f172a;margin:0;font-size:.9375rem;font-weight:900}.course-level__badge{background:var(--course-mint-soft);color:var(--course-mint-dark);border-radius:.25rem;flex:none;padding:.15rem .4rem;font-size:.6875rem;font-weight:900}.course-level--amber .course-level__badge{background:var(--course-amber-soft);color:var(--course-amber-dark)}.course-level__main p{color:#64748b;margin:.2rem 0 0;font-size:.8125rem}.course-level__meter{flex:none;align-items:center;gap:.5rem;display:flex}.course-level__accuracy{color:#64748b;font-family:JetBrains Mono,monospace;font-size:.8125rem;font-weight:800}.course-level__action{color:#64748b;background:#eef1ea;border-radius:.5rem;flex:none;justify-content:center;align-items:center;height:2.25rem;padding-inline:.875rem;font-size:.8125rem;font-weight:900;transition:background-color .16s,color .16s;display:inline-flex}.course-level.is-in-progress .course-level__action{background:var(--course-mint);color:var(--course-ink)}.course-level--amber.is-in-progress .course-level__action{background:var(--course-amber);color:#4a3305}.course-level.is-current .course-level__action.is-primary{background:var(--course-ink);color:#fff}.course-level__action:hover{opacity:.85}.course-level--terminal .course-level__card{background:linear-gradient(135deg, var(--course-ink) 0%, var(--course-ink-deep) 100%);color:#fff;border-color:#0000}.course-level--terminal .course-level__main h4{color:#fff}.course-level--terminal .course-level__main p{color:#b9ccc4}.course-level__node.is-terminal{background:var(--course-ink);color:var(--course-mint)}.course-level__action.is-terminal{color:#fff;background:#ffffff1f}.course-library__count{color:#94a3b8;margin-left:auto;font-size:.8125rem;font-weight:700}.course-library__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.course-library__grid.is-compact{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr))}.course-library-card{background:#fff;border:1px solid #dbe3ea;border-radius:.625rem;flex-direction:column;gap:.35rem;min-width:0;padding:.875rem 1rem;transition:border-color .16s;display:flex}.course-library-card:hover,.course-library-card:focus-visible{border-color:var(--course-mint);outline:none}.course-library-card__head{color:var(--course-mint-dark);align-items:center;gap:.4rem;display:flex}.course-library-card__head h4{color:#0f172a;margin:0;font-size:.9375rem;font-weight:900}.course-library-card p{color:#64748b;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;margin:0;font-size:.8125rem;line-height:1.5;display:-webkit-box;overflow:hidden}.course-library-card__progress{color:var(--course-mint-dark);align-items:center;gap:.25rem;font-size:.75rem;font-weight:800;display:inline-flex}@media (width<=767px){.course-map-page{gap:1.75rem;padding-bottom:6rem}.course-map-header{align-items:flex-start}.course-stat-strip{gap:1rem}.course-dashboard__row{grid-template-columns:1fr}.course-library__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-filter-bar{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;padding:0;position:static}}@media (width<=479px){.course-map-header{flex-direction:column}.course-stat-strip{justify-content:space-between;width:100%}.course-continue-card{flex-direction:column;align-items:flex-start}.course-continue-card__actions{width:100%}.course-continue-card__primary,.course-continue-card__secondary{flex:1}.course-library__grid{grid-template-columns:1fr}}.challenge-hub{padding-bottom:3rem}.challenge-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.challenge-card{border:1px solid var(--border);background:var(--pale);min-height:18rem;color:var(--fg);border-radius:.9rem;padding:1.5rem;box-shadow:0 6px 20px #0f172a0a}.challenge-card--shooter{border-color:color-mix(in srgb, var(--accent) 24%, var(--border));background:radial-gradient(circle at 85% 0%, #19cfa114, transparent 60%), var(--pale)}.challenge-card__icon{background:color-mix(in srgb, var(--accent) 14%, transparent);width:3rem;height:3rem;color:var(--muted);border-radius:.75rem;place-items:center;display:inline-grid}.challenge-card h2{margin:.85rem 0 0;font-size:1.35rem}.challenge-card p:not(.page-eyebrow){min-height:3rem;color:var(--muted);line-height:1.7}.challenge-entry__actions{flex-wrap:wrap;gap:.5rem;display:flex}.shooter-play-shell{background:#020617;width:100%;height:100dvh;position:relative;overflow:hidden}.shooter-play-bar{z-index:2;top:max(.75rem, env(safe-area-inset-top));color:#f8fafc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#020617c2;border:1px solid #ffffff29;border-radius:.7rem;justify-content:space-between;align-items:center;width:min(100% - 1.5rem,780px);height:2.65rem;padding:0 .4rem 0 .55rem;display:flex;position:absolute;left:50%;transform:translate(-50%)}.shooter-play-bar strong{font-size:.84rem}.shooter-play-button{color:#e2e8f0;min-width:2.1rem;min-height:2.1rem;font:inherit;background:0 0;border:0;border-radius:.45rem;justify-content:center;align-items:center;gap:.3rem;font-size:.76rem;font-weight:800;display:inline-flex}.shooter-play-button:hover{background:#ffffff1f}.shooter-play-frame{background:#020617;border:0;width:100%;height:100%;display:block}.shooter-play-status{z-index:3;color:#e2e8f0;background:#020617e6;border:1px solid #ffffff24;border-radius:.75rem;align-items:center;gap:.6rem;max-width:calc(100% - 2rem);padding:.85rem 1rem;font-size:.85rem;font-weight:700;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.shooter-play-status--error{flex-wrap:wrap}.shooter-result-hero{color:#fff;background:radial-gradient(circle at 50% -40%,#fb923c80,#0000 68%),linear-gradient(135deg,#0f172a,#020617)}.shooter-history{border:1px solid var(--border);border-radius:.75rem;margin-top:1rem;display:grid;overflow:hidden}.shooter-history>div{border-top:1px solid var(--border);grid-template-columns:minmax(0,1.4fr) minmax(5rem,.8fr) repeat(2,minmax(4.5rem,.7fr));align-items:center;gap:.75rem;padding:.8rem 1rem;font-size:.82rem;display:grid}.shooter-history>div:first-child{border-top:0}.shooter-history span{color:var(--muted);align-items:center;gap:.25rem;display:inline-flex}.shooter-history strong{font-family:var(--font-mono)}@media (width<=767px){.challenge-grid{grid-template-columns:1fr}.challenge-card,.challenge-card p:not(.page-eyebrow){min-height:0}.shooter-play-bar{width:calc(100% - 1rem)}.shooter-play-button span{display:none}.shooter-history>div{grid-template-columns:1fr .8fr}.shooter-history>div span:nth-of-type(2),.shooter-history>div span:nth-of-type(3){font-size:.72rem}}.pinyin-page{--course-mint:#25d6a2;--course-mint-dark:#0f8f6e;--course-mint-soft:#e6fbf4;--course-amber:#f5a524;--course-amber-dark:#b57a08;--course-amber-soft:#fff4e0;--course-ink:#0f2a22;--course-ink-deep:#04352a;gap:1.75rem;padding-bottom:3rem;display:grid}.pinyin-eyebrow{color:var(--course-mint-dark);letter-spacing:.08em;margin:0 0 .35rem;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:800}.pinyin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.pinyin-toolbar__tabs{flex-wrap:wrap;gap:.5rem;display:flex}.pinyin-legend{flex-wrap:wrap;gap:1rem;display:flex}.pinyin-legend__item{color:#64748b;align-items:center;gap:.4rem;font-size:.8125rem;font-weight:700;display:inline-flex}.pinyin-legend__dot{background:var(--course-amber);border-radius:50%;width:.55rem;height:.55rem}.pinyin-legend__dot.is-neutral{background:#cbd5e1}.pinyin-section__head{flex-wrap:wrap;align-items:center;gap:.625rem;display:flex}.pinyin-section__head h2{color:#0f172a;margin:0;font-size:1.375rem;font-weight:900}.pinyin-section__bullet{background:var(--course-mint);border-radius:.15rem;width:.5rem;height:.5rem}.pinyin-section__count{background:var(--course-mint-soft);color:var(--course-mint-dark);border-radius:.25rem;padding:.1rem .45rem;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:800}.pinyin-section__cta{color:var(--course-mint-dark);margin-left:auto;font-size:.8125rem;font-weight:800}.pinyin-section__cta:hover{color:var(--course-ink)}.pinyin-section__note{color:#94a3b8;max-width:48rem;margin:.5rem 0 0;font-size:.8125rem;line-height:1.6}.pinyin-group{margin-top:1.5rem}.pinyin-group__title{color:#475569;margin:0 0 .75rem;font-size:.875rem;font-weight:800}.pinyin-group__title span{color:#94a3b8}.pinyin-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.pinyin-card{text-align:center;background:#fff;border:1px solid #dbe3ea;border-radius:.625rem;flex-direction:column;justify-content:center;align-items:center;gap:.3rem;min-height:5rem;padding:.75rem .5rem;display:flex;position:relative}.pinyin-card__badge{color:#64748b;white-space:nowrap;background:#eef1ea;border-radius:999px;padding:.1rem .4rem;font-size:.625rem;font-weight:800;position:absolute;top:-.5rem;right:-.4rem}.pinyin-card__badge.is-amber{background:var(--course-amber);color:#4a3305}.pinyin-card__letter{color:#0f172a;font-family:JetBrains Mono,monospace;font-size:1.375rem;font-weight:800}.pinyin-card__note{color:#94a3b8;font-size:.75rem}.pinyin-faq-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.875rem;margin-top:1.25rem;display:grid}.pinyin-faq-card{background:#fff;border:1px solid #dbe3ea;border-radius:.625rem;padding:1rem 1.125rem}.pinyin-faq-card h4{color:#0f172a;margin:0;font-size:.9375rem;font-weight:900}.pinyin-faq-card p{color:#64748b;margin:.4rem 0 0;font-size:.8125rem;line-height:1.6}.pinyin-cta{background:linear-gradient(135deg, var(--course-ink) 0%, var(--course-ink-deep) 100%);color:#fff;border-radius:.75rem;padding:1.5rem}.pinyin-cta h2{margin:0;font-size:1.25rem;font-weight:900}.pinyin-cta p{color:#b9ccc4;margin:.4rem 0 0;font-size:.875rem}.pinyin-cta__actions{flex-wrap:wrap;gap:.625rem;margin-top:1.125rem;display:flex}@media (width<=767px){.pinyin-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pinyin-faq-grid{grid-template-columns:1fr}}@media (width<=479px){.pinyin-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.xiaoma-home{--home-deep:#0c2a22;--home-scene:#08201b;--home-pale:#d9efe6;--home-pale-soft:#ebf7f1;--home-mint:#25d6a2;--home-yellow:#f2c94c;--home-copy:#34544a;background:var(--home-pale);min-width:320px;color:var(--home-deep);font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;font-weight:700;overflow:clip}html:has(.xiaoma-home){scroll-behavior:smooth;scroll-padding-top:4.75rem}.xiaoma-home :focus-visible{outline:3px solid var(--home-yellow);outline-offset:3px}.xiaoma-home main{display:block}.home-shell{width:min(100%,90rem);margin-inline:auto;padding-inline:4.5rem}.home-anchor{scroll-margin-top:0}.home-header{z-index:50;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#d9efe6f0;border-bottom:1px solid #0c2a221f;transition:background-color .24s,border-color .24s,color .24s;position:fixed;top:0;left:0;right:0}.home-header.is-over-hero{color:var(--home-pale);background:#08201b38;border-bottom-color:#d9efe629}.home-header.is-solid{color:var(--home-deep);background:#d9efe6f0;border-bottom-color:#0c2a221f}.home-header__inner{align-items:center;gap:2.25rem;min-height:4.75rem;display:flex}.home-brand{flex:none;align-items:center;gap:.75rem;display:inline-flex}.home-brand__logo{filter:drop-shadow(0 .125rem .25rem #06281f29);flex:none;width:2.5rem;height:2.5rem}.home-header.is-over-hero .home-brand>strong{color:var(--home-pale)}.home-brand>strong{font-size:1.12rem;font-weight:800}.home-header__nav{flex:1;justify-content:center;align-self:stretch;align-items:stretch;gap:1.75rem;min-width:0;display:flex}.home-header__nav a{color:#526e64;align-items:center;gap:.45rem;font-size:.86rem;transition:color .18s;display:inline-flex;position:relative}.home-header__nav a:after{background:var(--home-mint);content:"";opacity:0;height:3px;transition:opacity .18s,transform .18s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(.5)}.home-header__nav a:hover,.home-header__nav a.is-active{color:var(--home-deep)}.home-header__nav a.is-active:after{opacity:1;transform:scaleX(1)}.home-header.is-over-hero .home-header__nav a{color:#a9c7ba}.home-header.is-over-hero .home-header__nav a:hover,.home-header.is-over-hero .home-header__nav a.is-active{color:var(--home-pale)}.home-header.is-over-hero .home-header__nav small{color:#87a79a}.home-header__nav small,.home-mobile-nav span{color:#7c998e;font-family:JetBrains Mono,monospace;font-size:.63rem;font-weight:700}.home-header__actions{flex:none;align-items:center;gap:.6rem;display:flex}.home-header__start,.home-account-button{border-radius:.25rem;justify-content:center;align-items:center;min-height:2.75rem;font-size:.8rem;font-weight:800;display:inline-flex}.home-header__start{background:var(--home-mint);color:#06281f;padding-inline:1.2rem;transition:background-color .18s,transform .18s}.home-header__start:hover{background:#1fc998;transform:translateY(-1px)}.home-account-button{color:var(--home-deep);background:0 0;border:1px solid #0c2a222e;gap:.45rem;padding-inline:.8rem}.home-account-button:hover{border-color:var(--home-deep);background:#ffffff61}.home-header.is-over-hero .home-account-button,.home-header.is-over-hero .home-icon-button,.home-header.is-over-hero .home-account-user__logout{color:var(--home-pale);border-color:#d9efe64d}.home-header.is-over-hero .home-account-button:hover,.home-header.is-over-hero .home-icon-button:hover,.home-header.is-over-hero .home-account-user__logout:hover{background:#d9efe61a;border-color:#d9efe694}.home-header.is-over-hero .home-account-user{border-color:#d9efe647}.home-header.is-over-hero .home-account-user__name{color:var(--home-pale)}.home-account-user{border:1px solid #0c2a2229;border-radius:.25rem;align-items:center;gap:.45rem;min-height:2.75rem;padding:.25rem .35rem .25rem .25rem;display:flex}.home-account-user__avatar{-o-object-fit:cover;object-fit:cover;background:#ffffff80;border-radius:.2rem;flex:none;place-items:center;width:2.1rem;height:2.1rem;display:grid}.home-account-user__name{max-width:5.5rem;color:var(--home-deep);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:800;overflow:hidden}.home-account-user__logout,.home-icon-button{width:2.75rem;height:2.75rem;color:var(--home-deep);border-radius:.25rem;flex:none;place-items:center;display:grid}.home-account-user__logout{width:2.1rem;height:2.1rem}.home-account-user__logout:hover,.home-icon-button:hover{background:#0c2a2214}.home-header__menu,.home-mobile-nav{display:none}.home-hero{background:var(--home-scene);height:100svh;min-height:42rem;color:var(--home-pale);position:relative;overflow:hidden}.home-hero__inner{z-index:4;height:100%;min-height:inherit;grid-template-columns:minmax(0,42rem) minmax(0,1fr);align-items:center;gap:2rem;padding-top:7.5rem;padding-bottom:5rem;display:grid;position:relative}.home-hero__copy{text-shadow:0 2px 22px #03120e42;grid-column:1;min-width:0}.home-hero__scene{z-index:1}.home-hero__shade{z-index:2;pointer-events:none;background:linear-gradient(#0418138a 0%,#0000 24% 78%,#04181380 100%),linear-gradient(90deg,#041813f0 0%,#041813d1 31%,#04181366 54%,#04181314 78%);position:absolute;inset:0}.home-hero .xiaoma-scene__canvas{pointer-events:none}.home-eyebrow{color:#69877c;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.9rem;font-size:.73rem;font-weight:800;display:flex}.home-eyebrow>span:first-child,.home-start__inner>span{letter-spacing:.08em;font-family:JetBrains Mono,monospace}.home-eyebrow i{background:#a9c7ba;flex:none;width:3rem;height:1px;display:block}.home-eyebrow--hero{color:#a9c7ba}.home-eyebrow--hero i{background:#64877a}.home-hero h1{max-width:7.2em;color:var(--home-pale-soft);letter-spacing:0;text-wrap:balance;margin:2rem 0 0;font-size:6rem;font-weight:800;line-height:1}.home-hero__lead{color:#c0d7cd;max-width:34rem;margin:2rem 0 0;font-size:1.08rem;font-weight:700;line-height:1.95}.home-hero__actions{flex-wrap:wrap;align-items:center;gap:.85rem;margin-top:2.25rem;display:flex}.home-button{border-radius:.3rem;justify-content:center;align-items:center;gap:.65rem;min-height:3.5rem;padding:.85rem 1.55rem;font-size:.95rem;font-weight:800;transition:background-color .18s,border-color .18s,color .18s,transform .18s;display:inline-flex}.home-button:hover{transform:translateY(-2px)}.home-button--primary{background:var(--home-mint);color:#06281f}.home-button--primary:hover{background:#1fc998}.home-button--secondary{color:var(--home-deep);border:1px solid #0c2a2247}.home-button--secondary:hover{border-color:var(--home-deep);background:#ffffff4d}.home-hero .home-button--secondary{color:var(--home-pale-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#08201b4d;border-color:#ebf7f180}.home-hero .home-button--secondary:hover{border-color:var(--home-pale-soft);background:#ebf7f11f}.home-hero__note{color:#a9c7ba;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.5rem;font-size:.76rem;display:flex}.home-hero__note i{background:#64877a;border-radius:50%;width:3px;height:3px}.home-scroll-cue{z-index:5;color:#b8cec4;align-items:center;gap:.5rem;font-family:JetBrains Mono,monospace;font-size:.62rem;display:flex;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}.xiaoma-scene,.xiaoma-scene__host,.xiaoma-scene__poster{width:100%;height:100%;position:absolute;inset:0}.xiaoma-scene__host{z-index:1}.xiaoma-scene__poster{z-index:2;-o-object-fit:cover;object-fit:cover;opacity:0;transition:opacity .45s}.xiaoma-scene__poster.is-visible{opacity:1}.xiaoma-scene__canvas{width:100%;height:100%;display:block}.xiaoma-scene__loading{z-index:4;color:#a9c7ba;background:#08201bb3;border:1px solid #d9efe63d;border-radius:.25rem;padding:.55rem .75rem;font-family:JetBrains Mono,monospace;font-size:.65rem;position:absolute;bottom:1.5rem;right:1.5rem}.home-how,.home-course{padding-block:7.5rem}.home-how{background:var(--home-pale)}.home-course{background:#f6fbf8}.home-section-title{max-width:12em;color:var(--home-deep);letter-spacing:0;margin:1.8rem 0 0;font-size:4.5rem;font-weight:800;line-height:1.13}.home-section-intro{max-width:34rem;color:var(--home-copy);margin:1.5rem 0 0;font-size:1.05rem;line-height:1.95}.home-feature-list{margin-top:4rem}.home-feature-row{border-top:1px solid #a9c7ba;grid-template-columns:2.5rem minmax(0,1fr) auto;align-items:start;gap:1.8rem;padding:2.2rem 1.4rem;display:grid}.home-feature-row__number,.home-feature-row__tag{padding-top:.8rem;font-family:JetBrains Mono,monospace;font-size:.72rem}.home-feature-row__number{color:#86a096}.home-feature-row__tag{color:var(--home-deep)}.home-feature-row h3{color:var(--home-deep);margin:0;font-size:2.5rem;font-weight:800;line-height:1.28}.home-feature-row p{max-width:40rem;color:var(--home-copy);margin:.65rem 0 0;font-size:1rem;line-height:1.9}.home-stage-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:3.5rem;display:grid}.home-stage-card{background:var(--home-pale-soft);min-width:0;min-height:15rem;color:var(--home-deep);border:1px solid #d7e9e1;border-radius:.5rem;flex-direction:column;padding:1.5rem;display:flex}.home-stage-card.is-first{border-color:var(--home-deep);background:var(--home-deep);color:var(--home-pale)}.home-stage-card.is-last{border-color:var(--home-mint);background:var(--home-mint);color:#06281f}.home-stage-card>span,.home-stage-card code{font-family:JetBrains Mono,monospace;font-size:.7rem}.home-stage-card>span{opacity:.62}.home-stage-card h3{margin:1.2rem 0 0;font-size:1.75rem;font-weight:800}.home-stage-card p{opacity:.78;margin:.7rem 0 0;font-size:.9rem;line-height:1.75}.home-stage-card code{overflow-wrap:anywhere;max-width:100%;color:inherit;opacity:.76;margin-top:auto;padding-top:1.5rem;display:block}.home-course__action{justify-content:flex-end;margin-top:2.2rem;display:flex}.home-text-link{border-bottom:2px solid var(--home-deep);align-items:center;gap:.6rem;min-height:2.75rem;font-size:.9rem;font-weight:800;display:inline-flex}.home-text-link svg{transition:transform .18s}.home-text-link:hover svg{transform:translate(4px)}.home-challenge{background:var(--home-deep);padding-block:7.5rem}.home-challenge__inner{grid-template-columns:minmax(0,1fr) minmax(0,23rem);align-items:center;gap:5rem;display:grid}.home-eyebrow--invert{color:#a9c7ba}.home-eyebrow--invert i{background:#3d6156}.home-challenge .home-section-title{color:var(--home-pale-soft)}.home-challenge__lead{color:#a9c7ba;max-width:34rem;margin:1.6rem 0 0;font-size:1.05rem;line-height:1.95}.home-challenge__points{gap:.9rem;margin:2.2rem 0 0;padding:0;list-style:none;display:grid}.home-challenge__points li{border-top:1px solid #a9c7ba33;grid-template-columns:5.5em minmax(0,1fr);align-items:baseline;gap:.4rem 1rem;padding-top:.9rem;display:grid}.home-challenge__points strong{color:var(--home-mint);font-size:.9rem;font-weight:800}.home-challenge__points span{color:#a9c7ba;font-size:.92rem;line-height:1.75}.home-challenge__actions{flex-wrap:wrap;gap:.9rem;margin-top:2.6rem;display:flex}.home-challenge .home-button--secondary{color:var(--home-pale-soft);border-color:#ebf7f152}.home-challenge .home-button--secondary:hover{border-color:var(--home-pale-soft);background:#ebf7f11a}.home-challenge__stage{justify-self:center}.home-challenge__screen{background:#061b16;border:1px solid #a9c7ba47;border-radius:.75rem;width:min(23rem,100%);transition:border-color .18s,transform .18s;display:block;position:relative;overflow:hidden;box-shadow:0 1.5rem 3.5rem #020c098c}.home-challenge__screen:hover{border-color:var(--home-mint);transform:translateY(-4px)}.home-shooter{aspect-ratio:480/720;display:block}.home-shooter__media{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.home-challenge__tag{color:#a9c7ba;letter-spacing:.08em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#061b16b8;border-radius:.25rem;padding:.3rem .55rem;font-family:JetBrains Mono,monospace;font-size:.63rem;position:absolute;bottom:.75rem;left:.75rem}.home-start{background:var(--home-pale);padding-block:7.5rem}.home-start__inner{text-align:center}.home-start__inner>span{color:#86a096;font-size:.72rem}.home-start h2{color:var(--home-deep);letter-spacing:0;margin:1.5rem auto 0;font-size:6rem;font-weight:800;line-height:1.08}.home-start p{max-width:40rem;color:var(--home-copy);margin:1.4rem auto 2.3rem;font-size:1rem;line-height:1.85}.home-footer{background:var(--home-scene);color:#9db8ac;border-top:1px solid #22453a;padding-block:2.5rem}.home-footer__inner{grid-template-columns:1fr auto 1fr;align-items:end;gap:2rem;display:grid}.home-footer strong{color:var(--home-pale);font-size:1.05rem}.home-footer p,.home-footer__legal{margin:.45rem 0 0;font-size:.7rem;line-height:1.7}.home-footer nav{color:var(--home-pale);gap:1.5rem;font-size:.78rem;display:flex}.home-footer nav a:hover,.home-footer__legal a:hover{color:var(--home-mint)}.home-footer__legal{justify-items:end;font-family:JetBrains Mono,monospace;display:grid}[data-home-reveal]{opacity:0;transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transform:translateY(1.5rem)}[data-home-revealed=true]{opacity:1;transform:translateY(0)}.home-login-dialog__overlay{z-index:80;background:#03120eb3;animation:.18s ease-out home-dialog-fade;position:fixed;inset:0}.home-login-dialog__content{z-index:81;background:#f6fbf8;border:1px solid #0c2a2224;border-radius:.5rem;width:min(100% - 2rem,29rem);max-height:calc(100svh - 2rem);animation:.22s cubic-bezier(.2,.7,.2,1) home-dialog-in;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 28px 90px #03120e59}.home-login-dialog__close{z-index:2;position:absolute;top:.75rem;right:.75rem}.home-login-panel{min-height:31rem;color:var(--home-deep);outline:none;flex-direction:column;padding:2rem;display:flex}.home-login-panel__title{justify-content:space-between;align-items:flex-start;gap:2.5rem;padding-right:2.5rem;display:flex}.home-login-panel__title>svg{color:#138d6d;flex:none}.home-login-panel__title span{border-bottom:3px solid var(--home-mint);color:#138d6d;font-size:.78rem;font-weight:800;display:inline-block}.home-login-panel__title h2{margin:.75rem 0 0;font-size:1.65rem;font-weight:800}.home-login-panel__title p,.home-login-panel__note{color:#6b857b;font-size:.78rem;line-height:1.7}.home-login-panel__title p{margin:.4rem 0 0}.home-login-panel__note{margin:1rem 0 0}.home-login-panel__qr{background:var(--home-pale-soft);text-align:center;border:1px solid #d7e9e1;border-radius:.4rem;place-items:center;min-height:14rem;margin-top:1.25rem;padding:1rem;display:grid}.home-login-panel__qr>div>svg{color:#6b857b;margin-inline:auto}.home-login-panel__qr p{color:#6b857b;margin:.75rem 0 0;font-size:.72rem;line-height:1.65}.home-login-panel__actions{gap:.7rem;margin-top:auto;padding-top:1.2rem;display:grid}.home-login-panel__actions button{min-height:3rem;color:var(--home-deep);background:#fff;border:1px solid #b8cec4;border-radius:.3rem;justify-content:center;align-items:center;gap:.55rem;font-size:.8rem;font-weight:800;display:inline-flex}.home-login-panel__actions button.is-wechat{color:#fff;background:#18b96f;border-color:#18b96f}.home-login-panel__actions button:disabled{cursor:wait;opacity:.55}.home-login-panel__error{color:#be123c;background:#fff1f2;border:1px solid #fecaca;border-radius:.3rem;margin-top:.8rem;padding:.75rem;font-size:.75rem;line-height:1.6}.home-login-panel__user{background:var(--home-pale-soft);border:1px solid #d7e9e1;border-radius:.4rem;align-items:center;gap:.9rem;margin-top:2rem;padding:1rem;display:flex}.home-login-panel__user img,.home-login-panel__user>span{-o-object-fit:cover;object-fit:cover;background:#fff;border-radius:.3rem;place-items:center;width:3.5rem;height:3.5rem;display:grid}.home-login-panel>.home-button{margin-top:auto}@keyframes home-dialog-fade{0%{opacity:0}}@keyframes home-dialog-in{0%{opacity:0;transform:translate(-50%,calc(.75rem - 50%))}}@media (width<=74rem){.home-shell{padding-inline:3rem}.home-header__nav{gap:1rem}.home-hero h1{font-size:5.5rem}.home-stage-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=42.01rem) and (height<=50rem){.home-hero__inner{padding-top:6.5rem;padding-bottom:3.5rem}.home-hero h1,.home-hero__lead{margin-top:1.2rem}.home-hero__actions{margin-top:1.4rem}.home-hero__note{margin-top:1rem}}@media (width<=62rem){.home-header__nav{display:none}.home-header__actions{margin-left:auto}.home-header__menu{display:grid}.home-mobile-nav{background:var(--home-pale);border-top:1px solid #0c2a221a;grid-template-columns:repeat(3,minmax(0,1fr));padding:.75rem 3rem 1rem;display:grid}.home-header.is-over-hero .home-mobile-nav{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#08201be6;border-top-color:#d9efe624}.home-header.is-over-hero .home-mobile-nav a{color:var(--home-pale)}.home-mobile-nav a{min-height:2.75rem;color:var(--home-deep);align-items:center;gap:.6rem;font-size:.84rem;display:flex}.home-hero,.home-hero__inner{min-height:42rem}.home-hero__inner{grid-template-columns:minmax(0,38rem) minmax(0,1fr);gap:2rem;padding-top:7rem;padding-bottom:5rem}.home-hero h1{max-width:9em;font-size:4.75rem}.home-hero__shade{background:linear-gradient(#04181399 0%,#0000 24% 75%,#0418138c 100%),linear-gradient(90deg,#041813eb 0%,#041813c7 48%,#0418132e 88%)}.home-section-title{font-size:3.8rem}.home-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-challenge__inner{grid-template-columns:1fr;gap:3rem}.home-challenge__stage{justify-self:stretch}.home-challenge__screen{width:min(20rem,100%)}.home-start h2{font-size:4.75rem}.home-footer__inner{grid-template-columns:1fr auto}.home-footer__legal{grid-column:1/-1;justify-items:start}}@media (width<=42rem){.home-shell{padding-inline:1.25rem}.home-header__inner{gap:.75rem;min-height:4.25rem}.home-brand{gap:.55rem}.home-brand__logo{width:2.25rem;height:2.25rem}.home-brand>strong{font-size:.94rem}.home-header__start,.home-account-user__name{display:none}.home-account-button{width:2.75rem;padding:0}.home-account-button span{display:none}.home-mobile-nav{grid-template-columns:repeat(2,minmax(0,1fr));padding:.75rem 1.25rem 1rem}.home-anchor{scroll-margin-top:0}html:has(.xiaoma-home){scroll-padding-top:4.25rem}.home-hero__inner{grid-template-columns:1fr;gap:0;padding-top:6.5rem;padding-bottom:4.5rem}.home-eyebrow{align-items:flex-start;gap:.65rem;font-size:.61rem;line-height:1.5}.home-eyebrow i{width:1.75rem;margin-top:.45rem}.home-hero h1{max-width:7.2em;margin-top:1.5rem;font-size:3.25rem;line-height:1.05}.home-hero__lead{margin-top:1.4rem;font-size:.94rem;line-height:1.85}.home-hero__actions{align-items:stretch;margin-top:1.8rem}.home-button{min-height:3.25rem;font-size:.86rem}.home-hero__actions .home-button{flex:9rem}.home-hero__note{font-size:.67rem}.home-scroll-cue{bottom:.75rem}.home-section-title{margin-top:1.25rem;font-size:2.8rem;line-height:1.16}.home-hero__shade{background:linear-gradient(#041813c7 0%,#0418134d 34%,#0418131f 61%,#041813ad 100%),linear-gradient(90deg,#041813d1,#0418134d)}.home-hero .xiaoma-scene__poster,.home-hero .xiaoma-scene__canvas{-o-object-position:center;object-position:center}.home-how,.home-course,.home-challenge,.home-start{padding-block:5rem}.home-challenge__inner{gap:2.5rem}.home-challenge__screen{width:min(17rem,100%);margin-inline:auto}.home-challenge__lead{font-size:.92rem}.home-challenge__points li{grid-template-columns:1fr;gap:.15rem}.home-feature-list,.home-stage-grid{margin-top:3rem}.home-feature-row{grid-template-columns:1.75rem minmax(0,1fr);gap:1rem;padding:1.6rem 0}.home-feature-row__tag{color:#69877c;grid-column:2;padding-top:0}.home-feature-row h3{font-size:1.7rem}.home-feature-row p{font-size:.88rem;line-height:1.8}.home-section-intro{font-size:.92rem}.home-stage-grid{grid-template-columns:1fr}.home-stage-card{min-height:12.5rem}.home-course__action{justify-content:flex-start}.home-start h2{font-size:3.25rem}.home-footer__inner{grid-template-columns:1fr;align-items:start}.home-footer nav{flex-wrap:wrap}.home-footer__legal{grid-column:auto}.home-login-panel{min-height:29rem;padding:1.4rem}.home-login-dialog__close{top:.4rem;right:.4rem}}.xiaoma-home.is-reduced-motion [data-home-reveal],.xiaoma-home.is-reduced-motion [data-home-revealed=true]{opacity:1;transition:none;transform:none}@media (prefers-reduced-motion:reduce){html:has(.xiaoma-home){scroll-behavior:auto}.xiaoma-home *,.xiaoma-home :before,.xiaoma-home :after{scroll-behavior:auto!important}.xiaoma-home [data-home-reveal],.xiaoma-home [data-home-revealed=true],.home-login-dialog__overlay,.home-login-dialog__content{opacity:1;transition:none;animation:none;transform:none}.home-login-dialog__content{transform:translate(-50%,-50%)}}.mascot-wrap{justify-items:center;gap:.5rem;display:grid}.mascot-lottie{filter:drop-shadow(0 12px 24px #0f172a1f);width:128px;height:128px}.mascot-lottie svg{display:block}.mascot-sm .mascot-lottie{width:82px;height:82px}.mascot-lg .mascot-lottie{width:196px;height:196px}.mascot-bubble{color:#475569;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;max-width:12rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:800;line-height:1.3;box-shadow:0 8px 20px #0f172a14}.mascot-celebrate .mascot-lottie{animation:.9s both mascot-pop}.mascot-combo .mascot-lottie{animation:.9s both mascot-wiggle}.feedback-toast{animation:1.6s both toast-rise}.wechat-login-qr-frame{width:min(100%,17rem);height:16.25rem;margin-inline:auto;overflow:hidden}.wechat-login-qr-target{justify-content:center;align-items:center;height:16.25rem;display:flex}.wechat-login-qr-target iframe{border:0;max-width:100%;height:16.25rem;display:block}.lesson-feedback-stack{width:min(13.5rem,100vw - 2rem);bottom:3.25rem;right:1.25rem}.practice-stage{position:relative;overflow:hidden}.practice-stage:before{content:"";pointer-events:none;background-color:#0000;background-image:linear-gradient(90deg,#25d6a214 1px,#0000 1px),linear-gradient(#25d6a214 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:34px 34px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 65%);mask-image:linear-gradient(#000,#0000 65%)}.lesson-typing-shell{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:radial-gradient(circle at 50% -20%, color-mix(in oklch, var(--accent) 22%, transparent), transparent 34rem), var(--scene);height:100vh;min-height:0;color:color-mix(in oklch, var(--bg) 78%, white);position:relative;overflow:hidden}.lesson-typing-toolbar{color:#767e91}.lesson-tool-button{color:#767e91;min-width:0;font:inherit;white-space:nowrap;background:0 0;border:0;align-items:center;gap:.38rem;padding:0;line-height:1;transition:color .16s,transform .16s;display:inline-flex}.lesson-tool-button:hover,.lesson-tool-button:focus-visible{color:#c8ceda;outline:none}button.lesson-tool-button{cursor:pointer}.lesson-tool-button[aria-pressed=true]{color:#c8ceda}.lesson-tool-button:active{transform:translateY(1px)}.lesson-challenge-timer{color:#fbbf24;font-variant-numeric:tabular-nums;background:#fbbf241f;border:1px solid #fbbf2466;border-radius:999px;flex:none;align-items:center;gap:.3rem;padding:.25rem .6rem;font-weight:900;display:inline-flex}.lesson-toolbar-actions{justify-content:flex-end;align-items:center;gap:clamp(.9rem,2.2vw,1.6rem);display:flex}.lesson-practice-notes{color:#767e91;font-size:inherit;font-weight:inherit;flex:none;position:relative}.lesson-practice-notes summary{cursor:pointer;white-space:nowrap;line-height:1;list-style:none}.lesson-practice-notes summary::-webkit-details-marker{display:none}.lesson-practice-notes summary:after{content:"⌄";margin-left:.28rem}.lesson-practice-notes[open] summary{color:#c8ceda}.lesson-practice-notes[open] summary:after{content:"⌃"}.lesson-practice-notes__content{z-index:20;color:#a9b1c0;background:#262b35;border:1px solid #545d70d1;border-radius:.5rem;gap:.5rem;width:min(22rem,100vw - 2rem);padding:.8rem;font-size:.76rem;font-weight:700;line-height:1.5;display:grid;position:absolute;top:calc(100% + .75rem);right:0;box-shadow:0 16px 40px #00000047}.lesson-practice-notes__content p{margin:0}.lesson-practice-notes__content strong{color:#e3e7ef}.lesson-content-feedback-overlay{z-index:60;background:#0c0f147a;position:fixed;inset:0}.lesson-content-feedback-dialog{z-index:61;color:#d7dce7;background:#262b35;border:1px solid #545d70d1;border-radius:.5rem;gap:1rem;width:min(92vw,30rem);padding:1rem;display:grid;position:fixed;top:min(5.5rem,12vh);left:50%;transform:translate(-50%);box-shadow:0 22px 70px #00000061,inset 0 1px #ffffff0a}.lesson-content-feedback-dialog:focus{outline:none}.lesson-content-feedback-heading{align-items:flex-start;gap:.75rem;display:flex}.lesson-content-feedback-icon{color:#25d6a2;background:#25d6a21f;border-radius:.5rem;flex:none;place-items:center;width:2.35rem;height:2.35rem;display:grid}.lesson-content-feedback-title{color:#f4f6fb;margin:0;font-size:1rem;font-weight:900;line-height:1.25}.lesson-content-feedback-description{color:#8f96a7;margin:.25rem 0 0;font-size:.78rem;font-weight:700;line-height:1.5}.lesson-content-feedback-form{gap:.75rem;display:grid}.lesson-content-feedback-context{color:#8f96a7;background:#1f232cb8;border:1px solid #495162d1;border-radius:.5rem;flex-wrap:wrap;align-items:center;gap:.45rem;min-width:0;padding:.65rem .75rem;font-size:.76rem;font-weight:800;line-height:1.35;display:flex}.lesson-content-feedback-context strong{overflow-wrap:anywhere;color:#f4f6fb;max-width:100%;font-size:.9rem}.lesson-content-feedback-textarea{resize:vertical;color:#f4f6fb;background:#1f232b;border:1px solid #545d70db;border-radius:.5rem;width:100%;min-height:7.5rem;padding:.8rem .85rem;font-size:.9rem;font-weight:700;line-height:1.55}.lesson-content-feedback-textarea::placeholder{color:#687184}.lesson-content-feedback-textarea:focus{border-color:#25d6a2;outline:none;box-shadow:0 0 0 2px #25d6a22e}.lesson-content-feedback-meta{color:#858d9f;justify-content:space-between;align-items:center;gap:.75rem;min-height:1.25rem;font-size:.72rem;font-weight:800;line-height:1.35;display:flex}.lesson-content-feedback-meta .is-error{color:#ff9aa6}.lesson-content-feedback-actions,.lesson-content-feedback-success{justify-content:flex-end;align-items:center;gap:.65rem;display:flex}.lesson-content-feedback-success{background:#25d6a217;border:1px solid #25d6a247;border-radius:.5rem;justify-content:space-between;padding:.8rem}.lesson-content-feedback-primary,.lesson-content-feedback-secondary{border-radius:.5rem;justify-content:center;align-items:center;min-height:2.35rem;padding:0 .95rem;font-size:.82rem;font-weight:900;line-height:1;transition:background .16s,border-color .16s,color .16s,opacity .16s;display:inline-flex}.lesson-content-feedback-primary{color:#11211d;background:#25d6a2;border:1px solid #25d6a2}.lesson-content-feedback-primary:hover,.lesson-content-feedback-primary:focus-visible{background:#44e4b4;border-color:#44e4b4;outline:none}.lesson-content-feedback-secondary{color:#c8ceda;background:0 0;border:1px solid #545d70d1}.lesson-content-feedback-secondary:hover,.lesson-content-feedback-secondary:focus-visible{color:#f4f6fb;border-color:#9aa3b6;outline:none}.lesson-content-feedback-primary:disabled,.lesson-content-feedback-secondary:disabled{cursor:not-allowed;opacity:.55}.lesson-follow-toggle{color:#767e91;white-space:nowrap;align-items:center;gap:.45rem;line-height:1;display:inline-flex}.lesson-follow-toggle__label{font:inherit}.lesson-follow-toggle__switch{background:#3f4656;border:0;border-radius:999px;align-items:center;width:2.25rem;height:1.18rem;padding:0;transition:background .16s,box-shadow .16s;display:inline-flex;position:relative}.lesson-follow-toggle__switch[data-state=checked]{background:#25d6a2;box-shadow:0 0 12px #25d6a238}.lesson-follow-toggle__switch:focus-visible{outline-offset:3px;outline:2px solid #94a3b8d1}.lesson-follow-toggle__thumb{background:#f8fafc;border-radius:999px;width:.88rem;height:.88rem;transition:transform .16s;display:block;transform:translate(.16rem);box-shadow:0 1px 4px #0000003d}.lesson-follow-toggle__switch[data-state=checked] .lesson-follow-toggle__thumb{transform:translate(1.2rem)}.lesson-typing-main{grid-template-rows:minmax(0,1fr) auto;height:calc(100vh - 3.5rem);min-height:0;display:grid;overflow:hidden}.lesson-word-board{-moz-column-gap:clamp(1.75rem, 2.5vw, 2.5rem);--lesson-board-margin-top:clamp(4rem, 9.5vh, 6.6rem);width:100%;margin:var(--lesson-board-margin-top) auto 0;min-height:0;max-height:calc(100% - var(--lesson-board-margin-top));overscroll-behavior:contain;flex-wrap:wrap;place-content:flex-start;align-self:start;gap:clamp(1.5rem,2.4vw,2.25rem) clamp(1.75rem,2.5vw,2.5rem);padding:0 max(1rem,50% - 38rem);scroll-padding-block:15% 25%;display:flex;overflow:hidden auto}.lesson-word-board.is-pinyin-board{-moz-column-gap:clamp(3.8rem, 6vw, 7.7rem);flex-wrap:wrap;align-content:flex-start;align-items:flex-start;gap:clamp(3.35rem,7.4vh,6.8rem) clamp(3.8rem,6vw,7.7rem);width:100%;min-height:0;padding-inline:max(1rem,50vw - 45.5rem);overflow:hidden auto}.lesson-word-token{--lesson-pinyin-size:clamp(2rem, 3vw, 2.5rem);--lesson-hanzi-size:clamp(2.65rem, 3.15vw, 3.15rem);--lesson-char-slot:calc(var(--lesson-pinyin-size) * .7);--lesson-syllable-gap:clamp(.36rem, .55vw, .58rem);--lesson-token-natural-width:max(4.75rem, calc(var(--lesson-token-chars,3) * var(--lesson-char-slot) + var(--lesson-token-gaps,0) * var(--lesson-syllable-gap) + 1rem));width:var(--lesson-token-natural-width);min-width:var(--lesson-token-natural-width);color:#7f8799;opacity:.82;flex:none;justify-items:center;gap:.36rem;display:grid}.lesson-word-board.is-pinyin-board .lesson-word-token{--lesson-pinyin-size:clamp(2.55rem, 4.45vw, 4.15rem);--lesson-char-slot:calc(var(--lesson-pinyin-size) * .72);width:max(6.5rem, calc(var(--lesson-token-chars,2) * var(--lesson-char-slot) + 1.55rem));min-width:max(6.5rem, calc(var(--lesson-token-chars,2) * var(--lesson-char-slot) + 1.55rem));gap:0}.lesson-word-token.is-word-token{--lesson-pinyin-size:1.375rem;--lesson-hanzi-size:2.75rem;--lesson-char-slot:calc(var(--lesson-pinyin-size) * .6);--lesson-syllable-cell-width:5.5rem;gap:0;width:max-content;min-width:0;max-width:100%}.lesson-word-cells{flex-wrap:wrap;align-items:flex-start;gap:1.5rem 0;width:100%;max-width:100%;display:flex}.lesson-syllable-cell-group{flex:0 0 var(--lesson-syllable-cell-width);width:var(--lesson-syllable-cell-width);min-width:var(--lesson-syllable-cell-width);align-items:flex-end;display:flex}.lesson-syllable-cell-group.has-suffix{flex-basis:auto;width:max-content}.lesson-syllable-cell-group.is-composite{flex:0 auto;width:auto;min-width:max-content;max-width:100%}.lesson-poetry-suffix{margin-left:calc((var(--lesson-hanzi-size) - var(--lesson-syllable-cell-width)) / 2 + var(--lesson-hanzi-size) * .05);color:#697184;font-size:calc(var(--lesson-hanzi-size) * .72);font-weight:700;line-height:calc(var(--lesson-hanzi-size) * 1.12);white-space:nowrap;flex:none}.lesson-syllable-cell-group.is-composite .lesson-poetry-suffix{margin-left:calc(var(--lesson-hanzi-size) * .05)}.lesson-poetry-break{flex-basis:100%;width:0;height:0}.lesson-poetry-break.is-stanza{margin-bottom:.6rem}.lesson-syllable-cell{flex:0 0 var(--lesson-syllable-cell-width);width:var(--lesson-syllable-cell-width);min-width:var(--lesson-syllable-cell-width);grid-template-rows:auto auto;justify-items:center;gap:.375rem;display:grid}.lesson-syllable-cell.is-composite{flex:0 auto;width:auto;min-width:max-content;max-width:100%}.lesson-syllable-cell.is-composite .lesson-word-pinyin,.lesson-syllable-cell.is-composite .lesson-word-hanzi{width:auto;max-width:100%}.lesson-syllable-cell .lesson-word-pinyin{white-space:nowrap;width:100%;min-height:0;line-height:1.18}.lesson-syllable-cell .lesson-word-hanzi{width:100%;min-height:var(--lesson-hanzi-size);line-height:1.12}.lesson-word-token.is-word-token .lesson-word-pinyin{font-size:var(--lesson-pinyin-size)}.lesson-word-token.is-word-token .lesson-word-hanzi{font-size:var(--lesson-hanzi-size)}@media screen and (width<=640px){.lesson-word-token{width:var(--lesson-token-natural-width);min-width:0;max-width:calc(100vw - 2rem)}.lesson-word-token.is-word-token .lesson-word-cells{justify-content:flex-start;row-gap:1rem}.lesson-word-token.is-word-token{--lesson-pinyin-size:1rem;--lesson-hanzi-size:1.75rem;--lesson-char-slot:calc(var(--lesson-pinyin-size) * .6);--lesson-syllable-cell-width:4rem;width:max-content;min-width:0;max-width:100%}.lesson-word-token.is-word-token .lesson-syllable-cell{gap:.25rem}.lesson-syllable-cell .lesson-word-pinyin{white-space:nowrap;flex-wrap:nowrap;line-height:1.18}.lesson-word-pinyin{white-space:normal;flex-wrap:wrap;row-gap:.2rem;line-height:1.08}.lesson-word-hanzi{overflow-wrap:anywhere;line-height:1.12}}.lesson-word-token.is-active,.lesson-word-token.is-completed{opacity:1}.lesson-word-pinyin{width:100%;min-width:0;min-height:2.15rem;font-family:Noto Sans Mono Variable,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:var(--lesson-pinyin-size);letter-spacing:0;text-align:center;white-space:nowrap;color:#8991a3;justify-content:center;align-items:baseline;font-weight:450;line-height:1.18;display:flex;overflow:visible}.lesson-word-board.is-pinyin-board .lesson-word-pinyin{min-height:calc(var(--lesson-pinyin-size) * 1.25)}.lesson-word-hanzi{width:100%;min-height:2.4rem;font-size:var(--lesson-hanzi-size);letter-spacing:0;text-align:center;color:#868e9f;font-weight:800;line-height:1.12}.lesson-word-hanzi.is-typed,.lesson-word-hanzi .is-typed{color:#f2f5fb;text-shadow:0 0 16px #f2f5fb24}.lesson-word-pinyin>span{width:var(--lesson-char-slot);min-width:var(--lesson-char-slot);text-align:center;vertical-align:baseline;box-sizing:border-box;border-radius:.125rem;place-items:center;display:inline-grid}.lesson-word-pinyin>.lesson-syllable-gap{width:var(--lesson-syllable-gap);min-width:var(--lesson-syllable-gap);pointer-events:none}.lesson-char-current{color:#f4f6fb;background:linear-gradient(#9aa1af,#747b89)}.lesson-char-pending{color:#858d9f}.lesson-char-correct{color:#35c39b}.lesson-char-corrected{color:#f2c15a}.lesson-char-wrong{color:#ff8b95;background:#7c313db8}.lesson-bottom-panel{border-top:1px solid #454b5aad;grid-template-columns:1fr;align-items:end;min-height:clamp(13rem,27vh,20rem);padding:clamp(.9rem,1.7vh,1.45rem) clamp(.75rem,2vw,2rem) 1.8rem;display:grid;position:relative}.lesson-bottom-panel.is-keyboard-hidden{align-items:center;min-height:3.5rem;padding:.8rem clamp(.75rem,2vw,2rem)}.lesson-bottom-panel.is-keyboard-hidden .lesson-stats{justify-content:center;max-width:none;position:static}.lesson-keyboard-wrap{width:min(42rem,100vw - 2rem);margin:0 auto}.lesson-bottom-panel .keyboard-guide{background:linear-gradient(#242832e6,#1f232cf5),repeating-linear-gradient(90deg,#77809729 0 1px,#0000 1px 44px),repeating-linear-gradient(0deg,#7780971f 0 1px,#0000 1px 44px);border-color:#4d5465bd;box-shadow:inset 0 1px #ffffff0a,0 14px 40px #0000001f}.lesson-bottom-panel .keyboard-guide__keyboard,.lesson-bottom-panel .keyboard-guide__hand{opacity:.42}.lesson-bottom-panel .keyboard-guide__hand{opacity:.34}.lesson-bottom-panel .keyboard-guide__key-highlight{opacity:.96}.lesson-stats{color:#737b8d;flex-wrap:wrap;justify-content:flex-end;gap:.9rem;max-width:min(48rem,100vw - 4rem);font-size:clamp(.62rem,.72vw,.72rem);font-weight:800;line-height:1.2;display:flex;position:absolute;bottom:1.72rem;right:2rem}.lesson-stats strong{color:#b6bdcc;font-size:1.08em}.lesson-progress-track{background:#464d5f;border-radius:999px;height:.28rem;position:fixed;bottom:.65rem;left:.85rem;right:.85rem;overflow:hidden}.lesson-progress-bar{border-radius:inherit;background:#25d6a2;height:100%;transition-property:width}.keyboard-guide{background:linear-gradient(#f8fafceb,#f5f7fcfa),repeating-linear-gradient(90deg,#d6dce87a 0 1px,#0000 1px 44px),repeating-linear-gradient(0deg,#d6dce857 0 1px,#0000 1px 44px);border:1px solid #d9dde7;border-radius:.5rem;width:100%;min-width:0;height:0;padding-bottom:37.1484%;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffbf}@supports (aspect-ratio:1031 / 383){.keyboard-guide{aspect-ratio:1031/383;height:auto;padding-bottom:0}}.keyboard-guide:after{content:"";pointer-events:none;background:linear-gradient(#ffffff05,#ffffff1f);position:absolute;inset:0}.keyboard-guide__viewport{place-items:center;display:grid;position:absolute;inset:0;overflow:visible}.keyboard-guide__typing-block{transform-origin:50%;pointer-events:none;width:1031px;height:383px;position:absolute;top:50%;left:50%}.keyboard-guide__keyboard{image-rendering:auto;shape-rendering:geometricprecision;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.keyboard-guide__keyboard svg,.keyboard-guide__hand svg,.keyboard-guide__key-highlight{width:100%;height:100%;display:block}.keyboard-guide__keyboard svg{overflow:visible}.keyboard-guide__keyboard svg text{font-family:Arial,Helvetica,sans-serif}.keyboard-guide__key-highlight{z-index:2;pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.keyboard-guide__key-highlight-group{transform-box:fill-box;transform-origin:50%;animation:.76s cubic-bezier(.16,1,.3,1) both keyboard-key-press}.keyboard-guide__key-plate{stroke:#9affeef0;stroke-width:1.55px;paint-order:stroke fill;animation:.76s both keyboard-key-glow}.keyboard-guide__key-glint{fill:#f7fffd9e;filter:drop-shadow(0 0 3px #9affee9e);opacity:0;animation:.76s both keyboard-key-glint}.keyboard-guide__key-label{fill:#fff;stroke:#051e26c2;stroke-width:1.35px;paint-order:stroke fill;dominant-baseline:central;text-anchor:middle;filter:drop-shadow(0 0 4px #ffffff52);-webkit-user-select:none;user-select:none;font-family:Arial,Helvetica,sans-serif;font-weight:800}.keyboard-guide__key-wave{fill:none;stroke-linecap:round;opacity:0;transform-box:fill-box;transform-origin:50%}.keyboard-guide__key-wave--wide{stroke:#4ff1d5a8;stroke-width:2.2px;filter:drop-shadow(0 0 8px #40f0d6d1);animation:.76s cubic-bezier(.2,.78,.2,1) both keyboard-key-wave}.keyboard-guide__key-wave--tight{stroke:#5aa7ff94;stroke-width:1.5px;filter:drop-shadow(0 0 5px #5aa7ffa8);animation:.76s cubic-bezier(.2,.78,.2,1) 90ms both keyboard-key-wave}.keyboard-guide__shift-plate{fill:#9affee29;stroke:#9affeed9;stroke-width:1.4px;paint-order:stroke fill}.keyboard-guide__hand{top:var(--hand-top);opacity:.8;pointer-events:none;width:100%;height:100%;transform:translate(var(--hand-offset-x), var(--hand-offset-y)) scale(2.2);z-index:3;position:absolute;left:0}@keyframes mascot-pop{0%{transform:translateY(0)scale(.96)}45%{transform:translateY(-10px)scale(1.05)}to{transform:translateY(0)scale(1)}}@keyframes mascot-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}75%{transform:rotate(-2deg)}}@keyframes toast-rise{0%{opacity:0;transform:translateY(14px)scale(.96)}12%,82%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-8px)scale(.98)}}@keyframes keyboard-key-press{0%{opacity:0;transform:translateY(0)scale(1)}12%{opacity:1;transform:translateY(1.7px)scale(.96)}42%{opacity:1;transform:translateY(.4px)scale(1.04)}to{opacity:.92;transform:translateY(0)scale(1)}}@keyframes keyboard-key-glow{0%{opacity:0}14%{opacity:1}to{opacity:.86}}@keyframes keyboard-key-wave{0%{opacity:0;transform:scaleX(.62)scaleY(.72)}18%{opacity:.9}to{opacity:0;transform:scaleX(2.35)scaleY(1.16)}}@keyframes keyboard-key-glint{0%{opacity:0;transform:translate(-8px)scaleX(.4)}28%{opacity:.88}to{opacity:0;transform:translate(10px)scaleX(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.keyboard-guide[data-reduce-motion=true] .keyboard-guide__key-highlight-group,.keyboard-guide[data-reduce-motion=true] .keyboard-guide__key-plate,.keyboard-guide[data-reduce-motion=true] .keyboard-guide__key-glint,.keyboard-guide[data-reduce-motion=true] .keyboard-guide__key-wave{animation:none}.keyboard-guide[data-reduce-motion=true] .keyboard-guide__key-highlight-group{opacity:.94}.keyboard-guide[data-reduce-motion=true] .keyboard-guide__key-wave{opacity:.28;transform:scaleX(1.7)scaleY(1.05)}@media (width<=900px){.lesson-typing-toolbar{grid-template-columns:auto 1fr auto;gap:.75rem;padding:1rem}.lesson-toolbar-actions{gap:1rem}.lesson-typing-main{height:calc(100vh - 3.5rem);min-height:0}.lesson-word-board{gap:1.6rem 2rem;width:100%;margin-top:3rem;padding-inline:.75rem}.lesson-word-board.is-pinyin-board{-moz-column-gap:2.65rem;gap:2.5rem 2.65rem;width:100%;padding-inline:.75rem}.lesson-bottom-panel{min-height:13.5rem;padding-bottom:4.25rem}.lesson-stats{justify-content:center;max-width:none;bottom:1.55rem;left:1rem;right:1rem}.lesson-feedback-stack{width:min(12rem,100vw - 1.5rem);bottom:5rem;right:.75rem}}@media (width<=560px){.lesson-typing-toolbar{grid-template-columns:auto minmax(0,1fr)}.lesson-toolbar-title,.lesson-tool-button__label--mobile-hidden,.lesson-follow-toggle__label{display:none}.lesson-tool-button{font-size:.75rem}.lesson-follow-toggle{gap:.35rem;font-size:.75rem}.lesson-follow-toggle__switch{width:2rem;height:1.05rem}.lesson-follow-toggle__thumb{width:.78rem;height:.78rem;transform:translate(.14rem)}.lesson-follow-toggle__switch[data-state=checked] .lesson-follow-toggle__thumb{transform:translate(1.08rem)}.lesson-typing-toolbar{padding-inline:.75rem}.lesson-toolbar-actions{gap:.62rem}.lesson-toolbar-actions .lesson-tool-button{gap:.25rem}.lesson-toolbar-actions .lesson-tool-button svg{width:.88rem;height:.88rem}.lesson-content-feedback-dialog{gap:.85rem;padding:.85rem;top:4.25rem}.lesson-content-feedback-actions,.lesson-content-feedback-success{flex-direction:column;align-items:stretch}.lesson-content-feedback-primary,.lesson-content-feedback-secondary{width:100%}.lesson-word-board{-moz-column-gap:1.2rem;gap:1.35rem 1.2rem;margin-top:2.4rem}.lesson-word-token:not(.is-word-token){--lesson-pinyin-size:1.55rem;--lesson-hanzi-size:1.68rem;--lesson-char-slot:calc(var(--lesson-pinyin-size) * .7);width:max(3.4rem, calc(var(--lesson-token-chars,3) * var(--lesson-char-slot) + .6rem));min-width:0;max-width:calc(100vw - 2rem)}.lesson-word-board.is-pinyin-board .lesson-word-token{--lesson-pinyin-size:clamp(1.45rem, 7.8vw, 2.25rem);--lesson-char-slot:calc(var(--lesson-pinyin-size) * .72);width:max(3.85rem, calc(var(--lesson-token-chars,2) * var(--lesson-char-slot) + .9rem));min-width:max(3.85rem, calc(var(--lesson-token-chars,2) * var(--lesson-char-slot) + .9rem))}.lesson-word-pinyin{font-size:var(--lesson-pinyin-size)}.lesson-word-hanzi{font-size:1.48rem}.lesson-bottom-panel{min-height:12.5rem}}@media (height<=950px){.lesson-typing-main{grid-template-rows:minmax(0,1fr) auto;height:calc(100vh - 3.5rem);min-height:0}.lesson-word-board{--lesson-board-margin-top:clamp(2rem, 6vh, 5.5rem);margin-top:var(--lesson-board-margin-top);min-height:0;max-height:calc(100% - var(--lesson-board-margin-top));overflow-y:auto}.lesson-word-board.is-pinyin-board{min-height:0}.lesson-bottom-panel{min-height:0;padding:clamp(.5rem,1.2vh,.9rem) clamp(.75rem,2vw,2rem) 1.4rem}.lesson-keyboard-wrap .keyboard-guide{margin-top:.75rem}}@media (height<=780px){.lesson-word-board{--lesson-board-margin-top:clamp(1.25rem, 3.5vh, 2.75rem);row-gap:clamp(1.3rem,3vh,2.4rem)}.lesson-word-board.is-pinyin-board{row-gap:clamp(1.6rem,4.2vh,3.2rem)}.lesson-word-token{--lesson-pinyin-size:clamp(1.4rem, 3.4vh, 2.3rem)}.lesson-word-board.is-pinyin-board .lesson-word-token{--lesson-pinyin-size:clamp(1.8rem, 5.2vh, 3.1rem)}.lesson-word-hanzi{font-size:clamp(1.6rem,4.4vh,2.7rem)}.lesson-bottom-panel{padding-top:.5rem;padding-bottom:2rem}.lesson-keyboard-wrap{width:min(42rem,100vw - 2rem,80.7572vh)}.lesson-keyboard-wrap .keyboard-guide{margin-top:.5rem}.lesson-stats{bottom:1.1rem;right:1.25rem}}@supports (height:100dvh){.lesson-typing-shell{height:100dvh;min-height:0}.lesson-typing-main{height:calc(100dvh - 3.5rem);min-height:0}}@keyframes metro-shake{0%,to{transform:translate(0)}30%{transform:translate(-5px)}70%{transform:translate(5px)}}.metro-shake{animation:.18s ease-out metro-shake}.metro-game-shell{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--scene);color:color-mix(in oklch, var(--bg) 90%, white)}.metro-game-map{background:var(--scene)}.metro-game-bar{border-bottom:1px solid color-mix(in oklch, var(--bg) 12%, transparent);background:color-mix(in oklch, var(--scene) 92%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.metro-game-panel{border:1px solid color-mix(in oklch, var(--bg) 12%, transparent);background:color-mix(in oklch, var(--scene) 82%, black 8%);color:color-mix(in oklch, var(--bg) 88%, white)}.metro-metric{border-right:1px solid color-mix(in oklch, var(--bg) 12%, transparent);color:color-mix(in oklch, var(--bg) 70%, var(--muted))}.metro-metric:last-child{border-right:0}.metro-metric strong{color:color-mix(in oklch, var(--bg) 92%, white)}.metro-icon-button{color:#cbd5e1;background:#ffffff0b;border:1px solid #ffffff1a;border-radius:.375rem;flex:none;place-items:center;width:2.25rem;height:2.25rem;transition:border-color .16s,background-color .16s,color .16s,transform .16s;display:grid}.metro-icon-button:hover,.metro-icon-button:focus-visible{color:#fff;background:#ffffff1a;border-color:#fff3;outline:none}.metro-icon-button:active{transform:translateY(1px)}.metro-icon-button:disabled{cursor:default;opacity:.32}.metro-route-viewport-motion,.metro-train-motion{transition:transform .2s cubic-bezier(.22,1,.36,1)}.metro-train-motion,.metro-active-ring,.metro-arrival-ring,.metro-signal-flash{transform-box:fill-box;transform-origin:50%}.metro-active-ring{animation:1.6s ease-in-out infinite metro-active-pulse}.metro-arrival-ring{animation:.45s ease-out both metro-arrival-pulse}.metro-signal-flash{animation:.18s ease-out both metro-signal-flash}.metro-board-arrived{box-shadow:0 18px 48px #00000061,0 0 0 3px #34d39914}@keyframes metro-active-pulse{0%,to{opacity:.42;transform:scale(.88)}50%{opacity:.95;transform:scale(1.12)}}@keyframes metro-arrival-pulse{0%{opacity:.9;transform:scale(.72)}to{opacity:0;transform:scale(1.9)}}@keyframes metro-signal-flash{0%{opacity:0;transform:scale(.6)}35%{opacity:1;transform:scale(1.1)}to{opacity:0;transform:scale(1.5)}}@media (width<=389px){.metro-icon-button{width:2rem;height:2rem}.metro-station-board{padding-left:.875rem;padding-right:.875rem}}@media (prefers-reduced-motion:reduce){.metro-shake,.metro-active-ring,.metro-arrival-ring,.metro-signal-flash{animation:none}.metro-route-viewport-motion,.metro-train-motion,.metro-icon-button{transition:none}}.seo-fallback{color:#171b23;width:min(100% - 2rem,72rem);margin:0 auto;padding:4rem 0}.seo-fallback h1{max-width:48rem;font-size:clamp(2rem,5vw,3.5rem);font-weight:900;line-height:1.15}.seo-fallback>p{color:#475569;max-width:48rem;margin-top:1rem;line-height:1.8}.seo-fallback article{background:#fff;border:1px solid #d8dee8;border-radius:.5rem;max-width:48rem;margin-top:2rem;padding:1.25rem}.seo-fallback article h2{margin-bottom:.75rem;font-size:1.25rem;font-weight:900}.seo-fallback article p{color:#334155;font-family:PingFang SC,Microsoft YaHei,ui-sans-serif,system-ui,sans-serif;font-size:1.1rem;line-height:1.9}.seo-fallback ul{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.75rem;margin-top:2rem;padding:0;list-style:none;display:grid}.seo-fallback a{color:#0f766e;background:#fff;border:1px solid #d8dee8;border-radius:.5rem;min-height:2.75rem;padding:.75rem 1rem;font-weight:800;text-decoration:none;display:block}.placeholder\:text-slate-400::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.hover\:border-slate-400:hover{--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity,1))}.hover\:bg-\[\#1fb98e\]:hover{--tw-bg-opacity:1;background-color:rgb(31 185 142/var(--tw-bg-opacity,1))}.hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.hover\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.hover\:text-slate-950:hover{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}.focus\:border-\[\#25d6a2\]:focus{--tw-border-opacity:1;border-color:rgb(37 214 162/var(--tw-border-opacity,1))}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-\[\#25d6a2\]\/20:focus{--tw-ring-color:#25d6a233}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-\[\#0f8f6e\]:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(15 143 110/var(--tw-ring-opacity,1))}.focus-visible\:ring-\[\#25d6a2\]:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(37 214 162/var(--tw-ring-opacity,1))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.data-\[state\=checked\]\:translate-x-\[22px\][data-state=checked]{--tw-translate-x:22px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:bg-\[\#25d6a2\][data-state=checked]{--tw-bg-opacity:1;background-color:rgb(37 214 162/var(--tw-bg-opacity,1))}@media (prefers-reduced-motion:no-preference){@keyframes spin{to{transform:rotate(360deg)}}.motion-safe\:animate-spin{animation:1s linear infinite spin}}@media (width>=640px){.sm\:bottom-\[18rem\]{bottom:18rem}.sm\:inline{display:inline}.sm\:h-56{height:14rem}.sm\:grid-cols-\[minmax\(0\,1fr\)_180px\]{grid-template-columns:minmax(0,1fr) 180px}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pb-5{padding-bottom:1.25rem}.sm\:pb-6{padding-bottom:1.5rem}.sm\:pt-4{padding-top:1rem}.sm\:text-\[10px\]{font-size:10px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media (width>=768px){.md\:block{display:block}.md\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}}@media (width>=1024px){.lg\:bottom-\[17\.5rem\]{bottom:17.5rem}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:grid-cols-\[minmax\(0\,1\.55fr\)_minmax\(320px\,0\.9fr\)\]{grid-template-columns:minmax(0,1.55fr) minmax(320px,.9fr)}}
