.exo-player__context:has(.exo-enonce-blocks){padding:0;border-left:none}.exo-player__enonce{margin:0;font-size:1rem;line-height:1.62;color:color-mix(in oklch,var(--foreground) 90%,var(--muted-foreground))}.exo-player__body{display:grid;gap:.55rem}.exo-player__answer-label{margin:0;font-size:.625rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-foreground)}.exo-player .code-panel,.exo-session .code-panel{--code-panel-max-lines:10;--code-panel-scroll-max-height:15.5rem}.code-fill-panel .code-panel__scroll,.exo-code-insert .code-panel__scroll,.exo-player .code-panel__scroll,.exo-session .code-panel__scroll{max-height:var(--code-panel-scroll-max-height,15.5rem);overflow:auto}.exo-player__dock{position:sticky;bottom:calc(var(--nav-dock-height, 0px) + env(safe-area-inset-bottom, 0px));z-index:20;display:flex;flex-direction:column;gap:.7rem;margin-top:.75rem;margin-inline:calc(-1 * var(--course-content-pad, 1.25rem));padding:.85rem var(--course-content-pad,1.25rem) .9rem;border:none;border-top:3px solid var(--exo-player-tone,var(--lesson-accent,var(--course-accent,var(--primary))));background:var(--course-chrome-surface,var(--background))}.exo-player__dock-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.1rem}.exo-player__dock-bar--graded{justify-content:space-between}.exo-player__cta-row{--exo-cta-h:2.5rem;display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;flex-shrink:0}.exo-player__dock-bar--graded .exo-player__cta-row{margin-left:auto}.exo-player__validate{--validate-bg:var(--exo-accent,var(--course-accent,var(--primary)));box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-width:8.5rem;height:var(--exo-cta-h,2.5rem);padding:0 1.25rem;border:1px solid var(--validate-bg);border-radius:0;background:var(--validate-bg);color:color-mix(in oklch,white 94%,var(--validate-bg));font:inherit;font-size:.75rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;box-shadow:none;transition:background-color .14s ease,border-color .14s ease,opacity .15s ease}.exo-player__validate:hover:not(:disabled){background:color-mix(in oklch,var(--validate-bg) 86%,black);border-color:color-mix(in oklch,var(--validate-bg) 86%,black)}.exo-player__validate:active:not(:disabled){background:color-mix(in oklch,var(--validate-bg) 78%,black)}.exo-player__icon-btn:focus-visible,.exo-player__retry:focus-visible,.exo-player__validate:focus-visible{outline:2px solid var(--validate-bg,var(--exo-accent,var(--primary)));outline-offset:2px}.exo-player__validate:disabled{opacity:.5;cursor:not-allowed}.exo-player__validate.is-busy{opacity:.75;cursor:wait}.exo-player__validate--done,.exo-player__validate--done:disabled{--validate-bg:var(--exo-player-tone,var(--exo-green));opacity:1;cursor:default}.exo-player__validate-icon{width:.95rem;height:.95rem;flex-shrink:0}.exo-player__retry{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;height:var(--exo-cta-h,2.5rem);padding:0 1rem;border:1px solid var(--border);border-radius:0;background:var(--card);color:var(--muted-foreground);font:inherit;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.exo-player__retry:hover:not(:disabled){background:var(--hover-fill);color:var(--foreground)}.exo-player__retry:disabled{opacity:.5;cursor:not-allowed}.exo-player__retry-icon{width:.95rem;height:.95rem;flex-shrink:0}.exo-retry-modal__backdrop{position:fixed;inset:0;z-index:100;background:color-mix(in oklch,black 42%,transparent);transition:opacity .15s ease}.exo-retry-modal__backdrop[data-ending-style],.exo-retry-modal__backdrop[data-starting-style]{opacity:0}.exo-retry-modal{--exo-t-green:oklch(0.58 0.14 145);--exo-t-lime:oklch(0.68 0.14 115);--exo-t-orange:oklch(0.72 0.15 70);--exo-t-orangered:oklch(0.64 0.17 45);--exo-t-red:oklch(0.58 0.19 30);--exo-t-reddark:oklch(0.48 0.17 25);--exo-t-darkred:oklch(0.40 0.15 18);--exo-t-maroon:oklch(0.38 0.14 350);--exo-t-violet:oklch(0.44 0.16 310);--exo-t-deepviolet:oklch(0.32 0.14 295);--exo-player-tone:var(--course-accent,var(--primary));position:fixed;top:50%;left:50%;z-index:101;width:min(calc(100vw - 2rem),22.5rem);padding:1.25rem 1.25rem 1.1rem;border:1px solid color-mix(in oklch,var(--border) 88%,transparent);border-radius:0;background:var(--course-chrome-surface,var(--background));color:var(--foreground);box-shadow:none;transform:translate(-50%,-50%);transition:opacity .15s ease,transform .15s ease}.exo-retry-modal[data-tone=green]{--exo-player-tone:var(--exo-t-green)}.exo-retry-modal[data-tone=lime]{--exo-player-tone:var(--exo-t-lime)}.exo-retry-modal[data-tone=orange],.exo-retry-modal[data-tone=partial]{--exo-player-tone:var(--exo-t-orange)}.exo-retry-modal[data-tone=orangered]{--exo-player-tone:var(--exo-t-orangered)}.exo-retry-modal[data-tone=red]{--exo-player-tone:var(--exo-t-red)}.exo-retry-modal[data-tone=reddark]{--exo-player-tone:var(--exo-t-reddark)}.exo-retry-modal[data-tone=darkred]{--exo-player-tone:var(--exo-t-darkred)}.exo-retry-modal[data-tone=maroon]{--exo-player-tone:var(--exo-t-maroon)}.exo-retry-modal[data-tone=violet]{--exo-player-tone:var(--exo-t-violet)}.exo-retry-modal[data-tone=black],.exo-retry-modal[data-tone=deepviolet]{--exo-player-tone:var(--exo-t-deepviolet)}.exo-retry-modal[data-ending-style],.exo-retry-modal[data-starting-style]{opacity:0;transform:translate(-50%,-48%)}.exo-retry-modal__title{margin:0;font-family:var(--font-heading,var(--font-sans));font-size:1.125rem;font-weight:750;letter-spacing:-.03em;line-height:1.2}.exo-retry-modal__text{margin:.55rem 0 0;font-size:.875rem;line-height:1.45;color:color-mix(in oklch,var(--foreground) 78%,var(--muted-foreground))}.exo-retry-modal__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.45rem;margin-top:1.15rem}.exo-retry-modal__btn{min-width:6.5rem;border-radius:0!important}.exo-retry-modal__btn--confirm{background:var(--exo-player-tone,var(--exo-accent,var(--primary)))!important;color:color-mix(in oklch,white 92%,var(--exo-player-tone,var(--primary)))!important;border-color:color-mix(in oklch,var(--exo-player-tone,var(--exo-accent,var(--primary))) 72%,black 14%)!important}.exo-player__icon-btn{box-sizing:border-box;position:relative;display:inline-grid;place-items:center;width:var(--exo-cta-h,2.5rem);height:var(--exo-cta-h,2.5rem);padding:0;border:1px solid var(--border);border-radius:0;background:var(--card);color:var(--muted-foreground);cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.exo-player__icon-btn:focus-visible,.exo-player__icon-btn:hover{background:var(--hover-fill);color:var(--foreground)}.exo-player__icon-btn--hint{color:oklch(.78 .12 90);border-color:color-mix(in oklch,oklch(.78 .12 90) 40%,var(--border))}.exo-player__icon-btn--hint:focus-visible,.exo-player__icon-btn--hint:hover{background:color-mix(in oklch,oklch(.78 .12 90) 12%,transparent);color:oklch(.84 .12 90)}.exo-player__hint-wrap{position:relative;display:inline-flex}.exo-player__hint-tip{position:absolute;left:50%;bottom:calc(100% + .55rem);z-index:30;width:min(18rem,72vw);padding:.6rem .7rem;border-top:1px solid var(--border);border:1px solid var(--border);border-top:2px solid color-mix(in oklch,oklch(.78 .14 95) 70%,var(--exo-accent,var(--primary)));border-radius:0;background:var(--course-chrome-surface,var(--background));box-shadow:none;color:var(--foreground);opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-50%) translateY(4px);transition:opacity .14s ease,transform .14s ease,visibility .14s}.exo-player__hint-wrap:focus-within .exo-player__hint-tip,.exo-player__hint-wrap:hover .exo-player__hint-tip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.exo-player__hint-tip-label{display:block;margin:0 0 .3rem;font-size:.5625rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in oklch,oklch(.72 .12 85) 55%,var(--foreground))}.exo-player__hint-tip-body{font-size:.8125rem;line-height:1.45}.exo-player__hint-tip-body.rich-content p{margin:0 0 .45em}.exo-player__hint-tip-body.rich-content p:last-child{margin-bottom:0}.exo-player__error{margin:0;color:oklch(.55 .18 25);font-size:.875rem}.exo-player__result{--result-tone:var(--exo-player-tone,var(--muted-foreground));position:relative;display:flex;align-items:center;gap:.85rem 1.1rem;flex:1 1 14rem;min-width:0;margin:0;padding:0;overflow:hidden;border-radius:0;border:none;background:transparent;color:var(--foreground);animation:exo-result-in .28s ease}@keyframes exo-result-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.exo-player__result-mark,.exo-player__result-rail{display:none}.exo-player__result-copy{min-width:0;display:flex;flex-direction:column;gap:.08rem}.exo-player__result-kicker{font-size:.625rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in oklch,var(--result-tone) 55%,var(--muted-foreground))}.exo-player__result-title{font-family:var(--font-heading,var(--font-sans));font-size:1.125rem;font-weight:750;letter-spacing:-.03em;line-height:1.15;color:color-mix(in oklch,var(--result-tone) 72%,var(--foreground))}.exo-player__result-text{font-size:.8125rem;font-weight:500;line-height:1.4;color:color-mix(in oklch,var(--foreground) 78%,var(--muted-foreground))}.exo-player__result-score{position:relative;display:inline-flex;align-items:baseline;gap:.05rem;flex-shrink:0;padding:.15rem .15rem .15rem 0;border:none;border-radius:0;background:transparent;color:var(--result-tone);font-variant-numeric:tabular-nums;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.exo-player__result-score-icon{position:absolute;left:-.15rem;top:50%;display:grid;place-items:center;width:2.35rem;height:2.35rem;transform:translateY(-52%);opacity:.22;color:var(--result-tone);pointer-events:none}.exo-player__result-score-icon svg{width:100%;height:100%}.exo-player__result-score-n{position:relative;z-index:1;font-family:var(--font-heading,var(--font-sans));font-size:clamp(2.35rem,5.5vw,3.15rem);font-weight:700;letter-spacing:-.06em;line-height:.9;color:var(--result-tone)}.exo-player__result-score-sep{position:relative;z-index:1;font-size:1.15rem;font-weight:600;margin-inline:.08rem;color:color-mix(in oklch,var(--result-tone) 55%,var(--muted-foreground))}.exo-player__result-score-max{position:relative;z-index:1;font-size:1.2rem;font-weight:700;letter-spacing:-.03em;color:color-mix(in oklch,var(--result-tone) 62%,var(--muted-foreground))}.exo-player__result-score-unit{position:relative;z-index:1;margin-left:.32rem;align-self:flex-end;padding-bottom:.2rem;font-size:.625rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in oklch,var(--result-tone) 48%,var(--muted-foreground))}.exo-player__result--ko,.exo-player__result--ok,.exo-player__result--partial{--result-tone:var(--exo-player-tone,var(--muted-foreground))}.exo-player__series-pts{margin-left:auto;display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0;padding:.3rem .6rem;border:1px solid var(--border);background:var(--card);font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground)}.exo-player__series-pts b{font-family:var(--font-heading,var(--font-sans));font-size:.9375rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--foreground)}.exo-player__series-pts-icon{width:.95rem!important;height:.95rem!important;color:var(--exo-player-tone,var(--course-accent,var(--primary)))}.exo-player__dock>.exo-player__result{--result-tone:var(--exo-t-red,var(--exo-red))}@media (max-width:560px){.exo-player__dock-bar--graded{flex-direction:column;align-items:stretch}.exo-player__dock-bar--graded .exo-player__cta-row{margin-left:0}.exo-player__result{flex-wrap:wrap}}.exo-code-window{border:1px solid color-mix(in oklch,var(--border) 88%,transparent);background:color-mix(in oklch,oklch(.94 .02 85) 55%,var(--card));overflow:hidden}.sombre .exo-code-window{background:color-mix(in oklch,var(--muted) 40%,var(--card))}.exo-code-window__chrome{display:flex;align-items:center;gap:.65rem;padding:.45rem .65rem;border-bottom:1px solid color-mix(in oklch,var(--border) 80%,transparent);background:color-mix(in oklch,var(--muted) 30%,transparent)}.exo-code-window__dots{display:inline-flex;gap:.28rem}.exo-code-window__dots i{width:.55rem;height:.55rem;border-radius:999px;background:#ff5f57}.exo-code-window__dots i:nth-child(2){background:#febc2e}.exo-code-window__dots i:nth-child(3){background:#28c840}.exo-code-window__lang{font-size:.65rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground)}.exo-code-window__copy{margin-left:auto;display:inline-flex;padding:.2rem;border:none;background:transparent;color:var(--muted-foreground);cursor:pointer}.exo-completion__pre{margin:0;padding:.85rem 1rem;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem;line-height:1.6;white-space:pre-wrap;background:transparent}.exo-completion__blank{display:inline-block;margin:0 .15rem;padding:.12rem .4rem;min-width:3.25rem;border:1px solid color-mix(in oklch,var(--border) 80%,transparent);background:var(--background);font:inherit;color:inherit}.exo-completion__blank.is-ok{border-color:var(--exo-green)}.exo-completion__blank.is-ko{border-color:oklch(.6 .18 25)}.exo-player__choices{--choice-accent:var(--exo-accent,var(--course-accent,var(--primary)));list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid color-mix(in oklch,var(--border) 88%,transparent)}.exo-player__empty-choices{margin:0;padding:.75rem 0;font-size:.875rem;color:var(--muted-foreground)}.exo-player__choice{position:relative;display:flex;align-items:center;gap:.85rem;margin:0;padding:.78rem .15rem .78rem 0;border:none;border-bottom:1px solid color-mix(in oklch,var(--border) 88%,transparent);border-radius:0;background:transparent;cursor:pointer;transition:background .14s ease}.exo-player__choice:hover:not(.is-disabled){background:color-mix(in oklch,var(--choice-accent) 5%,transparent)}.exo-player__choice input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.exo-player__choice-letter{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;font-family:var(--font-mono,ui-monospace,monospace);font-size:.75rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.03em;line-height:1;color:color-mix(in oklch,var(--foreground) 55%,var(--muted-foreground));background:color-mix(in oklch,var(--muted) 55%,transparent);border:none;transition:color .14s ease,background .14s ease}.exo-player__choice:hover:not(.is-disabled) .exo-player__choice-letter{color:var(--choice-accent);background:color-mix(in oklch,var(--choice-accent) 12%,var(--muted))}.exo-player__choice.is-checked .exo-player__choice-letter{color:color-mix(in oklch,white 92%,var(--choice-accent));background:linear-gradient(180deg,color-mix(in oklch,var(--choice-accent) 88%,black 6%),color-mix(in oklch,var(--choice-accent) 72%,black 14%))}.exo-player__choice-text{flex:1;min-width:0;font-size:.975rem;line-height:1.5;color:var(--foreground)}.exo-prose--choice .rich-text{font-size:inherit;line-height:inherit}.exo-prose--choice .rich-text p{margin:0}.exo-player__choice.is-checked{background:color-mix(in oklch,var(--choice-accent) 7%,transparent)}.exo-player__choice.is-correct .exo-player__choice-letter{color:color-mix(in oklch,white 92%,var(--exo-green));background:linear-gradient(180deg,color-mix(in oklch,var(--exo-green) 88%,black 6%),color-mix(in oklch,var(--exo-green) 72%,black 14%))}.exo-player__choice.is-correct{background:color-mix(in oklch,var(--exo-green) 5%,transparent)}.exo-player__choice.is-wrong .exo-player__choice-letter{color:color-mix(in oklch,white 92%,var(--exo-red));background:linear-gradient(180deg,color-mix(in oklch,var(--exo-red) 88%,black 6%),color-mix(in oklch,var(--exo-red) 72%,black 14%))}.exo-player__choice.is-wrong{background:color-mix(in oklch,var(--exo-red) 5%,transparent)}.exo-player__choice.is-wrong .exo-player__choice-text{color:color-mix(in oklch,var(--foreground) 72%,var(--muted-foreground))}.exo-player__choice.is-disabled{cursor:default}.exo-player__bool{--choice-accent:var(--exo-accent,var(--course-accent,var(--primary)));display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid color-mix(in oklch,var(--border) 88%,transparent)}.exo-player__bool-btn{display:inline-flex;align-items:center;gap:.75rem;min-height:3.1rem;padding:.7rem .85rem .7rem 0;border:none;border-radius:0;border-bottom:1px solid color-mix(in oklch,var(--border) 88%,transparent);background:transparent;font:inherit;color:var(--foreground);cursor:pointer;text-align:left;transition:background .14s ease}.exo-player__bool-btn:hover:not(:disabled){background:color-mix(in oklch,var(--choice-accent) 5%,transparent)}.exo-player__bool-btn:disabled{cursor:default}.exo-player__bool-mark{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;font-family:var(--font-mono,ui-monospace,monospace);font-size:.75rem;font-weight:800;letter-spacing:.03em;color:color-mix(in oklch,var(--foreground) 55%,var(--muted-foreground));background:color-mix(in oklch,var(--muted) 55%,transparent);border:none;transition:color .14s ease,background .14s ease}.exo-player__bool-btn:hover:not(:disabled) .exo-player__bool-mark{color:var(--choice-accent);background:color-mix(in oklch,var(--choice-accent) 12%,var(--muted))}.exo-player__bool-label{font-size:.975rem;font-weight:650;letter-spacing:-.015em}.exo-player__bool-btn.is-on{background:color-mix(in oklch,var(--choice-accent) 7%,transparent)}.exo-player__bool-btn.is-on .exo-player__bool-mark{color:color-mix(in oklch,white 92%,var(--choice-accent));background:linear-gradient(180deg,color-mix(in oklch,var(--choice-accent) 88%,black 6%),color-mix(in oklch,var(--choice-accent) 72%,black 14%))}.exo-player__bool-btn.is-correct{background:color-mix(in oklch,var(--exo-green) 5%,transparent)}.exo-player__bool-btn.is-correct .exo-player__bool-mark{color:color-mix(in oklch,white 92%,var(--exo-green));background:linear-gradient(180deg,color-mix(in oklch,var(--exo-green) 88%,black 6%),color-mix(in oklch,var(--exo-green) 72%,black 14%))}.exo-player__bool-btn.is-wrong{background:color-mix(in oklch,var(--exo-red) 5%,transparent)}.exo-player__bool-btn.is-wrong .exo-player__bool-mark{color:color-mix(in oklch,white 92%,var(--exo-red));background:linear-gradient(180deg,color-mix(in oklch,var(--exo-red) 88%,black 6%),color-mix(in oklch,var(--exo-red) 72%,black 14%))}@media (max-width:420px){.exo-player__bool{grid-template-columns:1fr}}.exo-code-interactif__editor,.exo-player__numeric,.exo-player__open,.exo-player__short{width:100%;padding:.75rem .85rem;border:1.5px solid color-mix(in oklch,var(--border) 92%,transparent);border-radius:0;background:color-mix(in oklch,var(--muted) 10%,var(--background));font:inherit;resize:vertical;transition:border-color .15s ease,background .15s ease}.exo-player__numeric:focus-visible,.exo-player__open:focus-visible,.exo-player__short:focus-visible{outline:none;border-color:color-mix(in oklch,var(--exo-accent,var(--primary)) 45%,var(--border));background:var(--background)}.exo-code-interactif__editor{border:none;border-radius:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem;line-height:1.55;max-height:var(--code-panel-scroll-max-height,15.5rem);overflow:auto;resize:vertical}.exo-code-interactif__stdout{display:grid;gap:.35rem;margin-top:.65rem;padding:.75rem;font-size:.8125rem}.exo-code-exec{display:grid;gap:.75rem}.exo-code-exec__hint{margin:0;font-size:.8rem;color:var(--muted-foreground)}.exo-code-exec__running{display:flex;align-items:center;gap:.4rem;margin:0;font-size:.85rem;color:var(--muted-foreground)}.code-editor-panel{margin:0;--code-panel-max-lines:18}.code-editor-panel__scroll{position:relative;min-height:calc(5 * var(--code-panel-line-height) * var(--code-panel-font-size) + 2 * var(--code-panel-pad-block))}.code-editor-panel__body{display:grid;width:-moz-max-content;width:max-content;min-width:100%}.code-editor-panel__highlight,.code-editor-panel__input{grid-area:1/1;box-sizing:border-box;margin:0;padding:var(--code-panel-pad-block) var(--code-panel-pad-inline-code) var(--code-panel-pad-block) .75rem;border:0;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:var(--code-panel-font-size);line-height:var(--code-panel-line-height);font-variant-ligatures:none;letter-spacing:normal;-moz-tab-size:2;-o-tab-size:2;tab-size:2;white-space:pre;-webkit-font-smoothing:antialiased}.code-editor-panel__highlight{pointer-events:none;position:relative;z-index:1}.code-editor-panel__highlight.is-stale{visibility:hidden}.code-editor-panel__input{position:relative;z-index:2;width:100%;min-width:100%;resize:none;overflow:hidden;background:transparent;color:transparent;caret-color:var(--foreground);outline:none}.code-editor-panel__input.is-plain{color:var(--foreground)}.code-editor-panel__input::-moz-selection{background:var(--select-bg,color-mix(in oklch,var(--foreground) 18%,transparent));color:transparent}.code-editor-panel__input::selection{background:var(--select-bg,color-mix(in oklch,var(--foreground) 18%,transparent));color:transparent}.code-editor-panel__input.is-plain::-moz-selection{color:inherit}.code-editor-panel__input.is-plain::selection{color:inherit}.code-editor-panel__active-line{pointer-events:none;position:absolute;z-index:0;inset-inline:0;top:calc(var(--code-panel-pad-block) + var(--line, 0) * var(--code-panel-line-height) * var(--code-panel-font-size));height:calc(var(--code-panel-line-height) * var(--code-panel-font-size));background:color-mix(in oklch,var(--foreground) 5%,transparent)}.code-panel__line-num.is-current{font-weight:700;color:var(--foreground)}.code-editor-panel__status{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem 1.1rem;padding:.35rem .9rem;border-top:1px dashed var(--border);font-family:var(--font-mono,ui-monospace,monospace);font-size:.625rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-foreground)}.code-editor-panel__input:focus,.code-editor-panel__input:focus-visible,.code-editor-panel__input:hover{outline:none;border:0;box-shadow:none}.code-editor-panel .code-panel__copy:focus-visible,.code-editor-panel .code-panel__copy:hover{border-color:transparent;outline:none}.code-editor-panel:focus-within .code-editor-panel__status{color:var(--foreground)}.code-editor-panel__status-hint{margin-left:auto;text-transform:none;letter-spacing:0;opacity:.8}.code-editor-panel__reset{gap:.3rem}.exo-code-exec__section-title{margin:0 0 .4rem;font-size:.8rem;font-weight:700}.exo-code-exec__examples{display:grid;gap:.75rem}.exo-code-exec__case,.exo-code-exec__compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.exo-code-exec__case>.exo-terminal--input,.exo-code-exec__compare>.exo-terminal--input,.exo-code-exec__compare>.exo-terminal--wide{grid-column:1/-1}@media (max-width:40rem){.exo-code-exec__case,.exo-code-exec__compare{grid-template-columns:minmax(0,1fr)}}.exo-code-exec__compare{margin:.45rem 0 .2rem 1.6rem}.exo-code-exec__hint-fail{margin:.35rem 0 0 1.6rem;font-size:.8125rem;line-height:1.45;color:var(--foreground)}.exo-terminal{min-width:0;border:1px solid oklch(.3 .01 260);background:oklch(.19 .01 260);color:oklch(.9 .01 260)}.exo-terminal__bar{padding:.25rem .6rem;font-size:.65rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:oklch(.72 .02 260);background:oklch(.24 .012 260);border-bottom:1px solid oklch(.3 .01 260)}.exo-terminal--expected .exo-terminal__bar{color:oklch(.8 .1 150)}.exo-terminal--actual .exo-terminal__bar{color:oklch(.82 .09 80)}.exo-terminal__body{margin:0;padding:.5rem 0;max-height:14rem;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.55;white-space:pre;background:transparent}.exo-terminal__line{display:block;padding:0 .7rem;border-left:3px solid transparent}.exo-terminal__line.is-diff{background:oklch(.45 .16 25/.35);border-left-color:oklch(.7 .2 25)}.exo-terminal--session{margin-bottom:.6rem}.exo-terminal__prompt{color:oklch(.75 .12 150);-webkit-user-select:none;-moz-user-select:none;user-select:none}.exo-terminal__line.is-cmd{color:oklch(.95 .01 260);font-weight:650}.exo-terminal__line.is-in{color:oklch(.78 .08 230)}.exo-terminal__line.is-err{color:oklch(.78 .14 25)}.exo-terminal__line.is-status{margin-top:.35rem;color:oklch(.68 .02 260);font-style:italic}.exo-terminal__empty{padding:0 .7rem;color:oklch(.65 .02 260);font-style:italic}.exo-code-exec__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.exo-code-exec__btn{display:inline-flex;align-items:center;gap:.4rem;height:2rem;padding:0 .8rem;border:1px solid var(--border);background:var(--card);font:inherit;font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground);cursor:pointer;transition:background-color .14s ease,color .14s ease}.exo-code-exec__btn:hover:not(:disabled){background:var(--hover-fill);color:var(--foreground)}.exo-code-exec__btn:disabled{opacity:.6;cursor:default}.exo-code-exec__btn--danger{color:var(--muted-foreground)}.exo-code-exec__btn--danger.is-armed{color:oklch(.98 0 0);background:var(--exo-red,oklch(.55 .2 25));border-color:var(--exo-red,oklch(.55 .2 25))}.exo-code-exec__abandoned{display:flex;align-items:center;gap:.4rem;margin:0;font-size:.85rem;font-weight:650;color:var(--exo-red,oklch(.6 .18 25))}.exo-code-exec__error{font-size:.8rem;color:var(--exo-red,oklch(.6 .18 25))}.exo-solution-drawer__backdrop{position:fixed;inset:0;z-index:60;background:oklch(0 0 0/.35);transition:opacity .18s ease}.exo-solution-drawer__backdrop[data-ending-style],.exo-solution-drawer__backdrop[data-starting-style]{opacity:0}.exo-solution-drawer{position:fixed;top:0;right:0;bottom:0;z-index:61;display:flex;flex-direction:column;gap:.75rem;width:min(34rem,100vw);padding:1.1rem 1.1rem 1.5rem;overflow-y:auto;background:var(--background);border-left:1px solid color-mix(in oklch,var(--border) 85%,transparent);box-shadow:-12px 0 32px oklch(0 0 0/.18);transition:transform .22s ease}.exo-solution-drawer[data-ending-style],.exo-solution-drawer[data-starting-style]{transform:translateX(100%)}.exo-solution-drawer__head{display:flex;align-items:center;justify-content:space-between}.exo-solution-drawer__title{margin:0;font-size:1.05rem;font-weight:750}.exo-solution-drawer__close{display:inline-flex;padding:.3rem;border:none;background:transparent;color:var(--muted-foreground);cursor:pointer}.exo-solution-drawer__note{margin:0;font-size:.85rem;color:var(--muted-foreground)}.exo-code-exec__report{display:grid;gap:.5rem;padding:.75rem .85rem;border:1px solid color-mix(in oklch,var(--border) 85%,transparent);border-left-width:3px}.exo-code-exec__report.is-ok{border-left-color:var(--exo-green,oklch(.65 .15 150));background:color-mix(in oklch,var(--exo-green,oklch(.65 .15 150)) 5%,transparent)}.exo-code-exec__report.is-ko{border-left-color:var(--exo-red,oklch(.6 .18 25));background:color-mix(in oklch,var(--exo-red,oklch(.6 .18 25)) 5%,transparent)}.exo-code-exec__report-title{display:flex;align-items:center;gap:.4rem;margin:0;font-weight:700}.exo-code-exec__tests{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.exo-code-exec__test-head{display:flex;align-items:baseline;gap:.6rem;font-size:.85rem}.exo-code-exec__test-mark{width:1rem;font-weight:800}.exo-code-exec__test.is-ok .exo-code-exec__test-mark{color:var(--exo-green,oklch(.65 .15 150))}.exo-code-exec__test.is-ko .exo-code-exec__test-mark{color:var(--exo-red,oklch(.6 .18 25))}.exo-code-exec__test-name{font-weight:600}.exo-code-exec__test-status,.exo-code-exec__test-time{font-size:.75rem;color:var(--muted-foreground)}.exo-code-exec__test-time{margin-left:auto;font-variant-numeric:tabular-nums}.exo-code-insert{display:grid;gap:.85rem}.exo-code-insert__panel{margin:0}.exo-code-insert__slot{display:inline-flex;align-items:center;vertical-align:baseline;min-width:4.25rem;min-height:1.55rem;margin:0 .12rem;padding:.05rem .15rem;border:1px dashed color-mix(in oklch,var(--muted-foreground) 50%,var(--border));border-radius:0;background:transparent;transition:border-color .14s ease,background-color .14s ease}.exo-code-insert__slot.is-target{border-style:solid;border-color:color-mix(in oklch,var(--foreground) 45%,transparent);background:color-mix(in oklch,var(--foreground) 7%,transparent)}.exo-code-insert__slot.has-chip{border-style:solid;border-color:transparent;padding:.05rem;background:color-mix(in oklch,var(--code-accent,var(--primary)) 14%,transparent)}.exo-code-insert__slot.is-ok{border-color:transparent;background:color-mix(in oklch,var(--success,#16a34a) 22%,transparent)}.exo-code-insert__slot.is-ko{border-color:transparent;background:color-mix(in oklch,var(--destructive,#dc2626) 20%,transparent)}.exo-code-insert__slot-hint{padding:0 .4rem;font-size:.68rem;font-weight:600;letter-spacing:.02em;color:color-mix(in oklch,var(--muted-foreground) 80%,transparent);font-family:inherit;-webkit-user-select:none;-moz-user-select:none;user-select:none}.exo-code-insert__placed{gap:.2rem;padding:.12rem .4rem;background:transparent;line-height:1.35}.exo-code-insert__chip,.exo-code-insert__placed{display:inline-flex;align-items:center;max-width:100%;border:none;border-radius:0;color:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem;font-weight:600;cursor:grab;text-align:left}.exo-code-insert__chip{padding:.35rem .65rem;background:color-mix(in oklch,var(--muted) 70%,transparent);line-height:1.4;transition:background-color .14s ease}.exo-code-insert__chip:hover:not(:disabled){background:color-mix(in oklch,var(--muted) 100%,var(--foreground) 6%)}.exo-code-insert__chip:focus-visible,.exo-code-insert__placed:focus-visible{outline:1px solid color-mix(in oklch,var(--foreground) 55%,transparent);outline-offset:1px}.exo-code-insert__chip:active:not(:disabled),.exo-code-insert__placed:active:not(:disabled){cursor:grabbing}.exo-code-insert__chip:disabled,.exo-code-insert__placed:disabled{cursor:default;opacity:.9}.exo-code-insert__chip.is-dragging{opacity:.35}.exo-code-insert__grip{width:.75rem;height:.75rem;flex-shrink:0;opacity:.35}.exo-code-insert__chip-code,.exo-code-insert__chip-text{white-space:pre;overflow:hidden;text-overflow:ellipsis;min-width:0}.exo-code-insert__chip-code :where(.line,span){display:inline;background:transparent!important;box-shadow:none!important}.exo-code-insert__bank{margin:0;padding:0;border:none;background:transparent}.exo-code-insert__bank-status{margin:.45rem 0 0;font-size:.75rem;font-weight:600;color:var(--code-accent,var(--primary))}.exo-code-insert__bank-empty{margin:0;font-size:.8125rem;color:var(--muted-foreground)}.exo-code-insert__chips{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;background:transparent}.exo-code-insert--disabled .exo-code-insert__chip,.exo-code-insert--disabled .exo-code-insert__placed{cursor:default}.exo-player__ordering{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.exo-player__ordering-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.6rem .55rem .6rem .65rem;border:none;border-left:3px solid color-mix(in oklch,var(--exo-accent,var(--primary)) 35%,transparent);border-radius:0;background:color-mix(in oklch,var(--muted) 10%,transparent)}.exo-player__ordering-index{display:inline-flex;align-items:center;justify-content:center;min-width:1.7rem;height:1.7rem;border:none;font-family:var(--font-mono,ui-monospace,monospace);font-size:.625rem;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:.04em;color:color-mix(in oklch,white 92%,var(--exo-accent,var(--primary)));background:linear-gradient(180deg,color-mix(in oklch,var(--exo-accent,var(--primary)) 88%,black 6%),color-mix(in oklch,var(--exo-accent,var(--primary)) 72%,black 14%))}.exo-player__ordering-label{min-width:0;font-size:.9rem;line-height:1.45}.exo-player__ordering-actions{display:inline-flex;gap:.25rem}.exo-player__ordering-actions button{width:1.85rem;height:1.85rem;border:1.5px solid color-mix(in oklch,var(--exo-accent,var(--primary)) 30%,var(--border));border-radius:0;background:color-mix(in oklch,var(--exo-accent,var(--primary)) 6%,transparent);color:var(--exo-accent,var(--primary));font-weight:700;cursor:pointer;transition:background .15s ease,border-color .15s ease}.exo-player__ordering-actions button:hover:not(:disabled){background:color-mix(in oklch,var(--exo-accent,var(--primary)) 14%,transparent);border-color:color-mix(in oklch,var(--exo-accent,var(--primary)) 50%,var(--border))}.exo-player__ordering-actions button:disabled{opacity:.35;cursor:not-allowed}.exo-player__numeric{max-width:12rem}.exo-enonce-blocks{display:flex;flex-direction:column;gap:0}.exo-enonce-question{--q-accent:var(--exo-accent,var(--course-accent,var(--primary)));margin:0;padding:1.15rem 0 1.25rem;border:none;background:transparent;display:flex;flex-direction:column;gap:.75rem;transition:opacity .2s ease}.exo-enonce-question~.exo-enonce-question{border-top:1px solid color-mix(in oklch,var(--border) 88%,transparent)}.exo-enonce-question:last-child{padding-bottom:.25rem}.exo-enonce-question--locked{opacity:.92}.exo-enonce-question__head{display:grid;gap:.2rem}.exo-enonce-question__titles{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .7rem;min-width:0}.exo-enonce-question__num{display:inline-grid;place-items:center;box-sizing:border-box;flex-shrink:0;min-width:1.7rem;height:1.7rem;padding:0 .3rem;border:1px solid var(--border);background:var(--muted);font-family:var(--font-mono,ui-monospace,monospace);font-size:.6875rem;font-weight:750;font-variant-numeric:tabular-nums;line-height:1;color:var(--foreground)}.exo-enonce-question__label{margin:0;flex:1 1 10rem;min-width:0;font-family:var(--font-heading,var(--font-sans));font-size:clamp(1.05rem,2vw,1.2rem);font-weight:650;letter-spacing:-.03em;line-height:1.22;color:var(--foreground)}.exo-enonce-question__meta{display:inline-flex;align-items:center;gap:.5rem;margin-inline-start:auto}.exo-enonce-question__status{padding:0;border:none;background:none;font-size:.625rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground)}.exo-enonce-question__status.is-ok{color:color-mix(in oklch,var(--exo-green) 60%,var(--muted-foreground))}.exo-enonce-question__status.is-ko{color:color-mix(in oklch,var(--exo-red) 60%,var(--muted-foreground))}.exo-enonce-question__pts{font-size:.6875rem;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--muted-foreground)}.exo-enonce-question__input{margin-top:.1rem}.exo-enonce-question__feedback{margin:0;padding:0;border:none;background:none;font-size:.8125rem;font-weight:500;color:color-mix(in oklch,var(--exo-red) 50%,var(--foreground))}.exo-enonce-question--locked,.exo-enonce-question--ok{--q-accent:var(--exo-accent,var(--course-accent,var(--primary)))}.exo-enonce-question--ko{--q-accent:var(--exo-red)}.exo-enonce-columns,.exo-enonce-content{padding-block:.85rem}.exo-enonce-columns .exo-enonce-content,.exo-enonce-columns .exo-enonce-question{padding-block:0}.exo-enonce-columns .exo-enonce-question~.exo-enonce-question{padding-top:1rem}.exo-player__context-label{margin:0 0 .4rem;font-size:.625rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in oklch,var(--exo-accent,var(--course-accent,var(--primary))) 48%,var(--muted-foreground))}.exo-player__short{max-width:28rem}.course-correction-trigger{display:flex;align-items:center;gap:.75rem;padding:.25rem 0}.course-correction-trigger__rule{flex:1;height:1px;background:var(--border);transition:background-color .2s ease}.course-correction-trigger__btn{display:inline-flex;align-items:center;gap:.4rem;flex-shrink:0;border:1px solid var(--border);border-radius:999px;padding:.3rem .8rem .3rem .6rem;font-size:.75rem;font-weight:600;color:var(--muted-foreground);background:var(--background);cursor:pointer;transition:border-color .18s ease,color .18s ease,background-color .18s ease}.course-correction-trigger__btn:hover{border-color:color-mix(in oklch,var(--primary) 40%,var(--border));color:var(--primary);background:color-mix(in oklch,var(--primary) 6%,var(--background))}.course-correction-trigger--active .course-correction-trigger__btn{border-color:color-mix(in oklch,var(--primary) 50%,var(--border));color:var(--primary);background:color-mix(in oklch,var(--primary) 9%,var(--background))}.course-correction-trigger--active .course-correction-trigger__rule{background:color-mix(in oklch,var(--primary) 30%,var(--border))}.course-correction-trigger__count{margin-left:.15rem;border-radius:999px;padding:.05rem .4rem;font-size:.65rem;font-weight:600;letter-spacing:.02em;color:var(--muted-foreground);background:var(--accent-fill,color-mix(in oklch,var(--foreground) 7%,transparent))}.course-correction-trigger__count--empty{color:var(--destructive,var(--muted-foreground));background:color-mix(in oklch,var(--destructive,var(--foreground)) 12%,transparent)}.course-shell__split{display:flex;flex-direction:row}.course-shell__split-content{flex:1;min-width:0;overscroll-behavior:contain}.course-correction-panel{display:flex;flex-direction:column;width:clamp(22rem,42%,44rem);flex-shrink:0;border-left:1px solid var(--border);background:var(--bg-soft,var(--card));overflow-y:auto;overscroll-behavior:contain}.course-correction-panel__head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-bottom:1px solid var(--border);background:var(--bg-soft,var(--card));padding:.875rem 1.25rem;box-shadow:0 1px 0 color-mix(in oklch,var(--border) 60%,transparent)}.course-correction-panel__heading{display:flex;min-width:0;flex-direction:column;gap:.1rem}.course-correction-panel__title{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:700;color:var(--primary)}.course-correction-panel__meta{margin:0;padding-left:1.5rem;font-size:.7rem;color:var(--muted-foreground)}.course-correction-panel__close{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;flex-shrink:0;border:1px solid var(--border);border-radius:.5rem;background:transparent;color:var(--muted-foreground);cursor:pointer;transition:border-color .15s ease,background-color .15s ease,color .15s ease}.course-correction-panel__close:hover{border-color:color-mix(in oklch,var(--foreground) 20%,var(--border));background:var(--accent-fill);color:var(--foreground)}.course-correction-panel__body{flex:1;padding:1.25rem 1.5rem}.course-correction-panel__empty{margin:0;font-size:.875rem;font-style:italic;color:var(--muted-foreground)}@media (max-width:767px){.course-shell__split{flex-direction:column}.course-correction-panel{width:100%;max-height:55vh;border-left:none;border-top:1px solid var(--border)}}.grades-page{width:100%}@media (max-width:767px){.course-grades__empty-bn{width:2.5rem}}.grades-page--course{--course-grades-accent:var(--poste-c,var(--course-nav-accent,var(--course-accent,var(--primary))));padding-bottom:3rem}.course-grades{display:flex;flex-direction:column;gap:0}.course-grades__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.875rem 1.25rem;padding:1.35rem 0 .85rem;border-bottom:1px solid color-mix(in oklch,var(--foreground) 10%,transparent)}.course-grades__section-title{margin:0;font-family:var(--font-heading,var(--font-sans));font-size:clamp(1.05rem,2vw,1.25rem);font-weight:650;line-height:1.26;letter-spacing:-.02em;padding:0;border:none;background:transparent;color:var(--foreground)}.course-grades__section-link{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:600;color:var(--course-grades-accent);text-decoration:none}.course-grades__section-link:hover{text-decoration:underline;text-underline-offset:.15em}.course-grades--exo{margin-top:.5rem}.course-grades-exo.exo-sets__list{list-style:none;margin:0;padding:0}.course-grades--exo .exo-set-piste{--exo-set-accent:var(--course-grades-accent,var(--course-accent,var(--primary)))}.course-grades__view-toggle.grades-view-toggle{border-color:color-mix(in oklch,var(--course-grades-accent) 18%,var(--border));background:color-mix(in oklch,var(--course-grades-accent) 5%,var(--muted))}.grades-page--course .grades-view-toggle__btn.is-active{background:var(--course-grades-accent);color:#fff;box-shadow:0 1px 4px color-mix(in oklch,var(--course-grades-accent) 28%,transparent)}.course-grades__groups{display:flex;flex-direction:column;gap:1.5rem}.course-grades__group-head{margin-bottom:.625rem}.course-grades__panel{overflow:visible;border:none;border-radius:0;background:transparent;box-shadow:none}.grades-page--course .grades-entry-list{margin:0}.grades-page--course .grades-entry,.grades-page--course .grades-qcm-block{--grades-entry-accent:var(--course-grades-accent)}.grades-page--course .grades-entry{padding-block:1rem;border-bottom:1px solid color-mix(in oklch,var(--foreground) 9%,transparent)}.grades-page--course .grades-entry:hover{background:color-mix(in srgb,var(--course-grades-accent) 5%,transparent)}.grades-page--course .grades-entry__lead{border-left-color:color-mix(in oklch,var(--course-grades-accent) 55%,var(--border))}.course-grades__empty{display:flex;align-items:flex-start;gap:clamp(.85rem,2.5vw,1.5rem);margin:0;padding:2rem clamp(1rem,3vw,1.75rem) 2.25rem;border-top:none;background:linear-gradient(180deg,color-mix(in oklch,var(--muted) 36%,var(--background)) 0,color-mix(in oklch,var(--muted) 16%,var(--background)) 100%);text-align:left}.course-grades__empty-bn{flex:none;width:3.5rem;font-size:clamp(1.75rem,3.5vw,2.4rem);font-weight:200;letter-spacing:-.05em;line-height:1;color:color-mix(in oklch,var(--foreground) 28%,transparent)}.course-grades__empty-copy{min-width:0;flex:1;padding-top:.15rem}.course-grades__empty-k{margin:0 0 .3rem;font-size:.625rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-foreground)}.course-grades__empty-title{margin:0;font-size:clamp(1.25rem,2.6vw,1.55rem);font-weight:650;letter-spacing:-.03em;line-height:1.2;color:var(--foreground)}.course-grades__empty-text{margin:.55rem 0 0;max-width:40ch;font-size:.9rem;line-height:1.5;color:var(--muted-foreground)}.course-grades__empty-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.15rem}.course-grades__empty-link{display:inline-flex;align-items:center;gap:.2rem;margin-top:0;padding:.55rem .9rem;border-radius:0;border:1px solid color-mix(in oklch,var(--course-grades-accent) 40%,var(--border));background:var(--course-grades-accent);font-size:.8125rem;font-weight:650;text-decoration:none;transition:background .14s ease,border-color .14s ease}.course-grades__empty-link,.course-grades__empty-link:hover{color:color-mix(in oklch,white 92%,var(--course-grades-accent))}.course-grades__empty-link:hover{background:color-mix(in srgb,var(--course-grades-accent) 88%,#000);border-color:color-mix(in srgb,var(--course-grades-accent) 88%,#000)}.course-grades__empty-link--secondary{background:transparent;color:var(--foreground);border-color:color-mix(in oklch,var(--course-grades-accent) 28%,var(--border))}.course-grades__empty-link--secondary:hover{background:color-mix(in oklch,var(--course-grades-accent) 10%,var(--background));border-color:color-mix(in oklch,var(--course-grades-accent) 40%,var(--border));color:var(--foreground)}.grades-view-toggle{display:inline-flex;border-radius:999px;border:1px solid var(--border);background:color-mix(in oklch,var(--muted) 35%,transparent);padding:.2rem;gap:.15rem}.grades-view-toggle__btn{border:none;border-radius:999px;background:transparent;padding:.45rem .85rem;font-size:.75rem;font-weight:600;color:var(--muted-foreground);cursor:pointer;transition:background .15s,color .15s}.grades-view-toggle__btn.is-active{background:var(--course-color,var(--primary));color:var(--primary-foreground);box-shadow:0 1px 4px color-mix(in oklch,var(--course-color,var(--primary)) 30%,transparent)}.grades-entry-list{list-style:none;margin:0;padding:0}.grades-entry{--grades-entry-accent:var(--course-color,var(--primary));display:grid;grid-template-columns:minmax(0,1fr);gap:.875rem;border-top:1px solid color-mix(in oklch,var(--border) 88%,transparent);padding:1rem 1.0625rem;transition:background-color .15s ease}.grades-entry:first-child{border-top:none}.grades-entry:hover{background:transparent}.grades-entry--qcm-follow{padding-top:.6875rem;border-top-style:dashed;border-top-color:color-mix(in oklch,var(--grades-entry-accent) 18%,var(--border))}.grades-entry__aside{min-width:0}.grades-entry__lead{display:flex;flex-direction:column;gap:.3125rem;padding-left:.6875rem;border-left:2px solid color-mix(in oklch,var(--grades-entry-accent) 42%,var(--border))}.grades-entry--pending .grades-entry__lead{border-left-color:color-mix(in oklch,var(--muted-foreground) 35%,var(--border))}.grades-entry__type{margin:0;font-size:.5625rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--grades-entry-accent);line-height:1.2}.grades-entry--pending .grades-entry__type{color:var(--muted-foreground)}.grades-entry__date{display:flex;flex-direction:column;gap:.0625rem;margin:0;padding:0;border:none;background:transparent;line-height:1.15}.grades-entry__date-day{font-size:1.125rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.04em;color:var(--foreground)}.grades-entry__date-caption{font-size:.6875rem;font-weight:600;letter-spacing:.01em;color:var(--muted-foreground)}.grades-entry__date-caption--muted{font-size:.625rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.grades-entry__body{min-width:0}.grades-entry__headline{display:flex;flex-wrap:wrap;align-items:baseline;gap:.375rem .625rem}.grades-entry__title{margin:0;font-family:var(--font-heading,var(--font-sans));font-size:.9375rem;font-weight:650;line-height:1.35;letter-spacing:-.015em;color:var(--foreground)}.grades-entry__attempt{display:inline-flex;align-items:center;padding:.125rem .4375rem;border-radius:999px;border:1px solid color-mix(in oklch,var(--grades-entry-accent) 22%,var(--border));background:color-mix(in oklch,var(--grades-entry-accent) 10%,var(--background));font-size:.625rem;font-weight:700;letter-spacing:.03em;color:var(--grades-entry-accent);white-space:nowrap}.grades-entry__meta{margin:.35rem 0 0;font-size:.75rem;line-height:1.45;color:var(--muted-foreground)}.grades-entry__score-wrap{flex-shrink:0}.grades-entry__score-card{display:flex;min-width:5.25rem;flex-direction:column;align-items:flex-end;gap:.1rem;padding:0;border:none;border-radius:0;background:transparent;text-align:right}.grades-entry__score-card--high .grades-entry__score-value{color:color-mix(in oklch,#3d8f5a 82%,var(--foreground))}.grades-entry__score-card--mid .grades-entry__score-value{color:color-mix(in oklch,#9a7c38 88%,var(--foreground))}.grades-entry__score-card--low .grades-entry__score-value{color:color-mix(in oklch,#b85a4a 88%,var(--foreground))}.grades-entry__score-card--pending .grades-entry__score-value,.grades-entry__score-card--unknown .grades-entry__score-value,.grades-entry__score-label{color:var(--muted-foreground)}.grades-entry__score-label{font-size:.5625rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.grades-entry__score-value{font-size:1.0625rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.1;color:var(--foreground)}.grades-entry__score-card--pending .grades-entry__score-value{font-size:.75rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted-foreground)}.grades-entry__percent{font-size:.6875rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted-foreground)}.grades-entry__action{display:inline-flex;margin-top:.45rem;font-size:.75rem;font-weight:600;color:var(--grades-entry-accent);text-decoration:none}.grades-entry__action:hover{color:color-mix(in oklch,var(--grades-entry-accent) 72%,var(--foreground));text-decoration:underline;text-underline-offset:3px}.grades-qcm-block{--grades-entry-accent:var(--course-color,var(--primary));border-top:1px solid color-mix(in oklch,var(--border) 88%,transparent);padding:1rem 1.0625rem .875rem}.grades-qcm-block:first-child{border-top:none}.grades-qcm-block__header{display:grid;grid-template-columns:minmax(0,1fr);gap:.875rem}.grades-qcm-block__aside{min-width:0}.grades-qcm-block__lead{display:flex;flex-direction:column;gap:.3125rem;padding-left:.6875rem;border-left:2px solid color-mix(in oklch,var(--grades-entry-accent) 42%,var(--border))}.grades-qcm-block__type{margin:0;font-size:.5625rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--grades-entry-accent);line-height:1.2}.grades-qcm-block__date{display:flex;flex-direction:column;gap:.0625rem;margin:0;line-height:1.15}.grades-qcm-block__date-day{font-size:1.125rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.04em;color:var(--foreground)}.grades-qcm-block__date-caption{font-size:.6875rem;font-weight:600;color:var(--muted-foreground)}.grades-qcm-block__body{min-width:0}.grades-qcm-block__title{margin:0;font-family:var(--font-heading,var(--font-sans));font-size:.9375rem;font-weight:650;line-height:1.35;letter-spacing:-.015em;color:var(--foreground)}.grades-qcm-block__meta{margin:.35rem 0 0;font-size:.75rem;line-height:1.45;color:var(--muted-foreground)}.grades-qcm-block__score-wrap{flex-shrink:0}.grades-qcm-block__score-card{display:flex;min-width:5.25rem;flex-direction:column;align-items:flex-end;gap:.1rem;text-align:right}.grades-qcm-block__score-card--high .grades-qcm-block__score-value{color:color-mix(in oklch,#3d8f5a 82%,var(--foreground))}.grades-qcm-block__score-card--mid .grades-qcm-block__score-value{color:color-mix(in oklch,#9a7c38 88%,var(--foreground))}.grades-qcm-block__score-card--low .grades-qcm-block__score-value{color:color-mix(in oklch,#b85a4a 88%,var(--foreground))}.grades-qcm-block__score-label{font-size:.5625rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-foreground)}.grades-qcm-block__score-value{font-size:1.125rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.1;color:var(--foreground)}.grades-qcm-block__percent{font-size:.6875rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted-foreground)}.grades-qcm-block__attempts{list-style:none;margin:.75rem 0 0;padding:0;border-top:1px dashed color-mix(in oklch,var(--grades-entry-accent) 20%,var(--border))}.grades-qcm-block__attempt{display:grid;grid-template-columns:2.25rem minmax(0,1fr) auto auto;align-items:center;gap:.5rem .75rem;padding:.5rem 0;border-top:1px solid color-mix(in oklch,var(--border) 72%,transparent);font-size:.8125rem}.grades-qcm-block__attempt:first-child{border-top:none}.grades-qcm-block__attempt-index{font-size:.625rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--grades-entry-accent);font-variant-numeric:tabular-nums}.grades-qcm-block__attempt-date{min-width:0;font-size:.75rem;font-weight:500;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grades-qcm-block__attempt-score{display:flex;flex-direction:column;align-items:flex-end;gap:.0625rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--foreground);white-space:nowrap}.grades-qcm-block__attempt-percent{font-size:.625rem;font-weight:600;color:var(--muted-foreground)}.grades-qcm-block__attempt-delta{min-width:4.5rem;text-align:center}.grades-qcm-block__delta{display:inline-flex;align-items:center;gap:.125rem;padding:.125rem .4375rem;border-radius:999px;font-size:.625rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.grades-qcm-block__delta--up{color:color-mix(in oklch,#2d7a48 90%,var(--foreground));background:color-mix(in oklch,#3d8f5a 12%,var(--background))}.grades-qcm-block__delta--down{color:color-mix(in oklch,#a84838 90%,var(--foreground));background:color-mix(in oklch,#b85a4a 12%,var(--background))}.grades-qcm-block__delta--flat{color:var(--muted-foreground);background:color-mix(in oklch,var(--muted) 40%,var(--background))}.grades-qcm-block__delta--none{color:color-mix(in oklch,var(--muted-foreground) 55%,transparent);background:transparent}.grades-qcm-block__attempt-link{grid-column:2/-1;justify-self:start;font-size:.6875rem;font-weight:600;color:var(--grades-entry-accent);text-decoration:none}.grades-qcm-block__attempt-link:hover{text-decoration:underline;text-underline-offset:3px}@media (min-width:640px){.grades-qcm-block__attempt{grid-template-columns:2.5rem minmax(0,1fr) 5.5rem 5.5rem auto;gap:.5rem 1rem}.grades-qcm-block__attempt-link{grid-column:auto;justify-self:end}}@media (min-width:768px){.grades-qcm-block__header{grid-template-columns:6.25rem minmax(0,1fr) 7rem;align-items:start;gap:1rem 1.5rem}.grades-entry{grid-template-columns:6.25rem minmax(0,1fr) 6.75rem;align-items:start;gap:1rem 1.5rem}.grades-entry__aside{grid-column:1;grid-row:1}.grades-entry__lead{min-height:100%;justify-content:center}.grades-entry__body{grid-column:2;grid-row:1}.grades-entry__score-wrap{grid-column:3;grid-row:1}}@media (prefers-reduced-motion:reduce){.grades-entry,.grades-markbook__row,.grades-tabs__tab,.grades-view-toggle__btn{transition:none}}.grades-stat-bar{display:block;height:3px;margin-top:.6rem;overflow:hidden;background:color-mix(in oklch,var(--foreground) 10%,transparent)}.grades-stat-bar>i{display:block;height:100%;background:var(--poste-c,var(--course-color,var(--primary)))}@media (prefers-reduced-motion:no-preference){.grades-stat-bar>i{transition:width .5s ease}}.grades-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.65rem;margin:1.25rem 0 0;padding:0;list-style:none}.grades-stats__item{min-width:0;padding:.75rem .9rem .85rem;border:1px solid color-mix(in oklch,var(--foreground) 10%,transparent);border-top:2px solid color-mix(in oklch,var(--poste-c,var(--primary)) 75%,transparent);background:transparent}.grades-stats__label{margin:0;font-size:.5625rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-foreground)}.grades-stats__value{display:flex;align-items:center;gap:.35rem;margin:.3rem 0 0;font-size:clamp(1.35rem,2.5vw,1.65rem);font-weight:300;font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1;color:var(--poste-c,var(--foreground))}.grades-stats__icon{width:1.05rem;height:1.05rem}.grades-stats__hint{margin:.3rem 0 0;font-size:.6875rem;line-height:1.35;color:var(--muted-foreground)}@media (max-width:767px){.grades-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.grades-section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem 1.25rem;padding:1.75rem 0 .95rem;border-bottom:1px solid color-mix(in oklch,var(--foreground) 10%,transparent);scroll-margin-top:5rem}.grades-section-head__copy{min-width:0}.grades-section-head__kicker{display:flex;align-items:center;gap:.55rem;margin:0;font-size:.625rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-foreground)}.grades-section-head__kicker:before{content:"";width:1.35rem;height:2px;background:var(--course-grades-accent,var(--course-color,var(--primary)))}.grades-section-head__title{display:flex;align-items:center;gap:.6rem;margin:.4rem 0 0;padding:0;border:0;background:transparent;font-family:var(--font-heading,var(--font-sans));font-size:clamp(1.15rem,2.2vw,1.4rem);font-weight:650;letter-spacing:-.025em;line-height:1.2;color:var(--foreground)}.grades-section-head__count{display:inline-grid;place-items:center;min-width:1.45rem;height:1.45rem;padding-inline:.4rem;border-radius:999px;background:color-mix(in oklch,var(--course-grades-accent,var(--course-color,var(--primary))) 14%,transparent);font-size:.6875rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:0;color:var(--course-grades-accent,var(--course-color,var(--primary)))}.grades-section-head__desc{max-width:52ch;margin:.4rem 0 0;font-size:.8125rem;line-height:1.5;color:var(--muted-foreground)}.grades-section-head__action{flex-shrink:0}.grades-section-head--compact{padding-top:1.35rem;border-bottom:0}.grades-section-head--compact .grades-section-head__title{font-size:1.05rem}.grades-exo{--grades-exo-accent:var(--course-grades-accent,var(--course-color,var(--primary)));--exo-green:oklch(0.52 0.12 145);--exo-orange:oklch(0.72 0.14 70);--exo-red:oklch(0.58 0.18 30);--exo-darkred:oklch(0.42 0.16 25);--exo-t-green:oklch(0.58 0.14 145);--exo-t-lime:oklch(0.68 0.14 115);--exo-t-orange:oklch(0.72 0.15 70);--exo-t-orangered:oklch(0.64 0.17 45);--exo-t-red:oklch(0.58 0.19 30);--exo-t-reddark:oklch(0.48 0.17 25);--exo-t-darkred:oklch(0.4 0.15 18);--exo-t-maroon:oklch(0.38 0.14 350);--exo-t-violet:oklch(0.44 0.16 310);--exo-t-deepviolet:oklch(0.32 0.14 295);display:flex;flex-direction:column;gap:.85rem;padding-top:1rem}.grades-exo__bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.grades-exo__hint{margin:0;font-size:.75rem;color:var(--muted-foreground)}.grades-exo__toggle{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border:1px solid color-mix(in oklch,var(--foreground) 14%,transparent);background:transparent;font:inherit;font-size:.75rem;font-weight:600;color:var(--foreground);cursor:pointer}.grades-exo__toggle:hover{border-color:var(--grades-exo-accent);background:color-mix(in oklch,var(--grades-exo-accent) 7%,transparent)}.grades-exo__list{display:flex;flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none}.grades-exo{--exo-set-accent:var(--grades-exo-accent)}.grades-exo-set{display:flex;flex-direction:column}.grades-exo-set>.exo-set-piste{flex:none;background:transparent}.grades-exo-set>a.exo-set-piste:hover{background:color-mix(in oklch,var(--muted) 30%,transparent)}.grades-exo-set__toggle{display:flex;align-items:center;gap:.6rem;width:100%;padding:.55rem 1.25rem;border:1px solid var(--border);border-top:0;background:transparent;font:inherit;font-size:.6875rem;font-weight:750;letter-spacing:.1em;text-align:left;text-transform:uppercase;color:var(--muted-foreground);cursor:pointer}.grades-exo-set__toggle:hover{background:color-mix(in oklch,var(--muted) 35%,transparent);color:var(--foreground)}.grades-exo-set__toggle:focus-visible{outline:2px solid var(--exo-set-accent);outline-offset:-2px}.grades-exo-set__toggle-meta{margin-left:auto;font-weight:500;letter-spacing:.02em;text-transform:none}.grades-exo-set__chevron{flex:none;width:.95rem;height:.95rem}@media (prefers-reduced-motion:no-preference){.grades-exo-set__chevron{transition:transform .2s ease}}.grades-exo-set.is-open .grades-exo-set__chevron{transform:rotate(180deg)}.grades-exo-set__body{display:grid;gap:1rem;padding:1rem 1.25rem 1.25rem;border:1px solid var(--border);border-top:0;background:transparent}.grades-exo-set__body[hidden]{display:none}.grades-exo-set__empty{margin:0;font-size:.8125rem;color:var(--muted-foreground)}.grades-exo-set__exercises{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.grades-exo-ex{position:relative;overflow:hidden;border:1px solid var(--border);background:transparent}.grades-exo-ex.is-locked{border-style:dashed;background:transparent}.grades-exo-ex__row{display:grid;grid-template-columns:2.75rem minmax(0,1fr) auto;align-items:center;gap:.85rem;padding:.7rem .9rem .8rem;color:inherit;text-decoration:none}a.grades-exo-ex__row:hover{background:color-mix(in oklch,var(--muted) 35%,transparent)}a.grades-exo-ex__row:focus-visible{outline:2px solid var(--exo-set-accent);outline-offset:-2px}.grades-exo-ex__box.exo-track{display:block;width:100%}.grades-exo-ex__box .exo-track__seg{width:100%}.grades-exo-ex__main{display:flex;flex-direction:column;gap:.2rem;min-width:0}.grades-exo-ex__label{overflow:hidden;font-size:.875rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap;color:var(--foreground)}.grades-exo-ex.is-locked .grades-exo-ex__label,.grades-exo-ex.is-todo .grades-exo-ex__label,.grades-exo-ex__sub{color:var(--muted-foreground)}.grades-exo-ex__sub{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .6rem;font-size:.75rem}.grades-exo-ex__diff{display:inline-flex;gap:2px}.grades-exo-ex__diff i{width:.35rem;height:.35rem;border-radius:50%;background:color-mix(in oklch,var(--foreground) 15%,transparent)}.grades-exo-ex__diff i.is-on{background:var(--muted-foreground)}.grades-exo-ex__pts b{font-size:1.05rem}.grades-exo-ex__pts .exo-set-piste__stat-of{font-size:.8125rem}.grades-exo-ex__rule{position:absolute;inset:auto 0 0 0;height:3px;background:color-mix(in oklch,var(--muted-foreground) 14%,transparent)}.grades-exo-ex__rule i{display:block;height:100%;background:var(--exo-set-accent)}.grades-exo-ex.is-done .grades-exo-ex__rule i{background:var(--exo-t-green)}.grades-exo-ex__qs{display:grid;gap:.3rem;margin:0;padding:0 .9rem .85rem calc(.9rem + 2.75rem + .85rem);list-style:none}.grades-exo-q{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.6rem;font-size:.75rem;color:var(--muted-foreground)}.grades-exo-q .exo-track__sub{flex:none;width:1rem;height:1rem}.grades-exo-q__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grades-exo-q.is-done .grades-exo-q__label,.grades-exo-q__pts{color:var(--foreground)}.grades-exo-q__pts{min-width:2.5rem;text-align:right;font-variant-numeric:tabular-nums}@media (max-width:720px){.grades-exo-set__toggle{padding-inline:1rem}.grades-exo-set__body{padding:.85rem 1rem 1rem}.grades-exo-ex__row{grid-template-columns:2.75rem minmax(0,1fr)}.grades-exo-ex__pts{grid-column:2;justify-self:start}.grades-exo-ex__qs{padding-left:.9rem}.grades-exo-q{grid-template-columns:auto minmax(0,1fr) auto}.grades-exo-q__meta{display:none}}.app-status{--app-status-accent:var(--primary);position:relative;isolation:isolate;display:grid;place-items:center;min-height:min(72vh,42rem);padding:clamp(2rem,6vw,4rem) 1.25rem;overflow:hidden}.app-status__atmosphere{position:absolute;inset:-20% -10% auto;height:70%;z-index:0;pointer-events:none;background:radial-gradient(55% 60% at 50% 0,color-mix(in oklch,var(--app-status-accent) 18%,transparent),transparent 72%),radial-gradient(40% 45% at 85% 30%,color-mix(in oklch,var(--muted-foreground) 8%,transparent),transparent 70%)}.sombre .app-status__atmosphere{background:radial-gradient(55% 60% at 50% 0,color-mix(in oklch,var(--app-status-accent) 22%,transparent),transparent 72%),radial-gradient(42% 48% at 12% 40%,color-mix(in oklch,#fff 5%,transparent),transparent 70%)}.app-status__panel{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:min(100%,28rem);text-align:center;animation:app-status-in .55s cubic-bezier(.22,1,.36,1) both}.app-status__icon{display:grid;place-items:center;width:3.5rem;height:3.5rem;margin-bottom:1.35rem;border-radius:1rem;border:1px solid color-mix(in oklch,var(--app-status-accent) 28%,var(--border));background:color-mix(in oklch,var(--app-status-accent) 10%,var(--background));color:color-mix(in oklch,var(--app-status-accent) 72%,var(--foreground))}.app-status__glyph{width:1.45rem;height:1.45rem}.app-status__kicker{margin:0;font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in oklch,var(--app-status-accent) 55%,var(--muted-foreground))}.app-status__title{margin:.55rem 0 0;font-size:clamp(1.35rem,2.6vw,1.75rem);font-weight:750;letter-spacing:-.035em;line-height:1.2;color:var(--foreground);text-wrap:balance}.app-status__text{margin:.85rem 0 0;max-width:24rem;font-size:.9375rem;line-height:1.55;color:color-mix(in oklch,var(--foreground) 72%,var(--muted-foreground));text-wrap:pretty}.app-status__actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.75rem}.app-status__actions,.app-status__btn{align-items:center;justify-content:center}.app-status__btn{display:inline-flex;gap:.4rem;min-height:2.5rem;padding:.55rem 1.15rem;border-radius:999px;font-size:.8125rem;font-weight:650;text-decoration:none;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.app-status__btn:hover{transform:translateY(-1px)}.app-status__btn--primary{border:1px solid color-mix(in oklch,var(--app-status-accent) 45%,transparent);background:var(--app-status-accent);color:var(--primary-foreground,#fff)}.app-status__btn--primary:hover{filter:brightness(1.05)}.app-status__btn--ghost{border:1px solid var(--border);background:color-mix(in oklch,var(--background) 88%,transparent);color:var(--foreground)}.app-status__btn--ghost:hover{background:color-mix(in oklch,var(--muted) 55%,var(--background))}@keyframes app-status-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.app-status__panel{animation:none}.app-status__btn:hover{transform:none}}.home-page{width:100%;max-width:none;--home-gutter:clamp(1.25rem,3vw,3rem)}.home-page :is(.rich-text,.prose):not(.rich-label),.home-page :is(.rich-text,.prose):not(.rich-label) :is(p,li,blockquote){text-align:justify;text-justify:inter-word;hyphens:auto;-webkit-hyphens:auto}.home-page :is(.rich-text,.prose) :is(h1,h2,h3,h4,h5,h6,pre,code,table,th,td,figcaption){text-align:left;hyphens:manual;-webkit-hyphens:manual}.home-page__inner{width:100%;max-width:none;margin-inline:auto;padding-inline:var(--home-gutter)}.home-page__inner--narrow{max-width:48rem}.home-page__inner--wide{max-width:80rem}.home-section--contrast .home-page__title{color:var(--background)}.home-section--accent-surface{background:color-mix(in oklch,var(--home-section-accent,var(--primary)) 8%,var(--background))}.home-page__intro--accent{--home-rule:var(--home-section-accent,var(--primary))}.home-section--contrast .home-page__intro{--home-rule:var(--background)}.home-section--contrast .home-page__eyebrow{color:var(--foreground)}.home-page__intro.text-center,.home-page__intro.text-right{padding-left:0}.home-nested-blocks__item>.home-carousel--nested,.home-nested-blocks__item>.home-features--nested,.home-nested-blocks__item>.home-quick-links--nested{margin-inline:0}.home-carousel--cards .home-carousel__slide--card{border:1px solid var(--border);border-radius:0;overflow:hidden;background:var(--card);box-shadow:0 1px 3px color-mix(in oklch,var(--foreground) 6%,transparent)}.home-carousel--compact .home-carousel__slide--compact .home-carousel__slide-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home-carousel--compact .home-carousel__body{padding-block:.85rem}.home-config-grid__cell{min-width:0}.home-banner{border-radius:0;border:1px solid var(--border);padding:.85rem 1rem;background:var(--muted)}.home-banner--info{background:color-mix(in oklch,var(--primary) 8%,var(--muted));border-color:color-mix(in oklch,var(--primary) 25%,var(--border))}.home-banner--success{background:color-mix(in oklch,#4a7c59 10%,var(--muted));border-color:color-mix(in oklch,#4a7c59 30%,var(--border))}.home-banner--warning{background:color-mix(in oklch,#b7a66a 14%,var(--muted));border-color:color-mix(in oklch,#b7a66a 35%,var(--border))}.home-banner--accent{background:color-mix(in oklch,var(--primary) 12%,var(--card));border-color:color-mix(in oklch,var(--primary) 35%,var(--border))}.home-banner__message{color:var(--foreground)}.home-stats--cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));list-style:none;margin:0;padding:0}.home-stats--cards .home-stats__item{border:1px solid var(--border);border-radius:0;background:var(--card);padding:1rem 1.1rem}.home-stats--inline{display:flex;flex-wrap:wrap;gap:1.25rem 2rem;list-style:none;margin:0;padding:0}.home-stats--minimal{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));list-style:none;margin:0;padding:0;text-align:center}.home-stats__icon{display:inline-flex;margin-bottom:.35rem;color:var(--primary)}.home-stats__value{margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:800;letter-spacing:-.03em;line-height:1.1;color:var(--foreground)}.home-stats__suffix{margin-left:.12em;font-size:.72em;font-weight:700;color:var(--muted-foreground)}.home-stats__label{margin:.35rem 0 0;font-size:.8125rem;font-weight:600;color:var(--muted-foreground)}.home-stats__hint{margin:.2rem 0 0;font-size:.6875rem;color:color-mix(in oklch,var(--muted-foreground) 85%,transparent)}.home-page__intro{--home-rule:var(--primary);position:relative;max-width:42rem;padding-top:1.35rem}.home-page__intro:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--home-rule)}.home-page__intro .home-page__intro:before{content:none}.home-page__eyebrow{display:inline-block;margin:0;padding:.3rem .6rem .28rem;font-size:.6875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;background:var(--home-rule);color:var(--background)}.home-page__title{margin:.65rem 0 0;font-size:clamp(1.75rem,3.6vw,2.75rem);font-weight:800;line-height:1.05;letter-spacing:-.035em;text-wrap:balance;color:var(--foreground)}.home-page__intro>:not(:first-child){margin-top:.6rem}.home-page__intro--bar{padding-top:0;padding-left:1.5rem}.home-page__intro--bar:before{inset:.1rem auto .1rem 0;width:7px;height:auto}.home-page__intro--bar .home-page__eyebrow{padding:0;background:none;color:var(--home-rule);letter-spacing:.16em}.home-page__intro--bar .home-page__title{margin-top:.4rem;font-size:clamp(1.875rem,4vw,3rem);line-height:1.02;letter-spacing:-.04em}.home-page__intro--band{padding-top:0}.home-page__intro--band:before{content:none}.home-page__intro--band .home-page__eyebrow{display:block;margin-bottom:.75rem;padding:.45rem .75rem;letter-spacing:.16em}.home-page__intro--band .home-page__title{margin-top:0;padding-bottom:.6rem;border-bottom:2px solid var(--border)}.home-page__intro--minimal{padding-top:0;padding-left:1.35rem}.home-page__intro--minimal:before{inset:0 auto 0 0;width:3px;height:auto}.home-page__intro--minimal .home-page__eyebrow{padding:0;background:none;color:var(--muted-foreground)}.home-page__intro--minimal .home-page__title{margin-top:.45rem;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:700;line-height:1.12;letter-spacing:-.03em}.home-section--contrast .home-page__intro--bar .home-page__eyebrow,.home-section--contrast .home-page__intro--minimal .home-page__eyebrow{color:color-mix(in oklch,var(--background) 78%,transparent)}.home-page__intro--bar.text-right,.home-page__intro--minimal.text-right{padding-left:0;padding-right:1.35rem}.home-page__intro--bar.text-right:before,.home-page__intro--minimal.text-right:before{left:auto;right:0}.home-page__intro--bar.text-center,.home-page__intro--minimal.text-center{padding-left:0;padding-top:1.05rem}.home-page__intro--bar.text-center:before,.home-page__intro--minimal.text-center:before{inset:0 auto auto 50%;width:3.5rem;height:4px;translate:-50% 0}.home-hero--split{min-height:min(48vh,26rem)!important}.home-hero__layout{display:grid;gap:1.25rem;align-items:start}@media (min-width:768px){.home-hero__layout{grid-template-columns:minmax(0,1fr) 17.5rem;gap:1.35rem}}@media (min-width:1024px){.home-hero__layout{grid-template-columns:minmax(0,1fr) 19rem;gap:1.5rem}}.home-hero__actions{margin-top:1.5rem}.home-hero__layout .home-page__intro{max-width:none}.home-hero__aside{border:1px solid var(--border);border-radius:0;background:var(--card);padding:.65rem 0 .45rem}@media (min-width:900px){.home-hero__aside{margin-top:.15rem}}.home-hero__aside-label{margin:0;padding:0 .9rem .5rem;font-size:.5625rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-foreground)}.home-hero__highlights{margin:0;padding:0;list-style:none}.home-hero__highlight{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:.65rem;padding:.7rem .9rem;border-top:1px solid color-mix(in oklch,var(--border) 75%,transparent);color:inherit;text-decoration:none;transition:background-color .12s ease}.home-hero__highlights li:first-child .home-hero__highlight{border-top:none}a.home-hero__highlight:hover{background:color-mix(in oklch,var(--muted) 22%,transparent)}.home-hero__highlight-icon{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;flex-shrink:0;border-radius:0;background:color-mix(in oklch,var(--primary) 10%,var(--muted));color:var(--foreground)}.home-hero__highlight-copy{min-width:0;display:flex;flex-direction:column;gap:.12rem}.home-hero__highlight-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .4rem}.home-hero__highlight-title{font-size:.8125rem;font-weight:700;line-height:1.25;color:var(--foreground)}.home-hero__highlight-meta{padding:.06rem .35rem;border-radius:.2rem;background:color-mix(in oklch,var(--muted) 40%,transparent);font-size:.5rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-foreground)}.home-hero__highlight-desc{font-size:.6875rem;line-height:1.35;color:var(--muted-foreground)}.home-hero__highlight-arrow{margin-top:.1rem;color:var(--muted-foreground)}a.home-hero__highlight:hover .home-hero__highlight-arrow{color:var(--foreground)}