.lesson {
  --navy: var(--t-deep); --blue: #0b5ea8; --sky: #2f7fc1; --red: #e3202a; --ink: #1c2733; --mute: #5b6b7b;
  --line: #d5dde6; --tint: var(--t-tint); --tint2: #e7eff7; --th: #0b5ea8; --th-tint: #eef4fb;
}
.lesson .theme-front, .lesson .theme-ess, .lesson .theme-tests, .lesson .theme-back { --th: var(--t-deep); --th-tint: var(--t-tint); }
.lesson .theme-l1 { --th: #0b5ea8; --th-tint: #eaf2fb; }
.lesson .theme-l2 { --th: #0e8577; --th-tint: #e6f4f2; }
.lesson .theme-l3 { --th: #c26a00; --th-tint: #fbf1e3; }
.lesson .theme-l4 { --th: #a81d3a; --th-tint: #f9e9ed; }
.lesson .theme-show { --th: #5a3e9b; --th-tint: #f0ecf8; }
.lesson .theme-bank { --th: #2a6f97; --th-tint: #e9f2f7; }
.lesson .theme-scripts { --th: #43566a; --th-tint: #eef1f4; }
.lesson .theme-keys { --th: #1f7a4d; --th-tint: #e8f4ee; }
.lesson { font-family: "Inter", sans-serif; font-size: 9.1pt; line-height: 1.42; color: var(--ink); font-feature-settings: "kern", "liga"; }
.lesson { margin: 0; }
.lesson p { margin: 0 0 2.2mm; orphans: 2; widows: 2; }
.lesson b, .lesson strong { font-weight: 650; }
.lesson h1, .lesson h2, .lesson h3, .lesson h4, .lesson h5 { font-family: "Inter", "Inter", sans-serif; color: var(--navy); margin: 0; break-after: avoid; line-height: 1.2; }
.lesson ul, .lesson ol { margin: 0 0 2.5mm; padding-left: 5mm; }
.lesson li { margin-bottom: .8mm; }
.lesson table { border-collapse: collapse; width: 100%; }
.lesson img { max-width: 100%; }
.lesson a { color: inherit; text-decoration: none; }
.lesson .bare { page: bare; break-before: page; break-after: page; }
.lesson .frontpage { page: front; break-before: page; }
.lesson .part { break-before: page; }
.lesson .part-anchor { string-set: part attr(data-part), unit attr(data-part); height: 0; overflow: hidden; }
.lesson .opener { page: bare; break-before: right; break-after: page; height: 297mm; background: var(--th); color: #fff; position: relative; overflow: hidden; }
.lesson .opener .rings { position: absolute; right: -60mm; top: -40mm; width: 220mm; height: 220mm; }
.lesson .opener .inner { position: absolute; left: 24mm; right: 24mm; bottom: 58mm; }
.lesson .opener .kicker { font: 700 11pt "Inter"; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.75); margin-bottom: 5mm; }
.lesson .opener h1 { font: 800 40pt/1.05 "Inter"; color: #fff; margin-bottom: 4mm; string-set: part content(); }
.lesson .opener .band { display: inline-block; font: 700 12pt "Inter"; background: var(--t-paper); color: var(--th); padding: 1.6mm 4mm; border-radius: 2mm; margin-bottom: 6mm; }
.lesson .opener .lede { font: 400 12.5pt/1.5 "Inter"; color: rgba(255,255,255,.92); max-width: 135mm; }
.lesson .opener .contents { margin-top: 10mm; border-top: .3mm solid rgba(255,255,255,.35); padding-top: 5mm; font-size: 10pt; columns: 2; column-gap: 10mm; color: rgba(255,255,255,.95); }
.lesson .opener .contents p { margin: 0 0 1.6mm; }
.lesson .opener .logo { position: absolute; left: 24mm; top: 22mm; width: 46mm; }
.lesson .opener .bar { position: absolute; left: 24mm; bottom: 44mm; width: 28mm; height: 1.6mm; background: #e3202a; }
.lesson h2.unit-h { string-set: unit content(); font: 800 21pt/1.15 "Inter"; color: var(--th); margin: 0 0 1.5mm; }
.lesson .unit { break-before: page; }
.lesson .unit-head { border-bottom: .7mm solid var(--th); padding-bottom: 3mm; margin-bottom: 5mm; }
.lesson .unit-head .eyebrow { font: 700 7.8pt "Inter"; letter-spacing: .16em; text-transform: uppercase; color: var(--mute); margin-bottom: 1.5mm; }
.lesson .unit-head .aims { font-size: 9.2pt; color: var(--mute); margin: 1.5mm 0 0; }
.lesson h3 { font: 700 13.2pt "Inter"; margin: 6mm 0 2.2mm; color: var(--navy); }
.lesson h4 { font: 700 10.6pt "Inter"; margin: 4mm 0 1.6mm; color: var(--th); }
.lesson h5 { font: 700 9.2pt "Inter"; margin: 3mm 0 1.2mm; color: var(--navy); }
.lesson .box { border-left: 1.2mm solid var(--th); background: var(--th-tint); padding: 3mm 4mm 1.5mm; margin: 3.5mm 0; break-inside: avoid; border-radius: 0 1.5mm 1.5mm 0; }
.lesson .box h5 { margin: 0 0 1.2mm; font-size: 8.2pt; letter-spacing: .1em; text-transform: uppercase; color: var(--th); }
.lesson .box.trap { border-color: #e3202a; background: var(--t-panel); }
.lesson .box.trap h5 { color: #c2161f; }
.lesson .box.rule { border-color: var(--t-deep); background: var(--t-tint); }
.lesson .box.rule h5 { color: var(--t-deep); }
.lesson .box.key { border-color: #1f7a4d; background: var(--t-panel); }
.lesson .box.key h5 { color: #1f7a4d; }
.lesson .exercise { margin: 4.5mm 0 4mm; padding-top: 2.5mm; border-top: .3mm solid var(--line); }
.lesson .exercise > h4 { color: var(--navy); margin-top: 0; font-size: 10.4pt; }
.lesson .exno { display: inline-block; background: var(--th); color: #fff; font: 700 7.6pt "Inter"; letter-spacing: .08em; text-transform: uppercase; padding: .8mm 2.2mm; border-radius: 1mm; margin-right: 2mm; vertical-align: 1px; }
.lesson .exinst { font-style: italic; color: var(--t-ink); }
.lesson ol.items { padding-left: 6mm; }
.lesson ol.items > li { margin-bottom: 1.6mm; padding-left: 1mm; }
.lesson ol.items > li::marker { font-weight: 700; color: var(--th); }
.lesson .lines .ln { border-bottom: .25mm solid #aab6c2; height: 6.9mm; }
.lesson .lines { margin: 1mm 0 4mm; }
.lesson .hl { background: var(--t-mark); padding: 0 .6mm; border-radius: .6mm; }
.lesson .err { color: #c2161f; text-decoration: underline; text-decoration-style: wavy; text-decoration-color: #e58a8f; }
.lesson .fix { color: #1f7a4d; font-weight: 600; }
.lesson table.grid { margin: 2.5mm 0 4mm; font-size: 8.9pt; }
.lesson table.grid th { background: var(--th); color: #fff; font-weight: 650; text-align: left; padding: 1.7mm 2.4mm; border: .25mm solid var(--th); vertical-align: top; }
.lesson table.grid td { padding: 1.6mm 2.4mm; border: .25mm solid var(--line); vertical-align: top; }
.lesson table.grid tbody tr:nth-child(even) td { background: var(--t-panel); }
.lesson table.grid tbody th { background: var(--th-tint); color: var(--navy); border-color: var(--line); }
.lesson .qgroup { margin: 0 0 5mm; }
.lesson .rubric { background: var(--tint); border-top: .5mm solid var(--navy); padding: 2.2mm 3.5mm 1mm; margin: 4mm 0 3mm; break-inside: avoid; break-after: avoid; }
.lesson .rubric p { margin: 0 0 1.1mm; font-style: italic; }
.lesson .rubric p.qrange { font: 750 10pt "Inter"; font-style: normal; color: var(--navy); }
.lesson .rubric b { font-style: normal; }
.lesson .part-title { font: 800 15pt "Inter"; color: var(--navy); border-bottom: .5mm solid var(--red); padding-bottom: 1.6mm; margin: 0 0 3.5mm; }
.lesson .part-title span { font: 600 10pt "Inter"; color: var(--mute); margin-left: 3mm; }
.lesson .rpassage, .lesson .rsection, .lesson .wtask { break-before: page; }
.lesson .lpart, .lesson .spart { margin-top: 9mm; }
.lesson .qgroup { break-inside: avoid; }
.lesson .wtask[data-kind="t2"] { break-before: auto; margin-top: 9mm; }
.lesson .rintro { margin: 0 0 3mm; }
.lesson .gap { font-weight: 750; color: var(--navy); white-space: nowrap; }
.lesson .gap::after { content: ""; display: inline-block; width: 27mm; border-bottom: .3mm dotted #44515e; margin: 0 1mm 0 1.2mm; }
.lesson .gap:empty::after { margin-left: 0; }
.lesson .ans { display: inline-block; width: 15mm; border-bottom: .3mm dotted #44515e; margin-left: 2mm; }
.lesson .qn { font-weight: 750; color: var(--navy); display: inline-block; min-width: 6.5mm; }
.lesson ul.qlist { list-style: none; padding: 0; margin: 2mm 0 3mm; }
.lesson ul.qlist > li { padding-left: 8mm; text-indent: -8mm; margin-bottom: 2mm; break-inside: avoid; }
.lesson ul.qlist > li > * { text-indent: 0; }
.lesson .mcq { margin: 0 0 3.2mm; break-inside: avoid; }
.lesson .mcq .stem { margin: 0 0 1mm; padding-left: 8mm; text-indent: -8mm; font-weight: 500; }
.lesson .mcq .stem .qn { text-indent: 0; min-width: 8mm; }
.lesson ol.opts { list-style: none; counter-reset: o; padding-left: 8mm; margin: 0 0 1mm; }
.lesson ol.opts > li { counter-increment: o; padding-left: 6.5mm; text-indent: -6.5mm; margin-bottom: .7mm; }
.lesson ol.opts > li::before { content: counter(o, upper-alpha); font-weight: 750; color: var(--navy); display: inline-block; width: 6.5mm; text-indent: 0; }
.lesson ol.opts.roman > li { padding-left: 9mm; text-indent: -9mm; }
.lesson ol.opts.roman > li::before { content: counter(o, lower-roman); width: 9mm; }
.lesson ol.opts.inline { padding-left: 0; columns: 4; column-gap: 4mm; }
.lesson .optbox { border: .35mm solid var(--navy); padding: 2.5mm 4mm 1.5mm; margin: 2mm 0 3mm; break-inside: avoid; border-radius: 1mm; }
.lesson .optbox h5 { margin: 0 0 1.6mm; text-align: center; font-size: 9.4pt; }
.lesson .optbox ol.opts { padding-left: 0; }
.lesson table.legend { width: auto; margin: 1mm 0 3mm 2mm; font-size: 8.9pt; }
.lesson table.legend th { text-align: left; padding: .3mm 5mm .3mm 0; font-weight: 750; color: var(--navy); white-space: nowrap; vertical-align: top; }
.lesson table.legend td { padding: .3mm 0; font-style: italic; }
.lesson .notes, .lesson .summary, .lesson .flow { border: .35mm solid var(--t-line); border-radius: 1.2mm; padding: 3.5mm 5mm 2.5mm; margin: 2mm 0 3mm; background: var(--t-paper); }
.lesson .notes h4, .lesson .summary h4, .lesson .flow h4 { text-align: center; color: var(--navy); margin: 0 0 2.5mm; font-size: 10.4pt; }
.lesson .notes h5 { margin-top: 2.5mm; }
.lesson .notes ul { padding-left: 4.5mm; }
.lesson .notes li { margin-bottom: 1.5mm; }
.lesson table.form th { text-align: left; font-weight: 600; width: 38%; padding: 1.7mm 3mm 1.7mm 0; border-bottom: .2mm solid var(--line); vertical-align: top; color: var(--t-ink); }
.lesson table.form td { padding: 1.7mm 0; border-bottom: .2mm solid var(--line); }
.lesson .summary p { line-height: 1.75; }
.lesson .flow .step { border: .3mm solid var(--navy); border-radius: 1.2mm; padding: 2mm 4mm; margin: 0 auto; width: 78%; text-align: center; position: relative; background: var(--t-panel); break-inside: avoid; }
.lesson .flow .step + .step { margin-top: 6.5mm; }
.lesson .flow .step + .step::before { content: ""; position: absolute; top: -5.2mm; left: 50%; margin-left: -2mm; border-left: 2mm solid transparent; border-right: 2mm solid transparent; border-top: 3mm solid var(--navy); }
.lesson figure.fig { margin: 3mm 0 4mm; text-align: center; break-inside: avoid; }
.lesson figure.fig img { max-width: 100%; max-height: 120mm; }
.lesson figure.fig figcaption { font-size: 8.4pt; color: var(--mute); margin-top: 1.5mm; }
.lesson .chart-title { font: 700 9.6pt "Inter"; color: var(--navy); text-align: center; margin: 0 0 1.5mm; }
.lesson .passage, .lesson .gt-text { margin: 0 0 5mm; }
.lesson .passage { font-family: "Source Serif 4", serif; font-size: 9.8pt; line-height: 1.46; padding: 0 2mm; }
.lesson .passage p { margin: 0 0 2.4mm; text-align: justify; hyphens: auto; }
.lesson .passage-title { font: 800 17pt/1.15 "Inter"; color: var(--navy); margin: 1mm 0 2mm; text-align: left; }
.lesson .passage .standfirst { font: italic 400 10.6pt "Source Serif 4"; color: var(--t-ink); margin-bottom: 3.5mm; text-align: left; }
.lesson .pl { font: 800 10pt "Inter"; color: var(--blue); margin-right: 2.5mm; }
.lesson .gt-text { border: .3mm solid #9aa7b4; border-radius: 1.2mm; padding: 4mm 5.5mm 2.5mm; background: var(--t-panel); font-size: 9.3pt; }
.lesson .gt-text h4 { color: var(--navy); font-size: 11.5pt; margin: 0 0 2mm; }
.lesson .gt-text h5 { margin-top: 2.5mm; }
.lesson .adverts { columns: 2; column-gap: 4mm; }
.lesson .advert { border: .3mm solid #9aa7b4; border-radius: 1.2mm; padding: 2.5mm 3.5mm 1.5mm; margin: 0 0 3mm; break-inside: avoid; background: var(--t-panel); font-size: 9pt; }
.lesson .advert h5 { margin: 0 0 1mm; display: inline; font-size: 9.6pt; }
.lesson .advert p { margin-top: 1mm; }
.lesson .adl { display: inline-block; background: var(--navy); color: #fff; font-weight: 750; width: 5.2mm; height: 5.2mm; line-height: 5.2mm; text-align: center; border-radius: 50%; margin-right: 2mm; font-size: 8.5pt; }
.lesson .task { border: .4mm solid var(--navy); border-radius: 1.5mm; padding: 4.5mm 6mm 3mm; margin: 2mm 0 4mm; }
.lesson .task .task-time, .lesson .task .task-words { font-style: italic; color: var(--t-ink); }
.lesson .task .prompt { font-weight: 600; font-size: 10pt; }
.lesson .task ul { font-weight: 600; font-size: 10pt; }
.lesson .cuecard { border: .4mm solid var(--navy); border-radius: 1.5mm; padding: 3mm 6mm 1.5mm; margin: 2mm 12mm 3mm 0; background: var(--t-panel); break-inside: avoid; width: 70%; }
.lesson .cuecard .cue { font-weight: 700; font-size: 10.4pt; color: var(--navy); }
.lesson .model { border: .3mm solid var(--line); border-top: .9mm solid var(--th); background: var(--t-paper); padding: 3.5mm 5mm 2mm; margin: 3mm 0; font-family: "Source Serif 4", serif; font-size: 9.9pt; line-height: 1.5; }
.lesson .model h5 { font: 700 8.2pt "Inter"; letter-spacing: .08em; text-transform: uppercase; color: var(--th); margin: 0 0 2mm; }
.lesson .model .wc { font: 500 8pt "Inter"; color: var(--mute); text-align: right; margin: 0; }
.lesson .commentary { background: var(--tint); padding: 3mm 4.5mm 1.5mm; margin: 0 0 4mm; font-size: 8.9pt; }
.lesson .commentary h5 { margin: 0 0 1.2mm; color: var(--navy); font-size: 8.6pt; }
.lesson .commentary ul { margin-bottom: 2mm; }
.lesson .dialogue { margin: 2mm 0 3mm; padding-left: 3mm; border-left: .5mm solid var(--line); }
.lesson .dialogue p { margin-bottom: 1.6mm; }
.lesson .test-open { page: bare; break-before: page; break-after: page; height: 297mm; position: relative; background: var(--t-paper); overflow: hidden; }
.lesson .test-open .stripe { position: absolute; left: 0; top: 0; bottom: 0; width: 62mm; background: var(--navy); }
.lesson .test-open .num { position: absolute; left: 0; width: 62mm; top: 70mm; text-align: center; color: #fff; font: 800 120pt/1 "Inter"; }
.lesson .test-open .lab { position: absolute; left: 0; width: 62mm; top: 56mm; text-align: center; color: rgba(255,255,255,.8); font: 700 11pt "Inter"; letter-spacing: .3em; }
.lesson .test-open .body { position: absolute; left: 76mm; right: 20mm; top: 54mm; }
.lesson .test-open h1 { font: 800 30pt "Inter"; color: var(--navy); margin-bottom: 2mm; string-set: part content(), unit content(); }
.lesson .test-open .sub { font-size: 11pt; color: var(--mute); margin-bottom: 8mm; }
.lesson .test-open table.grid { font-size: 9.4pt; }
.lesson .test-open .audio { margin-top: 8mm; border: .4mm solid var(--navy); border-radius: 2mm; padding: 4mm 5mm; display: flex; gap: 5mm; align-items: center; }
.lesson .test-open .audio .qr { width: 26mm; height: 26mm; border: .3mm dashed var(--t-line); font-size: 6.5pt; color: var(--mute); text-align: center; display: flex; align-items: center; justify-content: center; flex: none; }
.lesson .test-open .audio p { margin: 0 0 1mm; }
.lesson .mod-head { display: flex; align-items: baseline; gap: 4mm; border-bottom: .3mm solid var(--line); margin-bottom: 4mm; padding-bottom: 1.5mm; }
.lesson .mod-head .t { font: 800 8pt "Inter"; letter-spacing: .16em; color: #fff; background: var(--navy); padding: 1mm 2.5mm; border-radius: 1mm; }
.lesson .mod-head .m { font: 700 8pt "Inter"; letter-spacing: .16em; color: var(--mute); text-transform: uppercase; }
.lesson .module { break-before: page; }
.lesson .module > .lpart:first-of-type, .lesson .module > .rpassage:first-of-type, .lesson .module > .rsection:first-of-type, .lesson .module > .wtask:first-of-type, .lesson .module > .spart:first-of-type { break-before: auto; }
.lesson .runpart { string-set: part content(); height: 0; overflow: hidden; margin: 0; font-size: 0; }
.lesson h2.mod-run { string-set: unit content(); height: 0; overflow: hidden; margin: 0; font-size: 0; }
.lesson .script { columns: 2; column-gap: 7mm; font-size: 8.1pt; line-height: 1.38; }
.lesson .script h4 { column-span: all; margin: 4mm 0 2mm; color: var(--navy); border-bottom: .3mm solid var(--line); padding-bottom: 1mm; }
.lesson .script p { margin: 0 0 1.5mm; padding-left: 3mm; text-indent: -3mm; }
.lesson .script .sp { font-weight: 750; font-size: 7.3pt; letter-spacing: .05em; color: var(--navy); }
.lesson .script .nar { font-style: italic; color: var(--t-mute); }
.lesson .script u.aq { text-decoration: none; border-bottom: .35mm solid #e3202a; font-weight: 600; }
.lesson .script sup.q { font: 750 6.2pt "Inter"; color: #e3202a; margin-left: .5mm; }
.lesson .keygrid { display: flex; gap: 4mm; margin: 2mm 0 5mm; }
.lesson .keygrid .col { flex: 1; border: .3mm solid var(--line); border-radius: 1.2mm; padding: 2.5mm 3mm; font-size: 8.7pt; }
.lesson .keygrid .col h5 { margin: 0 0 1.5mm; color: var(--th); }
.lesson .keygrid p { margin: 0 0 .9mm; padding-left: 6mm; text-indent: -6mm; }
.lesson .keygrid .n { display: inline-block; width: 6mm; font-weight: 750; color: var(--navy); text-indent: 0; }
.lesson .keygrid .alt { color: var(--mute); font-size: 7.8pt; }
.lesson table.keyx { font-size: 8.4pt; margin: 2mm 0 5mm; }
.lesson table.keyx th { text-align: left; background: var(--th); color: #fff; padding: 1.3mm 2mm; font-weight: 650; }
.lesson table.keyx td { padding: 1.2mm 2mm; border-bottom: .2mm solid var(--line); vertical-align: top; }
.lesson table.keyx td.n { font-weight: 750; color: var(--navy); width: 6mm; }
.lesson table.keyx td.a { font-weight: 700; width: 30mm; }
.lesson table.keyx td.l { color: var(--mute); width: 22mm; }
.lesson table.keyx tr { break-inside: avoid; }
.lesson .key-ex h5 { color: var(--th); }
.lesson .keysec h3 { border-bottom: .4mm solid var(--th); padding-bottom: 1.2mm; }
.lesson .toc h2 { font: 800 26pt "Inter"; color: var(--navy); margin-bottom: 6mm; }
.lesson .toc .tp { font: 800 10.5pt "Inter"; color: var(--navy); margin: 4.2mm 0 1.2mm; border-bottom: .3mm solid var(--navy); padding-bottom: .8mm; }
.lesson .toc .tp a::after, .lesson .toc .tu a::after { content: leader(" ") target-counter(attr(href), page); }
.lesson .toc .tu { margin: 0 0 .7mm; padding-left: 4mm; font-size: 8.8pt; }
.lesson .toc .cols { columns: 2; column-gap: 9mm; }
.lesson .toc .tp { break-after: avoid; }
.lesson .toc .tu a::after { content: leader(". ") target-counter(attr(href), page); color: var(--mute); }
.lesson .toc { columns: 1; }
.lesson .spart h4 { margin-top: 3.5mm; }
.lesson .spart ul.qlist > li { padding-left: 0; text-indent: 0; margin-bottom: 1.3mm; }
.lesson .spart h4 { margin-top: 3mm; }
.lesson .spart ul.qlist > li { padding-left: 0; text-indent: 0; margin-bottom: 1.2mm; }
.lesson .spart .part-title { margin-bottom: 2mm; }
.lesson .cover, .lesson .backcover { height: 297mm; width: 210mm; position: relative; background: var(--t-deep); color: #fff; overflow: hidden; }
.lesson .cv-top { position: absolute; top: 0; left: 0; right: 0; height: 9mm; background: #0b5ea8; }
.lesson .cv-foot { position: absolute; bottom: 0; left: 0; right: 0; height: 14mm; background: #0b5ea8; }
.lesson .cv-rings { position: absolute; right: -52mm; top: 6mm; width: 215mm; height: 215mm; }
.lesson .cv-logo { position: absolute; left: 22mm; top: 24mm; width: 74mm; }
.lesson .cv-main { position: absolute; left: 22mm; right: 22mm; top: 112mm; }
.lesson .cv-ed { font: 700 9.5pt "Inter"; letter-spacing: .28em; text-transform: uppercase; color: #9cc3e8; margin-bottom: 4mm; }
.lesson .cv-t1 { font: 700 62pt/1 "Source Serif 4"; color: #fff; margin: 0; }
.lesson .cv-t2 { font: 800 50pt/1.05 "Inter"; color: #4d9be0; margin: 0 0 5mm; letter-spacing: -.01em; }
.lesson .cv-bar { width: 42mm; height: 2mm; background: #e3202a; margin-bottom: 6mm; }
.lesson .cv-sub { font: 700 15pt "Inter"; margin-bottom: 2mm; }
.lesson .cv-sub2 { font: 400 10pt "Inter"; color: var(--t-line); margin-bottom: 9mm; }
.lesson .cv-levels { display: flex; gap: 3mm; margin-bottom: 7mm; }
.lesson .cv-levels div { flex: 1; background: var(--t-paper); border-radius: 1.8mm; padding: 2.6mm 3.5mm; }
.lesson .cv-levels b { display: block; font: 800 8.6pt "Inter"; color: var(--t-deep); letter-spacing: .06em; }
.lesson .cv-levels span { font: 600 8.4pt "Inter"; color: #0b5ea8; }
.lesson .cv-inc { font: 500 9.2pt "Inter"; color: var(--t-line); }
.lesson .cv-author { position: absolute; left: 22mm; bottom: 27mm; }
.lesson .cv-name { font: 700 17pt "Inter"; margin: 0 0 1mm; }
.lesson .cv-role { font: 400 10pt "Inter"; color: var(--t-line); margin: 0; }
.lesson .titlepage { text-align: left; padding-top: 28mm; }
.lesson .tp-logo { width: 78mm; margin-bottom: 42mm; }
.lesson .tp-t1 { font: 700 56pt/1 "Source Serif 4"; color: #e3202a; margin: 0; }
.lesson .tp-t2 { font: 800 46pt/1.05 "Inter"; color: var(--t-deep); margin: 0 0 6mm; }
.lesson .tp-sub { font: 400 14pt/1.4 "Inter"; color: var(--t-mute); }
.lesson .tp-bar { width: 36mm; height: 1.8mm; background: #e3202a; margin: 14mm 0 8mm; }
.lesson .tp-author { font: 700 18pt "Inter"; color: var(--t-deep); margin: 0 0 1mm; }
.lesson .tp-role { font-size: 11pt; color: var(--t-mute); }
.lesson .tp-pub { margin-top: 34mm; font: 600 8.6pt "Inter"; letter-spacing: .12em; text-transform: uppercase; color: var(--t-mute); }
.lesson .copyright { font-size: 8.6pt; color: var(--t-ink); padding-top: 60mm; }
.lesson .copyright h3 { font-size: 12pt; margin-top: 0; }
.lesson .copyright p { margin-bottom: 2.8mm; max-width: 150mm; }
.lesson .cp-contact { margin-top: 8mm; }
.lesson .frontpage .eyebrow { font: 700 8pt "Inter"; letter-spacing: .2em; text-transform: uppercase; color: #e3202a; margin: 6mm 0 2mm; }
.lesson .frontpage h2 { font: 800 28pt/1.1 "Inter"; color: var(--t-deep); margin-bottom: 2mm; }
.lesson .ap-role { font-size: 11.5pt; color: var(--t-mute); margin-bottom: 8mm; }
.lesson .ap-grid { display: flex; gap: 9mm; margin-bottom: 6mm; }
.lesson .ap-photo { width: 62mm; height: 74mm; object-fit: cover; border-radius: 2mm; flex: none; }
.lesson .authorpage p { font: 400 10.6pt/1.6 "Source Serif 4"; }
.lesson .notepage p { font: 400 10.4pt/1.56 "Source Serif 4"; }
.lesson .authorpage p.eyebrow, .lesson .notepage p.eyebrow { font: 700 8pt "Inter"; }
.lesson .authorpage p.ap-role { font: 400 11.5pt "Inter"; }
.lesson .ap-facts { display: flex; gap: 4mm; margin-top: 9mm; }
.lesson .ap-facts div { flex: 1; border-top: 1mm solid #0b5ea8; background: var(--t-tint); padding: 3.5mm 4mm; }
.lesson .ap-facts b { display: block; font: 800 15pt "Inter"; color: var(--t-deep); }
.lesson .ap-facts span { font: 500 8.6pt "Inter"; color: var(--t-mute); }
.lesson .notepage p.np-quote { font: italic 400 14pt/1.45 "Source Serif 4"; color: #0b5ea8; border-left: 1.2mm solid #e3202a; padding-left: 5mm; margin: 5mm 0 7mm; }
.lesson .notepage p.np-sign { font: 700 14pt "Inter"; color: var(--t-deep); margin: 5mm 0 0; break-after: avoid; }
.lesson .notepage p.np-role { font: 400 9.6pt "Inter"; color: var(--t-mute); }
.lesson .howto h4 { color: var(--t-deep); }
.lesson table.tracker td, .lesson table.tracker th { height: 9.5mm; text-align: center; }
.lesson table.errlog td { height: 13mm; }
.lesson .trks { margin: 4mm 0 3mm; }
.lesson .trk { width: 52mm; border: .3mm solid var(--line); border-radius: 1.5mm; padding: 2.5mm; display: inline-flex; gap: 2.5mm; align-items: center; margin: 0 1.5mm 2.5mm 0; vertical-align: top; }
.lesson .trk .qr { width: 17mm; height: 17mm; border: .3mm dashed var(--t-line); font: 600 6.5pt "Inter"; color: var(--t-mute); display: flex; align-items: center; justify-content: center; flex: none; }
.lesson .trk b { display: block; font-size: 8.6pt; color: var(--t-deep); }
.lesson .trk span { display: block; font-size: 7.8pt; font-weight: 600; }
.lesson .trk i { font-size: 7.2pt; color: var(--t-mute); }
.lesson .bc-top { position: absolute; top: 0; left: 0; right: 0; height: 9mm; background: #0b5ea8; }
.lesson .bc-main { position: absolute; left: 24mm; right: 24mm; top: 40mm; }
.lesson .bc-h { font: 800 34pt/1.08 "Inter"; margin: 0 0 6mm; }
.lesson .bc-bar { width: 36mm; height: 1.8mm; background: #e3202a; margin-bottom: 8mm; }
.lesson .bc-p { font: 400 12pt/1.55 "Inter"; color: #e3ecf6; margin-bottom: 7mm; }
.lesson .bc-list { font-size: 10.4pt; color: #e3ecf6; padding-left: 5mm; margin-bottom: 9mm; }
.lesson .bc-list li { margin-bottom: 2.4mm; }
.lesson .bc-list b { color: #fff; }
.lesson .bc-auth { font: 400 9.6pt/1.55 "Inter"; color: var(--t-line); border-top: .3mm solid rgba(255,255,255,.3); padding-top: 5mm; }
.lesson .bc-foot { position: absolute; left: 0; right: 0; bottom: 0; background: #0b5ea8; padding: 7mm 24mm 6mm; display: flex; align-items: center; justify-content: space-between; }
.lesson .bc-foot img { width: 46mm; }
.lesson .bc-foot p { margin: 0; font: 600 9pt "Inter"; }
.lesson .keysec .sm-head { margin-top: 8mm; }
.lesson .key-ex { margin-bottom: 3mm; font-size: 8.9pt; }
.lesson .key-ex h5 { margin-bottom: .8mm; }
.lesson .pagereset { counter-reset: page 0; height:0 }
.lesson .kxs { columns: 2; column-gap: 7mm; font-size: 7.9pt; line-height: 1.36; margin: 2mm 0 5mm; }
.lesson .kx { margin: 0 0 1.5mm; padding-left: 6mm; text-indent: -6mm; break-inside: avoid; }
.lesson .kx .n { display: inline-block; width: 6mm; font-weight: 750; color: var(--th); text-indent: 0; }
.lesson .kx .loc { color: var(--mute); }
.lesson .kx .alt { color: var(--mute); }
.lesson .wmodel, .lesson .smodel { columns: 2; column-gap: 7mm; font-size: 8.5pt; }
.lesson .wmodel > h3, .lesson .smodel > h3, .lesson .keysec h3 { column-span: all; }
.lesson .wmodel h4, .lesson .smodel h4 { margin-top: 2mm; }
.lesson .keysec .model { font-size: 9pt; line-height: 1.42; padding: 2.5mm 3.5mm 1.5mm; }
.lesson .keysec .commentary { font-size: 8.1pt; padding: 2.2mm 3.2mm 1mm; }
.lesson .keysec .box { font-size: 8.2pt; padding: 2.2mm 3.2mm 1mm; }
.lesson .keysec .cuecard { width: auto; margin-right: 0; padding: 2.5mm 4mm 1mm; }
.lesson .theme-keys .keycols { columns: 2; column-gap: 7mm; font-size: 8.3pt; line-height: 1.38; }
.lesson .theme-keys .keycols h3, .lesson .theme-keys .keycols h4 { font-size: 10pt; margin: 3mm 0 1.5mm; }
.lesson .theme-keys .keycols .model { font-size: 8.8pt; line-height: 1.4; padding: 2.5mm 3.5mm 1.5mm; }
.lesson .theme-keys .keycols table.grid { font-size: 7.8pt; }
.lesson .theme-bank .cuecard { width: auto; margin: 2mm 0; padding: 2.5mm 4mm 1mm; font-size: 8.7pt; }
.lesson .theme-bank .cuecard .cue { font-size: 9.3pt; }
.lesson .bankcols { columns: 2; column-gap: 7mm; }
.lesson .bankcols h3, .lesson .bankcols > h2, .lesson .bankcols > .box, .lesson .bankcols > table { column-span: all; }
.lesson .bankcols .task { padding: 3mm 4mm 1.5mm; font-size: 8.6pt; break-inside: avoid; }
.lesson .bankcols .task .prompt, .lesson .bankcols .task ul { font-size: 8.9pt; }
.lesson .bankcols h4 { break-after: avoid; }
.lesson .bankcols ul.qlist { break-inside: avoid; margin-bottom: 2.5mm; }
.lesson .bankcols ul.qlist > li { padding-left: 0; text-indent: 0; margin-bottom: 1mm; }
.lesson .spart ul.qlist { margin: 1mm 0 2mm; }
.lesson .module .spart .cuecard { margin-bottom: 2mm; }
.lesson .cover .vol { display: inline-block; font: 800 9.5pt "Inter"; letter-spacing: .14em; text-transform: uppercase; background: #e3202a; color: #fff; padding: 1.6mm 4mm; border-radius: 1.2mm; margin: 0 0 6mm; }
.lesson .titlepage .vol { font: 800 11pt "Inter"; letter-spacing: .14em; text-transform: uppercase; color: #0b5ea8; margin: 8mm 0 0; }
.lesson .copyright .vol { font-weight: 700; }
.lesson .task, .lesson .notes, .lesson .summary, .lesson .flow, .lesson .optbox, .lesson .gt-text, .lesson .adverts, .lesson .cuecard, .lesson figure.fig, .lesson .dialogue p, .lesson .keygrid, .lesson .box { break-inside: avoid; }
.lesson table.grid tr, .lesson table.form tr, .lesson table.legend { break-inside: avoid; }
.lesson .exinst, .lesson .rintro, .lesson .keepnext, .lesson .task-time, .lesson h3, .lesson h4, .lesson h5, .lesson .sm-head { break-after: avoid; }
.lesson .model p { orphans: 3; widows: 3; }
.lesson .model .wc { break-before: avoid; }
.lesson .commentary, .lesson .model { box-decoration-break: clone; }
.lesson .runpart { string-set: part content(); font-size: 0; line-height: 0; height: 0; overflow: hidden; margin: 0; }
.lesson .runboth { string-set: part content(), unit content(); position: absolute; font-size: 0; height: 0; overflow: hidden; }
.lesson .qn { margin-right: 1mm; }
.lesson .module .spart { font-size: 8.9pt; margin-top: 5mm; }
.lesson .module .spart:first-of-type { margin-top: 0; }
.lesson .module .spart h4 { margin: 2.2mm 0 1mm; }
.lesson .module .spart ul.qlist > li { margin-bottom: .8mm; }
.lesson .module .spart .cuecard { padding: 2.5mm 5mm 1mm; }
.lesson .module .spart .part-title { font-size: 12.5pt; padding-bottom: 1mm; margin-bottom: 1.5mm; }
.lesson .smodel { columns: 1; }
.lesson .smodel .model, .lesson .smodel .commentary, .lesson .smodel .box { }
.lesson .script p { break-inside: avoid; }
.lesson .script sup.q { line-height: 0; vertical-align: baseline; position: relative; top: -.42em; }
.lesson .keygrid .col:first-child { flex: 1.5; }
.lesson .trk { width: 55mm; box-sizing: border-box; margin: 0 1.2mm 2.5mm 0; min-height: 23mm; }
.lesson .trk span { font-size: 7.3pt; }
.lesson .trk .qr { width: 15mm; height: 15mm; }
.lesson .hl { padding: 0; border-radius: 0; box-decoration-break: clone; }
.lesson .test-open { break-before: right; }
.lesson .toc .tu { break-inside: avoid; }
.lesson .keep, .lesson .lines, .lesson .model, .lesson .commentary, .lesson .dialogue { break-inside: avoid; }
.lesson .script h4 { column-span: none; margin-top: 2mm; break-after: avoid; }
.lesson .script p { orphans: 2; widows: 2; }
.lesson .trk { width: 55.4mm; margin: 0 2.2mm 2.5mm 0; }
.lesson .trk > div:last-child { min-width: 0; }
.lesson .trk i { font-size: 6.9pt; display: block; }
.lesson .keysec .sm-head { margin-top: 2mm; }
.lesson img.wm { position: fixed; left: 12mm; top: 100mm; width: 150mm; max-width: none; opacity: .075; transform: rotate(-32deg); z-index: 1000; }
.lesson .ap-banner { width: 100%; border-radius: 2mm; margin: 0 0 6mm; display: block; }
.lesson .authorpage .ap-role { margin-bottom: 5mm; }
.lesson .authorpage p { font-size: 10.2pt; }
.lesson .ap-facts { margin-top: 6mm; }
.lesson .ap-banner { height: 95mm; object-fit: cover; object-position: 50% 0%; margin-bottom: 5mm; }
.lesson .authorpage h2 { font-size: 24pt; }
.lesson .authorpage p { font-size: 9.7pt; line-height: 1.5; margin-bottom: 2mm; }
.lesson .ap-facts b { font-size: 13pt; }
.lesson .ap-facts { margin-top: 4mm; gap: 3mm; }
.lesson .ap-facts div { padding: 2.5mm 3mm; }
.lesson .ap-facts span { font-size: 7.8pt; }
.lesson .opener, .lesson .test-open { break-before: page; }
.lesson .trk .qr, .lesson .test-open .audio .qr { border: none; background: var(--t-deep); color: #fff; border-radius: 50%; font-size: 15pt; font-family: "DejaVu Sans"; }
.lesson .test-open .audio .qr { width: 16mm; height: 16mm; }
.lesson .trk .qr { width: 12mm; height: 12mm; font-size: 12pt; }
.lesson a.toclink { position: fixed; top: -12.5mm; left: 50%; margin-left: -11mm; width: 22mm; text-align: center; font: 700 6.6pt "Inter"; letter-spacing: .1em; text-transform: uppercase; color: #0b5ea8; border: .25mm solid #b9cde2; border-radius: 3mm; padding: .9mm 0; background: var(--t-paper); }
.lesson a.qr, .lesson .trk a.qr, .lesson .test-open .audio a.qr { display: block; flex: none; border: none; background: none; border-radius: 0; width: 17mm; height: 17mm; }
.lesson .test-open .audio a.qr { width: 26mm; height: 26mm; }
.lesson a.qr img { width: 100%; height: 100%; display: block; }
.lesson .edtag { display: inline-block; font: 700 6.6pt "Inter"; letter-spacing: .08em; text-transform: uppercase; padding: .7mm 2mm; border-radius: 1mm; vertical-align: 2px; margin-left: 1.5mm; color: #fff; }
.lesson .ed-ac { background: #0b5ea8; }
.lesson .ed-gt { background: #c26a00; }
.lesson .ed-both { background: #1f7a4d; }
.lesson .edline { margin: -2mm 0 4mm; font-size: 8.4pt; color: var(--mute); }
.lesson .edline .edtag { margin-left: 0; margin-right: 1mm; }
.lesson h3 .edtag, .lesson h4 .edtag { vertical-align: 2px; }
.lesson table.route td, .lesson table.route th { font-size: 8.6pt; }
.lesson table.route-tags td:first-child { white-space: nowrap; }
.lesson table.route td, .lesson table.route th, .lesson table.route-tags td { font-size: 8.2pt; padding-top: 1.2mm; padding-bottom: 1.2mm; }
.lesson {
  --navy: var(--t-deep); --blue: var(--t-accent); --sky: var(--t-soft); --red: #e3262c;
  --ink: #1d2433; --mute: #5d6678; --line: var(--t-line); --tint: var(--t-tint); --tint2: var(--t-tint2);
  --th: var(--t-accent); --th-tint: var(--t-tint);
  --accent: var(--t-accent); --accent-deep: var(--t-deep); --accent-tint: var(--t-tint); --accent-tint2: var(--t-tint2); --soft: var(--t-soft);
  --trim-h: 11in; --trim-w: 8.5in;
}
.lesson .theme-front, .lesson .theme-ess, .lesson .theme-tests, .lesson .theme-back, .lesson .theme-l1, .lesson .theme-l2, .lesson .theme-l3, .lesson .theme-l4, .lesson .theme-show, .lesson .theme-bank, .lesson .theme-scripts { --th: var(--t-accent); --th-tint: var(--t-tint); }
.lesson .theme-keys { --th: var(--t-accent); --th-tint: var(--t-tint); }
.lesson { font-size: 9.6pt; line-height: 1.45; color: var(--ink); }
.lesson b, .lesson strong { font-weight: 650; }
.lesson a.toclink { display: none; }
.lesson .opener, .lesson .test-open, .lesson .cover, .lesson .backcover { height: var(--trim-h); width: auto; }
.lesson .opener { background: linear-gradient(160deg, var(--t-deep) 0%, var(--t-accent) 62%, var(--t-accent) 100%); }
.lesson .opener .inner { bottom: 2.3in; left: 1in; right: 0.9in; }
.lesson .opener .logo { left: 1in; top: 0.95in; }
.lesson .opener .bar { left: 1in; bottom: 1.75in; }
.lesson .opener .band { color: var(--t-deep); }
.lesson .test-open .stripe { background: linear-gradient(180deg, var(--t-deep), var(--t-accent)); width: 2.45in; }
.lesson .test-open .num, .lesson .test-open .lab { width: 2.45in; }
.lesson .test-open .body { left: 3.05in; right: 0.85in; top: 2.1in; }
.lesson h2.unit-h { color: var(--t-deep); font-size: 22pt; letter-spacing: -.015em; }
.lesson .unit-head { border-bottom: 0.5mm solid var(--t-accent); }
.lesson .unit-head .eyebrow { color: var(--t-accent); font-weight: 800; }
.lesson h3 { color: var(--t-deep); font-size: 13.6pt; }
.lesson h4 { color: var(--t-accent); }
.lesson .part-title { color: var(--t-deep); border-bottom: 0.5mm solid var(--t-accent); font-size: 17pt; letter-spacing: -.01em; }
.lesson .part-title span { color: var(--mute); }
.lesson .lsec { color: var(--t-accent); }
.lesson .mod-head .t { background: var(--t-deep); border-radius: 1.6mm; }
.lesson .box { border-left: 0; border-radius: 2.6mm; padding: 3.4mm 5mm 2mm; background: var(--accent-tint); position: relative; }
.lesson .box h5 { color: var(--t-deep); }
.lesson .box.rule { background: var(--t-tint); }
.lesson .box.rule h5 { color: var(--t-deep); }
.lesson .box.trap { background: var(--t-panel); }
.lesson .box.trap h5 { color: #b4161f; }
.lesson .box.key { background: var(--t-panel); }
.lesson .box.key h5 { color: #17673f; }
.lesson .exno { background: var(--t-accent); border-radius: 1.4mm; }
.lesson .exercise { border-top: 0.3mm solid var(--line); }
.lesson table.grid th { background: var(--t-accent); border-color: var(--t-accent); }
.lesson table.grid tbody th { background: var(--accent-tint); color: var(--t-deep); }
.lesson table.grid tbody tr:nth-child(even) td { background: var(--t-panel); }
.lesson .rubric { background: var(--accent-tint); border-top: 0; border-left: 1.1mm solid var(--t-accent); border-radius: 0 2mm 2mm 0; }
.lesson .rubric p.qrange { color: var(--t-deep); }
.lesson .qn { color: var(--t-deep); }
.lesson ol.opts > li::before { color: var(--t-accent); }
.lesson .lpart .audio, .lesson .test-open .audio { border: 0.45mm solid var(--t-accent); border-radius: 3mm; background: var(--t-paper); box-shadow: 0 0.6mm 0 var(--accent-tint2); }
.lesson p.trkline { background: var(--accent-tint); border-radius: 2.4mm; padding: 2mm 3mm; }
.lesson .mcq .stem.heard { padding-left: 0; text-indent: 0; display: flex; align-items: center; gap: 2.4mm; margin-bottom: 1.4mm; }
.lesson .mcq .stem.heard .qn { display: inline-block; min-width: 0; width: 6.6mm; height: 6.6mm; line-height: 6.6mm; text-align: center; border-radius: 1.6mm; background: var(--t-accent); color: #fff; font-size: 9pt; margin: 0; }
.lesson .mcq .stem.heard .heardlab { font: 800 7pt "Inter"; letter-spacing: .12em; text-transform: uppercase; color: var(--t-deep); }
.lesson .mcq:has(.stem.heard) ol.opts { padding-left: 9mm; }
.lesson .youheard { display: block; font-size: 0.95em; color: var(--t-deep); margin: 0 0 0.4mm; }
.lesson .youheard i { font-style: italic; }
.lesson .kx .youheard { display: inline; }
.lesson .p-task { display: flex; gap: 4.5mm; align-items: flex-start; border: 0.45mm solid var(--t-accent); border-radius: 3mm; padding: 3.6mm 5mm 2.6mm; margin: 0 0 4.2mm; background: var(--t-paper); break-inside: avoid; box-shadow: 0 0.6mm 0 var(--accent-tint2); }
.lesson .p-task .p-icon { margin-top: 0.6mm; }
.lesson .p-task-body { flex: 1; }
.lesson .p-pill { display: inline-block; background: var(--t-deep); color: #fff; font: 700 8.2pt "Inter"; letter-spacing: .02em; padding: 1.2mm 3.2mm; border-radius: 1.8mm; margin: 0 0 2mm; }
.lesson .p-task .prompt { font: 500 10.6pt/1.45 "Inter"; margin: 0; }
.lesson .p-icon { flex: none; width: 10mm; height: 10mm; }
.lesson .p-icon svg { width: 100%; height: 100%; }
.lesson .p-icon.round { width: 9.6mm; height: 9.6mm; border-radius: 50%; background: var(--t-accent); padding: 2mm; }
.lesson .ico-s { display: inline-block; width: 3.4mm; height: 3.4mm; vertical-align: -0.6mm; margin-right: 1.4mm; }
.lesson .ico-s svg { width: 100%; height: 100%; }
.lesson .p-model { border: 0.3mm solid var(--line); border-top: 1.1mm solid var(--t-accent); border-radius: 0 0 2.4mm 2.4mm; background: var(--t-paper); margin: 0 0 3mm; padding: 0; font-family: "Inter"; }
.lesson .p-model-head { display: flex; align-items: center; gap: 2.2mm; background: var(--accent-tint); padding: 2.2mm 5mm; border-bottom: 0.3mm solid var(--line); font: 800 7.9pt "Inter"; letter-spacing: .1em; text-transform: uppercase; color: var(--t-deep); }
.lesson .p-model-head .lvl::before { content: "·"; margin-right: 2.2mm; color: #9c90cf; }
.lesson .p-model-head .note { font-weight: 600; letter-spacing: .06em; color: var(--mute); }
.lesson .p-model-head .note::before { content: "("; }
.lesson .p-model-head .note::after { content: ")"; }
.lesson .meter { margin-left: auto; display: flex; gap: 0.8mm; letter-spacing: 0; }
.lesson .meter .cell { white-space: nowrap; font: 700 6.4pt "Inter"; padding: 0.6mm 1.5mm; border-radius: 1mm; background: var(--t-paper); color: #a9a1cc; border: 0.25mm solid var(--line); }
.lesson .meter .cell.on { background: var(--t-accent); color: #fff; border-color: var(--t-accent); }
.lesson .p-model > p { font: 400 10.2pt/1.52 "Source Serif 4", serif; color: var(--t-ink); margin: 3mm 5mm 1mm; }
.lesson .p-model > p.wc { font: 500 8pt "Inter"; color: var(--mute); text-align: right; margin: 0 5mm 2.2mm; }
.lesson .p-model > h4, .lesson .p-model > ul, .lesson .p-model > ol, .lesson .p-model > div { margin-left: 5mm; margin-right: 5mm; }
.lesson .p-why { position: relative; background: var(--accent-tint); border-radius: 2.6mm; padding: 3mm 5mm 1.6mm 19mm; margin: 0 0 4.2mm; font-size: 9pt; break-inside: avoid; min-height: 15mm; }
.lesson .p-why .p-icon.round { position: absolute; left: 5mm; top: 3mm; }
.lesson .p-why-title { font: 700 10.2pt "Inter"; color: var(--t-deep); margin: 0.4mm 0 1.4mm; letter-spacing: 0; text-transform: none; }
.lesson .p-why ul { margin: 0 0 1mm; padding-left: 4mm; }
.lesson .p-why li { margin-bottom: 0.5mm; }
.lesson .p-why li::marker { color: var(--t-accent); }
.lesson .p-dots { border: 0; border-top: 0.35mm dotted #b9b0de; margin: 1.6mm 0 1.6mm -14mm; }
.lesson .p-next-title { font: 700 9.4pt "Inter"; color: var(--t-deep); margin: 0 0 1mm -14mm; text-transform: none; letter-spacing: 0; }
.lesson .p-next-title + ul { margin-left: -14mm; }
.lesson .keysec .p-model > p, .lesson .theme-keys .keycols .p-model > p { font-size: 9pt; line-height: 1.42; margin: 2.2mm 3.5mm 1mm; }
.lesson .keysec .p-model-head, .lesson .theme-keys .p-model-head { padding: 1.6mm 3.5mm; font-size: 7pt; }
.lesson .keysec .p-why, .lesson .theme-keys .p-why { font-size: 8.1pt; padding: 2.2mm 3.5mm 1mm 14mm; }
.lesson .keysec .p-why .p-icon.round, .lesson .theme-keys .p-why .p-icon.round { width: 7.4mm; height: 7.4mm; left: 3.5mm; top: 2.2mm; padding: 1.5mm; }
.lesson .keysec .p-dots, .lesson .theme-keys .p-dots { margin-left: -10.5mm; }
.lesson .keysec .p-next-title, .lesson .keysec .p-next-title + ul, .lesson .theme-keys .p-next-title, .lesson .theme-keys .p-next-title + ul { margin-left: -10.5mm; }
.lesson .p-model, .lesson .p-why, .lesson .p-task { box-decoration-break: clone; }
.lesson .script .sp { color: var(--t-deep); }
.lesson .script u.aq { border-bottom-color: var(--t-accent); }
.lesson .script sup.q { color: var(--t-accent); }
.lesson .kx .n, .lesson .keygrid .n { color: var(--t-accent); }
.lesson .keysec h3 { border-bottom-color: var(--t-accent); }
.lesson .toc h2 { color: var(--t-deep); }
.lesson .toc .tp { color: var(--t-deep); border-bottom-color: var(--t-accent); }
.lesson .accesspage h2 { color: var(--t-deep); }
.lesson .accesspage .eyebrow { color: var(--t-accent); }
.lesson .ac-lead { font: 400 11pt/1.55 "Inter"; color: var(--mute); max-width: 160mm; margin-bottom: 7mm; }
.lesson .ac-card { display: flex; gap: 8mm; align-items: center; border: 0.5mm solid var(--t-accent); border-radius: 4mm; padding: 7mm 8mm; box-shadow: 0 0.8mm 0 var(--accent-tint2); }
.lesson .ac-qr { width: 38mm; height: 38mm; flex: none; }
.lesson .ac-steps { flex: 1; }
.lesson .ac-step { display: flex; gap: 4mm; align-items: center; font: 500 10.4pt/1.4 "Inter"; margin: 0 0 3.5mm; }
.lesson .ac-step b { flex: none; width: 8mm; height: 8mm; border-radius: 50%; background: var(--t-accent); color: #fff; font: 800 11pt/8mm "Inter"; text-align: center; }
.lesson .ac-url { font-weight: 700; color: var(--t-deep); }
.lesson .ac-perks { margin: 7mm 0 5mm; }
.lesson .ac-perks span { display: inline-block; background: var(--t-deep); color: #fff; font: 700 8.6pt "Inter"; border-radius: 1.8mm; padding: 1.6mm 3.2mm; margin: 0 1.6mm 2mm 0; }
.lesson .ac-note { font-size: 9pt; color: var(--mute); }
.lesson table.keep { break-inside: avoid; }
.lesson .authorpage .ap-banner { width: 82%; display: block; margin: 0 auto 4mm; }
.lesson .authorpage p { font-size: 9.5pt; line-height: 1.46; margin-bottom: 1.8mm; }
.lesson .authorpage .ap-facts { margin-top: 3mm; }
.lesson .notepage p { font-size: 9.9pt; line-height: 1.5; margin-bottom: 2mm; }
.lesson .notepage p.np-quote { color: var(--t-accent); font-size: 13pt; margin: 4mm 0 5mm; }
.lesson .notepage p.np-sign { color: var(--t-deep); margin-top: 3mm; }
.lesson .theme-keys .keycols.onecol { columns: 1; }
.lesson .theme-keys .keycols.onecol table.grid { font-size: 8.2pt; }
.lesson .keepgrp { break-inside: avoid; }
.lesson section.unit.theme-keys.keyflow + section.unit.theme-keys.keyflow { break-before: auto; margin-top: 9mm; padding-top: 6mm; border-top: 0.35mm solid var(--t-line2); }
.lesson section.unit.theme-keys .unit-head { break-after: avoid; }
.lesson .diagram img { display: block; width: 84% !important; height: auto; margin: 0 auto 2mm; }
.lesson .authorpage .ap-banner { width: 100%; height: 72mm; object-fit: cover; object-position: 50% 12%; }
.lesson .authorpage p { font-size: 9.3pt; line-height: 1.44; }