/* katex/katex.min.css */
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(katex/fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(katex/fonts/KaTeX_AMS-Regular.woff) format("woff"),url(katex/fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(katex/fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(katex/fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(katex/fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(katex/fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(katex/fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(katex/fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(katex/fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(katex/fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(katex/fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(katex/fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(katex/fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(katex/fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(katex/fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(katex/fonts/KaTeX_Main-Bold.woff) format("woff"),url(katex/fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(katex/fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(katex/fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(katex/fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(katex/fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(katex/fonts/KaTeX_Main-Italic.woff) format("woff"),url(katex/fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(katex/fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(katex/fonts/KaTeX_Main-Regular.woff) format("woff"),url(katex/fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(katex/fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(katex/fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(katex/fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(katex/fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(katex/fonts/KaTeX_Math-Italic.woff) format("woff"),url(katex/fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(katex/fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(katex/fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(katex/fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(katex/fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(katex/fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(katex/fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(katex/fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(katex/fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(katex/fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(katex/fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(katex/fonts/KaTeX_Script-Regular.woff) format("woff"),url(katex/fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(katex/fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(katex/fonts/KaTeX_Size1-Regular.woff) format("woff"),url(katex/fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(katex/fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(katex/fonts/KaTeX_Size2-Regular.woff) format("woff"),url(katex/fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(katex/fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(katex/fonts/KaTeX_Size3-Regular.woff) format("woff"),url(katex/fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(katex/fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(katex/fonts/KaTeX_Size4-Regular.woff) format("woff"),url(katex/fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(katex/fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(katex/fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(katex/fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.47"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}

/* styles.css */
:root{--ink:#23313a;--navy:#163040;--muted:#64737d;--line:#dce2e6;--paper:#fff;--panel:#f7f9fa;--blue:#2a5c8e;--orange:#ce6318;--purple:#7857a2;--green:#287d68;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,"system-ui","Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Helvetica Neue",Arial,sans-serif;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 var(--sans);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}a{color:var(--blue);text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,svg [tabindex]:focus-visible{outline:3px solid var(--blue);outline-offset:5px}svg [tabindex]:focus-visible{stroke:var(--blue);stroke-width:4}a:hover{color:var(--orange)}.skip{position:absolute;left:15px;top:-80px;background:white;padding:12px;z-index:20}.skip:focus{top:10px}.masthead{background:var(--navy);color:white}.masthead-inner{max-width:1220px;height:80px;margin:auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between}.wordmark{display:flex;align-items:center;gap:13px;color:white;text-decoration:none;font-size:18.5px;font-weight:600;letter-spacing:.02em}.wordmark:hover{color:white}.wordmark svg{width:31px;height:31px;fill:none;stroke:#fff;stroke-width:1.3}.wordmark-light{font-weight:400;opacity:.78}.level{font-size:13.5px;letter-spacing:.05em;opacity:.85}main{max-width:1200px;margin:auto;padding:0 40px}.title-block{max-width:960px;margin:80px auto 52px}.eyebrow,.section-kicker{font-size:12px;font-weight:650;letter-spacing:.16em;color:var(--muted);margin:0 0 21px}h1{font:normal clamp(38px,5.51vw,68.5px)/1.1 var(--serif);letter-spacing:-.045em;margin:0 0 28px;color:#1d2930}.standfirst{font:normal clamp(18.5px,2.13vw,24px)/1.5 var(--serif);color:#56646c;margin:0 0 32px}.chapter-meta{border-top:1px solid var(--line);display:flex;gap:36px;padding-top:18px;font-size:12.5px;color:var(--muted)}.experiment{margin:42px 0 0}.figure-heading{display:flex;align-items:baseline;gap:20px;margin:0 0 12px}.figure-number{font-size:12px;letter-spacing:.1em;white-space:nowrap;color:var(--muted);font-weight:650}.figure-heading h2{font:500 16px/1.5 var(--sans);margin:0}.drag-hint{margin-left:auto;color:var(--blue);font-size:12.5px}.experiment>svg{width:100%;display:block;background:var(--panel);border:1px solid #e5eaed;border-radius:3px}.experiment svg text{font-family:var(--sans);fill:var(--ink);font-size:15.5px}.experiment svg .vertex-label{font-family:var(--serif);font-size:21px;font-style:italic}.experiment svg .diagram-label{font-size:12.5px;letter-spacing:.12em;fill:var(--muted)}.experiment svg .angle-text{font-size:13.5px}.experiment svg .side-label{font-size:15.5px;paint-order:stroke;stroke:var(--panel);stroke-width:7px;stroke-linejoin:round}.experiment svg .handle{cursor:grab;touch-action:none}.experiment svg .handle:active{cursor:grabbing}.controls{display:grid;gap:32px;padding:22px 0;border-bottom:1px solid var(--line)}.hero-controls{grid-template-columns:1fr 1fr auto}.range-control label{font-size:12.5px;font-weight:600;display:flex;justify-content:space-between;gap:10px;line-height:1.45;align-items:baseline}.range-control output{font-variant-numeric:tabular-nums;font-size:18px;white-space:nowrap;color:var(--orange);font-weight:500}.range-control input[type=range]{width:100%;height:25px;margin:10px 0 0;accent-color:var(--orange);cursor:pointer}.range-ends{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.control-buttons{display:flex;align-items:center;gap:9px;align-self:center}.button{border:1px solid #bac6ce;border-radius:5px;padding:9px 15px;line-height:1.4;font-size:12.5px;font-weight:500;min-height:42px;background:white;color:var(--ink)}.button:hover{background:#edf2f5;border-color:#8b9da9}.button.dark{background:var(--navy);border-color:var(--navy);color:white}.button.dark:hover{background:#274d60}.button.quiet{border-color:transparent;background:transparent;color:var(--muted)}.button:disabled{opacity:.45;cursor:default}figcaption{font-size:12.5px;line-height:1.65;color:var(--muted);padding-top:14px;max-width:910px}.caption-number{color:var(--ink);font-weight:600;margin-right:10px}.hero-observation{display:grid;grid-template-columns:1fr 1.25fr;gap:30px;margin:28px 0 64px}.hero-observation p{margin:0;font-size:14px}.hero-observation p strong{display:block;font-weight:600}.hero-observation p>span{display:block;color:var(--muted);font-size:12.5px}.ratio-equation{display:flex;align-items:center;justify-content:flex-end;gap:15px;font:20.5px/1.4 var(--serif);color:var(--orange)}.fraction{display:inline-flex;vertical-align:middle;flex-direction:column;text-align:center;line-height:1.45;font-family:var(--serif)}.fraction>span:first-child{border-bottom:1px solid currentColor;padding:0 8px 3px}.fraction>span:last-child{padding:3px 8px 0}.chapter-nav{border-block:1px solid var(--line);display:flex;gap:26px;padding:16px 0;font-size:12.5px;background:rgba(255,255,255,.97);position:sticky;top:0;z-index:8;overflow:auto;white-space:nowrap}.chapter-nav a{color:var(--muted);text-decoration:none}.chapter-nav a.active,.chapter-nav a:hover{color:var(--orange)}.lesson-section{position:relative;margin:74px 0 0;scroll-margin-top:80px}.reading{max-width:680px;margin:0 auto}.reading h2{font:normal clamp(26.5px,3.11vw,38px)/1.24 var(--serif);letter-spacing:-.025em;margin:0 0 28px;color:#202b32}.reading p{margin:0 0 22px}.reading strong{font-weight:620}.reading h3{font:normal 22px/1.3 var(--serif);margin:35px 0 16px}.statement{border-left:3px solid var(--blue);padding:4px 0 4px 24px;margin:30px 0}.statement p{margin:10px 0 0}.small-label{font-size:12px;letter-spacing:.15em;color:var(--blue);font-weight:650}.note{font-size:13.5px;color:var(--muted)}.math-line{text-align:center;font:22px/1.6 var(--serif);padding:15px 0 24px;overflow-wrap:anywhere}.margin-note{position:absolute;top:145px;right:-4px;width:160px;font-size:12px;color:var(--muted);line-height:1.65}.margin-note>span{font-size:11px;letter-spacing:.11em;font-weight:650}.margin-note p{margin-top:9px}.reading .inline-math{font-family:var(--serif);font-size:1.13em}.wide-copy{max-width:870px;margin:28px auto}.segmented{display:flex;gap:6px;flex-wrap:wrap}.segmented button{background:white;border:1px solid var(--line);border-radius:5px;font-size:12.5px;padding:10px 18px;min-height:44px;color:var(--muted)}.segmented button[aria-pressed=true]{background:#eaf2f7;color:#225773;border-color:#7fadc5}.figure-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:16px}.formula-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;padding:22px 0;border-bottom:1px solid var(--line)}.formula-strip>div{text-align:center}.formula-strip .term{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.formula-strip .formula{font:23px/1.3 var(--serif)}.explanation{max-width:680px;margin:24px auto 0;font-size:15px}.explanation p{margin:0}.accent{color:var(--orange)}.blue{color:var(--blue)}.purple{color:var(--purple)}details{margin:24px 0;border-block:1px solid var(--line);padding:15px 0}summary{cursor:pointer;font-size:14px;font-weight:550}details>div{padding:18px 0 0;font-size:14px}details p:last-child{margin-bottom:0}.two-controls{grid-template-columns:1fr 1fr;max-width:760px;margin:auto}.proof-note{background:#f5f8fa;padding:20px 24px;font-size:14px;margin:24px 0}.proof-note p{margin:0}.step-list{display:flex;gap:0;list-style:none;padding:0;margin:0 0 24px;border-bottom:1px solid var(--line)}.step-list li{flex:1}.step-list button{width:100%;text-align:left;border:0;background:none;color:var(--muted);padding:12px 10px 15px;font-size:12.5px;border-bottom:2px solid transparent;min-height:48px}.step-list button[aria-current=step]{color:var(--orange);border-color:var(--orange);font-weight:650}.step-list .step-num{display:block;font:21.5px var(--serif);margin-bottom:5px}.worked-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;margin-top:26px;align-items:start}.step-copy{font-size:15px;min-height:260px}.step-copy h3{font:24px var(--serif);margin:0 0 12px}.step-copy p{margin:0 0 14px}.step-copy .math-line{font-size:20.5px;padding:10px 0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13.5px}th,td{padding:12px 13px;text-align:center;border-bottom:1px solid var(--line);font-weight:400}th{color:var(--muted);font-size:12px;background:#f6f8f9}th:first-child,td:first-child{text-align:left}caption{text-align:left;font-size:12px;color:var(--muted);padding:0 0 10px}.step-actions{display:flex;justify-content:space-between;align-items:center;margin-top:18px;gap:12px}.step-progress{font-size:12px;color:var(--muted)}.check-inline{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:15px}.number-field{width:100px;border:1px solid #6f7d87;border-radius:4px;padding:9px 10px;background:white}.feedback{padding:13px 17px;background:#eef4f7;color:#284e64;border-left:3px solid #5d8a9f;font-size:13.5px;margin:15px 0 0}.feedback.correct{background:#edf6f1;border-color:var(--green);color:#20634e}.feedback[hidden]{display:none}.quiz-list{counter-reset:questions}.quiz-question{padding:25px 0;border-bottom:1px solid var(--line);margin:0;min-width:0;border-left:0;border-right:0;border-top:0}.quiz-question legend{font-size:16px;line-height:1.6;font-weight:550;padding:20px 0 0;width:100%}.quiz-options{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 0}.quiz-options label{position:relative;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:5px;padding:10px 15px;font-size:14px;cursor:pointer}.quiz-options label:has(input:checked){border-color:var(--blue);background:#eef5f8}.quiz-options input{accent-color:var(--blue);width:16px;height:16px}.quiz-actions{display:flex;gap:15px;margin:24px 0}.recap{border-top:2px solid var(--navy);padding-top:28px;margin-top:56px}.recap h3{margin-top:0}.recap li{padding-left:6px;margin-bottom:13px}.resource-link{display:inline-flex;align-items:center;border-bottom:1px solid var(--blue);text-decoration:none;font-size:13.5px;margin-top:10px}.source-note{font-size:12px;color:var(--muted);margin-top:28px;line-height:1.7}footer{margin-top:100px;border-top:1px solid var(--line);background:#fafbfc;padding:35px max(24px,calc((100vw - 1120px)/2));color:var(--muted);font-size:12px}footer>div{display:flex;justify-content:space-between;gap:20px}.footer-brand{font-weight:650;color:var(--navy)}footer p{margin-bottom:0}.noscript{background:#fff1dd;padding:15px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(min-width:1150px){.reading{transform:translateX(-30px)}.margin-note{right:0}}@media(max-width:1100px){.margin-note{position:static;max-width:680px;width:auto;margin:25px auto 0;padding-left:20px;border-left:1px solid var(--line)}.margin-note p{margin-bottom:0}.hero-controls{grid-template-columns:1fr 1fr}.control-buttons{grid-column:1/-1;justify-content:center}.hero-observation{grid-template-columns:1fr 1fr}.ratio-equation{font-size:18.5px;gap:9px}.figure-heading{flex-wrap:wrap;gap:8px 18px}.drag-hint{margin-left:0}.worked-grid{grid-template-columns:1fr}.step-copy{min-height:0}}@media(max-width:640px){body{font-size:15px;line-height:1.65}main{padding:0 22px}.masthead-inner{height:65px;padding:0 22px}.wordmark{font-size:15px;gap:8px}.wordmark svg{width:26px}.level{font-size:12px}.title-block{margin:45px 0 35px}.eyebrow{font-size:11px;margin-bottom:15px}h1{font-size:42px;line-height:1.1}.standfirst{font-size:19.5px}.chapter-meta{gap:10px 20px;flex-wrap:wrap;font-size:12px}.figure-heading h2{font-size:14px}.figure-number{font-size:11px}.drag-hint{font-size:12px}.hero-controls{grid-template-columns:1fr;gap:18px}.control-buttons{justify-content:flex-start}.controls{padding:20px 0}.hero-observation{grid-template-columns:1fr;gap:16px;margin-bottom:40px}.ratio-equation{justify-content:flex-start;font-size:19.5px}.chapter-nav{gap:23px;font-size:12px}.lesson-section{margin-top:48px}.reading h2{font-size:29.5px}.math-line{font-size:19.5px}.statement{padding-left:18px}.two-controls{grid-template-columns:1fr}.formula-strip{gap:8px}.formula-strip .formula{font-size:18.5px}.formula-strip .term{font-size:12px}.figure-toolbar{display:block}.segmented{margin-bottom:12px}.segmented button{padding:8px 12px;font-size:12px}.step-list{overflow:auto}.step-list li{min-width:81px}.step-list button{font-size:12px;padding:9px 7px}.step-list .step-num{font-size:18px}.step-copy h3{font-size:22px}.quiz-options{display:grid;grid-template-columns:1fr}.quiz-options label{font-size:13.5px}.quiz-actions{flex-wrap:wrap}.reading{transform:none}footer{margin-top:65px}footer>div{flex-direction:column;gap:5px}figcaption{font-size:12px}.experiment>svg{border-radius:0}.math-line .fraction{font-size:18.5px}table{font-size:12.5px}th,td{padding:10px 8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media print{.masthead{background:white;color:black}.wordmark{color:black}.wordmark svg{stroke:black}.chapter-nav,.controls,.control-buttons,.quiz-actions,.step-actions,.skip{display:none}.title-block{margin:20px auto}main{max-width:none;padding:0}.margin-note{position:static;width:auto}.reading{transform:none}.experiment,.statement,.quiz-question{break-inside:avoid}.lesson-section{margin-top:35px}h1{font-size:39px}footer{margin-top:30px}details>div{display:block}}
@media(max-width:640px){.experiment svg .angle-text{font-size:16.5px}.experiment svg .side-label{font-size:17.5px}.experiment svg .diagram-label{font-size:14px}#worked-svg .side-label{font-size:23.5px}#worked-svg .vertex-label{font-size:26px}}

/* Full chapter: a readable article with wide mathematical figures. */
.chapter-map{margin-top:24px}.chapter-map details{border-top:0;margin-top:0}.chapter-map details>div{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.chapter-map p{font-size:12.5px;margin-bottom:12px}.subsection{scroll-margin-top:95px;margin:48px 0}.subsection>h3{border-top:1px solid var(--line);padding-top:26px}.reading h4{font:normal 21.5px/1.35 var(--serif);margin:10px 0 20px}.reading h5{font:600 12.5px/1.5 var(--sans);letter-spacing:.035em;margin:0 0 12px}.reading li{margin-bottom:12px}.reading ul,.reading ol{padding-left:25px}.reading .td-ref{font-size:12.5px;color:var(--muted);margin:22px 0 0;border-left:2px solid var(--line);padding-left:14px}.writing-model{padding:26px 0 22px;margin:45px 0;border-top:2px solid var(--navy);scroll-margin-top:90px}.model-label{font:650 12px/1.5 var(--sans);letter-spacing:.15em;color:var(--blue);margin:0 0 8px!important}.method-steps{font-size:14px;padding:15px 20px;background:#f4f7f9;margin:18px 0 24px}.method-steps li:last-child{margin-bottom:0}.model-problem{font-size:15px}.writing-model details{margin-bottom:0}.copy{font-size:15px;line-height:1.75}.practice{border-left:3px solid var(--orange);padding-left:24px;margin:35px 0}.practice h4{font-size:20.5px}.practice details{font-size:14px}.flash-set{margin:40px 0;padding-top:10px}.flash-set>h3{font-size:24px}.flash-item{border-top:1px solid var(--line);padding:18px 0 0}.flash-item>p{display:flex;align-items:baseline;gap:16px;margin:0;font-size:15px}.question-number{color:var(--muted);font-size:12px;min-width:23px;font-variant-numeric:tabular-nums}.flash-item details{border:0;margin:0;padding:12px 0 18px 39px}.flash-item summary{font-size:12.5px;color:var(--blue)}.flash-item details>div{font-size:14px;padding-top:12px}.proof summary{line-height:1.6}.reading .experiment,#modele-l1>.experiment{width:min(1000px,calc(100vw - 80px));position:relative;left:50%;transform:translateX(-50%);margin:36px 0 24px}.added-experiment .figure-heading h4{font:500 16px/1.5 var(--sans);margin:0}.added-experiment .segmented{margin-bottom:18px}.added-experiment .range-control{max-width:540px;margin:15px auto 20px}.added-experiment .range-control+.range-control{margin-top:-5px}.live-observation{max-width:740px;margin:20px auto 0;font-size:14px;line-height:1.7}.added-experiment figcaption{max-width:850px}.added-experiment svg .diagram-label{font-size:10.5px;letter-spacing:.05em}.added-experiment svg .vertex-label{font-size:17px}@media(min-width:641px){.added-experiment svg text,.added-experiment svg .side-label{font-size:13px}.added-experiment svg .angle-text{font-size:12px}}.reading>.explanation{margin-top:28px}.reading table{margin:15px 0 20px}.reading th{font-size:12.5px}.reading td{font-size:13.5px}.table-wrap{max-width:100%;overscroll-behavior-x:contain}.reading .math-line{font-size:20.5px;overflow-wrap:anywhere}.answer-form{margin:24px 0}.answer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.answer-grid label{font-size:12.5px}.answer-grid input{display:block;width:100%;min-width:0;padding:10px;border:1px solid #9baab4;border-radius:4px;margin-top:5px}.turtle-code{background:var(--navy);color:#f1f6f9;font:13.5px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;padding:25px;overflow:auto;border-radius:3px}.turtle-actions{display:flex;gap:10px;margin-bottom:16px}.model-index{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:30px 0}.model-index a{display:flex;gap:13px;align-items:center;text-decoration:none;padding:13px 0;border-bottom:1px solid var(--line);font-size:12.5px}.model-index .model-code{font-size:14px;font-weight:600;min-width:28px;color:var(--navy)}.model-index span{color:var(--muted)}.model-index a:hover span{color:var(--blue)}.glossary{margin:24px 0}.glossary>div{display:grid;grid-template-columns:160px 1fr;gap:22px;border-top:1px solid var(--line);padding:23px 0}.glossary dt{font:19.5px/1.5 var(--serif);overflow-wrap:anywhere}.glossary dd{margin:0;font-size:14px}.glossary dd strong{font-size:13.5px;font-weight:550}.glossary dd p{margin:9px 0 0}.reading #modele-l1{scroll-margin-top:90px}.reading .worked-grid{grid-template-columns:1fr}.reading .step-copy{min-height:0}.reading .table-wrap th,.reading .table-wrap td{overflow-wrap:anywhere}.reading .proof .table-wrap{font-size:12.5px}math{font-size:1em}.lesson-section:target>.reading>h2,.writing-model:target>h4{color:var(--blue)}
@media(max-width:640px){.reading .experiment,#modele-l1>.experiment{width:calc(100vw - 32px)}.reading h4{font-size:19.5px}.added-experiment .figure-heading{padding:0 6px}.added-experiment .figure-heading h4{font-size:14px}.added-experiment .segmented{padding:0 6px;gap:6px}.added-experiment .range-control{padding:0 10px}.added-experiment .live-observation,.added-experiment figcaption{padding-inline:6px}.added-experiment svg text{font-size:16.5px}.added-experiment svg .vertex-label{font-size:21px}.added-experiment svg .side-label{font-size:16.5px}.added-experiment svg .diagram-label{font-size:12.5px}.method-steps{padding:15px}.practice{padding-left:16px}.reading .math-line{font-size:18.5px}.chapter-map details>div{grid-template-columns:1fr}.glossary>div{grid-template-columns:1fr;gap:8px}.model-index{grid-template-columns:1fr}.answer-grid{grid-template-columns:1fr}.answer-grid input{max-width:200px}.reading th,.reading td{padding:10px 7px}.turtle-code{padding:16px;font-size:12px}.turtle-actions{padding-left:6px}.subsection{margin-top:36px}.flash-item details{padding-left:0}.flash-item>p{gap:10px}.flash-set{margin-top:32px}.reading small{font-size:12.5px}.table-wrap:has(table thead th:nth-child(4)){overflow-x:auto}}
@media print{.reading .experiment,#modele-l1>.experiment{width:100%;left:0;transform:none}.chapter-map,.turtle-actions,.answer-form{display:none}.reading{max-width:none}.writing-model{break-inside:avoid}.glossary>div{break-inside:avoid}details>div{display:block!important}.reading .math-line{font-size:16px}}

/* Mise en forme mathématique : titres en Latin Modern (chiffres alignés, comme le
   cours imprimé), formules KaTeX, notations françaises, pas de gras dans le corps. */
@font-face{font-family:'LM Roman';src:url(fonts/lmroman10-regular.woff2) format('woff2');unicode-range:U+0000-009F,U+00A1-202E,U+2030-FFFF;font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'LM Roman';src:url(fonts/lmroman10-italic.woff2) format('woff2');unicode-range:U+0000-009F,U+00A1-202E,U+2030-FFFF;font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'LM Roman Display';src:url(fonts/lmroman17-regular.woff2) format('woff2');unicode-range:U+0000-009F,U+00A1-202E,U+2030-FFFF;font-weight:400;font-style:normal;font-display:swap}
:root{--serif:'LM Roman',Georgia,serif;--display:'LM Roman Display','LM Roman',Georgia,serif}
h1{font-family:var(--display);letter-spacing:-.01em}.reading h2{font-family:var(--display);letter-spacing:0}.reading h3,.reading h4{letter-spacing:0}.standfirst{font-family:var(--serif)}
.katex{font-size:1.1em;text-rendering:auto}.katex-display{margin:.4em 0}
.reading .math-line,.math-line{font:15px/1.6 var(--sans);text-align:center;padding:12px 0 20px;overflow-wrap:normal;overflow-x:auto;overflow-y:hidden}.math-line .katex{font-size:1.3em}
main strong,main b,.reading strong{font-weight:inherit}.katex .accent{color:inherit}.hero-observation p strong{font-weight:600}
dfn{font-style:normal;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em}
.reading th,.reading td,.reading .table-wrap th,.reading .table-wrap td{text-align:left;overflow-wrap:normal;word-break:normal;hyphens:manual;vertical-align:top}.reading th{white-space:nowrap}
.experiment .figure-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin:0 0 14px}.experiment .figure-heading h2,.experiment .figure-heading h4{font:500 16px/1.45 var(--sans);letter-spacing:0;color:var(--ink);margin:0}
.experiment .live-observation,.experiment figcaption{max-width:none;margin-left:0;margin-right:0}.experiment .live-observation:not(:empty),.reading .proof-note{background:#f5f8fa;padding:14px 20px;font-size:14px;line-height:1.7;margin-top:18px}
.practice>.small-label{color:var(--orange)}
.range-control label>span{display:inline}
.experiment svg .vertex-label{font-family:KaTeX_Math,var(--serif);font-style:italic}
.katex .tx{font-family:var(--sans);font-size:.91em}
.katex-html>.base{margin-block:.12em}
.table-wrap:has(table thead th:nth-child(4)) table{min-width:0}
.nowrap{white-space:nowrap}
.quiz-question legend{font-weight:400}

/* Grand écran : plan permanent à gauche, texte élargi, figures, modèles et questions
   flash sur toute la largeur disponible. */
.toc-side{display:none}
@media(min-width:1200px){
html{scroll-padding-top:24px}
main{display:grid;grid-template-columns:220px minmax(0,1fr);column-gap:52px;max-width:1480px;padding:0 40px}
main>*{grid-column:2;min-width:0}
main>.chapter-nav,main>.chapter-map{display:none}
.toc-side{display:block;grid-column:1;grid-row:1/span 40;align-self:start;position:sticky;top:0;max-height:100vh;overflow:auto;padding:36px 4px 32px 0;font-size:12px;line-height:1.45;scrollbar-width:thin}
.toc-title{font-size:11px;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}
.toc-side ol{list-style:none;margin:0;padding:0}.toc-side>ol>li{margin:0 0 10px}
.toc-side>ol>li>a{font-weight:600;color:var(--navy)}
.toc-side ol ol{margin:6px 0 0;padding-left:12px;border-left:1px solid var(--line)}.toc-side ol ol li{margin:0}
.toc-side ol ol a{display:block;padding:3px 0 3px 10px;margin-left:-13px;border-left:2px solid transparent;color:var(--muted)}
.toc-side a{text-decoration:none}.toc-side a:hover{color:var(--orange)}
.toc-side>ol>li.current>a,.toc-side a.active{color:var(--orange)}.toc-side ol ol a.active{border-left-color:var(--orange)}
.title-block{margin:64px 0 44px;max-width:900px}
.lesson-section{container-type:inline-size;margin-top:64px}
.reading,.reading.chapter-map{max-width:760px;margin:0;transform:none}
.reading .experiment,#modele-l1>.experiment{width:100cqw;left:0;transform:none;margin:36px 0 28px}
.reading .flash-set{width:100cqw;display:grid;grid-template-columns:1fr 1fr;column-gap:48px;align-items:start}
.reading .flash-set>h3,.reading .flash-set>h4,.reading .flash-set>.note{grid-column:1/-1}
.masthead-inner{max-width:1480px;padding:0 40px}
.reading .step-list,.reading .worked-grid,#synthese .table-wrap,.reading .glossary,.reading .model-index{width:100cqw;max-width:none}
.reading .worked-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px}
.reading .glossary{display:grid;grid-template-columns:1fr 1fr;column-gap:48px;align-items:start}.reading .glossary>div{grid-template-columns:130px 1fr}
.reading .model-index{grid-template-columns:repeat(3,1fr)}
.reading .quiz-list{width:100cqw;display:grid;grid-template-columns:1fr 1fr;column-gap:48px;align-items:start}
footer{padding-inline:max(40px,calc((100vw - 1480px)/2 + 40px))}
}
@media(min-width:1380px){
.reading .writing-model{width:100cqw;display:grid;grid-template-columns:minmax(0,760px) minmax(240px,1fr);column-gap:44px;align-items:start}
.writing-model>*{grid-column:1}
.writing-model>.method-steps{grid-column:2;grid-row:3/span 6;position:sticky;top:24px;margin:0}
}

/* explore.css */
/* Explications explorables : déroulés figure–texte, rédactions vivantes,
   surlignage croisé entre le texte et la figure. Voir explore.js. */

/* Déroulé : la figure reste à l'écran pendant que les étapes défilent. */
.reading .walk{width:min(1000px,calc(100vw - 44px));margin:36px 0 28px calc(50% - min(1000px,100vw - 44px)/2);display:grid;grid-template-columns:minmax(250px,36%) minmax(0,1fr);column-gap:40px;align-items:start}
.walk-figure{grid-column:2;grid-row:1;position:sticky;top:var(--nav-h,64px)}
.walk-figure>svg{width:100%;display:block;background:var(--panel);border:1px solid #e5eaed;border-radius:4px}
.walk-figure .figure-heading{margin-bottom:12px}
.reading .walk-steps{grid-column:1;grid-row:1;list-style:none;margin:0;padding:12px 0 0}
.reading .walk-step{position:relative;padding:16px 20px 14px;margin:0 0 20vh;border-left:3px solid var(--line);border-radius:0 4px 4px 0;opacity:.45;cursor:pointer;transition:opacity .35s,border-color .35s,background .35s;scroll-margin-top:30vh}
.reading .walk-step:last-child{margin-bottom:28vh}
.walk-step.active{opacity:1;border-color:var(--orange);background:#fff7ef;cursor:default}
.walk-step.done{opacity:.72}
.walk-step:hover{opacity:.9}
.walk-label{font:650 12px/1.5 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--orange);margin:0 0 6px}
.walk-step p{margin:0 0 10px;font-size:14.5px;line-height:1.65}.walk-step p:last-child{margin-bottom:0}
.walk-step .math-line{padding:6px 0 10px}
.walk-nav{display:flex;align-items:center;gap:12px;margin-top:12px}
.walk-nav .walk-progress{margin-left:auto;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.walk figcaption{grid-column:1/-1;grid-row:2}
.walk .range-control{max-width:420px;margin:14px 0 0}
@media(min-width:1200px){.reading .walk{width:100cqw;margin-left:0}.walk-figure,.redaction-steps{top:14px}}
@media(max-width:900px){
.reading .walk{display:block}
.walk-figure{position:sticky;top:var(--nav-h,48px);z-index:3;background:var(--paper);padding:8px 0 10px}
.walk-figure>svg{max-height:36vh}
.walk-figure .figure-heading{margin-bottom:6px}.walk-figure .figure-heading h4{font-size:13.5px}
.walk .range-control{margin-top:8px}.walk-nav{margin-top:8px}
.reading .walk-step{margin-bottom:14vh;scroll-margin-top:52vh}.reading .walk-step:last-child{margin-bottom:20vh}
.walk-nav .button{padding:7px 11px;font-size:12px}
}
@media(max-width:640px){.reading .walk{width:calc(100vw - 32px);margin-left:calc(50% - (100vw - 32px)/2)}.reading .walk-step{padding:12px 14px}}

/* Les SVG des composants reprennent les styles de texte des figures. */
.walk svg text,.redaction svg text{font-family:var(--sans);fill:var(--ink);font-size:17px}
.walk svg .vertex-label,.redaction svg .vertex-label{font-family:KaTeX_Math,var(--serif);font-size:23px;font-style:italic}
.walk svg .diagram-label,.redaction svg .diagram-label{font-size:14px;letter-spacing:.05em;fill:var(--muted)}
.walk svg .angle-text,.redaction svg .angle-text{font-size:15px}
.walk svg .side-label,.redaction svg .side-label{font-size:17px;paint-order:stroke;stroke:var(--panel);stroke-width:7px;stroke-linejoin:round}
.walk svg .handle,.redaction svg .handle{cursor:grab;touch-action:none}
/* Relations écrites sur les dessins (∥, ⊥, ∈, milieu), comme sous les figures du cours imprimé
   (app.js, relations()) : lettres en italique, symboles droits, mots dans la police du texte. */
svg .relation .m{font-family:KaTeX_Math,var(--serif);font-style:italic}
svg .relation .s{font-family:KaTeX_Main,var(--serif)}
svg text.relation.halo,svg text.relation.halo tspan{fill:var(--panel)!important}
svg text.relation:not(.halo){stroke:none!important}

/* Surlignage croisé texte ↔ figure. */
.ref{color:var(--ref-color,inherit);border-bottom:1px dotted var(--ref-color,var(--blue));cursor:help;border-radius:2px;transition:background .2s,border-color .2s}
.ref:hover,.ref.lit,.ref:focus-visible{background:#fff0dc;border-bottom-color:var(--orange);outline:none}
/* Formule en fractions reliée à la figure : le pointillé d'une boîte en ligne reste à la hauteur du
   texte et traversait les dénominateurs ; en bloc dans la ligne, il passe sous toute la formule. */
.math-line .ref,.ref:has(.mfrac){display:inline-block;padding-bottom:3px}
svg [data-ref]{transition:opacity .3s,stroke-width .3s}
svg.has-lit [data-ref]:not(.lit){opacity:.25}
svg .lit{stroke:var(--orange)!important}
svg path.lit,svg line.lit,svg polygon.lit,svg polyline.lit{stroke-width:3.6px!important}
svg text.lit{fill:var(--orange)!important;stroke:none!important;font-weight:600}

/* Rédaction vivante : figure, étapes, copie. */
.reading .writing-model.redaction{display:block;width:min(1000px,calc(100vw - 44px));margin-left:calc(50% - min(1000px,100vw - 44px)/2);max-width:none;border-top:2px solid var(--navy)}
@media(min-width:1200px){.reading .writing-model.redaction{width:100cqw;margin-left:0}}
@media(max-width:640px){.reading .writing-model.redaction{width:calc(100vw - 32px);margin-left:calc(50% - (100vw - 32px)/2)}}
.redaction-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,320px);gap:26px 40px;align-items:start;margin-top:8px}
.redaction-figure{grid-column:1;grid-row:1}
.redaction-figure>svg{width:100%;display:block;background:var(--panel);border:1px solid #e5eaed;border-radius:4px;margin-bottom:14px}
.redaction-steps{grid-column:2;grid-row:1/span 2;position:sticky;top:64px;background:#f4f7f9;padding:16px 18px 18px;border-radius:4px}
.redaction-steps h5{margin-bottom:10px}
.reading .redaction-steps ol{list-style:none;margin:0;padding:0}
.reading .redaction-steps li{margin:0 0 8px}
.redaction-step{display:flex;gap:11px;align-items:flex-start;width:100%;text-align:left;border:1px solid transparent;background:transparent;border-radius:5px;padding:9px 10px;font-size:13.5px;line-height:1.5;color:var(--muted);transition:background .25s,color .25s,border-color .25s}
.redaction-step .step-index{flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;font-size:12px;font-weight:650;margin-top:1px}
.redaction-step:hover{background:#fff;color:var(--ink)}
.redaction-step.done{color:var(--ink)}.redaction-step.done .step-index{background:var(--navy);border-color:var(--navy);color:#fff}
.redaction-step.active{background:#fff;color:var(--ink);border-color:#f0c9a8}.redaction-step.active .step-index{background:var(--orange);border-color:var(--orange);color:#fff}
.redaction-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.copie{grid-column:1;grid-row:2;position:relative;background:#fff;border:1px solid var(--line);border-radius:4px;padding:18px 24px 20px 58px}
.copie::before{content:'';position:absolute;left:40px;top:0;bottom:0;border-left:1.5px solid #f2b8b8}
.copie h5{color:var(--muted);margin-bottom:8px}
.reading .copie-lines{list-style:none;margin:0;padding:0}
.reading .copie-line{padding:7px 0 7px;border-bottom:1px solid #e4ecf2;font-size:14.5px;line-height:1.7;margin:0}
.copie-line:last-child{border-bottom:0}
.copie-line .copie-mark{color:var(--muted);font-size:12px;margin-right:8px;font-variant-numeric:tabular-nums}
html.js .copie-line.pending{display:none}
html.js .copie.copie-vide{padding-top:12px;padding-bottom:12px}
html.js .copie.copie-vide h5{margin-bottom:0}
html.js .copie.copie-vide::after{content:'Clique sur « Écrire la première phrase » ou sur une étape : la rédaction s’écrit ici, phrase après phrase.';display:block;font-size:13.5px;color:var(--muted);margin-top:4px}
@media print{html.js .copie-line.pending{display:block}html.js .copie.copie-vide::after{display:none}.walk-figure,.redaction-steps{position:static}.walk-nav,.redaction-actions{display:none}.reading .walk-step{opacity:1;margin-bottom:14px}}
.copie-line.writing{animation:copie-write .8s ease-out both}
@keyframes copie-write{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@media(max-width:900px){.redaction-grid{display:block}.redaction-steps{position:static;margin:16px 0}.copie{margin-top:16px}}
@media(prefers-reduced-motion:reduce){.copie-line.writing{animation:none}}

/* Parcours des exercices du TD (graine, cible, couronne). */
.parcours{display:inline-flex;align-items:center;gap:4px;font-size:12px;letter-spacing:.03em;color:var(--muted);white-space:nowrap;vertical-align:-3px;border:1px solid var(--line);border-radius:10px;padding:0 7px 0 4px;line-height:18px;background:#fff}
.parcours img{width:14px;height:14px}

/* Invitation à manipuler : la poignée frémit une fois quand la figure apparaît. */
svg .handle.nudge{animation:handle-nudge 1.1s ease-in-out 2;transform-box:fill-box;transform-origin:center}
@keyframes handle-nudge{0%,100%{transform:translate(0,0)}25%{transform:translate(-7px,0)}75%{transform:translate(7px,0)}}
@media(prefers-reduced-motion:reduce){svg .handle.nudge{animation:none}}

/* Figures animées pas à pas (motion.js : Poser ABC sur FDE, le papillon…) : boutons des
   mouvements et « Tout jouer » dans le même flux (une ligne de moins sur mobile). */
.motion-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px}
.motion-case{margin-bottom:12px}
.added-experiment .motion-controls .segmented{display:contents}
.motion-controls .motion-play{margin-left:auto;min-width:112px}
@media(max-width:640px){.motion-controls{padding:0 6px}.motion-controls .motion-play{margin-left:0;min-width:0;padding:8px 12px;font-size:12px;min-height:44px}}
/* Commentaire des figures : il prend l'allure d'une étape active des déroulés, en plus grand.
   Une étiquette au-dessus nomme le mouvement en cours (motion.js) ou l'état d'une figure
   manipulable (extensions.js ; app.js pour « Multiplier ou ajouter ? » et « Ce que les angles
   nous disent »). Le texte apparaît en fondu quand le mouvement ou l'état change (classe
   fresh) ; les nombres qui suivent un curseur changent sans fondu. */
.experiment .live-observation:not(:empty),.reading .proof-note:not(:empty),.reading .explanation:not(:empty){margin-top:14px;padding:12px 18px 14px;background:#fff7ef;border-left:3px solid var(--orange);border-radius:0 4px 4px 0;font-size:16.5px;line-height:1.65}
.experiment .live-observation p,.reading .proof-note p,.reading .explanation p{margin:0}
.experiment .live-observation .walk-label,.reading .proof-note .walk-label,.reading .explanation .walk-label{margin-bottom:4px}
.experiment.motion .live-observation p,.experiment .live-observation p.fresh,.reading .proof-note p.fresh,.reading .explanation p.fresh{animation:motion-in .4s ease-out}
@keyframes motion-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.experiment .live-observation p,.reading .proof-note p,.reading .explanation p{animation:none}}
@media(max-width:640px){.experiment .live-observation:not(:empty),.reading .proof-note:not(:empty),.reading .explanation:not(:empty){padding:12px 14px 14px;font-size:15px}}
/* Toutes les figures : boutons en haut, puis le commentaire, le dessin et les curseurs, enfin la
   légende. Le cadre du commentaire garde la hauteur de son plus long texte (reserve.js). */
.experiment>.live-observation:not(:empty),.experiment>.explanation:not(:empty),.experiment>.proof-note:not(:empty){margin:8px 0 16px;max-width:none}
.experiment>.hero-observation{margin:8px 0 16px}
/* Tablette et colonne étroite : un dessin presque carré ne prend pas toute la largeur, pour que
   le curseur, sous lui, reste visible. */
@media(min-width:641px) and (max-width:1179px){.experiment.motion-side>svg{max-width:520px;margin:0 auto}}
/* Dessin presque carré (papillon) : avec la colonne de 704 px, le commentaire se place à côté du
   dessin, en haut, pour se lire pendant le mouvement (placement dense : dans la page, le
   commentaire précède le dessin). */
@media(min-width:1180px){
.experiment.motion-side{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-auto-flow:row dense;column-gap:24px;align-items:start}
.experiment.motion-side>*{grid-column:1/-1}
.experiment.motion-side>svg{grid-column:1;margin-top:8px}
.experiment.motion-side>.live-observation{grid-column:2}
.experiment.motion-side>.live-observation:not(:empty){margin-top:8px;margin-bottom:0}
.experiment.motion-side>.range-control{width:100%}
}
/* Invitation de la figure 1 (blocs.js) : les six côtés mesurables s'illuminent deux fois. */
svg.cotes-invite .measure-glow{animation:cotes-invite 1.2s ease-in-out 2}
@keyframes cotes-invite{0%,100%{opacity:0}50%{opacity:.5}}
@media(prefers-reduced-motion:reduce){svg.cotes-invite .measure-glow{animation:none}}

/* walk-proof.css */
/* Déroulé de la démonstration centrale (walk-proof.js) : textes de la figure, mêmes
   classes et mêmes tailles que les expériences (styles.css ne les définit que sous
   .experiment), fractions des rapports, et bloc masqué de l'ancienne figure #proof. */
#walk-proof-svg text{font-family:var(--sans);fill:var(--ink);font-size:17px}
#walk-proof-svg .vertex-label{font-family:KaTeX_Math,var(--serif);font-style:italic;font-size:24px}
#walk-proof-svg .side-label{font-size:17px;paint-order:stroke;stroke:var(--panel);stroke-width:7px;stroke-linejoin:round}
#walk-proof-svg .diagram-label{font-size:14px;letter-spacing:.05em;fill:var(--muted)}
#walk-proof-svg .angle-text{font-size:15px}
#walk-proof-svg .ratio-text{font-family:KaTeX_Math,var(--serif);font-style:italic;font-size:19px;fill:var(--navy)}
#walk-proof-svg .ratio-sign{font-family:KaTeX_Main,var(--serif);font-size:20px;fill:var(--navy)}
.proof-legacy{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);opacity:0;pointer-events:none}
@media(max-width:640px){#walk-proof-svg text{font-size:16.5px}#walk-proof-svg .ratio-text{font-size:17.5px}#walk-proof-svg .ratio-sign{font-size:18.5px}}

/* redaction-d2.css */
/* Rédaction vivante du modèle D2 : figure EFM–FGN (voir redaction-d2.js). */
#redaction-d2-svg text{font-family:var(--sans);fill:var(--ink);font-size:17px}
#redaction-d2-svg .vertex-label{font-family:var(--serif);font-size:23px;font-style:italic}
#redaction-d2-svg .side-label{font-size:19px;paint-order:stroke;stroke:var(--panel);stroke-width:7px;stroke-linejoin:round}
#redaction-d2-svg .d2-tag{font-size:13px;letter-spacing:.04em}
#redaction-d2-svg .corr-label{font-family:var(--serif);font-size:17px;font-style:italic}
/* États pilotés par le module : apparition en fondu, constructions auxiliaires estompées, éléments pas encore établis. */
#redaction-d2-svg .d2-fade{transition:opacity .35s,fill-opacity .4s}
#redaction-d2-svg .d2-landed{fill-opacity:0}
#redaction-d2-svg .d2-dim{opacity:.55}
#redaction-d2-svg.has-lit [data-ref].d2-dim:not(.lit){opacity:.25}
#redaction-d2-svg .d2-hidden{opacity:0!important;visibility:hidden;transition:opacity .35s,visibility 0s .35s}
#redaction-d2-svg .d2-hidden.lit{opacity:1!important;visibility:visible}
/* Largeur de l'article : centré comme les déroulés (100cqw déborde sous 1200 px). */
.reading #modele-d2.redaction{width:min(1000px,calc(100vw - 44px));margin-left:calc(50% - min(1000px,100vw - 44px)/2)}
@media(min-width:1200px){.reading #modele-d2.redaction{width:100cqw;margin-left:0}}
@media(max-width:640px){.reading #modele-d2.redaction{width:calc(100vw - 32px);margin-left:calc(50% - (100vw - 32px)/2)}}
/* Numéro de la question sur la copie, souligné comme dans le cours. */
#modele-d2 .copie-q,#modele-d1 .copie-q{text-decoration:underline;text-underline-offset:3px;margin-right:2px}
@media(max-width:640px){
#redaction-d2-svg .d2-tag{font-size:12.5px}
#redaction-d2-svg .corr-label{font-size:16px}
#redaction-d2-svg .side-label{font-size:16px}
}
#redaction-d2-svg.d2-static *{transition:none!important}
@media(prefers-reduced-motion:reduce){#redaction-d2-svg *{transition:none!important}}

/* walk-powers.css */
/* Déroulé « Pourquoi k² et k³ ? » : textes de la figure, boutons du rapport k, bande de lecture. */
#walk-powers-svg text{font-family:var(--sans);fill:var(--ink);font-size:18px}
#walk-powers-svg .v{font-family:KaTeX_Math,var(--serif);font-style:italic;font-size:1.06em}
#walk-powers-svg .cal{font-family:KaTeX_Caligraphic,var(--serif);font-style:normal;font-size:1.06em}
#walk-powers-svg .sup{font-size:72%}
#walk-powers-svg .cap{font-size:15px}
#walk-powers-svg text.muted{fill:var(--muted)}
.walk-powers-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:14px 0 0}
.walk-powers-klabel{font-size:12.5px;font-weight:600}
.walk-powers-controls .segmented button{min-height:40px;padding:5px 14px}
.walk-powers-readout{flex-basis:100%;font-size:13.5px;line-height:1.6;color:var(--muted);margin:0}
@media(max-width:640px){
#walk-powers-svg text{font-size:19px}
#walk-powers-svg .cap{font-size:16px}
.walk-powers-controls{margin-top:10px;gap:6px 10px}
.walk-powers-controls .segmented button{min-height:34px;padding:4px 10px;font-size:12px}
.walk-powers-readout{display:none}
}

/* presentation.css */
/* Présentation façon Sakana (pub.sakana.ai/mass), chargée en dernier : page blanche, police
   système, titres en gras, colonne de lecture centrée, figures plus larges que le texte,
   légende sous chaque figure, plan discret dans la marge gauche. Elle ne change que la
   présentation : textes, figures et scripts restent ceux du cours.
   Tailles de texte reprises de Distill (distill.pub, mesurées le 15/10/2026) : texte 16,96 px
   (interligne 1,7) dans une colonne de 704 px, titre 50 px, sous-titre 19,2 px, parties 36 px,
   sous-parties 20 px, légendes 13 px ; sur téléphone 14 px, 40 px, 16,8 px, 24 px, 18 px, 12 px. */
:root{
  --sans:-apple-system,"system-ui","Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Helvetica Neue",Arial,sans-serif;
  --paper:#fff;--ink:#212121;--heading:#262626;--muted:#6b6b6b;--line:#e5e5e5;--soft:#f6f6f7;
  --accent:#b9520e;                                  /* orange des étiquettes, lisible en petit */
  --g:24px;                                          /* gouttière */
  --text:min(704px,calc(100vw - 2*var(--g)));        /* colonne de lecture */
  --wide:min(800px,calc(100vw - 2*var(--g)));        /* figures : un peu plus larges que le texte, dessins presque à l'échelle 1 */
  --wider:min(980px,calc(100vw - 2*var(--g)));       /* figures à commentaire latéral (dessin carré) */
  --grid:var(--text);                                /* grilles (questions flash, QCM, lexique…) */
}
html{scroll-padding-top:64px}
.lesson-section,.subsection,.writing-model,.reading #modele-l1{scroll-margin-top:0}
body{font:1.06rem/1.7 var(--sans);color:var(--ink);background:var(--paper)}
a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:#b5b5b5;text-underline-offset:3px}
a:hover{color:var(--accent);text-decoration-color:currentColor}

/* En-tête : plus de bandeau, une signature discrète au-dessus du titre. */
.masthead{background:var(--paper);color:var(--ink)}
.masthead-inner{max-width:none;width:var(--text);height:auto;margin:0 auto;padding:32px 0 0;display:flex}
.wordmark{color:var(--heading);font-size:13px;font-weight:600;letter-spacing:0;gap:9px;text-decoration:none}
.wordmark:hover{color:var(--accent)}
.wordmark svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.7}
.wordmark-light{font-weight:400;opacity:1;color:var(--muted)}

/* Une seule colonne centrée ; le plan vit dans la marge (voir plus bas). */
main{display:block;max-width:none;margin:0;padding:0 var(--g)}
.title-block{max-width:var(--text);margin:52px auto 44px}
.title-block h1{font:700 50px/1.1 var(--sans);letter-spacing:-.022em;color:var(--heading);margin:0 0 16px;text-wrap:balance}
.standfirst{font:300 19.2px/1.55 var(--sans);color:var(--heading);margin:0 0 32px}
.chapter-meta{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:14px 64px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0 22px;font-size:13.5px;line-height:1.55;color:var(--ink)}
.chapter-meta p{margin:0}
.chapter-meta .meta-label{font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}

.reading,.reading.chapter-map{max-width:var(--text);margin-left:auto;margin-right:auto;transform:none}
.lesson-section{margin:96px 0 0}
.section-kicker{font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--accent);margin:0 0 12px}
.reading h2{font:600 36px/1.25 var(--sans);letter-spacing:-.018em;color:var(--heading);margin:0 0 30px;padding-bottom:16px;border-bottom:1px solid var(--line);text-wrap:balance}
.reading h3{font:700 20px/1.4 var(--sans);letter-spacing:-.01em;color:var(--heading);margin:0 0 16px;text-wrap:balance}
.subsection{margin:64px 0}.subsection>h3{border-top:0;padding-top:0}
.reading h4{font:650 18px/1.4 var(--sans);letter-spacing:-.005em;color:var(--heading);margin:6px 0 16px;text-wrap:balance}
.reading h5{font:650 12px/1.5 var(--sans);letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.reading p{margin:0 0 1em}
.reading li{margin-bottom:10px}
.note{font-size:14px;color:var(--muted)}
.lesson-section:target>.reading>h2,.writing-model:target>h4{color:var(--heading)}

/* Grille de Distill (mesurée le 15/10/2026) : sous 768 px, texte pleine largeur à 14 px ; de 768 à
   999 px, colonne de 472 px à 16 px ; de 1000 à 1179 px, colonne de 512 px (16 px, puis 16,96 px dès
   1100) ; dès 1180 px, colonne de 704 px à 16,96 px. Parties à 24 px jusqu'à 1099 px, 36 px ensuite.
   Les figures restent plus larges que le texte, comme les figures « screen » de Distill. */
@media(min-width:768px) and (max-width:999px){:root{--text:472px;--grid:var(--wide)}}
@media(min-width:1000px) and (max-width:1179px){:root{--text:512px}}
@media(min-width:768px) and (max-width:1099px){body{font-size:16px}}
@media(max-width:1099px){.reading h2{font-size:24px;margin-bottom:24px;padding-bottom:12px}.reading h3{font-size:18px}.flash-set>h3{font-size:18px}}
@media(max-width:999px){.chapter-meta{grid-template-columns:auto auto;gap:14px 36px}.chapter-meta>div:last-child{grid-column:1/-1}}

/* Encadrés du cours (définitions, propriétés…) : cartes à filet orange, comme les encarts Sakana. */
.statement{border:1px solid var(--line);border-top:3px solid var(--orange);border-radius:8px;padding:16px 22px 18px;margin:32px 0;background:var(--paper)}
.statement p{margin:8px 0 0}.statement p:first-of-type{margin-top:6px}
.small-label{font-size:11.5px;font-weight:650;letter-spacing:.13em;color:var(--accent)}
dfn,.reading u{text-decoration:underline dotted;text-decoration-color:#8fa6b5;text-decoration-thickness:1px;text-underline-offset:.26em}
.math-line,.reading .math-line{font:1em/1.6 var(--sans)}
.reading .td-ref{font-size:13.5px;color:var(--muted);border-left:2px solid var(--line);padding-left:14px}
.proof summary{line-height:1.5}

/* Modèles de rédaction. */
.writing-model{border-top:2px solid var(--heading);padding:24px 0 8px;margin:56px 0}
.model-label{font:650 11.5px/1.5 var(--sans);letter-spacing:.14em;color:var(--accent);margin:0 0 6px!important}
.method-steps{background:#eef5f8;border-left:3px solid var(--blue);border-radius:0 10px 10px 0;padding:16px 22px 14px;margin:16px 0 24px;font-size:16px}
.model-problem,.copy{font-size:16px}
.practice{border-left:0;border-top:2px solid var(--orange);padding:18px 0 0;margin:40px 0}
.practice>.small-label{color:var(--accent)}
.practice h4{font-size:18px}

/* Dépliants (démonstrations, réponses, corrections). */
details{border-block:1px solid var(--line);padding:13px 0;margin:24px 0}
summary{font-size:15px;font-weight:600;color:var(--heading)}
summary:hover{color:var(--accent)}
details>div{font-size:16px;padding-top:16px}
.practice details{font-size:16px}

/* Tableaux. */
table{font-size:14.5px}
th,td{border-bottom:1px solid var(--line);padding:11px 13px}
th{font-size:12.5px;font-weight:600;color:var(--muted);background:var(--soft)}
.reading th{font-size:12.5px}.reading td{font-size:14.5px}
caption{font-size:13px}

/* Figures : légende dessous (« Figure 3. » puis le titre, puis le commentaire). */
.experiment{display:flex;flex-direction:column}
.experiment>svg,.walk-figure>svg,.redaction-figure>svg{border:1px solid var(--line);border-radius:8px}
.experiment>.figure-heading{order:20;display:block;margin:16px 0 0}
.experiment>figcaption{order:21}
.figure-heading{font-size:13px;line-height:1.5;color:var(--heading)}
.figure-heading .figure-number{display:inline;font-size:inherit;font-weight:700;letter-spacing:0;color:var(--heading);margin-right:.4em;white-space:nowrap}
.figure-heading h2,.figure-heading h4,.experiment .figure-heading h2,.experiment .figure-heading h4,.added-experiment .figure-heading h4{display:inline;font:400 13px/1.5 var(--sans);color:var(--heading);margin:0;letter-spacing:0}
.figure-heading .drag-hint{display:inline;margin-left:.5em;font-size:inherit;color:var(--accent)}
.figure-heading .drag-hint::before{content:'· ';color:var(--muted)}
figcaption,.added-experiment figcaption{font-size:13px;line-height:1.5;color:var(--muted);padding-top:3px;max-width:none}
.walk-figure{display:flex;flex-direction:column}
.walk-figure>svg{order:-1}
.walk-figure>.figure-heading{display:block;margin:12px 0 0}
.walk figcaption{padding-top:8px}
.controls{border-bottom:0;padding:18px 0 0}
.range-control label{font-size:13px;font-weight:600;color:var(--heading)}
.range-control output{color:var(--accent);font-size:15px}
.range-ends{font-size:12px}
.button{border:1px solid #d4d4d8;border-radius:6px;padding:5px 12px;min-height:32px;font-size:13px;font-weight:500;background:var(--paper);color:var(--heading)}
.button:hover{background:#f4f4f5;border-color:#b4b4bb}
.button.dark{background:var(--heading);border-color:var(--heading);color:#fff}
.button.dark:hover{background:#000;border-color:#000}
.button.quiet{border-color:transparent;background:transparent;color:var(--muted)}
.segmented button{border:1px solid #d9d9de;border-radius:6px;font-size:13px;padding:5px 12px;min-height:32px;color:var(--muted);background:var(--paper)}
.segmented button:hover{border-color:#b4b4bb;color:var(--heading)}
.segmented button[aria-pressed=true]{background:#fff4ec;color:var(--accent);border-color:#efb58c}
.experiment .live-observation:not(:empty),.reading .proof-note:not(:empty),.reading .explanation:not(:empty){font-size:14px;border-radius:0 8px 8px 0}
.hero-observation p{font-size:14px}.hero-observation p>span{font-size:13px}
.added-experiment .range-control{max-width:440px}
.formula-strip{border-bottom:0}
.walk-step p{font-size:15px}
.walk-label{font-size:11px;letter-spacing:.13em;color:var(--accent)}
.reading .copie-line{font-size:15px}
.redaction-step{font-size:14px}
.redaction-steps,.reading .redaction-steps{background:var(--soft);border-radius:8px}
.copie{border-radius:8px}
.reading .writing-model.redaction{border-top-color:var(--heading)}

/* Figures et blocs larges, centrés sur la page. */
main>.experiment,.part>.experiment,main>.hero-observation,.part>.hero-observation{width:var(--wide);margin-left:auto;margin-right:auto}
.reading .experiment,#modele-l1>.experiment,.reading .walk,.reading .writing-model.redaction,.reading #modele-d2.redaction{width:var(--wide);max-width:none;left:auto;transform:none;margin-left:calc(50% - var(--wide)/2);margin-right:0}
.reading .flash-set,.reading .quiz-list,.reading .glossary,.reading .model-index,.reading .step-list,.reading .worked-grid{width:auto;max-width:none;margin-left:0}
@media(min-width:768px){#synthese .table-wrap{width:var(--grid);max-width:none;margin-left:calc(50% - var(--grid)/2)}}
.cellule-entete{display:none}
.math-line.deborde:not(.deborde-fin),.table-wrap.deborde:not(.deborde-fin){-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 44px),transparent)}
.walk-step .table-fiches,.walk-step .table-fiches tbody,.walk-step .table-fiches tr,.walk-step .table-fiches td{display:block;width:100%}
.walk-step .table-fiches thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.walk-step .table-fiches tr{border:1px solid var(--line);border-radius:8px;padding:8px 11px;margin:0 0 8px;background:var(--paper)}
.walk-step .table-fiches tr:last-child{margin-bottom:0}
.walk-step .table-fiches td{border:0;padding:2px 0;text-align:left}
.walk-step .table-fiches td:first-child{font-weight:600;color:var(--heading);padding-bottom:4px;margin-bottom:3px;border-bottom:1px solid var(--line)}
.walk-step .table-fiches td:first-child .cellule-entete{display:none}
.walk-step .table-fiches .cellule-entete{display:inline;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-right:.45em}
.walk-step .table-fiches .cellule-entete::after{content:' :'}
.reading .writing-model{width:auto;display:block}
/* Dessin carré avec le commentaire à côté (papillon, hauteurs croisées, Pythagore) : plus large,
   pour que le dessin garde sa taille à côté du commentaire. */
@media(min-width:1180px){.reading .experiment.motion-side{width:var(--wider);margin-left:calc(50% - var(--wider)/2)}}
/* Figure posée dans un encadré (Thalès) : elle reste dans la carte. La largeur inline que lui
   donne extensions.js visait l’ancienne colonne. */
.reading .statement .experiment{width:auto!important;margin-left:0;margin-right:0}
.writing-model>.method-steps{position:static;margin:16px 0 24px}

/* Questions flash, QCM, lexique. */
@media(min-width:1180px){.reading .flash-set{display:grid;grid-template-columns:1fr 1fr;column-gap:44px;align-items:start}.reading .flash-set>h3,.reading .flash-set>.note{grid-column:1/-1}}
@media(min-width:1100px){.flash-set>h3{font-size:20px}}  /* 18 px en dessous (règle des titres plus haut) */
.flash-item>p{font-size:1em}
.question-number{font-size:12px;color:var(--muted)}
.flash-item summary{font-size:13.5px;font-weight:600;color:var(--accent)}
.flash-item details>div{font-size:16px}
.quiz-question{padding:4px 0 24px}.quiz-question legend{font-size:1em;padding-top:22px}
.quiz-options label{font-size:15px;border-radius:6px}
.quiz-options label:has(input:checked){border-color:var(--orange);background:#fff7ef}
.quiz-options input{accent-color:var(--orange)}
.feedback{font-size:14.5px;border-radius:0 6px 6px 0}
.glossary dd{font-size:15px}.glossary dd strong{font-size:14.5px}
.model-index a{font-size:14px;text-decoration:none}
.model-index .model-code{color:var(--accent)}
.answer-grid label{font-size:13.5px}
.step-list button{font-size:13px}
.step-list button[aria-current=step]{color:var(--accent);border-color:var(--orange)}
.step-copy{font-size:16px}
.step-copy h3{font:700 20px/1.3 var(--sans)}
.step-list .step-num{font:700 18px var(--sans)}
.parcours{font-size:12px}
.recap{border-top:2px solid var(--heading)}

/* Barre des parties (écrans moyens) et plan détaillé. */
main>.chapter-nav{display:flex}.reading.chapter-map{display:block}
.chapter-nav{background:rgba(255,255,255,.97);border-block:1px solid var(--line);margin:56px calc(-1*var(--g)) 0;padding:13px max(var(--g),calc((100% - var(--text))/2 + var(--g)));gap:24px;font-size:13px;backdrop-filter:blur(6px)}
.chapter-nav a{color:var(--muted);text-decoration:none}
.chapter-nav a.active,.chapter-nav a:hover{color:var(--accent)}
.chapter-map{margin-top:28px}
.chapter-map summary{font-size:14.5px}
.chapter-map p{font-size:14px;margin-bottom:10px}.chapter-map a{color:var(--heading);text-decoration:none}.chapter-map a:hover{color:var(--accent)}

/* Pied de page. */
footer{margin-top:120px;background:var(--paper);border-top:1px solid var(--line);padding:32px var(--g) 40px;font-size:12.8px;color:var(--muted)}
footer>div,footer>p{max-width:var(--text);margin-left:auto;margin-right:auto}
.footer-brand{color:var(--heading)}

/* Plan dans la marge gauche dès 1000 px, comme Distill : discret (petit, gris), la partie lue
   est déployée et son entrée en orange (layout.js suit la lecture). */
.toc-side{display:none}
body:has(.sa-head) :is(.masthead,footer){padding-inline:0}
@media(min-width:1000px){
  /* Colonne centrée sur la page dès qu'il y a la place (≥ 1436 px) ; sinon décalée juste ce
     qu'il faut vers la droite pour laisser le plan libre (--shift). */
  :root{--wide:min(800px,calc(100vw - 252px));--wider:min(980px,calc(100vw - 252px));--grid:var(--wide);--text:var(--wide);--shift:max(24px,min(calc(1460px - 100vw),228px))}
  :root:has(.sa-head){--shift:24px}
  /* Une seule largeur de colonne dès 1000 px : texte, figures, tableaux et encadrés partagent le même bord (800 px quand il y a
     la place). Le corps passe à 18 px pour que la ligne garde une centaine de caractères (v16, 16/10). */
  body{font-size:18px}
  .method-steps,.model-problem,.copy,details>div,.practice details,.flash-item details>div,.step-copy{font-size:17px}
  summary,.walk-step :is(p,.math-line),.reading .copie-line,.quiz-options label,.glossary dd{font-size:16px}
  figcaption,.experiment figcaption,.added-experiment figcaption{max-width:66ch;font-size:14px}
  html{scroll-padding-top:24px}
  main{display:block;padding-left:var(--shift);padding-right:24px}
  .masthead,footer{padding-left:var(--shift);padding-right:24px}
  main>.chapter-nav,.reading.chapter-map{display:none}
  .toc-side{display:block;position:fixed;left:28px;top:0;width:176px;max-height:100vh;overflow:auto;padding:30px 0;margin:0;font-size:12.5px;line-height:1.45;scrollbar-width:none;z-index:5}
  /* Remises à zéro du plan ici et non dans styles.css (≥ 1200 px) : entre 1000 et 1199 px, numéros et soulignés apparaissaient. */
  .toc-side ol{list-style:none;margin:0;padding:0}.toc-side ol ol li{margin:0}.toc-side a{text-decoration:none}.toc-side ol ol a{display:block;margin-left:-13px;border-left:2px solid transparent}
  .toc-side::-webkit-scrollbar{display:none}
  .toc-title{font-size:10.5px;font-weight:600;letter-spacing:.14em;color:var(--muted);margin:0 0 14px}
  .toc-side>ol>li{margin:0 0 9px}
  .toc-side>ol>li>a{font-weight:500;color:var(--heading)}
  .toc-side ol ol{margin:6px 0 4px;padding-left:12px;border-left:1px solid var(--line)}
  .toc-side ol ol a{padding:3px 0 3px 10px;color:var(--muted)}
  html.js .toc-side>ol>li:not(.current)>ol{display:none}
  .toc-side a:hover,.toc-side>ol>li.current>a,.toc-side a.active{color:var(--accent)}
  .toc-side ol ol a.active{border-left-color:var(--orange)}
  .title-block{margin-top:52px}
  .lesson-section{container-type:normal;margin-top:96px}
  .reading .quiz-list,.reading .glossary{display:block}
  .reading .glossary>div{grid-template-columns:160px 1fr}
  .reading .model-index{grid-template-columns:1fr 1fr}
  .reading .worked-grid{grid-template-columns:1fr;gap:26px}
}

/* Sous 768 px (téléphone et petite tablette, comme Distill) : texte à 14 px, tout le reste à l'avenant. */
@media(max-width:767px){
  body{font-size:15px;line-height:1.6}
  html{scroll-padding-top:92px}
  .title-block h1{font-size:40px}
  .standfirst{font-size:16.8px;margin-bottom:24px}
  .chapter-meta{font-size:13px}
  .reading h4,.practice h4{font-size:16px}
  .method-steps{font-size:14px}
  .model-problem,.copy,details>div,.practice details,.flash-item details>div,.step-copy{font-size:14px}
  .note{font-size:14px}.reading .td-ref{font-size:13px}
  details{padding:5px 0}
  summary{font-size:14px;padding:10px 0}
  .flash-item details{padding:4px 0 12px 39px}
  .flash-item summary{font-size:14px;padding:10px 0}
  .palier>summary{font-size:14px;padding:10px 0}
  table,.reading td{font-size:13.5px}
  .reading th{white-space:normal}
  .figure-heading,.figure-heading h2,.figure-heading h4,.experiment .figure-heading h2,.experiment .figure-heading h4,.added-experiment .figure-heading h4{font-size:13.5px}
  figcaption,.added-experiment figcaption,.reading figcaption,.lesson-section figcaption,.experiment figcaption,figure figcaption{font-size:14px}
  .button,.segmented button{font-size:13px;min-height:40px;padding:8px 14px}
  .experiment .live-observation:not(:empty),.reading .proof-note:not(:empty),.reading .explanation:not(:empty){font-size:14px}
  .hero-observation p{font-size:14px}.hero-observation p>span{font-size:13.5px}
  .walk-step p,.reading .copie-line{font-size:14px}
  .redaction-step{font-size:14px;min-height:40px}
  .chapter-nav{font-size:12.5px;flex-wrap:wrap;gap:6px 18px;overflow:visible}  /* deux lignes plutôt qu'un débordement invisible */
  .quiz-options label,.feedback,.glossary dd{font-size:14px}
  .quiz-options label{min-height:40px}
  .model-index a{min-height:40px}
  .plan-dialog-corps a{min-height:40px;display:flex;align-items:center}
}
/* Téléphone : marges et espacements. */
@media(max-width:640px){
  :root{--g:16px}
  main{padding:0 var(--g)}
  .masthead-inner{padding-top:22px}
  .title-block{margin:34px auto 32px}
  .lesson-section{margin-top:64px}
  .subsection{margin:48px 0}
  .statement{padding:14px 16px 16px}
  .practice{padding-left:0}
  .method-steps{padding:14px 16px 12px}
  .experiment>svg,.walk-figure>svg,.redaction-figure>svg{border-radius:6px}
  .chapter-nav{padding:11px var(--g);gap:20px;margin-top:40px}
  footer{margin-top:80px}
  .flash-item details{padding-left:0}
  /* Tableaux de texte de 3 colonnes ou plus : une fiche par ligne sur téléphone, sans défilement horizontal. */
  .table-fiches,.table-fiches tbody,.table-fiches tr,.table-fiches td{display:block;width:100%}
  .table-fiches thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .table-fiches tr{border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:0 0 10px;background:var(--paper)}
  .table-fiches tr:last-child{margin-bottom:0}
  .table-fiches td{border:0;padding:3px 0;text-align:left}
  .table-fiches td:first-child{font-weight:600;color:var(--heading);padding-bottom:5px;margin-bottom:4px;border-bottom:1px solid var(--line)}
  .table-fiches td:first-child .cellule-entete{display:none}
  .table-fiches .cellule-entete{display:inline;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-right:.5em}
  .table-fiches .cellule-entete::after{content:' :'}
}
/* Parcours en cinq parties (parcours.js) : une seule partie affichée ; les autres restent dans la
   page, repliées, invisibles et hors de l'écran. Elles ne sont pas mises en page tant qu'elles sont
   cachées (content-visibility:hidden) : la première mise en page de la page entière coûtait
   ≈ 0,2 s sur téléphone. Une partie l'est à son affichage, et une mesure demandée par un script
   dans une partie cachée (figure dessinée hors de sa partie, impression) la force : les mesures
   restent justes. Les polices que seule une partie cachée emploie sont chargées à part (parcours.js,
   <link rel="preload"> de build_course.py), pour qu'elle s'affiche d'emblée dans ses polices ; ses
   champs de saisie sont retirés jusqu'à son affichage (parcours.js : sinon Chrome la mettrait en
   page pour remplir les formulaires) ; blocs.js ne mesure que les figures de la partie affichée.
   Navigateur sans content-visibility : les parties cachées sont mises en page comme avant.
   Sans JavaScript et à l'impression, le cours se lit d'un seul tenant. */
html.en-parties:not([data-part="1"]) .part[data-part="1"],html.en-parties:not([data-part="2"]) .part[data-part="2"],html.en-parties:not([data-part="3"]) .part[data-part="3"],html.en-parties:not([data-part="4"]) .part[data-part="4"],html.en-parties:not([data-part="5"]) .part[data-part="5"],html.en-parties:not([data-part="6"]) .part[data-part="6"]{height:0;overflow:hidden;visibility:hidden;transform:translateY(-200000px);content-visibility:hidden}
.part-head{margin:52px auto 8px}
.part-kicker{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.part-head h1{font:700 50px/1.1 var(--sans);letter-spacing:-.022em;color:var(--heading);margin:0;text-wrap:balance}
.part-head+.lesson-section{margin-top:56px}
.part-nav{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin:80px auto 0;padding-top:22px;border-top:1px solid var(--line)}
.part-nav a{display:flex;flex-direction:column;gap:3px;max-width:48%;text-decoration:none;color:var(--heading)}
.part-nav .part-next{margin-left:auto;text-align:right}
.part-nav-label{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.part-nav-title{font-size:17px;font-weight:600;line-height:1.35}
.part-nav a:hover .part-nav-title{color:var(--accent)}
.reading .vers-entrainement{font-size:13.5px;color:var(--muted);border-left:2px solid var(--line);padding-left:14px}
@media(max-width:1099px){.part-head h1{font-size:36px}}
@media(max-width:767px){.part-head{margin-top:34px}.part-head h1{font-size:30px}.part-nav-title{font-size:15px}.reading .vers-entrainement{font-size:12.5px}}
@media print{
  html.en-parties .part{height:auto!important;overflow:visible!important;visibility:visible!important;transform:none!important;content-visibility:visible!important}
  .part-nav{display:none}
  .toc-side,.chapter-nav{display:none!important}
  :root{--text:100%;--wide:100%;--grid:100%}
  .experiment>.figure-heading{margin-top:8px}
}

/* Blocs de figure (blocs.js) : invitation « À toi » au-dessus de chaque figure manipulable, en
   pastille comme les renvois « in figure » de Sakana ; à l'arrivée sur la figure, la commande à
   essayer s'illumine deux fois ; l'invitation s'estompe après la première manipulation. */
.cta{order:-2;align-self:flex-start;justify-self:start;display:inline-block;max-width:100%;margin:0 0 12px;padding:3px 13px 4px 10px;border:1px solid #f0c3a2;border-radius:999px;background:#fff8f2;color:var(--accent);font-size:13px;font-weight:600;line-height:1.45;transition:opacity .5s,color .5s,border-color .5s,background-color .5s}
.cta::before{content:'↓';font-weight:700;margin-right:6px}
.experiment.cta-done .cta{opacity:.7;color:var(--muted);border-color:var(--line);background:var(--paper)}
.experiment.has-cta .drag-hint{display:none}
.cta-pulse{animation:cta-pulse 1.2s ease-out 2}
input[type=range].cta-pulse{border-radius:999px}
@keyframes cta-pulse{0%{box-shadow:0 0 0 0 rgba(206,99,24,.5)}70%{box-shadow:0 0 0 11px rgba(206,99,24,0)}100%{box-shadow:0 0 0 0 rgba(206,99,24,0)}}
@media(prefers-reduced-motion:reduce){.cta-pulse{animation:none}}
@media(max-width:640px){.cta{font-size:12.5px;border-radius:14px;margin:0 6px 10px}}

/* Conjectures guidées (build_course.py, dist/conjecture.js) */
.conjecture{margin:24px 0 8px;padding:16px 20px;border:1px dashed #b9c6ce;border-radius:10px;background:#fbfcfd}
.conjecture .small-label{display:block;margin-bottom:6px}
.conjecture-amorce{margin:0 0 12px;font-size:1.02em}
.conjecture-choix{display:grid;gap:8px}
.conjecture-choix .button{text-align:left;white-space:normal;line-height:1.45;padding:10px 14px;font-size:.95em}
.conjecture-choix .button[aria-pressed=true]{border-color:var(--blue);background:#eef5f8}
.conjecture-choix .button.juste{border-color:var(--green);background:#eef7f2;color:#1f5f4a}
.conjecture-choix .button.incorrect{border-color:#c0392b;background:#fff5f3;color:#7f1d1d}
.conjecture .feedback{margin:12px 0 0}
.conjecture .feedback.incorrect{border-left-color:#c0392b;background:#fff5f3;color:#7f1d1d}
.conjecture .feedback.correct{border-left-color:var(--green);background:#eef7f2;color:#1f5f4a}
.conjecture-suite{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:.95em}
.conjecture-suite p{margin:0}

/* Tiroir « Plan » (dist/layout.js) : petits écrans seulement */
.plan-bouton{position:fixed;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:40;min-height:42px;padding:9px 16px;border:1px solid var(--line);border-radius:999px;background:var(--navy);color:#fff;font:600 13px/1 var(--sans);box-shadow:0 6px 18px rgba(22,48,64,.25);cursor:pointer}
@media(min-width:1000px){.plan-bouton{display:none}}
@media print{.plan-bouton{display:none}}
.plan-dialog{border:0;border-radius:12px;padding:0;width:min(560px,94vw);max-height:88vh;box-shadow:0 20px 60px rgba(0,0,0,.35);color:var(--ink);background:var(--paper)}
.plan-dialog::backdrop{background:rgba(22,48,64,.55)}
.plan-dialog-tete{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line)}
.plan-dialog-tete p{margin:0;font-size:12px;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.plan-dialog-corps{padding:10px 18px 18px;overflow:auto;max-height:calc(88vh - 60px);font-size:15px;line-height:1.5}
.plan-dialog-corps ol{list-style:none;margin:0;padding:0}
.plan-dialog-corps ol ol{margin:4px 0 10px;padding-left:14px;border-left:1px solid var(--line);display:block!important}
.plan-dialog-corps li{margin:0}
.plan-dialog-corps a{display:block;padding:7px 0 7px 8px;text-decoration:none;color:var(--ink);min-height:36px}
.plan-dialog-corps > ol > li > a{font-weight:600;color:var(--navy)}
.plan-dialog-corps a.active,.plan-dialog-corps li.current > a,.plan-dialog-corps li.td-ouverte > a{color:var(--accent)}
.plan-dialog-corps a.fait::after{content:' ✓';color:var(--green)}
.plan-dialog-corps .td-exo img{width:13px;height:13px;vertical-align:-2px;margin-right:4px}

/* Découverte avant révélation : la figure 1 garde pour elle « × k » et l'égalité des rapports, la figure 19 sa
   conclusion, tant que la conjecture correspondante n'est pas trouvée (conjecture.js pose la classe <id>-ok). */
html.js:not(.conjecture-mesures-ok) .hero-observation,html.js:not(.conjecture-mesures-ok) .hero-k-label{display:none}
html.js:not(.conjecture-etirement-ok) .stretch-conclusion{display:none}
/* Paliers d'un exercice guidé : chacun s'ouvre après le précédent */
.palier{margin:0;padding:0;border:0}
.palier>summary{font-size:.95em;color:var(--blue);padding:2px 0}
@media(max-width:767px){
  .palier>summary{font-size:14px;padding:10px 0}
  body:has(.sa-head) :is(figcaption,.figure-heading,.figure-heading h2,.figure-heading h4,.note){font-size:14px}
}

/* td.css */
/* Feuille d'exercices (TD) et corrigé : page 6 du parcours (source/td/td_convert.py).
   Présentation pensée pour l'écran, pas pour l'imprimé : encadrés en « callouts » colorés (bleu
   démarche, ambre pièges, vert à retenir), copies ✎ en cartes, corrigé guidé question par question
   (dist/td.js), exercices marqués « fait », figures agrandies au clic. */
.td-section .reading>h2{margin-bottom:24px}
.td-legende{font-size:14px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:28px}
.td-legende p{margin:0 0 6px}
.td-legende .parcours{margin-right:6px}

/* Exercices */
.td-exercice{border-top:1px solid var(--line);padding-top:22px;margin-top:44px}
/* Le navigateur ne met en page un exercice que lorsqu'il approche de l'écran : la page TD (54 exercices,
   même repliée quand une autre partie est affichée) ne ralentit plus le chargement (3,1 → 2,4 s mesurés
   sur téléphone moyen simulé). La hauteur réelle est gardée une fois l'exercice affiché (auto). */
.td-exercice{content-visibility:auto;contain-intrinsic-size:auto 900px}
.td-exercice.td-enrichissement{border-top:1px dashed #b9b9bf;margin-top:28px;padding-left:16px;border-left:3px solid #e2e2e6}
.reading .td-titre{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:18px;line-height:1.4;margin:0 0 12px}
.td-num{color:var(--accent);font-variant-numeric:tabular-nums;margin-right:2px}
.td-meta{display:inline-flex;align-items:center;gap:10px;margin-left:auto;font-weight:400}
.td-etoiles{font-size:13px;letter-spacing:.06em;color:#636369;white-space:nowrap}
@media(min-width:1000px){.reading .td-titre{font-size:20px}}
.td-icone{padding:0 3px;border-radius:9px}
.td-sujet{margin:-4px 0 12px}
.td-enonce>p,.td-corrige-corps>p{margin:0 0 .8em}

/* Listes numérotées comme dans le TD (a), b)… ; 1., 2.… ; A1)…) */
.reading .td-liste{list-style:none;margin:6px 0 12px;padding:0}
.reading .td-liste>li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:.55em;margin:0 0 8px}
.td-lab{font-variant-numeric:tabular-nums;color:var(--heading);min-width:1.1em}
.td-liste>li>div>p{margin:0 0 .45em}
.td-liste>li>div>p:last-child{margin-bottom:0}
.td-colonnes .td-liste{columns:2;column-gap:36px}
.td-colonnes .td-liste>li{break-inside:avoid}

/* Encadrés : une famille de « callouts » à filet gauche coloré, dans la palette du cours
   (bleu = démarche, ambre = pièges et attention, vert = à retenir, gris-bleu = rappel et gestes). */
.td-cadre{border:0;border-left:3px solid #9fb3c0;border-radius:0 10px 10px 0;padding:12px 18px;margin:20px 0;background:#f3f6f8}
.td-cadre>p:last-child,.td-cadre>.td-liste:last-child{margin-bottom:0}
.td-rappel,.td-enrichi{border-left-color:#9fb3c0;background:#f3f6f8}
.td-gestes{border-left-color:var(--navy);background:#f3f6f8}
.td-pieges,.td-attention{border-left-color:#d99a1e;background:#fff8e8}
.td-pieges .td-etiquette,.td-attention .td-etiquette{color:#8a5a00}
.td-retenir{border-left-color:var(--green);background:#eef7f2}
.td-retenir .td-etiquette{color:var(--green)}
.td-methode{border-left-color:var(--blue);background:#eef5f8;padding:10px 16px}
.td-methode .td-etiquette{color:var(--blue)}
.td-boite{padding:0 18px 12px;overflow:hidden;border-left:0;border-radius:10px;border:1px solid #d7dfe4;background:var(--paper)}
.td-cadre-titre{margin:0 -18px 10px;padding:7px 18px;background:var(--navy);color:#fff;font-size:14px}
.td-etiquette{font-weight:650}
.td-etape{margin:16px 0 8px}

/* Copies ✎ : ce qui s'écrit sur une copie de contrôle. Carte blanche, plume dans la marge,
   fin trait de marge comme sur une copie ; les résultats encadrés prennent la couleur d'accent. */
.td-copie{position:relative;margin:12px 0;padding:12px 18px 12px 44px;border:1px solid #e2e7eb;border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(22,48,64,.05)}
.td-copie::before{content:'✎';position:absolute;left:11px;top:10px;color:#9aa7b0;font-size:14px}
.td-copie::after{content:'';position:absolute;left:32px;top:8px;bottom:8px;border-left:1px solid #f0cfc8}
.td-copie>p:last-child,.td-copie>div>p:last-child{margin-bottom:0}
/* Deux copies côte à côte dans l'imprimé : à l'écran, une carte par réponse, l'une sous l'autre
   (les égalités d'angles ne se coupent plus en deux colonnes étroites). */
.td-copie.td-copie-deux{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:0;border:0;background:none;box-shadow:none}
.td-copie.td-copie-deux::before,.td-copie.td-copie-deux::after{display:none}
.td-copie-deux>[data-q],.td-copie-deux>div:not(.td-pas){position:relative;padding:12px 18px 12px 44px;border:1px solid #e2e7eb;border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(22,48,64,.05)}
.td-copie-deux>div:not(.td-pas)::before{content:'✎';position:absolute;left:11px;top:10px;color:#9aa7b0;font-size:14px}
.td-copie-deux>div:not(.td-pas)::after{content:'';position:absolute;left:32px;top:8px;bottom:8px;border-left:1px solid #f0cfc8}
/* Repères de question dans les copies ; soulignements du TD = termes et titres, pas des liens */
.td-q{color:var(--accent);font-variant-numeric:tabular-nums}
.td-section u{text-decoration:underline dotted;text-decoration-color:#8fa6b5;text-underline-offset:4px}
.td-etape u,.td-sujet u{text-decoration:none;font-weight:650;color:var(--heading)}
.td-corrige-corps .katex .fbox{border-color:var(--accent);border-radius:3px}
.td-corrige-corps .katex .boxpad{background:#fff4ec;border-radius:3px}
/* Les questions en attente sont masquées même quand une règle d'affichage (grille des listes) les cible. */
.td-corrige-corps [hidden]{display:none!important}

/* Formules, figures, tableaux */
.td-formule{margin:10px 0;overflow-x:auto;overflow-y:hidden}
.td-formules{display:flex;flex-wrap:wrap;justify-content:center;justify-content:safe center;align-items:center;gap:8px 2.2em;padding:2px 0}
.td-morceau{max-width:100%;text-align:center}
.td-morceau .katex-display{margin:0}
.td-reponse-enr{width:fit-content;max-width:100%;margin:10px auto;padding:6px 12px;border:1px solid var(--accent);border-radius:4px;background:#fff4ec;gap:6px 1.4em}
/* Formule ou tableau plus large que l'écran : dégradé au bord droit tant que la fin n'est pas atteinte (td.js ; report du
   20/10/2026 depuis le moteur des chapitres). */
.td-formule.td-defile:not(.td-defile-fin),.td-tableau.td-defile:not(.td-defile-fin){-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 44px),transparent)}
.td-figure{margin:16px 0;text-align:center}
.td-figure img{max-width:100%;height:auto}
.td-centre{text-align:center}
.td-centre .td-tableau table{margin:0 auto}
.td-tableau{overflow-x:auto;margin:12px 0}
.td-tableau table{border-collapse:collapse;font-size:15px}
.td-tableau td,.td-tableau th{border:1px solid #9d9da3;padding:6px 12px;background:var(--paper);font-weight:400;color:var(--ink)}
.td-tableau th{background:var(--soft)}
.td-tableau .al-l{text-align:left}.td-tableau .al-c{text-align:center}.td-tableau .al-r{text-align:right}
.td-fantome{visibility:hidden}
@media(max-width:999px){
  .td-tableau table{font-size:13.5px}
  .td-tableau td,.td-tableau th{padding:5px 7px;white-space:normal}
  .td-tableau td .nowrap,.td-tableau th .nowrap{white-space:normal}
  .td-tableau .td-fantome{display:none}
}
.td-minipage{display:inline-block;vertical-align:top;width:calc(var(--w,100%) - 14px);margin-right:14px}
.td-minipage:last-child{margin-right:0}
.td-minipage:only-child{display:block;width:auto;margin-right:0}
@media(max-width:640px){.td-minipage{display:block;width:auto;margin-right:0}}
.reading code{font:.92em ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--soft);padding:1px 5px;border-radius:4px}

/* Corrigé sous chaque exercice, fermé par défaut ; libellé « Voir » / « Masquer » */
details.td-corrige{margin:18px 0 0;border-block:1px solid var(--line);padding:10px 0}
details.td-corrige>summary{font-size:14px;font-weight:600;color:var(--accent);cursor:pointer}
details.td-corrige>summary .td-fermer,details.td-corrige[open]>summary .td-ouvrir{display:none}
details.td-corrige[open]>summary .td-fermer{display:inline}
.td-corrige-corps{padding-top:12px}
.td-cadre details.td-corrige{border-bottom:0;margin-bottom:-4px}

/* Corrigé guidé (dist/td.js) : la démarche est visible, chaque question attend derrière un bloc
   « Question b) » avec, s'il y a lieu, « Vérifie ta réponse », puis « Voir la correction ». */
.td-outils{display:flex;justify-content:flex-end;margin:0 0 6px}
.td-outils .button{font-size:12.5px;min-height:36px;padding:6px 12px;border-color:var(--line);background:var(--soft);color:var(--ink)}
.td-pas{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:12px 0;padding:12px 16px;border:1px dashed #b9c6ce;border-radius:10px;background:#fbfcfd}
.td-pas-titre{flex:1 1 100%;margin:0;font-weight:600;font-size:15px;color:var(--heading)}
.td-verif{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;flex:1 1 auto}
.td-champ{display:inline-flex;align-items:center;gap:7px;font-size:15px}
.td-lhs .katex{font-size:1.05em}
.td-champ .number-field{width:96px;padding:8px 10px;font-variant-numeric:tabular-nums}
.td-champ .number-field[aria-invalid=true]{border-color:#c0392b;background:#fff5f3}
.td-unite{color:var(--muted)}
.td-verif .button,.td-choix .button{min-height:38px;padding:7px 13px}
.td-verif .feedback,.td-choix .feedback{flex:1 1 100%;margin:2px 0 0;padding:9px 12px;font-size:14px}
.td-choix{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:1 1 auto}
.td-choix .button[aria-pressed=true]{border-color:var(--blue);background:#eef5f8;color:#225773}
.td-choix .button.incorrect[aria-pressed=true]{border-color:#c0392b;background:#fff5f3;color:#7f1d1d}
.td-pas .feedback.incorrect{border-left-color:#c0392b;background:#fff5f3;color:#7f1d1d}
.td-pas .feedback.correct{border-left-color:var(--green);background:#eef7f2;color:#1f5f4a}
.td-pas .td-voir{margin-left:auto;min-height:38px;padding:7px 13px}
.td-copie-deux>.td-pas{margin:0}
.reading .td-liste>li.td-pas{display:flex;margin:8px 0}

/* Exercices marqués « fait » (mémoire du navigateur) */
.td-fait{margin-left:4px;font:600 12.5px/1 var(--sans);min-height:36px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--muted);cursor:pointer}
.td-fait:hover{border-color:var(--green);color:var(--green)}
.td-fait[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}
.td-fait[aria-pressed=true]::before{content:'✓ '}
.toc-side a.fait::after,.td-exos a.fait::after{content:' ✓';color:var(--green)}
.td-compteur{font-size:13.5px;color:var(--green);margin:6px 0 0}
.td-section h2+.td-compteur,.td-section h2+.td-exos+.td-compteur{margin:-14px 0 22px}
.td-compteur:empty{display:none}
.td-effacer{margin-top:8px;font-size:12.5px;min-height:34px;padding:6px 12px}

/* Figures agrandies au clic (grand écran ; sur petit écran la figure occupe déjà toute la largeur) */
.td-figure{position:relative}.td-figure img{cursor:zoom-in}
.td-figure::after{content:'⤢';position:absolute;right:4px;top:-2px;font-size:15px;color:var(--muted);opacity:.75;pointer-events:none}
@media(max-width:639px){.td-figure img{cursor:default}.td-figure::after{display:none}}
.td-figure img:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.td-zoom{position:fixed;inset:0;z-index:50;background:rgba(22,48,64,.72);display:flex;align-items:center;justify-content:center;cursor:zoom-out;padding:24px}
.td-zoom img{max-width:92vw;max-height:88vh;height:auto;background:#fff;border-radius:10px;padding:18px;box-shadow:0 12px 40px rgba(0,0,0,.35)}

/* Modèle de rédaction consulté sur place (dialogue), sans quitter l'exercice */
.td-dialog{border:0;border-radius:12px;padding:0;width:min(800px,94vw);max-height:90vh;box-shadow:0 20px 60px rgba(0,0,0,.35);color:var(--ink);background:var(--paper)}
.td-dialog::backdrop{background:rgba(22,48,64,.55)}
.td-dialog-tete{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line)}
.td-dialog-tete p{margin:0;font-size:12px;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.td-dialog-corps{padding:4px 24px 20px;overflow:auto;max-height:calc(90vh - 130px)}
.td-dialog-corps .writing-model{margin:0;border-top:0;padding-top:8px}
.td-dialog-pied{padding:12px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}

/* Codes de modèles dans les corrigés (« Modèle associé : R1 ») : liens vers le cours */
.td-methode a.td-modele{color:var(--accent);text-decoration-color:currentColor}
/* Renvois du cours vers le TD */
.reading .td-ref a{color:inherit}
.reading .vers-td{font-size:14.5px;color:var(--muted);border-left:2px solid var(--line);padding-left:14px;margin-top:28px}

@media print{details.td-corrige>.td-corrige-corps{display:block}.td-corrige-corps [hidden]{display:block!important}.td-ui{display:none!important}}

/* Une section du TD à la fois (parcours.js, attribut data-td de <html>) ; sans JavaScript et à
   l'impression, tout le TD se lit d'un seul tenant. */
html.en-parties .td-section{display:none}
html.en-parties[data-td="td-intro"] #td-intro,html.en-parties[data-td="td-1"] #td-1,html.en-parties[data-td="td-2"] #td-2,
html.en-parties[data-td="td-3"] #td-3,html.en-parties[data-td="td-4"] #td-4,html.en-parties[data-td="td-5"] #td-5,
html.en-parties[data-td="td-6"] #td-6,html.en-parties[data-td="td-7"] #td-7{display:block}
@media print{html.en-parties .td-section{display:block}}
.td-nav{margin-top:72px}

/* Plan de gauche (grand écran) : la section affichée déplie ses exercices, avec l'icône du parcours. */
@media(min-width:1000px){
  .toc-side ol ol ol{margin:2px 0 6px 10px;padding-left:0;border-left:0}
  .toc-side .td-exo>a{display:flex;align-items:center;gap:6px;padding:2px 0 2px 10px}
  .toc-side .td-exo img{width:12px;height:12px;flex:none;opacity:.8}
  html.js .toc-side .td-plan-section:not(.td-ouverte)>ol{display:none}
  .toc-side .td-plan-section.td-ouverte>a{color:var(--accent)}
}

/* Petits écrans (sans plan dans la marge) : les sections en tête de la page TD, puis les exercices de la
   section affichée, avec l'icône de leur parcours. */
.td-sections{display:flex;flex-wrap:wrap;gap:6px;margin:20px 0 0}
.td-sections a{font-size:13px;line-height:1.3;padding:6px 12px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--muted);background:var(--paper)}
.td-sections a.active{color:var(--accent);border-color:#efb58c;background:#fff4ec}
.td-exos{display:flex;flex-wrap:wrap;gap:6px;margin:-6px 0 28px}
.td-exos a{display:inline-flex;align-items:center;gap:5px;font-size:13px;line-height:1.3;padding:6px 11px 6px 9px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--heading);font-variant-numeric:tabular-nums;background:var(--paper)}
.td-exos a:hover,.td-sections a:hover{color:var(--accent);border-color:#efb58c}
.td-exos img{width:13px;height:13px}
@media(min-width:1000px){.td-sections,.td-exos{display:none}}
/* Premier exercice d'une section : le filet du titre de section suffit. */
.td-section h2+.td-exos+.td-exercice,.td-section h2+.td-exercice{border-top:0;margin-top:0;padding-top:0}

/* Marques de vérification et filtre des exercices */
.td-marque{min-width:1.1em;font-weight:650}.td-marque.ok{color:var(--green)}.td-marque.faux{color:#c0392b}
.td-filtres{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-6px 0 22px;font-size:13px}
.td-filtres-lab{color:var(--muted);margin-right:4px}
.td-filtre{font:500 12.5px/1.2 var(--sans);padding:7px 11px;min-height:32px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--muted);cursor:pointer}
.td-filtre:hover{border-color:var(--blue);color:#225773}
.td-filtre[aria-pressed=true]{border-color:var(--blue);background:#eef5f8;color:#225773}
.td-section h2+.td-compteur:empty+.td-filtres{margin-top:-6px}
@media(max-width:767px){
  .reading .td-titre{font-size:16px}
  .td-cadre{padding:10px 14px}
  .td-copie{padding:10px 12px 10px 34px}.td-copie::before{left:9px}.td-copie::after{left:26px}
  .td-pas{padding:10px 12px;gap:8px 12px}.td-champ .number-field{width:84px;font-size:16px}.td-pas .td-voir{margin-left:0}
  details.td-corrige{padding:4px 0}
  details.td-corrige>summary{font-size:14px;padding:10px 0}
  .td-fait,.td-filtre,.td-effacer,.td-outils .button,.td-verif .button,.td-choix .button,.td-pas .td-voir{min-height:40px}
  .td-sections a,.td-exos a{min-height:40px;display:inline-flex;align-items:center}
  .td-methode a.td-modele{display:inline-flex;align-items:center;min-height:40px;padding:0 4px;margin:-8px 0}
  .td-zoom{padding:10px}.td-zoom img{padding:10px}
  .td-colonnes .td-liste{columns:1}
  .td-formule .katex{font-size:16px}.td-corrige .td-formule .katex{font-size:13.8px}
  .td-exercice.td-enrichissement{padding-left:10px}
  .td-liste>li>div :is(.td-centre:has(.td-tableau),.td-tableau:not(.td-centre *)){margin-left:-1.9em}
  .td-tableau table{font-size:11.5px}
  .td-tableau .katex{font-size:1em}
  .td-tableau td,.td-tableau th{padding:3px 3px;white-space:normal}
  .td-tableau td .nowrap,.td-tableau th .nowrap{white-space:normal}
  .td-tableau .td-fantome{display:none}
}

