header{flex-direction:row;align-items:center;gap:1.5rem;margin:2rem 0;display:flex}header h1{flex:auto;margin:0}.clipboard-button{float:right;color:var(--gray);border-color:var(--dark);background-color:var(--light);opacity:0;border:1px solid;border-radius:5px;margin:.3rem;padding:.4rem;transition:all .2s;display:flex;position:absolute;right:0}.clipboard-button>svg{fill:var(--light);filter:contrast(.3)}.clipboard-button:hover{cursor:pointer;border-color:var(--secondary)}.clipboard-button:focus{outline:0}pre:hover>.clipboard-button{opacity:1;transition:all .2s}.breadcrumb-container{flex-flow:wrap;gap:.5rem;margin:.75rem 0 0;padding:0;display:flex}.breadcrumb-element{flex-direction:row;justify-content:center;align-items:center;display:flex}.breadcrumb-element p{margin:0 0 0 .5rem;padding:0;line-height:normal}.article-title{margin:2rem 0 0}.content-meta{color:var(--gray);margin-top:0}.content-meta[show-comma=true]>span:not(:last-child){margin-right:8px}.content-meta[show-comma=true]>span:not(:last-child):after{content:","}.tags{flex-wrap:wrap;justify-self:end;gap:.4rem;margin:1rem 0;padding-left:0;list-style:none;display:flex}.section-li>.section>.tags{justify-content:flex-end}.tags>li{white-space:nowrap;overflow-wrap:normal;margin:0;display:inline-block}a.internal.tag-link{background-color:var(--highlight);border-radius:8px;margin:0 .1rem;padding:.2rem .4rem}.page-title{margin:0;font-size:1.75rem}.search{min-width:fit-content;max-width:14rem}@media (max-width:800px){.search{flex-grow:.3}}.search>.search-button{background-color:var(--lightgray);font-family:inherit;font-size:inherit;text-align:inherit;cursor:pointer;white-space:nowrap;border:none;border-radius:4px;justify-content:space-between;align-items:center;width:100%;height:2rem;padding:0;display:flex}.search>.search-button>p{padding:0 1rem;display:inline}.search>.search-button svg{cursor:pointer;width:18px;min-width:18px;margin:0 .5rem}.search>.search-button svg .search-path{stroke:var(--darkgray);stroke-width:2px;transition:stroke .5s}.search>#search-container{contain:layout;z-index:999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:100vw;height:100vh;display:none;position:fixed;top:0;left:0;overflow-y:auto}.search>#search-container.active{display:inline-block}.search>#search-container>#search-space{width:65%;margin-top:12vh;margin-left:auto;margin-right:auto}@media (max-width:1200px){.search>#search-container>#search-space{width:90%}}.search>#search-container>#search-space>*{background:var(--light);border-radius:7px;width:100%;margin-bottom:2em;box-shadow:0 14px 50px #1b21301f,0 10px 30px #1b213029}.search>#search-container>#search-space>input{box-sizing:border-box;font-family:var(--bodyFont);color:var(--dark);border:1px solid var(--lightgray);padding:.5em 1em;font-size:1.1em}.search>#search-container>#search-space>input:focus{outline:none}.search>#search-container>#search-space>#search-layout{border:1px solid var(--lightgray);box-sizing:border-box;flex-direction:row;flex:0 0 100%;display:none}.search>#search-container>#search-space>#search-layout.display-results{display:flex}.search>#search-container>#search-space>#search-layout[data-preview]>#results-container{flex:0 0 min(30%,450px)}@media not ((min-width:800px) and (max-width:1200px)){.search>#search-container>#search-space>#search-layout[data-preview] .result-card>p.preview{display:none}.search>#search-container>#search-space>#search-layout[data-preview]>div:first-child{border-right:1px solid var(--lightgray);border-top-right-radius:unset;border-bottom-right-radius:unset}.search>#search-container>#search-space>#search-layout[data-preview]>div:last-child{border-top-left-radius:unset;border-bottom-left-radius:unset}}.search>#search-container>#search-space>#search-layout>div{border-radius:5px;height:63vh}@media (min-width:800px) and (max-width:1200px){.search>#search-container>#search-space>#search-layout>#preview-container{display:none!important}.search>#search-container>#search-space>#search-layout[data-preview]>#results-container{flex:0 0 100%;width:100%;height:auto}}.search>#search-container>#search-space>#search-layout .highlight{background:color-mix(in srgb,var(--tertiary)60%,#fff0);border-radius:5px;scroll-margin-top:2rem}.search>#search-container>#search-space>#search-layout>#preview-container{color:var(--dark);padding:0 2rem;font-family:inherit;font-weight:400;line-height:1.5em;display:block;overflow:hidden auto}.search>#search-container>#search-space>#search-layout>#preview-container .preview-inner{width:min(800px,100%);margin:0 auto}.search>#search-container>#search-space>#search-layout>#preview-container a[role=anchor]{background-color:#0000}.search>#search-container>#search-space>#search-layout>#results-container{overflow-y:auto}.search>#search-container>#search-space>#search-layout>#results-container .result-card{cursor:pointer;border-bottom:1px solid var(--lightgray);box-sizing:border-box;text-transform:none;text-align:left;font-family:inherit;font-size:100%;line-height:1.15;font-weight:inherit;outline:none;width:100%;margin:0;padding:1em;transition:background .2s;display:block;overflow:hidden}.search>#search-container>#search-space>#search-layout>#results-container .result-card:hover,.search>#search-container>#search-space>#search-layout>#results-container .result-card:focus,.search>#search-container>#search-space>#search-layout>#results-container .result-card.focus{background:var(--lightgray)}.search>#search-container>#search-space>#search-layout>#results-container .result-card>h3{margin:0}.search>#search-container>#search-space>#search-layout>#results-container .result-card>ul.tags{margin-top:.45rem;margin-bottom:0}.search>#search-container>#search-space>#search-layout>#results-container .result-card>ul>li>p{background-color:var(--highlight);color:var(--secondary);border-radius:8px;margin:0 .1rem;padding:.2rem .4rem;font-weight:700;line-height:1.4rem}.search>#search-container>#search-space>#search-layout>#results-container .result-card>ul>li>p.match-tag{color:var(--tertiary)}.search>#search-container>#search-space>#search-layout>#results-container .result-card>p{margin-bottom:0}.darkmode{cursor:pointer;text-align:inherit;background:0 0;border:none;width:20px;height:20px;margin:0 10px;padding:0;position:relative}.darkmode svg{fill:var(--darkgray);width:20px;height:20px;transition:opacity .1s;position:absolute;top:calc(50% - 10px)}:root[saved-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[saved-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[saved-theme=dark] .darkmode>#dayIcon{display:none}:root[saved-theme=dark] .darkmode>#nightIcon,:root .darkmode>#dayIcon{display:inline}:root .darkmode>#nightIcon{display:none}.explorer{flex-direction:column;display:flex;overflow-y:hidden}@media not (max-width:800px){.explorer.desktop-only{display:flex}}button#explorer{text-align:left;cursor:pointer;color:var(--dark);background-color:#0000;border:none;align-items:center;padding:0;display:flex}button#explorer h2{margin:0;font-size:1rem;display:inline-block}button#explorer .fold{opacity:.8;margin-left:.5rem;transition:transform .3s}button#explorer.collapsed .fold{transform:rotate(-90deg)}.folder-outer{grid-template-rows:0fr;transition:grid-template-rows .3s ease-in-out;display:grid}.folder-outer.open{grid-template-rows:1fr}.folder-outer>ul{overflow:hidden}#explorer-content{visibility:visible;max-height:100%;margin-top:.5rem;list-style:none;transition:max-height .35s,visibility linear;overflow:hidden auto}#explorer-content.collapsed{visibility:hidden;max-height:0;transition:max-height .35s,visibility 0s linear .35s}#explorer-content ul{margin:.08rem 0;padding:0;list-style:none;transition:max-height .35s,transform .35s,opacity .2s}#explorer-content ul li>a{color:var(--dark);opacity:.75;pointer-events:all}#explorer-content>#explorer-ul{max-height:none}svg{pointer-events:all}svg>polyline{pointer-events:none}.folder-container{-webkit-user-select:none;user-select:none;flex-direction:row;align-items:center;display:flex}.folder-container div>a{color:var(--secondary);font-family:var(--headerFont);font-size:.95rem;font-weight:600;line-height:1.5rem;display:inline-block}.folder-container div>a:hover{color:var(--tertiary)}.folder-container div>button{color:var(--dark);text-align:left;cursor:pointer;font-family:var(--headerFont);background-color:#0000;border:none;align-items:center;padding-left:0;padding-right:0;display:flex}.folder-container div>button span{color:var(--secondary);pointer-events:none;margin:0;font-size:.95rem;font-weight:600;line-height:1.5rem;display:inline-block}.folder-icon{color:var(--secondary);cursor:pointer;backface-visibility:visible;margin-right:5px;transition:transform .3s}li:has(>.folder-outer:not(.open))>.folder-container>svg{transform:rotate(-90deg)}.folder-icon:hover{color:var(--tertiary)}.no-background:after{background:0 0!important}#explorer-end{height:4px;margin:0}.graph>h3{margin:0;font-size:1rem}.graph>.graph-outer{border:1px solid var(--lightgray);box-sizing:border-box;border-radius:5px;height:250px;margin:.5em 0;position:relative;overflow:hidden}.graph>.graph-outer>#global-graph-icon{cursor:pointer;color:var(--dark);opacity:.5;cursor:pointer;background:0 0;border:none;border-radius:4px;width:24px;height:24px;margin:.3rem;padding:.2rem;transition:background-color .5s;position:absolute;top:0;right:0}.graph>.graph-outer>#global-graph-icon:hover{background-color:var(--lightgray)}.graph>#global-graph-outer{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:100vw;height:100%;display:none;position:fixed;top:0;left:0;overflow:hidden}.graph>#global-graph-outer.active{display:inline-block}.graph>#global-graph-outer>#global-graph-container{border:1px solid var(--lightgray);background-color:var(--light);box-sizing:border-box;border-radius:5px;width:80vw;height:80vh;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@media (max-width:1200px){.graph>#global-graph-outer>#global-graph-container{width:90%}}.toc{flex-direction:column;display:flex}.toc.desktop-only{max-height:40%;display:flex}button#toc{text-align:left;cursor:pointer;color:var(--dark);background-color:#0000;border:none;align-items:center;padding:0;display:flex}button#toc h3{margin:0;font-size:1rem;display:inline-block}button#toc .fold{opacity:.8;margin-left:.5rem;transition:transform .3s}button#toc.collapsed .fold{transform:rotate(-90deg)}#toc-content{visibility:visible;max-height:100%;list-style:none;transition:max-height .35s,visibility linear;position:relative;overflow:hidden auto}#toc-content.collapsed{visibility:hidden;max-height:0;transition:max-height .35s,visibility 0s linear .35s}#toc-content.collapsed>.overflow:after{opacity:0}#toc-content ul{margin:.5rem 0;padding:0;list-style:none}#toc-content ul>li>a{color:var(--dark);opacity:.35;transition:opacity .5s,color .3s}#toc-content ul>li>a.in-view{opacity:.75}#toc-content>ul.overflow{width:100%;max-height:none}#toc-content .depth-0{padding-left:0}#toc-content .depth-1{padding-left:1rem}#toc-content .depth-2{padding-left:2rem}#toc-content .depth-3{padding-left:3rem}#toc-content .depth-4{padding-left:4rem}#toc-content .depth-5{padding-left:5rem}#toc-content .depth-6{padding-left:6rem}.backlinks{flex-direction:column}.backlinks>h3{margin:0;font-size:1rem}.backlinks>ul{margin:.5rem 0;padding:0;list-style:none}.backlinks>ul>li>a{background-color:#0000}.backlinks>.overflow{height:auto}.backlinks>.overflow:after{display:none}@media (max-width:1200px){.backlinks>.overflow{height:250px}}footer{text-align:left;opacity:.7;margin-bottom:4rem}footer ul{flex-direction:row;gap:1rem;margin:-1rem 0 0;padding:0;list-style:none;display:flex}ul.section-ul{margin-top:2em;padding-left:0;list-style:none}li.section-li{margin-bottom:1em}li.section-li>.section{grid-template-columns:fit-content(8em) 3fr 1fr;display:grid}@media (max-width:800px){li.section-li>.section>.tags{display:none}}li.section-li>.section>.desc>h3>a{background-color:#0000}li.section-li>.section .meta{opacity:.6;margin:0 1em 0 0}.popover .section{grid-template-columns:fit-content(8em) 1fr!important}.popover .section>.tags{display:none}.section h3,.section>.tags{margin:0}@keyframes dropin{0%{opacity:0;visibility:hidden}1%{opacity:0}to{opacity:1;visibility:visible}}.popover{z-index:999;visibility:hidden;opacity:0;padding:1rem;transition:opacity .3s,visibility .3s;position:absolute;overflow:visible}.popover>.popover-inner{font-weight:initial;font-style:initial;line-height:normal;font-size:initial;font-family:var(--bodyFont);border:1px solid var(--lightgray);background-color:var(--light);white-space:normal;border-radius:5px;width:30rem;max-height:20rem;padding:0 1rem 1rem;position:relative;overflow:auto;box-shadow:6px 6px 36px #00000040}.popover>.popover-inner[data-content-type][data-content-type*=pdf],.popover>.popover-inner[data-content-type][data-content-type*=image]{max-height:100%;padding:0}.popover>.popover-inner[data-content-type][data-content-type*=image] img{border-radius:0;margin:0;display:block}.popover>.popover-inner[data-content-type][data-content-type*=pdf] iframe{width:100%}.popover h1{font-size:1.5rem}@media (max-width:800px){.popover{display:none!important}}a:hover .popover,.popover:hover{animation:.3s .2s forwards dropin}code[data-theme*=\ ]{color:var(--shiki-light);background-color:var(--shiki-light-bg)}code[data-theme*=\ ] span{color:var(--shiki-light)}[saved-theme=dark] code[data-theme*=\ ]{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}[saved-theme=dark] code[data-theme*=\ ] span{color:var(--shiki-dark)}.callout{border:1px solid var(--border);background-color:var(--bg);box-sizing:border-box;--callout-icon-note:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"2\" x2=\"22\" y2=\"6\"></line><path d=\"M7.5 20.5 19 9l-4-4L3.5 16.5 2 22z\"></path></svg>");--callout-icon-abstract:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\" ry=\"1\"></rect><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"></path><path d=\"M12 11h4\"></path><path d=\"M12 16h4\"></path><path d=\"M8 11h.01\"></path><path d=\"M8 16h.01\"></path></svg>");--callout-icon-info:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"></line><line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"></line></svg>");--callout-icon-todo:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z\"></path><path d=\"m9 12 2 2 4-4\"></path></svg>");--callout-icon-tip:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z\"></path></svg> ");--callout-icon-success:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"></polyline></svg> ");--callout-icon-question:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line></svg> ");--callout-icon-warning:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"></path><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"></line><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line></svg>");--callout-icon-failure:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line></svg> ");--callout-icon-danger:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"></polygon></svg> ");--callout-icon-bug:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect width=\"8\" height=\"14\" x=\"8\" y=\"6\" rx=\"4\"></rect><path d=\"m19 7-3 2\"></path><path d=\"m5 7 3 2\"></path><path d=\"m19 19-3-2\"></path><path d=\"m5 19 3-2\"></path><path d=\"M20 13h-4\"></path><path d=\"M4 13h4\"></path><path d=\"m10 4 1 2\"></path><path d=\"m14 4-1 2\"></path></svg>");--callout-icon-example:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"></line><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"></line><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"></line><line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"></line><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"></line><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"></line></svg> ");--callout-icon-quote:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z\"></path><path d=\"M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z\"></path></svg>");--callout-icon-fold:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"%3E%3Cpolyline points=\"6 9 12 15 18 9\"%3E%3C/polyline%3E%3C/svg%3E");border-radius:5px;padding:0 1rem;transition:max-height .3s;overflow-y:hidden}.callout>.callout-content>:first-child{margin-top:0}.callout[data-callout]{--color:#448aff;--border:#448aff44;--bg:#448aff10;--callout-icon:var(--callout-icon-note)}.callout[data-callout=abstract]{--color:#00b0ff;--border:#00b0ff44;--bg:#00b0ff10;--callout-icon:var(--callout-icon-abstract)}.callout[data-callout=info],.callout[data-callout=todo]{--color:#00b8d4;--border:#00b8d444;--bg:#00b8d410;--callout-icon:var(--callout-icon-info)}.callout[data-callout=todo]{--callout-icon:var(--callout-icon-todo)}.callout[data-callout=tip]{--color:#00bfa5;--border:#00bfa544;--bg:#00bfa510;--callout-icon:var(--callout-icon-tip)}.callout[data-callout=success]{--color:#09ad7a;--border:#09ad7144;--bg:#09ad7110;--callout-icon:var(--callout-icon-success)}.callout[data-callout=question]{--color:#dba642;--border:#dba64244;--bg:#dba64210;--callout-icon:var(--callout-icon-question)}.callout[data-callout=warning]{--color:#db8942;--border:#db894244;--bg:#db894210;--callout-icon:var(--callout-icon-warning)}.callout[data-callout=failure],.callout[data-callout=danger],.callout[data-callout=bug]{--color:#db4242;--border:#db424244;--bg:#db424210;--callout-icon:var(--callout-icon-failure)}.callout[data-callout=bug]{--callout-icon:var(--callout-icon-bug)}.callout[data-callout=danger]{--callout-icon:var(--callout-icon-danger)}.callout[data-callout=example]{--color:#7a43b5;--border:#7a43b544;--bg:#7a43b510;--callout-icon:var(--callout-icon-example)}.callout[data-callout=quote]{--color:var(--secondary);--border:var(--lightgray);--callout-icon:var(--callout-icon-quote)}.callout.is-collapsed>.callout-title>.fold-callout-icon{transform:rotate(-90deg)}.callout-title{color:var(--color);--icon-size:18px;align-items:flex-start;gap:5px;padding:1rem 0;display:flex}.callout-title .fold-callout-icon{opacity:.8;cursor:pointer;--callout-icon:var(--callout-icon-fold);transition:transform .15s}.callout-title>.callout-title-inner>p{color:var(--color);margin:0}.callout-title .callout-icon,.callout-title .fold-callout-icon{width:var(--icon-size);height:var(--icon-size);flex:0 0 var(--icon-size);background-size:var(--icon-size)var(--icon-size);background-position:50%;background-color:var(--color);-webkit-mask-image:var(--callout-icon);mask-image:var(--callout-icon);-webkit-mask-size:var(--icon-size)var(--icon-size);mask-size:var(--icon-size)var(--icon-size);padding:.2rem 0;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.callout-title .callout-title-inner{font-weight:600}html{scroll-behavior:smooth;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;width:100vw;overflow-x:hidden}body,section{box-sizing:border-box;background-color:var(--light);font-family:var(--bodyFont);color:var(--darkgray);margin:0}.text-highlight{background-color:var(--textHighlight);border-radius:5px;padding:0 .1rem}::selection{background:color-mix(in srgb,var(--tertiary)60%,#fff0);color:var(--darkgray)}p,ul,text,a,tr,td,li,ol,ul,.katex,.math{color:var(--darkgray);fill:var(--darkgray);-webkit-hyphens:auto;hyphens:auto}p,ul,text,a,li,ol,ul,.katex,.math{overflow-wrap:anywhere}.math.math-display{text-align:center}strong{font-weight:600}a{color:var(--secondary);font-weight:600;text-decoration:none;transition:color .2s}a:hover{color:var(--tertiary)!important}a.internal{background-color:var(--highlight);border-radius:5px;padding:0 .1rem;line-height:1.4rem;text-decoration:none}a.internal:has(>img){background-color:none;border-radius:0;padding:0}a.internal.tag-link:before{content:"#"}a.external .external-icon{height:1ex;margin:0 .15em}a.external .external-icon>path{fill:var(--dark)}.desktop-only{display:initial}@media (max-width:800px){.desktop-only{display:none}}.mobile-only{display:none}@media (max-width:800px){.mobile-only{display:initial}}.page{max-width:1500px;margin:0 auto}.page article>h1{font-size:2rem}.page article li:has(>input[type=checkbox]){padding-left:0;list-style-type:none}.page article li:has(>input[type=checkbox]:checked){text-decoration:line-through;-webkit-text-decoration-color:var(--gray);text-decoration-color:var(--gray);color:var(--gray)}.page article li>*{margin-top:0;margin-bottom:0}.page article p>strong{color:var(--dark)}.page>#quartz-body{grid-template:"grid-sidebar-left grid-header grid-sidebar-right""grid-sidebar-left grid-center grid-sidebar-right""grid-sidebar-left grid-footer grid-sidebar-right"/320px auto 320px;gap:5px;display:grid}@media (max-width:1200px){.page>#quartz-body{grid-template:"grid-sidebar-left grid-header""grid-sidebar-left grid-center""grid-sidebar-left grid-sidebar-right""grid-sidebar-left grid-footer"/320px auto;gap:5px}}@media (max-width:800px){.page>#quartz-body{grid-template:"grid-sidebar-left""grid-header""grid-center""grid-sidebar-right""grid-footer"/auto;gap:5px}}@media (max-width:1200px){.page>#quartz-body{padding:0 1rem}}@media (max-width:800px){.page>#quartz-body{margin:0 auto}}.page>#quartz-body .sidebar{box-sizing:border-box;gap:2rem;height:100vh;padding:6rem 2rem 2rem;display:flex;position:sticky;top:0}.page>#quartz-body .sidebar.left{z-index:1;flex-direction:column;grid-area:grid-sidebar-left}@media (max-width:800px){.page>#quartz-body .sidebar.left{position:initial;height:unset;flex-direction:row;align-items:center;gap:0;padding:2rem 0 0;display:flex}}.page>#quartz-body .sidebar.right{flex-direction:column;grid-area:grid-sidebar-right;margin-right:0}@media (max-width:800px){.page>#quartz-body .sidebar.right{margin-left:inherit;margin-right:inherit}}@media (max-width:1200px){.page>#quartz-body .sidebar.right{position:initial;height:unset;flex-direction:row;width:100%;padding:0}.page>#quartz-body .sidebar.right>*{flex:1}.page>#quartz-body .sidebar.right>.toc{display:none}}.page>#quartz-body .page-header,.page>#quartz-body .page-footer{margin-top:1rem}.page>#quartz-body .page-header{grid-area:grid-header;margin:6rem 0 0}@media (max-width:800px){.page>#quartz-body .page-header{margin-top:0;padding:0}}.page>#quartz-body .center>article{grid-area:grid-center}.page>#quartz-body footer{grid-area:grid-footer}.page>#quartz-body .center,.page>#quartz-body footer{min-width:100%;max-width:100%;margin-left:auto;margin-right:auto}@media (max-width:1200px){.page>#quartz-body .center,.page>#quartz-body footer{margin-right:0}}@media (max-width:800px){.page>#quartz-body .center,.page>#quartz-body footer{margin-left:0}}.page>#quartz-body footer{margin-left:0}.footnotes{border-top:1px solid var(--lightgray);margin-top:2rem}input[type=checkbox]{color:var(--secondary);border:1px solid var(--lightgray);background-color:var(--light);appearance:none;border-radius:3px;width:16px;height:16px;margin-inline:-1.4rem .2rem;position:relative;transform:translateY(2px)}input[type=checkbox]:checked{border-color:var(--secondary);background-color:var(--secondary)}input[type=checkbox]:checked:after{content:"";border:solid var(--light);border-width:0 2px 2px 0;width:4px;height:8px;display:block;position:absolute;top:1px;left:4px;transform:rotate(45deg)}blockquote{border-left:3px solid var(--secondary);margin:1rem 0;padding-left:1rem;transition:border-color .2s}h1,h2,h3,h4,h5,h6,thead{font-family:var(--headerFont);color:var(--dark);font-weight:revert;margin-bottom:0}article>h1>a[role=anchor],article>h2>a[role=anchor],article>h3>a[role=anchor],article>h4>a[role=anchor],article>h5>a[role=anchor],article>h6>a[role=anchor],article>thead>a[role=anchor]{color:var(--dark);background-color:#0000}h1[id]>a[href^=\#],h2[id]>a[href^=\#],h3[id]>a[href^=\#],h4[id]>a[href^=\#],h5[id]>a[href^=\#],h6[id]>a[href^=\#]{opacity:0;font-family:var(--codeFont);-webkit-user-select:none;user-select:none;margin:0 .5rem;transition:opacity .2s;transform:translateY(-.1rem)}h1[id]:hover>a,h2[id]:hover>a,h3[id]:hover>a,h4[id]:hover>a,h5[id]:hover>a,h6[id]:hover>a{opacity:1}h1{margin-top:2.25rem;margin-bottom:1rem;font-size:1.75rem}h2{margin-top:1.9rem;margin-bottom:1rem;font-size:1.4rem}h3{margin-top:1.62rem;margin-bottom:1rem;font-size:1.12rem}h4,h5,h6{margin-top:1.5rem;margin-bottom:1rem;font-size:1rem}figure[data-rehype-pretty-code-figure]{margin:0;line-height:1.6rem;position:relative}figure[data-rehype-pretty-code-figure]>[data-rehype-pretty-code-title]{font-family:var(--codeFont);border:1px solid var(--lightgray);color:var(--darkgray);border-radius:5px;width:max-content;margin-bottom:-.5rem;padding:.1rem .5rem;font-size:.9rem}figure[data-rehype-pretty-code-figure]>pre{padding:0}pre{font-family:var(--codeFont);border:1px solid var(--lightgray);border-radius:5px;padding:0 .5rem;position:relative;overflow-x:auto}pre:has(>code.mermaid){border:none}pre>code{counter-reset:line;counter-increment:line 0;background:0 0;padding:.5rem 0;font-size:.85rem;display:grid;overflow-x:auto}pre>code [data-highlighted-chars]{background-color:var(--highlight);border-radius:5px}pre>code>[data-line]{box-sizing:border-box;border-left:3px solid #0000;padding:0 .25rem}pre>code>[data-line][data-highlighted-line]{background-color:var(--highlight);border-left:3px solid var(--secondary)}pre>code>[data-line]:before{content:counter(line);counter-increment:line;text-align:right;color:#738a9499;width:1rem;margin-right:1rem;display:inline-block}pre>code[data-line-numbers-max-digits="2"]>[data-line]:before{width:2rem}pre>code[data-line-numbers-max-digits="3"]>[data-line]:before{width:3rem}code{color:var(--dark);font-size:.9em;font-family:var(--codeFont);background:var(--lightgray);border-radius:5px;padding:.1rem .2rem}tbody,li,p{line-height:1.6rem}.table-container{overflow-x:auto}.table-container>table{border-collapse:collapse;margin:1rem;padding:1.5rem}.table-container>table th,.table-container>table td{min-width:75px}.table-container>table>*{line-height:2rem}th{text-align:left;border-bottom:2px solid var(--gray);padding:.4rem .7rem}td{padding:.2rem .7rem}tr{border-bottom:1px solid var(--lightgray)}tr:last-child{border-bottom:none}img{border-radius:5px;max-width:100%;margin:1rem 0}p>img+em{display:block;transform:translateY(-1rem)}hr{background-color:var(--lightgray);border:none;width:100%;height:1px;margin:2rem auto}audio,video{border-radius:5px;width:100%}.spacer{flex:auto}div:has(>.overflow){max-height:100%;display:flex;overflow-y:auto}ul.overflow,ol.overflow{content:"";clear:both;max-height:100%;overflow-y:auto}ul.overflow>li:last-of-type,ol.overflow>li:last-of-type{margin-bottom:30px}.transclude ul{padding-left:1rem}.katex-display{overflow:auto hidden}.external-embed.youtube,iframe.pdf{aspect-ratio:16/9;border-radius:5px;width:100%;height:100%}.stack{background:#f0f0f0;border:2px solid #000;border-radius:5px;width:200px;margin:0 auto;padding:10px 0;position:relative}.stack:after{content:"Top";font-weight:700;position:absolute;top:10px;right:-50px}.stack:before{content:"Bottom";font-weight:700;position:absolute;bottom:10px;right:-80px}.frame{text-align:center;cursor:pointer;border:2px solid #000;border-radius:4px;width:160px;margin:5px auto;padding:5px;transition:transform .2s,background-color .2s}.frame:hover{background-color:#ffe0b3;transform:scale(1.05)}.func-name{font-weight:700}.frame-detail{font-size:12px}.funcC{background-color:#ffc}.funcB{background-color:#ccf}.funcA{background-color:#cfc}.main{background-color:#fcc}[saved-theme=dark] .stack{background:#1e1e1e;border:2px solid #fff;border-radius:5px;width:200px;margin:0 auto;padding:10px 0;position:relative}[saved-theme=dark] .stack:after{content:"Top";color:#fff;font-weight:700;position:absolute;top:10px;right:-50px}[saved-theme=dark] .stack:before{content:"Bottom";color:#fff;font-weight:700;position:absolute;bottom:10px;right:-80px}[saved-theme=dark] .frame{text-align:center;cursor:pointer;color:#fff;border:2px solid #fff;border-radius:4px;width:160px;margin:5px auto;padding:5px;transition:transform .2s,background-color .2s}[saved-theme=dark] .frame:hover{background-color:#555;transform:scale(1.05)}[saved-theme=dark] .func-name{font-weight:700}[saved-theme=dark] .frame-detail{font-size:12px}[saved-theme=dark] .funcC{background-color:#663}[saved-theme=dark] .funcB{background-color:#336}[saved-theme=dark] .funcA{background-color:#363}[saved-theme=dark] .main{background-color:#633}.diagramMem{width:110%;max-width:1400px;height:auto}.titleMem{font-size:28px;font-weight:700}.labelMem{fill:#111827;font-size:16px;font-weight:600}[saved-theme=dark] .labelMem{fill:#f9fafb}.smallMem{fill:#374151;font-size:13px;font-weight:500}[saved-theme=dark] .smallMem{fill:#d1d5db}.boxMem{rx:16;ry:16;stroke-width:2px;fill:#fff;stroke:#111827}[saved-theme=dark] .boxMem{fill:#1f2937;stroke:#f9fafb}.cacheMem{fill:#e0f2fe}[saved-theme=dark] .cacheMem{fill:#0c4a6e}.cpuMem{fill:#fef3c7}[saved-theme=dark] .cpuMem{fill:#78350f}.ramMem{fill:#e2e8f0}[saved-theme=dark] .ramMem{fill:#1e293b}.ssdMem{fill:#f5f3ff}[saved-theme=dark] .ssdMem{fill:#3730a3}.arrowMem{stroke:#111827;stroke-width:2px}[saved-theme=dark] .arrowMem{stroke:#f9fafb}.axisMem{stroke:#6b7280;stroke-dasharray:5 6;stroke-width:1px}[saved-theme=dark] .axisMem{stroke:#9ca3af}marker pathMem{fill:#111827}[saved-theme=dark] marker pathMem{fill:#f9fafb}.label{fill:#1f4e79;font:600 14px system-ui,Arial}.index{fill:#374151;font:500 12px system-ui,Arial}.brace-text{fill:#1f4e79;font:500 12px system-ui,Arial}.arrow{stroke:#1f4e79;stroke-width:2.5px;fill:none}.arrow-fill{fill:#1f4e79}[saved-theme=dark] .arrow-fill{fill:#60a5fa}.char-box{fill:#f0f8ff;stroke:#4682b4;stroke-width:1px}.char-text{fill:#000;font-family:monospace;font-size:16px}.addr-text{fill:#4682b4;font-family:monospace;font-size:12px}[saved-theme=dark] .char-box{fill:#1e293b;stroke:#60a5fa}[saved-theme=dark] .char-text{fill:#f0f9ff}[saved-theme=dark] .addr-text{fill:#60a5fa}.dots{fill:#1f4e79}.brace{fill:none;stroke:#1f4e79;stroke-width:2px}.brace-text{fill:#1f4e79}[saved-theme=dark] .dots{fill:#60a5fa}[saved-theme=dark] .brace{stroke:#60a5fa}[saved-theme=dark] .brace-text{fill:#60a5fa}.slot{fill:#e6f0fa;stroke:#1f4e79;stroke-width:2px;rx:8;ry:8}.slot-overflow{fill:#fdecea;stroke:#b71c1c;stroke-width:2px;rx:8;ry:8}.char{fill:#1f4e79;font-family:Fira Sans,DejaVu Sans,Arial,sans-serif;font-size:18px}.char-overflow{fill:#b71c1c;font-family:Fira Sans,DejaVu Sans,Arial,sans-serif;font-size:18px;font-weight:700}.index-overflow{fill:#b71c1c;font-family:Fira Mono,DejaVu Sans Mono,monospace;font-size:16px}.brace-main{fill:none;stroke:#1f4e79;stroke-width:2px}.brace-main-text{fill:#1f4e79;font-family:Fira Sans,DejaVu Sans,Arial,sans-serif;font-size:16px}.brace-global{fill:none;stroke:#b71c1c;stroke-width:2px}.brace-global-text{fill:#b71c1c;font-family:Fira Sans,DejaVu Sans,Arial,sans-serif;font-size:16px}[saved-theme=dark] .slot{fill:#1e293b;stroke:#60a5fa}[saved-theme=dark] .slot-overflow{fill:#2c1a1a;stroke:#f87171}[saved-theme=dark] .char{fill:#60a5fa}[saved-theme=dark] .char-overflow{fill:#f87171}[saved-theme=dark] .index-overflow{fill:#f87171}[saved-theme=dark] .brace-main{stroke:#60a5fa}[saved-theme=dark] .brace-main-text{fill:#60a5fa}[saved-theme=dark] .brace-global{stroke:#f87171}[saved-theme=dark] .brace-global-text{fill:#f87171}.title{fill:#163758;font-family:Fira Sans,Arial,sans-serif;font-size:24px;font-weight:700}.subtitle{fill:#163758;font-family:Fira Sans,Arial,sans-serif;font-size:18px}.cell{fill:#e6f0fa;stroke:#1f4e79;stroke-width:2px;rx:8;ry:8}.label{fill:#1f4e79;font-family:Fira Sans,Arial,sans-serif;font-size:18px}.index{fill:#163758;font-family:Fira Mono,monospace;font-size:14px}.src{fill:#f5eafd;stroke:#660493;stroke-width:2px;rx:8;ry:8}.src-label{fill:#660493;font-family:Fira Sans,Arial,sans-serif;font-size:18px}.vide{fill:#d9d9da;stroke:#000;stroke-width:2px;rx:8;ry:8}.arrow{stroke:#660493;stroke-width:1px;marker-end:url(#arrowhead)}.note{fill:#660493;font-family:Fira Sans,Arial,sans-serif;font-size:16px;font-weight:600}.panel-line{stroke:#d0d7e2;stroke-width:2px}[saved-theme=dark] .src{fill:#3c1a4d;stroke:#b68aff}[saved-theme=dark] .src-label{fill:#b68aff}[saved-theme=dark] .vide{fill:#555;stroke:#bbb}[saved-theme=dark] .panel-line{stroke:#555}.title,.subtitle{fill:#163758}.cell{fill:#e6f0fa;stroke:#1f4e79}.label{fill:#1f4e79}.index{fill:#163758}.delim{fill:#fdecea;stroke:#b71c1c}.delimFinal{fill:#e0dfdf;stroke:#000}.delim-modified{fill:#ffebee;stroke:#d32f2f}.txtLeg{color:#000}.nulltxt{fill:#b71c1c}.ret{fill:#1f4e79}.note{fill:#b71c1c}.step-bg{fill:#f8fafe;stroke:#d0d7e2}[saved-theme=dark] .title,[saved-theme=dark] .subtitle{fill:#60a5fa}[saved-theme=dark] .cell{fill:#1e293b;stroke:#60a5fa}[saved-theme=dark] .label{fill:#60a5fa}[saved-theme=dark] .index{fill:#cbd5e1}[saved-theme=dark] .delim{fill:#2c1a1a;stroke:#f87171}[saved-theme=dark] .delimFinal{fill:#2c2c2c;stroke:#868686}[saved-theme=dark] .delim-modified{fill:#3b1a1a;stroke:#f87171}[saved-theme=dark] .txtLeg{color:#e2e8f0}[saved-theme=dark] .nulltxt{fill:#f87171}[saved-theme=dark] .ret{fill:#60a5fa}[saved-theme=dark] .note{fill:#f87171}[saved-theme=dark] .step-bg{fill:#111827;stroke:#374151}.ret-box{fill:#ffebee;stroke:#d32f2f}.ret-text{fill:#d32f2f}[saved-theme=dark] .ret-box{fill:#3b1a1a;stroke:#f87171}[saved-theme=dark] .ret-text{fill:#f87171}.box{fill:#f8faff;stroke:#2563eb}.box-preprocess{fill:#fef3c7;stroke:#f59e0b}.box-compile{fill:#dcfce7;stroke:#16a34a}.box-assemble{fill:#fce7f3;stroke:#ec4899}.box-link{fill:#e0e7ff;stroke:#6366f1}.box-exec{fill:#fed7d7;stroke:#ef4444}.box-cpu{fill:#f0f9ff;stroke:#0ea5e9}.title{fill:#1f2937}.subtitle{fill:#6b7280}.small{fill:#374151}.step{fill:#1f2937}.phase-label{fill:#6b7280}.arrow{stroke:#000}[saved-theme=dark] .box{fill:#1e293b;stroke:#3b82f6}[saved-theme=dark] .box-preprocess{fill:#78350f;stroke:#fbbf24}[saved-theme=dark] .box-compile{fill:#14532d;stroke:#22c55e}[saved-theme=dark] .box-assemble{fill:#831843;stroke:#ec4899}[saved-theme=dark] .box-link{fill:#3730a3;stroke:#818cf8}[saved-theme=dark] .box-exec{fill:#7f1d1d;stroke:#f87171}[saved-theme=dark] .box-cpu{fill:#0c4a6e;stroke:#38bdf8}[saved-theme=dark] .title{fill:#f1f5f9}[saved-theme=dark] .subtitle{fill:#94a3b8}[saved-theme=dark] .small{fill:#cbd5e1}[saved-theme=dark] .step{fill:#f1f5f9}[saved-theme=dark] .phase-label{fill:#94a3b8}[saved-theme=dark] .arrow{stroke:#f1f5f9}table.cours-planC{border-collapse:separate;border-spacing:0;border-radius:10px;width:100%;margin:30px 0;font-family:Orbitron,sans-serif;transition:all .3s;overflow:hidden}table.cours-planC th,table.cours-planC td{text-align:left;border-bottom:1px solid;padding:14px 20px;transition:all .3s}table.cours-planC a{text-decoration:none;transition:text-shadow .3s,color .3s}@media (prefers-color-scheme:light){table.cours-planC{background:#f5f7fa;border:1px solid #ccc}table.cours-planC th{color:#fff;background:linear-gradient(90deg,#4c7faf,#6aa0d6);border-bottom-color:#3a5f8f;font-weight:700}table.cours-planC td{color:#1a1a1a;background-color:#fff;border-bottom-color:#ddd}table.cours-planC tr:nth-child(2n) td{background-color:#eaf0f6}table.cours-planC tr:hover td{background-color:#d0e2f5;transform:scale(1.02)}table.cours-planC a{color:#007acc}table.cours-planC a:hover{text-decoration:underline}}[saved-theme=dark] table.cours-planC{background:#1e1e2a;border:1px solid #444}[saved-theme=dark] table.cours-planC th{color:#fff;background:linear-gradient(90deg,#6f42c1,#9b59b6);border-bottom-color:#5a2d91;font-weight:700}[saved-theme=dark] table.cours-planC td{color:#e0e0e0;background-color:#2a2a3c;border-bottom-color:#3c3c52}[saved-theme=dark] table.cours-planC tr:nth-child(2n) td{background-color:#323248}[saved-theme=dark] table.cours-planC tr:hover td{background-color:#3c3c5a;transform:scale(1.02)}[saved-theme=dark] table.cours-planC a{color:#9b59b6}[saved-theme=dark] table.cours-planC a:hover{text-decoration:underline}.projects-containerTDC{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;padding:2rem;transition:background .4s,color .4s;display:grid}.project-cardTDC{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:1.2rem;padding:1.8rem;transition:transform .35s,box-shadow .35s,background .4s,color .4s;animation:.7s both fadeSlideIn;box-shadow:0 6px 18px #00000014}.project-cardTDC:hover{transform:translateY(-8px)scale(1.02);box-shadow:0 10px 22px #00000026}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.project-cardTDC h2{letter-spacing:.5px;margin-bottom:.9rem;font-size:1.35rem;font-weight:600}.project-cardTDC ul{margin:.6rem 0 1.2rem 1.3rem;padding:0;line-height:1.6}.project-cardTDC em{opacity:.8;font-style:italic}.projects-containerTDC{color:#222}.project-cardTDC{color:#2c3e50;background:#fffffff2}.project-cardTDC h2{color:#34495e}.project-cardTDC em{color:#555}[saved-theme=dark] .projects-containerTDC{color:#eaeaea}[saved-theme=dark] .project-cardTDC{color:#eaeaea;background:#242424e6;box-shadow:0 6px 20px #0009}[saved-theme=dark] .project-cardTDC h2{color:#7d86ff}[saved-theme=dark] .project-cardTDC em{color:#bbb}.popover.hover-popover,.popover.page-preview,.popover.hover-preview,.popover.preview,.obsidian-popover{visibility:hidden!important;pointer-events:none!important;display:none!important}.card{width:90%;margin:0 auto}.boxCycle{fill:#e3f2fd;stroke:#1976d2;stroke-width:2px;rx:8}.terminatorCycle{fill:#e8f5e9;stroke:#2e7d32;stroke-width:2px}.decisionCycle{fill:#fffde7;stroke:#f9a825;stroke-width:2px}.dangerCycle{fill:#ffebee;stroke:#c62828;stroke-width:2px;rx:8}.legendBoxCycle{fill:#fff;stroke:#374151;stroke-width:1.5px}.arrowCycle{stroke:#374151;stroke-width:2px;fill:none;marker-end:url(#arrow)}.arrowCycle.okCycle{stroke:#2e7d32}.arrowCycle.errorCycle{stroke:#c62828}.arrowCycle.warnCycle{stroke:#f9a825}.textCycle{fill:#1f2937;font-family:Fira Sans,Arial,sans-serif;font-size:14px}.titleCycle{fill:#1f2937;font-weight:700}[saved-theme=dark] .boxCycle{fill:#1e293b;stroke:#60a5fa;stroke-width:2px;rx:8}[saved-theme=dark] .terminatorCycle{fill:#1e3a2a;stroke:#4ade80;stroke-width:2px}[saved-theme=dark] .decisionCycle{fill:#3f3f1f;stroke:#facc15;stroke-width:2px}[saved-theme=dark] .dangerCycle{fill:#3b1a1a;stroke:#f87171;stroke-width:2px;rx:8}[saved-theme=dark] .legendBoxCycle{fill:#0f172a;stroke:#94a3b8;stroke-width:1.5px}[saved-theme=dark] .arrowCycle{stroke:#94a3b8;stroke-width:2px;fill:none;marker-end:url(#arrow)}[saved-theme=dark] .arrowCycle.okCycle{stroke:#4ade80}[saved-theme=dark] .arrowCycle.errorCycle{stroke:#f87171}[saved-theme=dark] .arrowCycle.warnCycle{stroke:#facc15}[saved-theme=dark] .textCycle{fill:#e2e8f0;font-family:Fira Sans,Arial,sans-serif;font-size:14px}[saved-theme=dark] .titleCycle{fill:#e2e8f0;font-weight:700}.tableFichierFormat{border-collapse:separate;border-spacing:0;border-radius:8px;width:90%;margin:20px auto;font-family:Arial,sans-serif;transition:all .3s;overflow:hidden}.thFichierFormat,.tdFichierFormat{text-align:left;border-bottom:1px solid;padding:10px 16px;transition:all .3s}.tableFichierFormat a{text-decoration:none;transition:text-shadow .3s,color .3s}@media (prefers-color-scheme:light){.tableFichierFormat{background:#f9f9f9;border:1px solid #ccc}.thFichierFormat{color:#fff;background:linear-gradient(90deg,#4c7faf,#6aa0d6);border-bottom-color:#3a5f8f;font-weight:700}.tdFichierFormat{color:#1a1a1a;background-color:#fff;border-bottom-color:#ddd}.trFichierFormat:nth-child(2n) .tdFichierFormat{background-color:#eaf0f6}.trFichierFormat:hover .tdFichierFormat{background-color:#d0e2f5;transform:scale(1.02)}.tableFichierFormat a{color:#007acc}.tableFichierFormat a:hover{text-decoration:underline}}[saved-theme=dark] .tableFichierFormat{background:#1e1e2a;border:1px solid #444}[saved-theme=dark] .thFichierFormat{color:#fff;background:linear-gradient(90deg,#6f42c1,#9b59b6);border-bottom-color:#5a2d91;font-weight:700}[saved-theme=dark] .tdFichierFormat{color:#e0e0e0;background-color:#2a2a3c;border-bottom-color:#3c3c52}[saved-theme=dark] .trFichierFormat:nth-child(2n) .tdFichierFormat{background-color:#323248}[saved-theme=dark] .trFichierFormat:hover .tdFichierFormat{background-color:#3c3c5a;transform:scale(1.02)}[saved-theme=dark] .tableFichierFormat a{color:#9b59b6}[saved-theme=dark] .tableFichierFormat a:hover{text-decoration:underline}#notes-container{grid-template-columns:1fr;gap:30px;max-width:100%;margin:40px auto;padding:20px;font-family:Inter,sans-serif;transition:all .3s;display:grid}.notes-section{background-color:#fff;border-radius:14px;flex-direction:column;gap:15px;padding:25px 30px;transition:transform .25s,box-shadow .25s;display:flex;box-shadow:0 6px 25px #00000014}.notes-section:hover{transform:translateY(-5px);box-shadow:0 12px 35px #00000026}.notes-title{color:#1a1a1a;margin-bottom:12px;font-size:2rem;font-weight:700}.notes-subtitle{color:#2c3e50;margin-bottom:10px;font-size:1.5rem;font-weight:600}.notes-text{color:#333;font-size:1rem;line-height:1.6}.notes-list{margin:0;padding-left:0;list-style:none}.notes-list li{background:#f1f4f9;border-radius:6px;margin-bottom:6px;padding:8px 12px}.notes-link{color:#3498db;font-weight:500;text-decoration:none;transition:color .3s,transform .2s}.notes-link:hover{color:#2980b9;transform:translate(2px)}.notes-quote{color:#555;background-color:#ecf0f1;border-left:4px solid #3498db;border-radius:6px;padding:12px 15px;font-style:italic}.notes-divider{background:#ddd;border:none;height:1px;margin:20px 0}.grid-section .licence-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:15px;display:grid}.year-card{background-color:#fff;border-radius:12px;flex-direction:column;gap:10px;padding:20px;transition:transform .3s,box-shadow .3s;display:flex;box-shadow:0 6px 20px #00000014}.year-card:hover{transform:translateY(-5px);box-shadow:0 12px 30px #00000026}.year-title{color:#2c3e50;margin-bottom:12px;font-size:1.3rem;font-weight:600}.semester-list{margin:0;padding-left:0;list-style:none}.semester-list li{margin-bottom:8px}.semester-link{color:#3498db;font-weight:500;text-decoration:none;transition:color .3s,transform .2s}.semester-link:hover{color:#2980b9;transform:translate(3px)}[saved-theme=dark] #notes-container{color:#e0e0e0}[saved-theme=dark] .notes-section{background-color:#1e1e28;box-shadow:0 6px 25px #00000080}[saved-theme=dark] .notes-title{color:#f0f0f0}[saved-theme=dark] .notes-subtitle{color:#a8c4ff}[saved-theme=dark] .notes-text{color:#ccc}[saved-theme=dark] .notes-list li{color:#ddd;background-color:#2a2a3c}[saved-theme=dark] .notes-link{color:#7f9cf5}[saved-theme=dark] .notes-link:hover{color:#aab8ff}[saved-theme=dark] .notes-quote{color:#ccc;background-color:#2a2a3c;border-left-color:#3498db}[saved-theme=dark] .year-card{background-color:#1e1e28;box-shadow:0 6px 20px #00000080}[saved-theme=dark] .year-title{color:#a8c4ff}[saved-theme=dark] .semester-list li{color:#ccc}[saved-theme=dark] .semester-link{color:#7f9cf5}[saved-theme=dark] .semester-link:hover{color:#aab8ff}@media (max-width:768px){#notes-container{padding:15px}.notes-title{font-size:1.8rem}.notes-subtitle{font-size:1.3rem}.year-title{font-size:1.2rem}}:root{--bg-primary:#fafbfc;--bg-secondary:#fff;--bg-tertiary:#f4f6f8;--bg-hover:#e8ecf0;--text-primary:#0d1117;--text-secondary:#57606a;--text-tertiary:#656d76;--text-inverse:#fff;--accent-blue:#0969da;--accent-blue-light:#54aeff;--accent-purple:#8250df;--accent-purple-light:#a371f7;--accent-green:#1a7f37;--accent-green-light:#26a641;--accent-orange:#fb8500;--accent-red:#cf222e;--border:#d0d7de;--border-emphasis:#b4bcc4;--shadow-1:0 1px 3px #0d11170a;--shadow-2:0 3px 12px #0d111714;--shadow-3:0 12px 28px #0d11171f;--shadow-4:0 24px 48px #0d111729;--glow-blue:0 0 0 3px #0969da1f;--glow-purple:0 0 0 3px #8250df1f;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--ease-out:cubic-bezier(.2,0,0,1);--ease-bounce:cubic-bezier(.34,1.56,.64,1);--duration-fast:.15s;--duration-base:.25s;--duration-slow:.4s;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI Variable","Segoe UI",system-ui,ui-sans-serif,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,"Cascadia Code","SF Mono",Menlo,Consolas,monospace;--glass-bg:#ffffffbf;--glass-border:#0d111714;--backdrop:blur(20px)saturate(180%)}[saved-theme=dark]{--bg-primary:#0d1117;--bg-secondary:#161b22;--bg-tertiary:#21262d;--bg-hover:#30363d;--text-primary:#e6edf3;--text-secondary:#8d96a0;--text-tertiary:#636c76;--text-inverse:#0d1117;--accent-blue:#58a6ff;--accent-blue-light:#79c0ff;--accent-purple:#bc8cff;--accent-purple-light:#d2a8ff;--accent-green:#3fb950;--accent-green-light:#56d364;--accent-orange:#ffa657;--accent-red:#ff7b72;--border:#30363d;--border-emphasis:#484f58;--shadow-1:0 1px 3px #0000003d;--shadow-2:0 3px 12px #00000052;--shadow-3:0 12px 28px #0000007a;--shadow-4:0 24px 48px #000000a3;--glow-blue:0 0 0 3px #58a6ff2e;--glow-purple:0 0 0 3px #bc8cff2e;--glass-bg:#161b22bf;--glass-border:#f0f6fc0f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}.bodyINFOLI{font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;transition:background var(--duration-slow)var(--ease-out),color var(--duration-base)var(--ease-out);min-height:100vh;padding:2rem 1rem;font-size:16px;line-height:1.6}@media (min-width:768px){.bodyINFOLI{padding:3rem 2rem}}.bodyINFOLI:before{content:"";background:radial-gradient(circle at 25% 25%,var(--accent-blue)0%,transparent 45%),radial-gradient(circle at 75% 75%,var(--accent-purple)0%,transparent 45%);opacity:.03;pointer-events:none;z-index:-1;position:fixed;inset:0}.containerINFOLI{max-width:1140px;margin:0 auto}.headerINFOLI{background:var(--glass-bg);-webkit-backdrop-filter:var(--backdrop);border:1px solid var(--glass-border);border-radius:var(--radius-xl);text-align:center;box-shadow:var(--shadow-3);animation:slideUp var(--duration-slow)var(--ease-out)both;margin-bottom:3rem;padding:3rem 2rem;position:relative;overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}@media (min-width:768px){.headerINFOLI{padding:4rem 3rem}}.headerINFOLI:before{content:"";background:linear-gradient(90deg,transparent,var(--accent-blue),var(--accent-purple),var(--accent-green),transparent);width:200%;height:2px;animation:4s linear infinite shimmer;position:absolute;top:0;left:-100%}@keyframes shimmer{to{left:100%}}.headerINFOLI:after{content:"";background:radial-gradient(circle,var(--accent-blue)0%,transparent 70%);opacity:.04;pointer-events:none;width:320px;height:320px;animation:6s ease-in-out infinite breathe;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes breathe{0%,to{opacity:.04;transform:translate(-50%,-50%)scale(1)}50%{opacity:.06;transform:translate(-50%,-50%)scale(1.15)}}.titleINFOLI{letter-spacing:-.03em;background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple),var(--accent-green));-webkit-text-fill-color:transparent;z-index:1;-webkit-background-clip:text;background-clip:text;margin-bottom:1rem;font-size:clamp(2rem,5vw,3.5rem);font-weight:800;line-height:1.1;position:relative}.descriptionINFOLI{color:var(--text-secondary);z-index:1;max-width:640px;margin:0 auto;font-size:clamp(1rem,2vw,1.125rem);line-height:1.7;position:relative}.ueINFOLI{background:var(--glass-bg);-webkit-backdrop-filter:var(--backdrop);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);transition:all var(--duration-base)var(--ease-out);margin-bottom:2rem;padding:2rem;position:relative;overflow:hidden}@media (min-width:768px){.ueINFOLI{padding:2.5rem}}.ueINFOLI:before{content:"";background:linear-gradient(180deg,var(--accent-blue),var(--accent-purple));border-radius:0 var(--radius-xs)var(--radius-xs)0;transition:height var(--duration-base)var(--ease-out);width:4px;height:0;position:absolute;top:0;left:0}.ueINFOLI:after{content:"";background:radial-gradient(circle,var(--accent-blue)0%,transparent 65%);opacity:0;transition:opacity var(--duration-slow)var(--ease-out);pointer-events:none;width:200px;height:200px;position:absolute;top:50%;right:-80px;transform:translateY(-50%)}.ueINFOLI:hover{box-shadow:var(--shadow-4),var(--glow-blue);border-color:var(--border-emphasis);transform:translateY(-4px)}.ueINFOLI:hover:before{height:100%}.ueINFOLI:hover:after{opacity:.06}.ue-titleINFOLI{letter-spacing:-.02em;color:var(--text-primary);align-items:center;gap:.75rem;margin-bottom:1.5rem;font-size:clamp(1.25rem,3vw,1.5rem);font-weight:700;display:flex}.ue-titleINFOLI:before{content:"";background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple));box-shadow:0 0 12px var(--accent-blue);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{box-shadow:0 0 12px var(--accent-blue);transform:scale(1)}50%{box-shadow:0 0 20px var(--accent-blue-light);transform:scale(1.2)}}.uep-listINFOLI{gap:.75rem;list-style:none;display:grid}.uep-listINFOLI li{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--duration-base)var(--ease-out);cursor:default;padding:1rem 1.25rem 1rem 3rem;font-size:.95rem;position:relative;overflow:hidden}.uep-listINFOLI li:before{content:"›";color:var(--accent-blue);opacity:.5;transition:all var(--duration-base)var(--ease-bounce);font-size:1.5rem;font-weight:700;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.uep-listINFOLI li:after{content:"";background:linear-gradient(90deg,var(--accent-blue),transparent);opacity:.08;transition:width var(--duration-base)var(--ease-out);width:0;position:absolute;top:0;bottom:0;left:0}.uep-listINFOLI li:hover{background:var(--bg-hover);border-color:var(--accent-blue);color:var(--text-primary);box-shadow:var(--shadow-2);transform:translate(8px)}.uep-listINFOLI li:hover:before{opacity:1;color:var(--accent-blue-light);transform:translateY(-50%)translate(4px)}.uep-listINFOLI li:hover:after{width:100%}.ue-table{border-collapse:separate;border-spacing:0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-2);width:100%;margin:1.5rem 0;overflow:hidden}.ue-table thead th{background:var(--accent-blue);color:var(--text-inverse);text-align:left;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--accent-blue-light);padding:.875rem 1rem;font-size:.875rem;font-weight:600}.ue-table tbody td{border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:top;transition:background var(--duration-fast)var(--ease-out);padding:.875rem 1rem;font-size:.9375rem}.ue-table tbody tr:nth-child(2n):not(.bloc-header) td{background:var(--bg-tertiary)}.ue-table tbody tr:hover:not(.bloc-header) td{background:var(--bg-hover);box-shadow:inset 3px 0 0 var(--accent-blue)}.bloc-header td{background:var(--accent-purple);color:var(--text-inverse);text-transform:uppercase;letter-spacing:.03em;border:none;padding:1rem;font-size:.9375rem;font-weight:700}.bloc-header td .uep-note{background:var(--accent-green);color:var(--text-inverse);border-radius:var(--radius-xs);margin-left:.75rem;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}@media (max-width:768px){.ue-table,.ue-table thead,.ue-table tbody,.ue-table tr,.ue-table th,.ue-table td{width:100%;display:block}.ue-table thead{display:none}.ue-table tr{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-1);margin-bottom:1rem}.ue-table td{border-bottom:1px solid var(--border);text-align:left;padding:.75rem 1rem}.ue-table td:last-child{border-bottom:none}.bloc-header td{text-align:center;border-radius:var(--radius-sm)var(--radius-sm)0 0}}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:var(--radius-xs)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--accent-blue),var(--accent-purple));border-radius:var(--radius-xs);border:2px solid var(--bg-tertiary);transition:background var(--duration-fast)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--accent-blue-light),var(--accent-purple-light))}::selection{background:var(--accent-blue);color:var(--text-inverse);text-shadow:none}::-moz-selection{background:var(--accent-blue);color:var(--text-inverse)}:focus-visible{outline:2px solid var(--accent-blue);outline-offset:3px;border-radius:var(--radius-xs)}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html{scroll-behavior:auto}}:root{--bg:#f8fafc;--surface:#ffffffe6;--border:#0000001a;--repo:#6366f1;--devA:#059669;--devB:#d97706;--danger:#dc2626;--text:#1e293b;--muted:#64748b;--accent:#8b5cf6;--shadow:#0000001a}.bodyMOno{color:var(--text);box-sizing:border-box;justify-content:center;align-items:center;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;transition:background .3s,color .3s;display:flex}[saved-theme=dark] .bodyMOno{color:#f1f5f9}.containerMOno{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 25px 50px var(--shadow);border-radius:24px;width:100%;max-width:1200px;overflow:hidden}[saved-theme=dark] .containerMOno{background:#ffffff14;border:1px solid #ffffff1f;box-shadow:0 25px 50px #0009}.headerMOno{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#6366f10d 0%,#8b5cf60d 100%);padding:24px 28px}[saved-theme=dark] .headerMOno{background:linear-gradient(135deg,#6366f11a 0%,#8b5cf61a 100%);border-color:#ffffff1f}.titleMOno{background:linear-gradient(135deg,var(--repo)0%,var(--accent)100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-size:clamp(20px,3vw,28px);font-weight:700}[saved-theme=dark] .titleMOno{background:linear-gradient(135deg,#818cf8 0%,#a78bfa 100%)}.descriptionMOno{color:var(--muted);margin:12px 0 0;font-size:15px;line-height:1.6}[saved-theme=dark] .descriptionMOno{color:#94a3b8}.legendMOno{border-bottom:1px solid var(--border);background:#00000005;flex-wrap:wrap;align-items:center;gap:24px;padding:16px 24px;display:flex}[saved-theme=dark] .legendMOno{background:#ffffff05;border-color:#ffffff1f}.legend-itemMOno{color:var(--muted);align-items:center;gap:8px;font-size:14px;display:flex}[saved-theme=dark] .legend-itemMOno{color:#94a3b8}.legend-dotMOno.repo{background:#6366f1}.legend-dotMOno.devA{background:#059669}.legend-dotMOno.devB{background:#d97706}.legend-dotMOno.danger{background:#dc2626}[saved-theme=dark] .legend-dotMOno.devA{background:#10b981}[saved-theme=dark] .legend-dotMOno.devB{background:#f59e0b}[saved-theme=dark] .legend-dotMOno.danger{background:#ef4444}.diagram-containerMOno{padding:24px}.svgMOno{background:radial-gradient(circle at 20% 80%,#6366f108 0%,#0000 50%),radial-gradient(circle at 80% 20%,#8b5cf608 0%,#0000 50%);width:100%;height:auto}[saved-theme=dark] .svgMOno{background:radial-gradient(circle at 20% 80%,#6366f10d 0%,#0000 50%),radial-gradient(circle at 80% 20%,#8b5cf60d 0%,#0000 50%)}.lane-labelsMOno text{fill:var(--text)}[saved-theme=dark] .lane-labelsMOno text{fill:#f1f5f9}.timeline-annotationsMOno text{fill:var(--muted)}[saved-theme=dark] .timeline-annotationsMOno text{fill:#94a3b8}.parallel-textMOno{fill:var(--accent)}[saved-theme=dark] .parallel-textMOno{fill:#a78bfa}.footerMOno{border-top:1px solid var(--border);color:var(--muted);background:#0000000d;padding:20px 28px}[saved-theme=dark] .footerMOno{color:#94a3b8;background:#0003;border-color:#ffffff1f}.tipMOno{color:var(--muted);gap:12px;font-size:14px;line-height:1.6;display:flex}[saved-theme=dark] .tipMOno{color:#94a3b8}.tip-iconMOno{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:flex}[saved-theme=dark] .tip-iconMOno{background:#a78bfa}.theme-toggleMOno{border:2px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;box-shadow:0 4px 12px var(--shadow);border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;display:flex;position:fixed;top:20px;right:20px}[saved-theme=dark] .theme-toggleMOno{color:#f1f5f9;background:#ffffff14;border-color:#ffffff1f;box-shadow:0 4px 12px #00000080}.legend-dotMOno{border-radius:50%;flex-shrink:0;width:16px;height:16px;box-shadow:0 0 10px}.legend-dotMOno.repo{color:#6366f1;background:#6366f1}.legend-dotMOno.devA{color:#059669;background:#059669}.legend-dotMOno.devB{color:#d97706;background:#d97706}.legend-dotMOno.danger{color:#dc2626;background:#dc2626}[saved-theme=dark] .legend-dotMOno.repo{color:#6366f1;background:#6366f1}[saved-theme=dark] .legend-dotMOno.devA{color:#10b981;background:#10b981}[saved-theme=dark] .legend-dotMOno.devB{color:#f59e0b;background:#f59e0b}[saved-theme=dark] .legend-dotMOno.danger{color:#ef4444;background:#ef4444}.table-card{background:#fff;border:1px solid #e6e9ef;border-radius:10px;max-width:900px;margin:36px auto;padding:18px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial}.table-card h2{color:#0f172a;margin:0 0 10px;font-size:18px}.table-card p{color:#6b7280;margin:0 0 14px;font-size:14px}table.static-table{border-collapse:collapse;width:100%;min-width:640px}table.static-table thead th{text-align:center;color:#111827;background:#fff;border-bottom:2px solid #eef2f6;padding:10px 12px;font-weight:700}table.static-table thead th:first-child{text-align:left}table.static-table tbody th{text-align:left;color:#111827;background:#fafafa;border-right:1px solid #f1f5f9;padding:10px 12px;font-weight:700}table.static-table td{text-align:center;color:#111827;border-bottom:1px solid #f3f6f9;padding:10px 12px}table.static-table tbody tr:nth-child(odd) td{background:#fff}table.static-table tbody tr:nth-child(2n) td{background:#fbfdff}.dash{color:#6b7280;font-style:normal}.num{font-weight:600}.table-wrap{overflow:auto}[saved-theme=dark] .table-card{color:#e2e8f0;background:#1e293b;border:1px solid #334155}[saved-theme=dark] .table-card h2{color:#f8fafc}[saved-theme=dark] .table-card p{color:#94a3b8}[saved-theme=dark] table.static-table thead th{color:#f1f5f9;background:#1e293b;border-bottom:2px solid #334155}[saved-theme=dark] table.static-table tbody th{color:#f8fafc;background:#0f172a;border-right:1px solid #334155}[saved-theme=dark] table.static-table td{color:#e2e8f0;border-bottom:1px solid #334155}[saved-theme=dark] table.static-table tbody tr:nth-child(odd) td{background:#1e293b}[saved-theme=dark] table.static-table tbody tr:nth-child(2n) td{background:#0f172a}[saved-theme=dark] .dash{color:#64748b}[saved-theme=dark] .num{color:#facc15;font-weight:600}.cours-planMPI{border-collapse:separate;border-spacing:0;font-family:var(--font-sans);color:var(--text-primary);width:100%;margin:1.5rem 0;font-size:.9375rem}.cours-planMPI thead{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cours-planMPI tbody tr{background:var(--glass-bg);-webkit-backdrop-filter:var(--backdrop);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);transition:all var(--duration-base)var(--ease-out);animation:slideInCard var(--duration-slow)var(--ease-out)both;margin-bottom:1rem;display:block;position:relative;overflow:hidden}@keyframes slideInCard{0%{opacity:0;transform:translateY(24px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.cours-planMPI tbody tr:first-child{animation-delay:0s}.cours-planMPI tbody tr:nth-child(2){animation-delay:50ms}.cours-planMPI tbody tr:nth-child(3){animation-delay:.1s}.cours-planMPI tbody tr:nth-child(4){animation-delay:.15s}.cours-planMPI tbody tr:nth-child(5){animation-delay:.2s}.cours-planMPI tbody tr:nth-child(6){animation-delay:.25s}.cours-planMPI tbody tr:nth-child(7){animation-delay:.3s}.cours-planMPI tbody tr:nth-child(8){animation-delay:.35s}.cours-planMPI tbody tr:before{content:"";background:linear-gradient(180deg,var(--accent-blue),var(--accent-purple));transition:width var(--duration-base)var(--ease-out);border-radius:var(--radius-lg)0 0 var(--radius-lg);width:0;position:absolute;top:0;bottom:0;left:0}.cours-planMPI tbody tr:after{content:"";background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple));border-radius:var(--radius-lg);opacity:0;z-index:-1;transition:opacity var(--duration-base)var(--ease-out);position:absolute;inset:-1px}.cours-planMPI tbody tr:hover{box-shadow:var(--shadow-4),var(--glow-blue);border-color:var(--accent-blue);transform:translateY(-6px)scale(1.01)}.cours-planMPI tbody tr:hover:before{width:4px}.cours-planMPI tbody tr:hover:after{opacity:.08}.cours-planMPI td{color:var(--text-primary);border:none;padding:.875rem 1.25rem;font-size:.9375rem;display:block;position:relative}.cours-planMPI td:first-child{letter-spacing:.05em;color:var(--text-inverse);background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple));border-radius:var(--radius-lg)var(--radius-lg)0 0;text-align:center;padding:.75rem 1.25rem;font-size:.875rem;font-weight:700;position:relative;overflow:hidden;box-shadow:inset 0 -1px #0000001a}.cours-planMPI td:first-child:before{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);width:100%;height:100%;transition:left .6s;position:absolute;top:0;left:-100%}.cours-planMPI tbody tr:hover td:first-child:before{left:100%}.cours-planMPI td:not(:first-child):before{content:attr(data-label);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-bottom:.375rem;font-size:.75rem;font-weight:600;display:block}.cours-planMPI td:not(:first-child):not(:last-child){border-bottom:1px solid var(--border)}.cours-planMPI a{color:var(--accent-blue);transition:all var(--duration-base)var(--ease-out);align-items:center;gap:.375rem;padding:.25rem 0;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.cours-planMPI a:before{content:"→";opacity:0;transition:all var(--duration-base)var(--ease-bounce);font-weight:700;transform:translate(-8px)}.cours-planMPI a:after{content:"";background:linear-gradient(90deg,var(--accent-blue),var(--accent-purple));transition:width var(--duration-base)var(--ease-out);border-radius:2px;width:0;height:2px;position:absolute;bottom:0;left:0}.cours-planMPI a:hover{color:var(--accent-blue-light);padding-left:1.25rem}.cours-planMPI a:hover:before{opacity:1;transform:translate(0)}.cours-planMPI a:hover:after{width:100%}.cours-planMPI a:focus-visible{outline:2px solid var(--accent-blue);outline-offset:4px;border-radius:var(--radius-xs)}.cours-planMPI .bloc-headerMPI td{text-transform:uppercase;letter-spacing:.1em;color:var(--text-inverse);background:linear-gradient(135deg,var(--accent-orange),var(--accent-red));border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-2),0 0 24px #fb850033;transition:all var(--duration-base)var(--ease-out);cursor:default;padding:1rem 1.25rem;font-size:.875rem;font-weight:800;display:block;position:relative;overflow:hidden}.cours-planMPI .bloc-headerMPI td:before{content:"";background:linear-gradient(45deg,#0000 30%,#ffffff1a 50%,#0000 70%);width:200%;height:200%;animation:3s ease-in-out infinite shine;position:absolute;top:-50%;left:-50%;transform:rotate(45deg)}@keyframes shine{0%,to{transform:translate(-100%)translateY(-100%)rotate(45deg)}50%{transform:translate(100%)translateY(100%)rotate(45deg)}}.cours-planMPI .bloc-headerMPI td:hover{box-shadow:var(--shadow-3),0 0 32px #fb850059;transform:translateY(-2px)scale(1.01)}.cours-planMPI .bloc-headerMPI{margin-bottom:1.5rem;display:block}[saved-theme=dark] .cours-planMPI tbody tr{background:var(--glass-bg);border-color:var(--glass-border);box-shadow:var(--shadow-2)}[saved-theme=dark] .cours-planMPI tbody tr:hover{box-shadow:var(--shadow-4),var(--glow-blue)}[saved-theme=dark] .cours-planMPI td:first-child{background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple))}[saved-theme=dark] .cours-planMPI a{color:var(--accent-blue-light)}[saved-theme=dark] .cours-planMPI a:hover{color:var(--accent-blue)}[saved-theme=dark] .cours-planMPI .bloc-headerMPI td{background:linear-gradient(135deg,var(--accent-orange),#fb923c);box-shadow:var(--shadow-2),0 0 24px #fb923c4d}[saved-theme=dark] .cours-planMPI .bloc-headerMPI td:hover{box-shadow:var(--shadow-3),0 0 32px #fb923c73}@media (min-width:768px){.cours-planMPI tbody tr{margin-bottom:0;display:table-row}.cours-planMPI td{vertical-align:middle;padding:1rem 1.25rem;display:table-cell}.cours-planMPI td:first-child{border-radius:var(--radius-lg)0 0 var(--radius-lg);text-align:center;width:80px}.cours-planMPI td:not(:first-child):before{display:none}.cours-planMPI td:not(:first-child):not(:last-child){border-bottom:none}.cours-planMPI{border-spacing:0 .75rem}.cours-planMPI .bloc-headerMPI{margin-bottom:0;display:table-row}.cours-planMPI .bloc-headerMPI td{border-radius:var(--radius-lg);display:table-cell}}@media (prefers-reduced-motion:reduce){.cours-planMPI tbody tr,.cours-planMPI tbody tr:before,.cours-planMPI tbody tr:after,.cours-planMPI a,.cours-planMPI a:before,.cours-planMPI a:after,.cours-planMPI .bloc-headerMPI td:before{transition:none!important;animation:none!important}}@media (prefers-color-scheme:dark){:root:not([saved-theme=light]) .cours-planMPI tbody tr{background:var(--glass-bg);border-color:var(--glass-border)}}table{border-collapse:collapse;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#fff 0%,#f8f9fa 100%);border-radius:12px;width:100%;max-width:1200px;margin:0 auto;font-family:JetBrains Mono,SF Mono,Monaco,Cascadia Code,Roboto Mono,Courier New,monospace;overflow:hidden}th,td{text-align:left;border:none;padding:12px 16px;font-size:13px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}th{color:#fff;text-transform:uppercase;letter-spacing:.5px;z-index:10;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);font-size:11px;font-weight:600;position:sticky;top:0;box-shadow:0 2px 8px #00000026}.decimal{color:#2d3748;background:linear-gradient(90deg,#0000 0%,#2d374808 100%);font-weight:500}.hex{color:#e53e3e;text-shadow:0 1px 2px #e53e3e1a;background:linear-gradient(90deg,#e53e3e0d 0%,#0000 100%);font-weight:700}.char{color:#38a169;text-shadow:0 1px 2px #38a1691a;background:linear-gradient(90deg,#38a1690d 0%,#0000 100%);font-weight:600}.control-char{color:#805ad5;background:linear-gradient(90deg,#805ad50d 0%,#0000 100%);border:1px solid #805ad51a;border-radius:4px;padding:4px 8px;font-size:10px;font-weight:500}.separator{border-left:3px solid #4a5568;position:relative}.separator:before{content:"";opacity:.6;background:linear-gradient(#667eea 0%,#764ba2 100%);width:2px;position:absolute;top:0;bottom:0;left:-2px}tr{border-bottom:1px solid #0000000d;transition:all .3s}tr:nth-child(2n){background:linear-gradient(90deg,#00000003 0%,#00000005 50%,#00000003 100%)}tr:hover{background:linear-gradient(135deg,#667eea14 0%,#764ba20d 100%);transform:translateY(-1px);box-shadow:0 4px 12px #00000014}tr:hover td{color:#1a202c}tr:hover .hex{color:#c53030;text-shadow:0 2px 4px #c5303033}tr:hover .char{color:#2f855a;text-shadow:0 2px 4px #2f855a33}tr:hover .control-char{color:#6b46c1;background:#6b46c11a;border-color:#6b46c133}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}tr{animation:.6s forwards fadeInUp}tr:nth-child(n){animation-delay:calc(20ms*var(--row-index,1))}[saved-theme=dark] table{color:#e2e8f0;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%)}[saved-theme=dark] th{color:#f7fafc;background:linear-gradient(135deg,#2d3561 0%,#1e2749 100%);box-shadow:0 2px 8px #0000004d}[saved-theme=dark] .decimal{color:#a0aec0;background:linear-gradient(90deg,#0000 0%,#a0aec00d 100%)}[saved-theme=dark] .hex{color:#fc8181;text-shadow:0 1px 3px #fc81814d;background:linear-gradient(90deg,#fc818114 0%,#0000 100%)}[saved-theme=dark] .char{color:#68d391;text-shadow:0 1px 3px #68d3914d;background:linear-gradient(90deg,#68d39114 0%,#0000 100%)}[saved-theme=dark] .control-char{color:#b794f6;background:linear-gradient(90deg,#b794f614 0%,#0000 100%);border:1px solid #b794f626}[saved-theme=dark] .separator{border-left:3px solid #4a5568}[saved-theme=dark] .separator:before{opacity:.8;background:linear-gradient(#3182ce 0%,#2c5282 100%)}[saved-theme=dark] tr{border-bottom:1px solid #ffffff0d}[saved-theme=dark] tr:nth-child(2n){background:linear-gradient(90deg,#ffffff05 0%,#ffffff0a 50%,#ffffff05 100%)}[saved-theme=dark] tr:hover{background:linear-gradient(135deg,#3182ce26 0%,#2c52821a 100%);transform:translateY(-1px);box-shadow:0 6px 20px #00000040}[saved-theme=dark] tr:hover td{color:#f7fafc}[saved-theme=dark] tr:hover .hex{color:#feb2b2;text-shadow:0 2px 6px #feb2b266}[saved-theme=dark] tr:hover .char{color:#9ae6b4;text-shadow:0 2px 6px #9ae6b466}[saved-theme=dark] tr:hover .control-char{color:#d6bcfa;background:#d6bcfa1f;border-color:#d6bcfa40}@media (max-width:768px){table{border-radius:8px;font-size:11px}th,td{padding:8px 10px}.control-char{padding:2px 6px;font-size:9px}[saved-theme=dark] table{border-radius:8px;font-size:11px}[saved-theme=dark] th,[saved-theme=dark] td{padding:8px 10px}[saved-theme=dark] .control-char{padding:2px 6px;font-size:9px}}table,th,td,tr,.decimal,.hex,.char,.control-char,.separator{transition:all .4s cubic-bezier(.4,0,.2,1)}.exo-questions ol,.exo-questions ol li,.exo-questions ol ol,.exo-questions ul,.exo-questions ul li{list-style:none}.consigne_exo{color:#222;background:#f9f9fc;border:1px solid #d0d0e0;border-radius:8px;margin:20px 0;padding:16px;font-family:Segoe UI,sans-serif}.exo-header{align-items:center;margin-bottom:12px;display:flex}.exo-num{color:#fff;background:#5c7698;border-radius:4px;margin-right:8px;padding:4px 8px;font-weight:700}.exo-title{font-size:1rem;font-weight:600}.exo-questions{counter-reset:question;list-style:none}.exo-questions>li{counter-increment:question;margin:8px 0;padding-left:30px;position:relative}.exo-questions>li:before{content:counter(question);color:#fff;background:#94a9bf;border-radius:4px;padding:2px 6px;font-weight:700;position:absolute;top:0;left:0}.mot-cle{color:#1e3a8a;background:#e0e8f9;border-radius:4px;padding:2px 6px;font-weight:700}.exo-questions ol{counter-reset:sub-counter;margin-top:10px;padding-left:20px}.exo-questions ol li{counter-increment:sub-counter;margin:8px 0;padding-left:30px;position:relative}.exo-questions ol li:before{content:counter(sub-counter,lower-alpha)")";color:#fff;background:#b8c5d1;border-radius:4px;padding:2px 6px;font-weight:700;position:absolute;top:0;left:0}.exo-questions ol ol{counter-reset:subsub-counter;margin-top:8px}.exo-questions ol ol li{counter-increment:subsub-counter;margin:6px 0;padding-left:30px;position:relative}.exo-questions ol ol li:before{content:counter(subsub-counter,lower-roman)".";color:#333;background:#c9d2db;border-radius:4px;padding:2px 6px;font-weight:700;position:absolute;top:0;left:0}.exo-questions ul{margin-top:10px;padding-left:20px}.exo-questions ul li{margin-bottom:5px;list-style:none}.td-title{text-align:center;color:#2c3e50;margin-bottom:10px;font-size:24px;font-weight:700}.td-subtitle{text-align:center;color:#34495e;margin-bottom:30px;font-size:18px;font-weight:700}.section-title{color:#2980b9;border-bottom:2px solid #2980b9;margin:30px 0 20px;padding-bottom:5px;font-size:20px;font-weight:700}.code-block{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:5px;margin:10px 0;padding:15px;font-family:Courier New,monospace;overflow-x:auto}.math-display{text-align:center;margin:15px 0}.warning-box{background-color:#cddaff;border:1px solid #b4a7ff;border-left:4px solid #5c7698;border-radius:5px;margin:15px 0;padding:15px}[saved-theme=dark] .consigne_exo{color:#e0e0e6;background:#1a1a2e;border:1px solid #2d2d44}[saved-theme=dark] .exo-num{background:#4a5d7a}[saved-theme=dark] .exo-title{color:#f0f0f5}[saved-theme=dark] .exo-questions>li:before{background:#6b7a94}[saved-theme=dark] .exo-questions ol li:before{background:#7a8a9e}[saved-theme=dark] .exo-questions ol ol li:before{color:#e0e0e6;background:#8a9aae}[saved-theme=dark] .mot-cle{color:#7dd3fc;background:#1e2951}[saved-theme=dark] .td-title{color:#dce6f3}[saved-theme=dark] .td-subtitle{color:#c0cad9}[saved-theme=dark] .section-title{color:#66b2ff;border-bottom:2px solid #66b2ff}[saved-theme=dark] .code-block{color:#f0f0f5;background-color:#111827;border:1px solid #2d2d44}[saved-theme=dark] .warning-box{color:#9fadf9;background-color:#001233;border:1px solid #070066;border-left:4px solid #4a5d7a}.graphTikzTD1{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:20px;display:flex}.graphTikzTD1 .tikz-block{background:#fff;border:1px solid #ccc;border-radius:8px;padding:10px;transition:background .3s,border-color .3s}[saved-theme=dark] .graphTikzTD1 .tikz-block{color:#fff;background:#363649;border-color:#66b2ff}@media (min-width:1024px){.page,.content,.main,.markdown-body{max-width:3000px!important}}pre,code{white-space:pre!important;word-wrap:normal!important;overflow-x:auto!important}.custom-details{border:1px solid;border-radius:6px;margin-top:1em;margin-bottom:1em;padding:.5em 1em;transition:border-left .2s ease-in-out;position:relative}.custom-details[open]:before{content:"";background-color:currentColor;border-radius:4px 0 0 4px;width:4px;height:100%;position:absolute;top:0;left:0}.custom-summary{cursor:pointer;padding:.2em 0;font-weight:600;transition:color .2s ease-in-out;display:inline-block}html.dark .custom-details{color:#fff;border-color:#333}html.dark .custom-details[open]:before{background-color:#fff}html.dark .custom-summary{color:#fff}html.dark .custom-summary:hover{color:#fff;text-decoration:underline}html.light .custom-details{color:#222;border-color:#ccc}html.light .custom-details[open]:before{background-color:#007acc}html.light .custom-summary{color:#222}html.light .custom-summary:hover{color:#007acc;text-decoration:underline}ul,ol,ul ul,ol ol,ul ol,ol ul{margin-left:1.5em;padding-left:1.5em}.error{color:#b00020;white-space:pre-wrap;word-break:break-word;background:#ffe8ec;border:1.5px solid #b00020;border-radius:6px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.95rem;line-height:1.5;display:block}.error code{color:inherit;background:0 0;padding:0}.error-inline{color:#b00020;border-bottom:1px solid #b00020;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.markdown-preview-view img{margin-left:auto;margin-right:auto;display:block}.exercice{counter-increment:exo-counter;background:#f9f9f9;border:1px solid #ccc;border-radius:6px;margin:20px 0;padding:16px}.ex-header{align-items:center;margin-bottom:.5em;font-size:1.1em;display:flex}.ex-num{color:#fff;text-align:center;background:#1e3a8a;border-radius:4px;min-width:28px;margin-right:.5em;padding:4px 10px;font-weight:700}.ex-num:before{content:counter(exo-counter)}.ex-body{margin-top:.5em}a{color:var(--primary-blue);font-weight:600;text-decoration:none;transition:color .3s,transform .2s;position:relative}a:hover,a:focus{color:var(--accent-purple);transform:translateY(-1px)}a:after{content:"";background:linear-gradient(90deg,var(--primary-blue),var(--accent-pink));border-radius:2px;width:0%;height:2px;transition:width .3s;position:absolute;bottom:-2px;left:0}a:hover:after,a:focus:after{width:100%}[saved-theme=dark] a{color:var(--secondary-blue)}[saved-theme=dark] a:hover,[saved-theme=dark] a:focus{color:var(--accent-pink)}.link-preview-container,.link-preview,.popover{visibility:hidden!important;pointer-events:none!important;display:none!important}:root{--light:#faf8f8;--lightgray:#e5e5e5;--gray:#b8b8b8;--darkgray:#4e4e4e;--dark:#2b2b2b;--secondary:#284b63;--tertiary:#84a59d;--highlight:#8f9fa926;--textHighlight:#fff23688;--headerFont:"Schibsted Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--bodyFont:"Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--codeFont:"IBM Plex Mono",ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace}:root[saved-theme=dark]{--light:#161618;--lightgray:#393639;--gray:#646464;--darkgray:#d4d4d4;--dark:#ebebec;--secondary:#7b97aa;--tertiary:#84a59d;--highlight:#8f9fa926;--textHighlight:#b3aa0288}