@font-face{font-family:Lora;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/03b436aa846269de-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Lora;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/0086f8992871c45b-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Lora;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/ab00a911ac2adf48-s.woff2) format("woff2");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-209f,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-family:Lora;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/36008747766f78c6-s.woff2) format("woff2");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ae,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f700-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f8d0-1f8d8,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fac6,u+1fac8,u+1facc-1fadd,u+1fadf-1faeb,u+1faef-1fafa,u+1fb??}@font-face{font-family:Lora;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/6d38f9d4e0f4772b-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Lora;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/08aedeceaf1dcd57-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Lora;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/5c0c2bcbaa4149ca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Lora Fallback;src:local("Times New Roman");ascent-override:87.33%;descent-override:23.78%;line-gap-override:0.00%;size-adjust:115.20%}.__className_c19f6d{font-family:Lora,Lora Fallback;font-style:normal}.__variable_c19f6d{--font-lora:"Lora","Lora Fallback"}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_d8ebd1{font-family:Inter,Inter Fallback;font-style:normal}.__variable_d8ebd1{--font-inter:"Inter","Inter Fallback"}:root{--bg:#f3eee6;--card:#fbf9f5;--ink:#4d453c;--muted:#857b6f;--line:#e2dacd;--accent:#d8b299;--accent-ink:#4d453c;--accent-strong:#d8b299;--soft:#ebe4d8;--good:#3f7a4a;--radius:6px;--serif:var(--font-lora),Georgia,"Noto Serif SC","Songti SC","SimSun",serif;--sans:var(--font-inter),system-ui,-apple-system,"Segoe UI","PingFang SC","Noto Sans SC",sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#1b1814;--card:#24201a;--ink:#efe8dc;--muted:#a39a8b;--line:#38322a;--soft:#2d2820;--accent:#d8b299;--accent-ink:#2c2823;--accent-strong:#d8b299}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.container{max-width:960px;margin:0 auto;padding:24px 20px 80px}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:10;gap:20px;flex-wrap:wrap;padding:12px 24px;background:var(--bg);border-bottom:1px solid var(--line)}.brand,.nav{display:flex;align-items:center}.brand{font-family:var(--serif);font-size:1.15rem;gap:10px}.nav nav{display:flex;gap:20px;flex:1 1;flex-wrap:wrap;margin-left:8px}.nav nav a{padding:4px 0;color:var(--muted);font-size:.95rem;border-bottom:1.5px solid transparent}.nav nav a.active,.nav nav a:hover{color:var(--ink);border-bottom-color:var(--accent)}.lang{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}.lang button{border:0;background:transparent;padding:4px 12px;cursor:pointer;color:var(--muted);border-radius:0}.lang button.on{background:var(--ink);color:var(--bg)}h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:-.005em}h1{font-size:1.9rem;margin:8px 0 4px}h2{font-size:1.25rem;margin:28px 0 10px}.sub{color:var(--muted);margin:0 0 20px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:12px}.grid{display:grid;grid-gap:12px;gap:12px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spacer{flex:1 1}.muted{color:var(--muted)}.btn,button{font:inherit;cursor:pointer;border-radius:4px;padding:8px 16px;border:1px solid var(--line);background:var(--card);color:var(--ink)}button:hover:not(:disabled){background:var(--soft)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.primary:hover:not(:disabled){filter:brightness(.96);background:var(--accent)}input,select,textarea{font:inherit;width:100%;padding:10px 12px;border-radius:4px;border:1px solid var(--line);background:var(--card);color:var(--ink)}textarea{resize:vertical;min-height:90px}.badge{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--soft);font-size:.8rem;color:var(--muted)}.sentence{margin:0 0 12px}.zh{font-size:1.25rem;line-height:2.1}.zh>button{width:28px;height:28px;padding:0;margin-right:8px;font-size:.75rem;line-height:1;display:inline-grid;place-items:center;vertical-align:middle}.w{display:inline-block;text-align:center;cursor:pointer;border-radius:6px;padding:0 1px}.w:hover{background:var(--soft)}.w ruby{ruby-position:over;ruby-align:center}.w rt{font-size:.55em;color:var(--muted)}.w.hide-py rt{display:none}.trans{color:var(--muted);margin-top:2px}.popover{position:-webkit-sticky;position:sticky;bottom:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:0 8px 28px rgba(0,0,0,.15)}.popover .big{font-size:1.6rem}.chat{display:flex;flex-direction:column;gap:12px}.bubble{padding:10px 14px;border-radius:16px;max-width:85%;white-space:pre-wrap}.bubble.me{align-self:flex-end;background:var(--accent);color:var(--accent-ink)}.bubble.ai{align-self:flex-start;background:var(--card);border:1px solid var(--line)}.fix{border-left:3px solid var(--accent);padding:6px 10px;margin-top:8px;background:var(--soft);border-radius:8px}.fix del{color:var(--muted)}.fix ins{color:var(--good);text-decoration:none;font-weight:600}.table{width:100%;border-collapse:collapse}.table td,.table th{text-align:left;padding:8px;border-bottom:1px solid var(--line);vertical-align:top}.flash{font-size:2.6rem;text-align:center;padding:24px 0}.err{color:var(--ink);border-left:3px solid var(--accent);padding-left:8px}.lrow{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.lrow:last-child{border-bottom:0}.lrow .lzh{font-size:1.35rem;line-height:1.4}.lrow .lpy{color:var(--muted);font-size:.95rem}.lrow .ltr{flex:1 1;min-width:0}.lrow .lbtns{display:flex;gap:6px}.lrow .lbtns button{padding:4px 10px}.numgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));grid-gap:8px;gap:8px}.numcell{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;text-align:center;line-height:1.25}.numcell .nzh{font-size:1.4rem}.numcell .npy{color:var(--muted);font-size:.8rem}.numcell .nlb{color:var(--muted);font-size:.76rem}.optgrid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:12px}.optgrid button{text-align:left}.optgrid button.right{border-color:var(--good)}.optgrid button.wrong{border-color:var(--accent-strong)}.topiccard{display:block}.topiccard:hover{background:var(--soft)}.topicicon{display:inline-block;min-width:44px;text-align:center;font-size:1.3rem;font-weight:700;color:var(--accent-strong)}.tips{margin:0;padding-left:20px}.tips li{margin-bottom:6px}.clock{color:var(--ink)}.clockopts{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px;margin-top:12px;justify-items:center}.clockopts button{padding:8px;line-height:0}.clockopts button.right{border-color:var(--good);border-width:2px}.clockopts button.wrong{border-color:var(--accent-strong);border-width:2px}.bigchar{font-size:56px;line-height:1.1}.zhbig{font-size:1.2em}.small{font-size:.85em}.charcard{text-align:center}.dayrow{display:flex;align-items:center;gap:12px;padding:8px 14px}.dayrow.today{border-color:var(--accent)}.smallchar{font-size:28px;padding:2px 10px;border-radius:8px;background:var(--soft);color:var(--ink)}.tzg{width:280px;height:280px;border:2px solid var(--line);background:var(--card);position:relative;margin:0 auto}.tzg:after,.tzg:before{content:"";position:absolute;pointer-events:none}.tzg:before{left:0;right:0;top:50%;border-top:1px dashed var(--line)}.tzg:after{top:0;bottom:0;left:50%;border-left:1px dashed var(--line)}.tzg-inner{position:absolute;inset:0;z-index:1;touch-action:none}.tzg-inner svg{width:100%;height:100%}.stepgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));grid-gap:10px;gap:10px}.stepcell{text-align:center;border:1px solid var(--line);border-radius:8px;padding:6px}.stepcell,.stepsvg{background:var(--card)}.stepsvg{width:100%;height:auto}.st-done{fill:var(--ink)}.st-cur{fill:var(--accent)}.st-todo{fill:var(--line);opacity:.45}.stepno{font-weight:600}.stepname{margin-top:2px}.writecredit{font-size:.9em}.locked{opacity:.55}.hero{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:24px;gap:24px;align-items:center;padding:28px 0 8px}.hero-eyebrow{font-family:var(--serif);font-size:1.15rem;color:var(--muted)}.hero h1{font-size:3rem;line-height:1.1;margin:6px 0 16px;letter-spacing:-.015em}.hero-lead{color:var(--muted);font-size:1.05rem;max-width:430px;margin:0 0 24px}.hero-cta{display:inline-block;background:#d8b299;color:#4d453c;padding:8px 16px;font-size:.9rem;border-radius:4px;font-weight:500}.hero-cta:hover{filter:brightness(1.06)}.hero-cta2{display:inline-block;margin-left:10px;padding:8px 16px;font-size:.9rem;border:1px solid var(--line);border-radius:4px}.hero-cta2:hover{background:var(--soft)}.devices{position:relative;height:300px}.laptop{position:absolute;left:0;top:16px;width:360px;background:#2c2823;border-radius:12px 12px 4px 4px;padding:11px 11px 13px;box-shadow:0 18px 40px rgba(77,69,60,.2)}.laptop:after{content:"";position:absolute;left:-26px;right:-26px;bottom:-11px;height:11px;background:#cfc7ba;border-radius:0 0 14px 14px}.scr{background:#fbf9f5;color:#4d453c;border-radius:4px;height:210px;padding:14px;display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;overflow:hidden}.scr .t{font-family:var(--serif);font-size:.75rem;margin-bottom:6px}.scr .chip{display:inline-block;font-size:9px;border:1px solid #e2dacd;border-radius:99px;padding:1px 7px;color:#857b6f;margin-bottom:5px}.scr .zhs{font-size:1.15rem;letter-spacing:.06em;font-family:var(--serif)}.scr .pyl{font-size:9px;color:#857b6f}.scr .ln{height:5px;background:#e2dacd;border-radius:3px;margin:6px 0}.scr .chbox{border:1px solid #e2dacd;border-radius:4px;height:122px;display:grid;place-items:center;font-family:var(--serif);font-size:56px;position:relative}.scr .chbox:after,.scr .chbox:before{content:"";position:absolute;border:0 dashed #e2dacd}.scr .chbox:before{left:0;right:0;top:50%;border-top-width:1px}.scr .chbox:after{top:0;bottom:0;left:50%;border-left-width:1px}.scr .chbox span{position:relative;z-index:1}.phone{position:absolute;left:296px;top:70px;width:140px;height:210px;background:#2c2823;border-radius:22px;padding:7px;box-shadow:0 18px 40px rgba(77,69,60,.25)}.ps{background:#fbf9f5;color:#4d453c;border-radius:16px;height:100%;padding:12px 9px;overflow:hidden}.ps .t{font-family:var(--serif);font-size:.72rem;margin-bottom:4px}.ps .prow{display:flex;align-items:center;gap:7px;padding:6px 0;border-bottom:1px solid #e2dacd;font-size:9.5px}.ps .dot{width:20px;height:20px;border-radius:5px;background:#ebe4d8;display:grid;place-items:center;color:var(--accent-strong);font-size:11px;font-family:var(--serif)}.home-cards{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px;margin:28px 0 8px}.home-cards .card{margin:0;display:grid;grid-template-columns:auto 1fr;grid-column-gap:16px;column-gap:16px;align-items:center;padding:16px 22px}.home-cards .card:hover{background:var(--soft)}.home-cards .ic{grid-row:1/3;font-size:1.75rem;color:var(--accent-strong);font-family:var(--serif);width:40px;text-align:center}.home-cards h3{margin:0;font-size:1.1rem;line-height:1.3}.home-cards p{margin:0;color:var(--muted);font-size:.92rem}@media (max-width:760px){.nav{padding:10px 16px;gap:12px}.nav nav{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;width:100%;order:3;margin:0}.container{padding:16px 16px 60px}.hero{grid-template-columns:1fr}.hero h1{font-size:2.3rem}.devices{display:none}.home-cards{grid-template-columns:1fr}.hero-cta2{margin:10px 0 0}}