:root{--toc-width:0;--toc-aside-width:calc(var(--typography-spacing-horizontal) + 0.75 * var(--font-size) * var(--line-height) + 2 * var(--outline-size));}@media screen{html{margin-left:var(--toc-width);}html:has(aside.book-toc-aside){margin-left:var(--toc-aside-width);transition:margin-left var(--transition,0.25s ease-in-out);}html:has(aside.book-toc-aside.open){margin-left:calc(var(--toc-aside-width) + var(--toc-width));}@media (max-width:1023.98px){html,html:has(aside.book-toc-aside),html:has(aside.book-toc-aside.open){margin-left:0;}}}body{width:100%;counter-reset:chapter;}.chapter{counter-increment:chapter;counter-reset:ssection;text-align:left;min-height:100vh;}.chapter>h1{width:100%;padding-top:calc(var(--font-size) * 2);padding-bottom:calc(var(--font-size) * 2);margin-bottom:calc(var(--font-size) * 4);line-height:calc(4 * var(--font-size));display:inline-flex;flex-direction:column;justify-content:center;align-items:start;text-align:left;}.chapter>h1::before{content:"Chapter " counter(chapter) ".";padding-top:calc(var(--font-size) * 1);margin-top:0;margin-right:calc(var(--font-size) * 1);}html:lang(fr) .chapter>h1::before{content:"Chapitre " counter(chapter) ".";}.ssection{counter-increment:ssection;counter-reset:subssection;padding-left:0;padding-right:0;}.ssection h2::before{content:counter(chapter) "." counter(ssection) " ";}.subssection{counter-increment:subssection;padding-left:0;padding-right:0;}.subssection h3::before{content:counter(chapter) "." counter(ssection) "." counter(subssection) " ";}nav.book-toc{z-index:9;width:var(--toc-width);height:100%;position:fixed;top:var(--typography-spacing-vertical);left:0;padding-bottom:calc(var(--font-size) * 3);margin-top:calc(-1 * var(--typography-spacing-vertical));font-size:90%;overflow-x:hidden;display:block;}body:has(nav.nav-wexa.top) nav.book-toc{top:var(--nav-height);}aside.book-toc-aside{width:var(--toc-width);display:block;padding:var(--typography-spacing-vertical) var(--typography-spacing-horizontal);padding-bottom:calc(var(--font-size) * 3);}@media screen{aside.book-toc-aside{z-index:10;height:100%;position:fixed;top:0;left:var(--toc-aside-width);overflow-x:hidden;transform:translateX(calc(-1 * (var(--toc-aside-width) + var(--toc-width))));transition:transform var(--transition,0.25s ease-in-out);}aside.book-toc-aside.open{transform:translateX(0);}body:has(nav.nav-wexa.top) aside.book-toc-aside{top:var(--nav-height);}button.book-toc-toggle{position:fixed;top:50vh;left:0;z-index:11;writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg);padding:var(--typography-spacing-vertical) calc(0.5 * var(--typography-spacing-horizontal));border-radius:var(--border-radius) 0 0 var(--border-radius);cursor:pointer;font-size:calc(0.75 * var(--font-size));font-family:inherit;transition:left var(--transition,0.25s ease-in-out);}body:has(aside.book-toc-aside.open) button.book-toc-toggle{left:0;}}nav.book-toc,aside.book-toc-aside{font-size:calc(0.8 * var(--font-size));}nav.book-toc *{margin:auto;padding:0;}aside.book-toc-aside *:not([role=button]){margin:0;padding:0;background-color:transparent;}:is(nav.book-toc,aside.book-toc-aside)>ul,:is(nav.book-toc,aside.book-toc-aside)>hr,:is(nav.book-toc,aside.book-toc-aside)>h1,:is(nav.book-toc,aside.book-toc-aside)>h2{margin-top:calc(var(--font-size) * 1);margin-bottom:calc(var(--font-size) * 2);}:is(nav.book-toc,aside.book-toc-aside) h1{font-size:calc(1.2 * var(--font-size));font-weight:var(--font-weight-black);}:is(nav.book-toc,aside.book-toc-aside) h2{font-size:calc(1.2 * var(--font-size));font-weight:var(--font-weight-bold);}:is(nav.book-toc,aside.book-toc-aside) a[role=button],:is(nav.book-toc,aside.book-toc-aside) button{width:calc(0.75 * var(--toc-width));height:calc(3 * var(--font-size));border-radius:calc(3 * (var(--border-width)));display:flex;justify-content:center;flex-direction:column;margin-bottom:calc(var(--font-size) * 0.5);}:is(nav.book-toc,aside.book-toc-aside) ul{display:initial;}:is(nav.book-toc,aside.book-toc-aside) a:not([role=button],[role=menuitem]){display:initial;}:is(nav.book-toc,aside.book-toc-aside) li.h1,:is(nav.book-toc,aside.book-toc-aside) li.h2,:is(nav.book-toc,aside.book-toc-aside) li.h3,:is(nav.book-toc,aside.book-toc-aside) li.h4,:is(nav.book-toc,aside.book-toc-aside) li.h5,:is(nav.book-toc,aside.book-toc-aside) li.h6{display:grid;grid-template-columns:var(--toc-number-width) 1fr;column-gap:var(--typography-spacing-horizontal);margin-bottom:calc(var(--font-size) * 0.2);text-align:left;}:is(nav.book-toc,aside.book-toc-aside) li>a{margin:0;justify-self:start;}:is(nav.book-toc,aside.book-toc-aside) li{--toc-number-width:calc(var(--font-size) * 1.5);}:is(nav.book-toc,aside.book-toc-aside) li.h1{--toc-number-width:calc(var(--font-size) * 2);}:is(nav.book-toc,aside.book-toc-aside) li.h2{--toc-number-width:calc(var(--font-size) * 2.2);}:is(nav.book-toc,aside.book-toc-aside) li.h3{--toc-number-width:calc(var(--font-size) * 2.8);}:is(nav.book-toc,aside.book-toc-aside) li::before{content:none;margin:0;padding-right:0;justify-self:end;text-align:right;white-space:nowrap;}:is(nav.book-toc,aside.book-toc-aside) li.h1::before{font-size:calc(1.2 * var(--font-size));}:is(nav.book-toc,aside.book-toc-aside) li.h2::before{font-size:var(--font-size);}:is(nav.book-toc,aside.book-toc-aside) li.h3::before{font-size:calc(0.9 * var(--font-size));}:is(nav.book-toc,aside.book-toc-aside) ul{counter-reset:toc-chapter;}:is(nav.book-toc,aside.book-toc-aside) li.h1{counter-increment:toc-chapter;counter-reset:toc-ssection;}:is(nav.book-toc,aside.book-toc-aside) li.h2{counter-increment:toc-ssection;counter-reset:toc-subssection;}:is(nav.book-toc,aside.book-toc-aside) li.h3{counter-increment:toc-subssection;}:is(nav.book-toc,aside.book-toc-aside) li.nonumber{counter-increment:none;--toc-number-width:0;column-gap:0;}:is(nav.book-toc,aside.book-toc-aside) li.h1::before{content:counter(toc-chapter) ".";padding-right:calc(0.4 * var(--typography-spacing-horizontal));}:is(nav.book-toc,aside.book-toc-aside) li.h2::before{content:counter(toc-chapter) "." counter(toc-ssection);padding-right:calc(0.4 * var(--typography-spacing-horizontal));}:is(nav.book-toc,aside.book-toc-aside) li.h3::before{content:counter(toc-chapter) "." counter(toc-ssection) "." counter(toc-subssection);padding-right:calc(0.4 * var(--typography-spacing-horizontal));}:is(nav.book-toc,aside.book-toc-aside) li.h1.nonumber::before,:is(nav.book-toc,aside.book-toc-aside) li.h2.nonumber::before,:is(nav.book-toc,aside.book-toc-aside) li.h3.nonumber::before{content:"";padding-right:0;}:is(nav.book-toc,aside.book-toc-aside) li.h4::before{content:"-";padding-right:calc(0.4 * var(--typography-spacing-horizontal));}:is(nav.book-toc,aside.book-toc-aside) li.h5::before{content:"□";padding-right:calc(0.4 * var(--typography-spacing-horizontal));}:is(nav.book-toc,aside.book-toc-aside) li.h1 a{text-decoration:none;font-variant-caps:small-caps;font-weight:var(--font-weight-bold);font-size:calc(1.2 * var(--font-size));}:is(nav.book-toc,aside.book-toc-aside) li.h2 a{text-decoration:none;font-weight:var(--font-weight-semibold);text-overflow:ellipsis;font-size:var(--font-size);}:is(nav.book-toc,aside.book-toc-aside) li.h3 a{text-decoration:none;font-weight:var(--font-weight-normal);text-overflow:ellipsis;font-size:calc(0.9 * var(--font-size));}:is(nav.book-toc,aside.book-toc-aside) li.h4 a{text-decoration:none;font-weight:var(--font-weight-semithin);white-space:nowrap;text-overflow:ellipsis;}:is(nav.book-toc,aside.book-toc-aside) li.h5 a{text-decoration:none;font-weight:var(--font-weight-thin);white-space:nowrap;text-overflow:ellipsis;font-size:calc(0.75 * var(--font-size));}:is(nav.book-toc,aside.book-toc-aside) li.h6 a{text-decoration:none;font-weight:var(--font-weight-thin);white-space:nowrap;text-overflow:ellipsis;font-size:calc(0.7 * var(--font-size));}:is(nav.book-toc,aside.book-toc-aside) li.h1{margin-top:calc(var(--font-size) * 1.5);margin-bottom:calc(var(--font-size) * 1);padding-left:0;}:is(nav.book-toc,aside.book-toc-aside) li.h2{margin-top:calc(var(--font-size) * 1);padding-left:calc(var(--font-size) * 0.5);}:is(nav.book-toc,aside.book-toc-aside) li.h3{padding-left:calc(var(--font-size) * 1.5);}:is(nav.book-toc,aside.book-toc-aside) li.h4{padding-left:calc(var(--font-size) * 2);}:is(nav.book-toc,aside.book-toc-aside) li.h5{padding-left:calc(var(--font-size) * 3);}:is(nav.book-toc,aside.book-toc-aside) li.h6{padding-left:calc(var(--font-size) * 4);}.abstract{margin-left:calc(2 * var(--typography-spacing-horizontal));margin-right:calc(2 * var(--typography-spacing-horizontal));margin-top:var(--typography-spacing-vertical);margin-bottom:var(--typography-spacing-vertical);padding:var(--typography-spacing-vertical) var(--typography-spacing-horizontal);border-radius:var(--border-radius);font-size:calc(0.9 * var(--font-size));font-style:italic;}.abstract *{background-color:transparent;color:inherit;}.abstract h2{font-style:normal;}.chapter.nonumber{counter-increment:none;}.chapter.nonumber>h1{display:block;}.chapter.nonumber>h1::before{display:none;}.chapter.nonumber .ssection h2::before{content:"\00a0";color:transparent;font-size:0;padding:0;margin:0;}.chapter.nonumber .subssection h3::before{content:"\00a0";color:transparent;font-size:0;padding:0;margin:0;}@layer theme{.chapter>h1{border-top:calc(4 * var(--border-width)) solid var(--custom-color1);border-bottom:calc(4 * var(--border-width)) solid var(--custom-color1);}.chapter>h1::before{color:var(--custom-color1);}.ssection h2{border-bottom:var(--border-width) solid var(--h2-color);}.ssection h2::before{color:var(--custom-color1);}.subssection h3::before{color:var(--custom-color1);}:is(nav.book-toc,aside.book-toc-aside) *:not([role=button]),:is(nav.book-toc,aside.book-toc-aside) li::before{color:var(--nav-fg-color);}@media screen{aside.book-toc-aside{background:var(--nav-bg-color);box-shadow:calc(var(--font-size) * 0.3) 0 calc(var(--font-size) * 1.2) var(--shadow-color);}button.book-toc-toggle{background:var(--nav-bg-color);color:var(--nav-fg-color);border:var(--border-width) solid var(--border-color);}}.abstract{background-color:var(--bg-color-alt);color:var(--fg-color-alt);box-shadow:0 calc(var(--font-size) * 0.2) calc(var(--font-size) * 0.8) var(--shadow-color);}}