@font-face{font-family:Inter;font-style:normal;font-weight:400;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:400;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:400;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:400;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:400;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:400;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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:400;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;font-style:normal;font-weight:500;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:500;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:500;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:500;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:500;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:500;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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:500;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;font-style:normal;font-weight:600;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:600;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:600;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:600;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:600;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:600;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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:600;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;font-style:normal;font-weight:700;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:700;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:700;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:700;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:700;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:700;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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:700;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;font-style:normal;font-weight:800;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:800;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:800;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:800;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:800;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:800;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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:800;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_48b81b{font-family:Inter,Inter Fallback;font-style:normal}.__variable_48b81b{--font-sans:"Inter","Inter Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-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:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_e896d9{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_e896d9{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}:root{--paper:#ffffff;--paper-deep:#f5f6ff;--paper-deeper:#eaecfd;--ink:#0f1117;--ink-soft:#3d4152;--ink-muted:#8b90a7;--rule:#e4e6f0;--rule-soft:#f0f1f8;--accent:#4e59ed;--accent-deep:#3b44c4;--accent-soft:#eef0fd;--good:#16a34a;--good-soft:#dcfce7;--bad:#dc2626;--bad-soft:#fee2e2;--warn:#d97706;--warn-soft:#fef3c7;--serif:var(--font-sans),-apple-system,system-ui,"Segoe UI",sans-serif;--sans:var(--font-sans),-apple-system,system-ui,"Segoe UI",sans-serif;--mono:var(--font-mono),ui-monospace,SFMono-Regular,monospace;--max-w:1200px;--radius:4px;--radius-sm:4px;--ease-fast:0.12s ease;--ease-smooth:0.25s cubic-bezier(0.4,0,0.2,1)}[data-theme=dark]{--paper:#1e2030;--paper-deep:#262840;--paper-deeper:#2e3050;--ink:#e2e4f0;--ink-soft:#b0b4cc;--ink-muted:#727694;--rule:#363956;--rule-soft:#2c2f48;--accent:#7b85f5;--accent-deep:#9da5ff;--accent-soft:rgba(123,133,245,0.12);--good:#4ade80;--good-soft:rgba(74,222,128,0.1);--bad:#f87171;--bad-soft:rgba(248,113,113,0.1);--warn:#fbbf24;--warn-soft:rgba(251,191,36,0.1)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit}button{font:inherit;cursor:pointer}.lesson-nav{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:var(--paper);border-bottom:1px solid var(--rule);padding:0 32px;gap:16px;height:56px}.lesson-nav,.lesson-nav-logo{display:flex;align-items:center}.lesson-nav-logo{gap:10px;text-decoration:none;color:var(--ink);font-weight:700;font-size:15px;letter-spacing:-.01em}.lesson-nav-logo img{width:28px;height:28px;border-radius:50%}.lesson-nav-divider{width:1px;height:20px;background:var(--rule)}.lesson-nav-title{font-size:14px;font-weight:500;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:400px}.lesson-nav-actions{margin-left:auto;gap:2px}.lesson-nav-actions,.nav-btn{display:flex;align-items:center}.nav-btn{justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--ink-muted);border-radius:var(--radius);cursor:pointer;transition:all var(--ease-fast);position:relative}.nav-btn:hover{background:var(--paper-deep);color:var(--ink)}.nav-btn svg{width:20px;height:20px}.width-dropdown{position:absolute;top:calc(100% + 6px);right:0;background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:0 8px 24px -4px rgba(0,0,0,.12);padding:4px;z-index:200;min-width:140px}.width-option{display:block;width:100%;padding:8px 14px;background:none;border:none;font-size:13px;font-weight:500;color:var(--ink-soft);text-align:left;border-radius:var(--radius);cursor:pointer;transition:all var(--ease-fast)}.width-option:hover{background:var(--paper-deep);color:var(--ink)}.width-option.active{color:var(--accent);font-weight:600}.share-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--ink);color:var(--paper);padding:10px 20px;border-radius:var(--radius);font-size:13px;font-weight:600;z-index:300;opacity:0;transition:all .25s cubic-bezier(.4,0,.2,1);pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,.15)}.share-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}main.lesson.width-compact{--max-w:720px}main.lesson.width-standard{--max-w:960px}main.lesson.width-wide{--max-w:1200px}.progress-wrap{flex:1 1;display:flex;align-items:center;gap:12px;justify-content:flex-end}.progress-bar{width:120px;height:4px;background:var(--rule);border-radius:var(--radius);overflow:hidden;flex-shrink:0}.progress-fill{height:100%;background:var(--accent);width:0;transition:width .4s cubic-bezier(.4,0,.2,1);border-radius:var(--radius)}.progress-text{font-size:12px;font-weight:500;color:var(--ink-muted);letter-spacing:.02em;white-space:nowrap;display:flex;gap:8px;align-items:center}main.lesson{max-width:var(--max-w);margin:0 auto;padding:48px 32px 100px}@media (max-width:640px){main.lesson{padding:32px 20px 80px}.lesson-nav{padding:0 20px}.lesson-nav-title{display:none}}.lesson-header{margin-bottom:48px;padding-bottom:32px;border-bottom:1px solid var(--rule)}.eyebrow{display:inline-flex;align-items:center;gap:6px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 12px;border-radius:var(--radius);margin-bottom:20px}.lesson-title{font-size:clamp(28px,5vw,40px);font-weight:800;line-height:1.15;letter-spacing:-.03em;margin:0 0 12px;color:var(--ink)}.lesson-subtitle{font-size:17px;line-height:1.55;color:var(--ink-soft);margin:0 0 24px;font-weight:400}.lesson-meta{display:flex;flex-wrap:wrap;gap:8px}.meta-item{display:flex;align-items:center;gap:5px;background:var(--paper-deep);border:1px solid var(--rule);border-radius:var(--radius);padding:5px 14px}.meta-label{font-size:11px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.07em}.meta-value{font-size:13px;font-weight:500;color:var(--ink)}.block{margin:0 0 20px;scroll-margin-top:80px;background:var(--paper-deep);border-radius:var(--radius);padding:24px 28px}.block-header{margin-bottom:18px}.block-header-top{display:flex;align-items:center;gap:12px;margin-bottom:8px}.block-num{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;background:var(--accent);color:#fff;border-radius:var(--radius);font-size:12px;font-weight:700}.block-instruction-inline,.block-title{font-size:17px;font-weight:600;line-height:1.3;letter-spacing:-.01em;margin:0;color:var(--ink)}.block-instruction-inline{flex:1 1}.block-instruction-sub{font-size:14px;font-weight:500;color:var(--ink-soft);margin:0 0 12px;line-height:1.5}.block-intro{font-size:14px;line-height:1.6;color:var(--ink-muted);margin:4px 0 0}.block-heading,.block-instruction{display:none}.block-footer{margin-top:20px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.btn-check{background:var(--accent);color:#fff;padding:8px 20px;border:none;border-radius:var(--radius);font-size:13px;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:all var(--ease-fast)}.btn-check:hover{background:var(--accent-deep)}.btn-reveal{background:transparent;color:var(--ink-soft);padding:8px 16px;border:1px solid var(--rule);border-radius:var(--radius);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--ease-fast)}.btn-reveal:hover{border-color:var(--accent);color:var(--accent)}.score-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--good-soft);color:var(--good);border-radius:var(--radius);font-size:13px;font-weight:600}.score-pill.partial{background:var(--paper-deep);color:var(--ink)}.prompt-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;counter-reset:prompt-counter}.prompt-item{counter-increment:prompt-counter;padding:14px 16px;background:var(--paper);border-radius:var(--radius);position:relative;font-size:15px;line-height:1.55;color:var(--ink);font-weight:400;display:flex;gap:10px}.prompt-item:before{content:counter(prompt-counter,decimal-leading-zero);color:var(--ink-muted);font-size:13px;font-weight:600;flex-shrink:0;min-width:20px}.prompt-list.no-counter .prompt-item{padding-left:16px}.prompt-list.no-counter .prompt-item:before{display:none}.quote-card{background:var(--paper);border-radius:var(--radius);padding:24px 24px 24px 28px;border-left:3px solid var(--accent);position:relative}.quote-text{font-size:20px;font-weight:500;line-height:1.5;color:var(--ink);margin:0 0 12px}.quote-attribution{font-size:13px;font-weight:600;color:var(--ink-muted);letter-spacing:.04em}.quote-attribution:before{content:"— "}.video-embed{margin:0}.video-container{margin:0 0 16px;aspect-ratio:16/9;background:var(--ink);border-radius:var(--radius);overflow:hidden;box-shadow:0 4px 16px -4px rgba(0,0,0,.08)}.video-container iframe{width:100%;height:100%;border:0}.video-container video{width:100%;height:100%}.audio-container{margin:0 0 16px}.audio-container audio{width:100%}.transcript{border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden}.transcript,.transcript[open]{background:var(--paper)}.transcript summary{list-style:none;cursor:pointer;padding:12px 16px;display:flex;align-items:center;gap:10px;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:var(--paper-deep);transition:background var(--ease-fast)}.transcript summary::-webkit-details-marker{display:none}.transcript summary:hover{background:var(--paper-deeper)}.transcript[open] summary{border-bottom:1px solid var(--rule)}.transcript-summary-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.transcript-summary-meta{flex:1 1;font-size:13px;color:var(--ink-muted)}.transcript-chevron{color:var(--ink-muted);transition:transform var(--ease-smooth);flex-shrink:0}.transcript[open] .transcript-chevron{transform:rotate(180deg)}.transcript-body{padding:4px 0;max-height:380px;overflow-y:auto}.transcript-segment{display:flex;gap:14px;padding:10px 16px;align-items:flex-start;transition:background var(--ease-fast)}.transcript-segment:hover{background:var(--paper-deep)}.transcript-time{flex-shrink:0;background:transparent;border:1px solid var(--rule);color:var(--accent);font-family:var(--mono);font-size:11px;font-weight:600;padding:3px 8px;border-radius:var(--radius);cursor:pointer;transition:all var(--ease-fast);margin-top:2px}.transcript-time:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.transcript-text{margin:0;font-size:15px;line-height:1.5;color:var(--ink);flex:1 1}.explanation-card{background:transparent;padding:0;position:relative}.explanation-tag{display:inline-flex;align-items:center;background:var(--accent);color:#fff;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 10px;border-radius:var(--radius);margin-bottom:16px}.explanation-body{font-size:16px;line-height:1.65;color:var(--ink);margin:0 0 20px}.explanation-body strong{font-weight:700;color:var(--accent-deep)}.explanation-section-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin:20px 0 10px}.explanation-examples{display:flex;flex-direction:column;gap:10px}.explanation-example{padding:14px 16px;background:var(--paper);border-radius:var(--radius)}.explanation-example-text{font-size:15px;color:var(--ink);line-height:1.5}.explanation-example-text strong{font-weight:700}.explanation-example-note{font-size:13px;color:var(--ink-muted);margin-top:4px;font-style:italic}.explanation-points{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.explanation-points li{padding:8px 0 8px 22px;position:relative;font-size:15px;line-height:1.5;color:var(--ink)}.explanation-points li:before{content:"→";position:absolute;left:0;top:8px;color:var(--accent);font-weight:700}.explanation-points li strong{font-weight:700;color:var(--accent-deep)}.question{padding:20px 0;border-top:1px solid var(--rule-soft)}.question:first-child{border-top:none;padding-top:4px}.question:last-child{border-bottom:1px solid var(--rule-soft)}.q-stem{font-size:16px;line-height:1.55;color:var(--ink);margin:0 0 14px;display:flex;gap:12px}.q-num{font-size:11px;font-weight:700;color:var(--accent);letter-spacing:.05em;flex-shrink:0;padding-top:4px;min-width:22px;font-family:var(--mono)}.q-stem-text{flex:1 1}.blank,.gap{display:inline-flex;align-items:center;justify-content:center;min-width:80px;min-height:28px;padding:0 8px;margin:0 2px;border-bottom:2px solid var(--accent);background:var(--accent-soft);border-radius:4px 4px 0 0;transition:background var(--ease-fast);vertical-align:baseline}.blank.correct,.gap.correct{border-color:var(--good);background:var(--good-soft)}.blank.correct .filled-word,.gap.correct .filled-word{color:var(--good)}.blank.incorrect,.gap.incorrect{border-color:var(--bad);background:var(--bad-soft)}.blank.incorrect .filled-word,.gap.incorrect .filled-word{color:var(--bad)}.blank.drag-over,.gap.drag-over{border-color:var(--accent);background:rgba(78,89,237,.18);box-shadow:0 0 0 3px var(--accent-soft);transform:scale(1.05);transition:all .15s ease}.filled-word{font-size:16px;font-weight:600;color:var(--accent);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:0 4px}.filled-word:hover{opacity:.75}.word-bank{margin:0 0 20px;padding:14px 18px;background:var(--paper);border-radius:var(--radius);display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:52px}.word-bank-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-right:4px}.chip{display:inline-flex;align-items:center;padding:5px 12px;background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);font-size:14px;font-weight:500;color:var(--ink);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all var(--ease-fast)}.chip:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.chip.used{opacity:.3;pointer-events:none;border-style:dashed;text-decoration:line-through}.options{list-style:none;padding:0;margin:0;display:grid;grid-gap:6px;gap:6px}.option{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;background:var(--paper);border:1px solid transparent;border-radius:var(--radius);cursor:pointer;transition:all var(--ease-fast);font-size:15px;line-height:1.4;color:var(--ink);text-align:left;width:100%}.option:hover:not(.option-correct):not(.option-incorrect){border-color:var(--accent);background:var(--accent-soft)}.option-letter{font-size:11px;font-weight:700;color:var(--ink-muted);flex-shrink:0;padding-top:2px;text-transform:uppercase;font-family:var(--mono);width:18px}.option.selected{border-color:var(--accent);background:var(--accent-soft)}.option.selected .option-letter{color:var(--accent)}.option.option-correct{background:var(--good-soft);border-color:var(--good);color:var(--good)}.option.option-correct .option-letter{color:var(--good)}.option.option-incorrect{background:var(--bad-soft);border-color:var(--bad);text-decoration:line-through;-webkit-text-decoration-color:var(--bad);text-decoration-color:var(--bad)}.tf-buttons{display:flex;gap:8px}.tf-btn{padding:8px 20px;background:var(--paper);border:none;border-radius:var(--radius);font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:all var(--ease-fast)}.tf-btn:hover{border-color:var(--accent);color:var(--accent)}.tf-btn.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.tf-btn.tf-correct{background:var(--good-soft);color:var(--good);border-color:var(--good)}.tf-btn.tf-incorrect{background:var(--bad-soft);color:var(--bad);border-color:var(--bad);text-decoration:line-through}.tf-correction{margin:10px 0 0;padding:12px 16px;background:var(--good-soft);border-left:3px solid var(--good);border-radius:0 var(--radius) var(--radius) 0;font-size:14px;color:var(--ink);display:none}.tf-correction.show{display:block}.tf-correction strong{font-weight:700;color:var(--good)}.suggested-answer{margin:10px 0 0;padding:12px 16px;background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;font-size:14px;color:var(--ink-soft);display:none}.suggested-answer.show{display:block}.suggested-answer strong{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:4px}.ec-correction{margin:10px 0 0;padding:14px 16px;background:var(--good-soft);border-left:3px solid var(--good);border-radius:0 var(--radius) var(--radius) 0;display:none}.ec-correction.show{display:block}.ec-correction strong{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--good);display:block;margin-bottom:6px}.ec-diff{font-size:16px;line-height:1.55;color:var(--ink)}.ec-diff del.ec-del{color:var(--bad);text-decoration:line-through;text-decoration-thickness:2px;margin-right:2px;opacity:.7}.ec-diff ins.ec-ins{color:var(--good);text-decoration:none;font-weight:700;background:rgba(22,163,74,.12);padding:0 3px;border-radius:3px}.cloze-passage{font-size:17px;line-height:2;color:var(--ink);padding:20px 24px;margin:0 0 20px}.cloze-passage,.explanation-toggle{background:var(--paper);border-radius:var(--radius)}.explanation-toggle{margin:8px 0 0;padding:10px 14px;font-size:13px;color:var(--ink-soft);font-style:italic;display:none}.explanation-toggle.show{display:block}.reading-passage{background:var(--paper);border-left:3px solid var(--accent);border-radius:var(--radius);padding:20px 24px;margin-bottom:24px;font-size:15px;line-height:1.75;color:var(--ink)}.reading-passage p{margin:0 0 12px}.reading-passage p:last-child{margin-bottom:0}.reading-questions{display:flex;flex-direction:column;gap:16px}.matching-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.matching-col-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:10px}.matching-list{display:flex;flex-direction:column;gap:6px}.match-item{padding:12px 16px;background:var(--paper);border:1px solid transparent;border-radius:var(--radius);font-size:15px;line-height:1.4;color:var(--ink);cursor:pointer;transition:all var(--ease-fast);text-align:left;position:relative;font-weight:500}.match-item:hover:not(.matched):not(.matched-wrong){border-color:var(--accent);background:var(--accent-soft)}.match-item.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.match-item.matched{background:var(--good-soft);border-color:var(--good);color:var(--good);cursor:default}.match-item.matched-wrong{background:var(--bad-soft);border-color:var(--bad)}.match-drag-handle{font-size:14px;color:var(--ink-muted);flex-shrink:0;margin-right:4px;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.match-item.selected .match-drag-handle,.match-item:hover .match-drag-handle{color:var(--accent)}.match-item.drag-over{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.01)}.match-pair-num{position:absolute;top:6px;right:10px;font-size:10px;font-weight:700;color:var(--good);font-family:var(--mono)}.odd-row{padding:18px 0;border-top:1px solid var(--rule-soft)}.odd-row:first-child{border-top:none;padding-top:4px}.odd-row:last-child{border-bottom:1px solid var(--rule-soft)}.odd-row-header{font-size:15px;color:var(--ink);margin-bottom:12px;display:flex;align-items:baseline;gap:8px}.odd-row-num{font-size:11px;font-weight:700;color:var(--accent);letter-spacing:.05em;flex-shrink:0;font-family:var(--mono)}.odd-row-label{color:var(--ink-muted);font-size:13px}.odd-row-noun{font-weight:700;color:var(--ink);border-bottom:2px solid var(--accent);padding-bottom:1px}.odd-options{display:flex;flex-wrap:wrap;gap:8px}.odd-chip{padding:7px 16px;background:var(--paper);border:1px solid transparent;border-radius:var(--radius);font-size:15px;font-weight:500;color:var(--ink);cursor:pointer;transition:all var(--ease-fast)}.odd-chip:hover:not(.odd-correct):not(.odd-wrong){border-color:var(--accent);color:var(--accent)}.odd-chip.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.odd-chip.odd-correct{background:var(--good);color:#fff;border-color:var(--good)}.odd-chip.odd-wrong{background:var(--bad-soft);border-color:var(--bad);text-decoration:line-through}.rank-wrapper{display:grid;grid-template-columns:32px 1fr;grid-gap:8px;gap:8px}.rank-rail{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.rank-rail-num{flex:1 1;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--accent);min-height:54px;font-family:var(--mono)}.rank-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.rank-card{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--paper-deep);border:1.5px solid transparent;border-radius:var(--radius-sm);font-size:15px;font-weight:500;line-height:1.4;color:var(--ink);transition:all var(--ease-smooth);-webkit-user-select:none;-moz-user-select:none;user-select:none;min-height:54px}.rank-card:hover{background:var(--paper);border-color:var(--rule)}.rank-card.dragging{opacity:.4}.rank-handle{flex-shrink:0;color:var(--ink-muted);cursor:-webkit-grab;cursor:grab;padding:2px;line-height:0}.rank-handle:hover{color:var(--accent)}.rank-handle svg{width:16px;height:16px}.rank-text{flex:1 1}.rank-mobile-controls{display:none;flex-shrink:0;gap:4px}.rank-mobile-btn{background:transparent;border:1.5px solid var(--rule);color:var(--ink-soft);width:30px;height:30px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--ease-fast)}.rank-mobile-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.rank-mobile-btn:disabled{opacity:.3;cursor:not-allowed}.rank-mobile-btn svg{width:14px;height:14px}.not-found{max-width:480px;margin:100px auto;padding:0 32px;text-align:center}.not-found h1{font-size:48px;font-weight:800;letter-spacing:-.03em;margin:0 0 16px}.not-found p{font-size:17px;color:var(--ink-soft);line-height:1.6}@media (max-width:640px){.matching-grid{grid-template-columns:1fr;gap:20px}.rank-handle{display:none}.rank-mobile-controls{display:flex}.cloze-passage{font-size:16px;padding:20px}}.lesson-content{animation:fadeUp .4s ease both}.gate-blur{filter:blur(8px);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.gate-overlay{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;background:rgba(15,17,23,.35);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:24px}.gate-card{width:100%;max-width:400px;background:var(--paper);border-radius:16px;padding:40px 36px 32px;box-shadow:0 24px 64px -12px rgba(0,0,0,.2);animation:gateIn .3s ease both}@keyframes gateIn{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.gate-logo{display:flex;justify-content:center;margin-bottom:20px}.gate-logo img{width:48px;height:48px;border-radius:12px}.gate-heading{font-size:20px;font-weight:700;text-align:center;margin:0 0 6px;color:var(--ink);letter-spacing:-.02em}.gate-sub{font-size:14px;text-align:center;color:var(--ink-muted);margin:0 0 24px;line-height:1.5}.gate-google{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:11px 16px;background:var(--paper);border:1px solid var(--rule);border-radius:8px;font-size:14px;font-weight:500;color:var(--ink);cursor:pointer;transition:all var(--ease-fast);font-family:inherit}.gate-google:hover{background:var(--paper-deep);border-color:var(--ink-muted)}.gate-divider{display:flex;align-items:center;gap:14px;margin:20px 0;color:var(--ink-muted);font-size:12px}.gate-divider:after,.gate-divider:before{content:"";flex:1 1;height:1px;background:var(--rule)}.gate-field{margin-bottom:14px}.gate-field label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:5px}.gate-field input{width:100%;padding:10px 14px;border:1px solid var(--rule);border-radius:8px;font-size:14px;font-family:inherit;color:var(--ink);background:var(--paper);outline:none;transition:border-color var(--ease-fast)}.gate-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(78,89,237,.08)}.gate-field input::placeholder{color:var(--ink-muted)}.gate-forgot-row{display:flex;justify-content:flex-end;margin:-6px 0 16px}.gate-link{background:none;border:none;color:var(--accent);font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;padding:0;text-decoration:none}.gate-link:hover{text-decoration:underline}.gate-submit{width:100%;padding:11px 16px;background:var(--ink);color:var(--paper);border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity var(--ease-fast);margin-top:4px}.gate-submit:hover{opacity:.85}.gate-submit:disabled{opacity:.5;cursor:not-allowed}.gate-switch{text-align:center;margin-top:20px;font-size:13px;color:var(--ink-muted)}.gate-error{background:var(--bad-soft);color:var(--bad)}.gate-error,.gate-message{font-size:13px;font-weight:500;padding:10px 14px;border-radius:8px;margin-bottom:14px}.gate-message{background:var(--good-soft);color:var(--good)}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}