:root{--bg:#f8fafc;--bg-glow-1:rgba(6,182,212,0.07);--bg-glow-2:rgba(168,85,247,0.06);--surface:#ffffff;--surface-2:#f1f5f9;--surface-glass:rgba(255,255,255,0.72);--text:#0f172a;--text-muted:#475569;--border:rgba(15,23,42,0.08);--border-strong:rgba(15,23,42,0.16);--tint:rgba(15,23,42,0.03);--brand:#0f4c81;--brand-soft:#e8f0f8;--shadow-sm:0 1px 2px rgba(15,23,42,0.05),0 1px 3px rgba(15,23,42,0.07);--shadow-md:0 10px 30px -12px rgba(15,23,42,0.18);--accent-warn:#92400e;--accent-warn-bg:#fffbeb;--accent-exam:#047857;--accent-exam-bg:#ecfdf5;--res-s:#047857;--res-r:#be123c;--res-i:#b45309;--c-pos:#a855f7;--t-pos:#7e22ce;--c-neg:#f43f5e;--t-neg:#be123c;--c-struct:#06b6d4;--t-struct:#0e7490;--c-atb:#f59e0b;--t-atb:#b45309;--c-gen:#10b981;--t-gen:#047857;--c-nc:#64748b;--t-nc:#475569;--mark:rgba(6,182,212,0.22);--font-text:Charter,"Bitstream Charter","Sitka Text",Cambria,"Iowan Old Style",Georgia,serif;--font-ui:"Inter var",Inter,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--measure:72ch;--header-h:7.25rem;--radius:10px;--radius-sm:6px;--ease:cubic-bezier(0.16,1,0.3,1);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0b1120;--bg-glow-1:rgba(6,182,212,0.10);--bg-glow-2:rgba(168,85,247,0.10);--surface:#111a2e;--surface-2:#17223a;--surface-glass:rgba(17,26,46,0.72);--text:#e2e8f0;--text-muted:#94a3b8;--border:rgba(255,255,255,0.07);--border-strong:rgba(255,255,255,0.14);--tint:rgba(255,255,255,0.04);--brand:#7db3ee;--brand-soft:#14243d;--shadow-sm:0 1px 2px rgba(0,0,0,0.45);--shadow-md:0 8px 24px rgba(0,0,0,0.45);--accent-warn:#fcd34d;--accent-warn-bg:#241c0b;--accent-exam:#6ee7b7;--accent-exam-bg:#0f2620;--res-s:#6ee7b7;--res-r:#fda4af;--res-i:#fcd34d;--t-pos:#d8b4fe;--t-neg:#fda4af;--t-struct:#67e8f9;--t-atb:#fcd34d;--t-gen:#6ee7b7;--t-nc:#cbd5e1;--mark:rgba(6,182,212,0.28);color-scheme:dark}}:root[data-theme="dark"]{--bg:#0b1120;--bg-glow-1:rgba(6,182,212,0.10);--bg-glow-2:rgba(168,85,247,0.10);--surface:#111a2e;--surface-2:#17223a;--surface-glass:rgba(17,26,46,0.72);--text:#e2e8f0;--text-muted:#94a3b8;--border:rgba(255,255,255,0.07);--border-strong:rgba(255,255,255,0.14);--tint:rgba(255,255,255,0.04);--brand:#7db3ee;--brand-soft:#14243d;--shadow-sm:0 1px 2px rgba(0,0,0,0.45);--shadow-md:0 8px 24px rgba(0,0,0,0.45);--accent-warn:#fcd34d;--accent-warn-bg:#241c0b;--accent-exam:#6ee7b7;--accent-exam-bg:#0f2620;--res-s:#6ee7b7;--res-r:#fda4af;--res-i:#fcd34d;--t-pos:#d8b4fe;--t-neg:#fda4af;--t-struct:#67e8f9;--t-atb:#fcd34d;--t-gen:#6ee7b7;--t-nc:#cbd5e1;--mark:rgba(6,182,212,0.28);color-scheme:dark}*,*::before,*::after{box-sizing:border-box}html{scroll-padding-top:calc(var(--header-h) + 1rem);-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;color:var(--text);background:radial-gradient(60rem 30rem at 85% -10%,var(--bg-glow-1),transparent 70%),radial-gradient(50rem 28rem at -10% 10%,var(--bg-glow-2),transparent 70%),var(--bg);background-repeat:no-repeat;background-color:var(--bg);font-family:var(--font-text);font-size:1.0625rem;line-height:1.65;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-underline-offset:0.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--c-struct);outline-offset:2px;border-radius:4px}img,svg{max-width:100%;height:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link{position:absolute;left:-999px;top:0.5rem;background:var(--brand);color:#fff;padding:0.5rem 1rem;z-index:100;border-radius:var(--radius-sm)}.skip-link:focus{left:0.5rem}[hidden]{display:none!important}h1,h2,h3{color:var(--text);line-height:1.2;font-family:var(--font-ui);letter-spacing:-0.025em}h1{font-size:clamp(1.9rem,1.2rem + 2.6vw,3rem);margin:0.25rem 0 0.75rem;font-weight:700}h2{font-size:1.45rem;margin:2.75rem 0 0.75rem;padding-top:0.25rem;font-weight:650}h3{font-size:1.12rem;margin:1.75rem 0 0.5rem;font-weight:650}.course h1,.course h2{color:var(--brand)}p,ul,ol{margin:0 0 1rem}li + li{margin-top:0.3rem}em.taxon{font-style:italic}abbr[title]{text-decoration:underline dotted;cursor:help}mark{background:var(--mark);color:inherit;border-radius:3px;padding:0 0.1em}kbd{font-family:var(--font-ui);font-size:0.75rem}.site-header{position:sticky;top:0;z-index:50;background:var(--surface-glass);-webkit-backdrop-filter:saturate(160%) blur(12px);backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--border);font-family:var(--font-ui)}.header-inner{max-width:78rem;margin:0 auto;padding:0.55rem 1rem}.header-top{display:flex;align-items:center;gap:0.5rem 1.25rem;flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:0.5rem;font-weight:700;font-size:1.08rem;color:var(--text);text-decoration:none;white-space:nowrap;letter-spacing:-0.01em}.brand-name span{color:var(--text-muted);font-weight:500}.brand-mark{width:1.35rem;height:1.35rem;flex:none}.main-nav{min-width:0;max-width:100%;flex:1 1 auto}.main-nav ul{display:flex;gap:0.15rem;list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:none}.main-nav li + li{margin-top:0}.main-nav a{display:block;padding:0.38rem 0.7rem;border-radius:var(--radius-sm);color:var(--text-muted);text-decoration:none;font-size:0.9rem;font-weight:500;white-space:nowrap;transition:color .15s,background-color .15s}.main-nav a:hover{color:var(--text);background:var(--surface-2)}.main-nav a[aria-current="page"],.main-nav a.is-section{color:var(--text);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border)}.header-actions{display:flex;align-items:center;gap:0.4rem;margin-left:auto}@media (max-width:52rem){.header-actions{order:2}.main-nav{order:3;flex-basis:100%}}.icon-btn{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);cursor:pointer;box-shadow:var(--shadow-sm);transition:color .15s,border-color .15s}.icon-btn:hover{color:var(--text);border-color:var(--border-strong)}.icon-btn svg{width:1.05rem;height:1.05rem}.theme-toggle .i-sun{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .theme-toggle .i-sun{display:block}:root:not([data-theme="light"]) .theme-toggle .i-moon{display:none}}:root[data-theme="dark"] .theme-toggle .i-sun{display:block}:root[data-theme="dark"] .theme-toggle .i-moon{display:none}.breadcrumb ol{display:flex;flex-wrap:wrap;gap:0.25rem;list-style:none;margin:0.3rem 0 0;padding:0;font-size:0.8rem;color:var(--text-muted)}.breadcrumb li + li{margin-top:0}.breadcrumb li + li::before{content:"/";margin-right:0.35rem;opacity:0.5}.breadcrumb a{color:var(--text-muted);text-decoration:none}.breadcrumb a:hover{color:var(--text)}.breadcrumb [aria-current="page"]{color:var(--text)}.cat-pos{--accent:var(--c-pos);--accent-text:var(--t-pos)}.cat-neg{--accent:var(--c-neg);--accent-text:var(--t-neg)}.cat-struct{--accent:var(--c-struct);--accent-text:var(--t-struct)}.cat-atb{--accent:var(--c-atb);--accent-text:var(--t-atb)}.cat-gen{--accent:var(--c-gen);--accent-text:var(--t-gen)}.cat-nc{--accent:var(--c-nc);--accent-text:var(--t-nc)}.pill{display:inline-flex;align-items:center;gap:0.35rem;font-family:var(--font-ui);font-size:0.72rem;font-weight:600;letter-spacing:0.01em;line-height:1.5;padding:0.05rem 0.55rem;border-radius:999px;white-space:nowrap;color:var(--accent-text,var(--text-muted));background:color-mix(in srgb,var(--accent,var(--c-nc)) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent,var(--c-nc)) 30%,transparent)}.pill.dot::before{content:"";width:0.42rem;height:0.42rem;border-radius:50%;background:var(--accent,var(--c-nc));box-shadow:0 0 8px var(--accent,transparent)}.pill.neutral{--accent:var(--c-nc);--accent-text:var(--text-muted)}.rt{font-family:var(--font-ui);font-size:0.75rem;color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.rt:empty{display:none}.layout{max-width:78rem;margin:0 auto;padding:1.75rem 1rem 4rem;display:grid;gap:3rem;grid-template-columns:minmax(0,1fr)}@media (min-width:64rem){.layout{grid-template-columns:minmax(0,var(--measure)) 15rem;justify-content:center}.layout>.toc{order:2}}.toc{font-family:var(--font-ui);font-size:0.875rem}.toc details{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.toc summary{cursor:pointer;padding:0.65rem 0.9rem;font-weight:600;color:var(--text)}.toc ol{list-style:none;margin:0;padding:0 0.5rem 0.75rem}.toc li{margin:0}.toc a{display:block;padding:0.3rem 0.5rem 0.3rem 0.8rem;border-left:1px solid var(--border);color:var(--text-muted);text-decoration:none;line-height:1.4;transition:color .15s,border-color .15s}.toc a:hover{color:var(--text)}.toc a.is-active{color:var(--brand);border-left-color:var(--c-struct);font-weight:600}@media (min-width:64rem){.toc{position:sticky;top:calc(var(--header-h) + 1rem);align-self:start;max-height:calc(100vh - var(--header-h) - 2rem);overflow-y:auto}.toc details{border:0;background:none;box-shadow:none}.toc summary{pointer-events:none;list-style:none;padding-left:0.8rem;text-transform:uppercase;font-size:0.72rem;letter-spacing:0.08em;color:var(--text-muted)}.toc summary::-webkit-details-marker{display:none}}.course-header{margin-bottom:1.5rem}.kicker{font-family:var(--font-ui);font-size:0.76rem;font-weight:600;text-transform:uppercase;letter-spacing:0.09em;color:var(--text-muted);margin:0 0 0.35rem;display:flex;align-items:center;gap:0.6rem;flex-wrap:wrap}.meta{font-family:var(--font-ui);font-size:0.85rem;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:0.25rem 1.25rem;margin:0 0 1rem}.meta strong{color:var(--text);font-weight:600}.tools{display:flex;flex-wrap:wrap;gap:0.5rem;margin:0 0 1.5rem;align-items:center}.btn{display:inline-flex;align-items:center;gap:0.45rem;text-decoration:none;font-family:var(--font-ui);font-size:0.85rem;font-weight:600;line-height:1.2;padding:0.5rem 0.9rem;border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);transition:border-color .15s,transform .15s var(--ease),background-color .15s}.btn:hover{border-color:var(--border-strong)}.btn:active{transform:translateY(1px)}.btn svg{width:1rem;height:1rem;flex:none}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover{background:color-mix(in srgb,var(--brand) 88%,#000);border-color:transparent}:root[data-theme="dark"] .btn-primary{color:#0b1120}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn-primary{color:#0b1120}}.btn-ghost{background:transparent;box-shadow:none;color:var(--text-muted)}.btn-ghost:hover{color:var(--text);background:var(--surface-2)}.copy-status{font-family:var(--font-ui);font-size:0.8rem;color:var(--t-gen)}.tldr{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--c-struct);border-radius:var(--radius);padding:1rem 1.25rem;margin:0 0 1.5rem;box-shadow:var(--shadow-sm)}.tldr h2{border:0;margin:0 0 0.5rem;padding:0;font-size:0.8rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--t-struct)!important}.tldr ul{margin:0;padding-left:1.2rem}.exam-box{position:relative;margin:0 0 2rem;padding:1.1rem 1.35rem 1.2rem;border-radius:var(--radius);border:1.5px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,linear-gradient(135deg,var(--c-struct),var(--c-pos) 55%,var(--c-atb)) border-box;box-shadow:0 12px 32px -18px color-mix(in srgb,var(--c-pos) 55%,transparent)}.course .exam-box h2{margin:0 0 0.6rem;padding:0;border:0;font-size:1.05rem;color:var(--text);display:flex;gap:0.5rem;align-items:center}.exam-box .key-points{margin:0;padding:0;border:0;background:none}.exam-box .key-points ul{list-style:none;padding:0;margin:0;display:grid;gap:0.4rem}.exam-box .key-points li{margin:0;padding-left:1.5rem;position:relative}.exam-box .key-points li::before{content:"✓";position:absolute;left:0;top:0;font-family:var(--font-ui);font-weight:700;color:var(--t-gen)}.course-body>section>h2{border-top:1px solid var(--border);padding-top:1.25rem}.callout{border-radius:var(--radius);padding:0.9rem 1.15rem;margin:1.5rem 0;border:1px solid}.callout>:last-child{margin-bottom:0}.callout-title{font-family:var(--font-ui);font-weight:700;font-size:0.88rem;margin:0 0 0.4rem;display:flex;gap:0.4rem;align-items:center}.callout-warning{background:var(--accent-warn-bg);border-color:color-mix(in srgb,var(--accent-warn) 30%,transparent)}.callout-warning .callout-title{color:var(--accent-warn)}.key-points{background:var(--accent-exam-bg);border-color:color-mix(in srgb,var(--accent-exam) 30%,transparent)}.key-points .callout-title{color:var(--accent-exam)}.key-points ul{padding-left:1.2rem;margin:0}figure{margin:1.5rem 0}figcaption{font-family:var(--font-ui);font-size:0.85rem;color:var(--text-muted);margin-top:0.4rem}.table-wrap{overflow-x:auto;margin:1.5rem 0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}table{border-collapse:collapse;width:100%;font-family:var(--font-ui);font-size:0.88rem;line-height:1.45}caption{caption-side:top;text-align:left;padding:0.8rem 1rem;font-weight:600;color:var(--text)}th,td{padding:0.6rem 0.85rem;border-top:1px solid var(--border);text-align:left;vertical-align:top}thead th{background:var(--surface-2);font-weight:600;white-space:nowrap;font-size:0.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.04em}tbody th{font-weight:600;position:sticky;left:0;background:var(--surface)}tbody tr:hover td,tbody tr:hover th{background:var(--surface-2)}.table-note{font-family:var(--font-ui);font-size:0.78rem;color:var(--text-muted);padding:0.5rem 1rem 0.75rem;margin:0}.res{display:inline-block;min-width:1.6rem;text-align:center;font-weight:700;border-radius:5px;padding:0 0.3rem;border:1px solid currentColor;font-size:0.8rem}.res-s{color:var(--res-s);background:color-mix(in srgb,var(--res-s) 8%,transparent)}.res-r{color:var(--res-r);background:color-mix(in srgb,var(--res-r) 8%,transparent)}.res-i{color:var(--res-i);background:color-mix(in srgb,var(--res-i) 8%,transparent)}.eeat{margin-top:3rem;padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-family:var(--font-ui);font-size:0.9rem;box-shadow:var(--shadow-sm)}.course .eeat h2{border:0;margin:0 0 0.75rem;padding:0;font-size:1rem;color:var(--text)}.eeat dl{display:grid;grid-template-columns:max-content 1fr;gap:0.35rem 1rem;margin:0 0 0.75rem}.eeat dt{color:var(--text-muted)}.eeat dd{margin:0}.references ol{font-size:0.9rem;padding-left:1.4rem}.site-footer{border-top:1px solid var(--border);font-family:var(--font-ui);font-size:0.85rem;color:var(--text-muted);margin-top:2rem}.site-footer .footer-inner{max-width:78rem;margin:0 auto;padding:2rem 1rem 2.5rem;display:flex;flex-wrap:wrap;gap:0.6rem 1.5rem}.site-footer a{color:var(--text-muted);text-decoration:none}.site-footer a:hover{color:var(--text)}.print-only{display:none}.fiche-label{display:none}.page{max-width:78rem;margin:0 auto;padding:2rem 1rem 4rem}.page-intro{max-width:52rem;margin-bottom:2rem}.lead{font-size:1.15rem;color:var(--text-muted);margin:0 0 1rem}.page h2{margin-top:3rem}.hero{display:grid;gap:2rem;align-items:center;grid-template-columns:minmax(0,1fr);padding:1.5rem 0 1rem}@media (min-width:60rem){.hero{grid-template-columns:minmax(0,1.1fr) minmax(0,0.9fr);gap:3rem;padding:3rem 0 2rem}}.hero .eyebrow{display:inline-flex;gap:0.5rem;align-items:center;font-family:var(--font-ui);font-size:0.8rem;font-weight:600;color:var(--text-muted);padding:0.25rem 0.75rem;border:1px solid var(--border);border-radius:999px;background:var(--surface-glass);margin:0 0 1rem}.hero h1{font-size:clamp(2.1rem,1.3rem + 3vw,3.4rem);line-height:1.08;letter-spacing:-0.035em;margin:0 0 1rem}.hero h1 .grad{background:linear-gradient(100deg,var(--brand),var(--c-struct) 45%,var(--c-pos));-webkit-background-clip:text;background-clip:text;color:transparent}.hero-art{position:relative;min-height:18rem;display:none}@media (min-width:60rem){.hero-art{display:block}}.hero-art svg{width:100%;height:auto;display:block;-webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 62%,transparent 100%);mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 62%,transparent 100%)}@media (prefers-reduced-motion:no-preference){.hero-art .float-a{animation:float 9s ease-in-out infinite}.hero-art .float-b{animation:float 11s ease-in-out -3s infinite}.hero-art .float-c{animation:float 13s ease-in-out -6s infinite}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}}.feature-card{position:absolute;right:0.5rem;bottom:0.5rem;width:min(19rem,75%);padding:0.95rem 1.1rem;border-radius:var(--radius);text-decoration:none;color:var(--text);font-family:var(--font-ui);background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);box-shadow:var(--shadow-md);transition:transform .2s var(--ease),border-color .2s}.feature-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 50%,var(--border))}.feature-card .fc-label{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-muted);font-weight:600}.feature-card .fc-title{display:block;font-weight:650;margin:0.25rem 0 0.5rem;line-height:1.3}.feature-card .fc-row{display:flex;gap:0.4rem;align-items:center;flex-wrap:wrap}.omnibar{position:relative;margin:1.75rem 0 0;font-family:var(--font-ui);max-width:40rem}.omnibar-field{position:relative}.omnibar-icon{position:absolute;z-index:1;left:1rem;top:50%;width:1.15rem;height:1.15rem;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.omnibar input{width:100%;font:inherit;font-size:1rem;color:var(--text);padding:0.95rem 5.25rem 0.95rem 2.9rem;border-radius:12px;border:1px solid var(--border);background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}.omnibar input::placeholder{color:var(--text-muted);opacity:0.85}.omnibar input::-webkit-search-cancel-button{display:none}.omnibar input:focus{outline:none;border-color:color-mix(in srgb,var(--c-struct) 60%,var(--border));box-shadow:0 0 0 4px color-mix(in srgb,var(--c-struct) 16%,transparent),0 12px 40px -12px color-mix(in srgb,var(--c-pos) 45%,transparent)}.omnibar-kbd{position:absolute;z-index:1;right:0.75rem;top:50%;transform:translateY(-50%);display:inline-flex;gap:0.2rem;align-items:center;pointer-events:none;padding:0.15rem 0.5rem;border-radius:6px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);font-size:0.75rem;font-weight:600}@media (hover:none){.omnibar-kbd{display:none}.omnibar input{padding-right:1rem}}.search-status{font-size:0.82rem;color:var(--text-muted);margin:0.5rem 0 0;min-height:1.3em}.search-results{list-style:none;margin:0.4rem 0 0;padding:0.35rem;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-md);max-height:26rem;overflow-y:auto}.search-results:empty{display:none}.search-results li{margin:0}.search-results a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0.15rem 0.75rem;align-items:center;padding:0.6rem 0.75rem;border-radius:8px;text-decoration:none;color:var(--text)}.search-results a:hover,.search-results a.is-active{background:var(--surface-2);outline:none}.search-results .r-title{font-weight:600}.search-results .r-meta{grid-column:1;font-size:0.8rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-results .r-side{grid-column:2;grid-row:1 / span 2;display:flex;gap:0.4rem;align-items:center}.silos{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));margin-top:1rem}.silo{border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:1.35rem 1.35rem 1rem;box-shadow:var(--shadow-sm);font-family:var(--font-ui)}.silo-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:0.25rem}.page .silo h3{margin:0;font-size:1.2rem}.silo h3 a{color:var(--text);text-decoration:none}.silo h3 a:hover{color:var(--brand)}.silo .count{font-size:0.8rem;color:var(--text-muted);white-space:nowrap}.silo-desc{color:var(--text-muted);font-size:0.9rem;margin:0 0 0.75rem}.rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}.rows li{margin:0;border-bottom:1px solid var(--border)}.rows li:last-child{border-bottom:0}.row{display:flex;align-items:center;gap:0.75rem;padding:0.7rem 0.35rem;text-decoration:none;color:var(--text);border-radius:8px;transition:background-color .15s}.row:hover{background:var(--surface-2)}.row-dot{width:0.5rem;height:0.5rem;border-radius:50%;background:var(--accent,var(--c-nc));box-shadow:0 0 10px var(--accent,transparent);flex:none}.row-label{flex:1;font-size:0.93rem;font-weight:500}.row-count{font-size:0.72rem;font-weight:600;color:var(--text-muted);padding:0.05rem 0.5rem;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-variant-numeric:tabular-nums}.row-chev{color:var(--text-muted);transition:transform .2s var(--ease),color .2s}.row:hover .row-chev{transform:translateX(4px);color:var(--text)}.silo-all{display:inline-flex;gap:0.35rem;align-items:center;margin-top:0.85rem;font-size:0.88rem;font-weight:600;text-decoration:none}.silo-all:hover span{transform:translateX(3px)}.silo-all span{transition:transform .2s var(--ease)}.card-grid{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:0.85rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr))}.card-grid li{margin:0}.card{position:relative;display:flex;flex-direction:column;height:100%;padding:1rem 1.05rem 0.9rem;text-decoration:none;color:var(--text);font-family:var(--font-ui);border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-sm);transition:transform .2s var(--ease),border-color .2s,box-shadow .2s;overflow:hidden}.card::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,var(--accent,var(--brand)),transparent);opacity:0.55}.card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent,var(--brand)) 45%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent,var(--brand)) 15%,transparent),0 14px 32px -16px color-mix(in srgb,var(--accent,var(--brand)) 60%,transparent)}.card-title{display:block;font-weight:650;line-height:1.35;color:var(--text)}.card-desc{display:block;font-size:0.85rem;color:var(--text-muted);margin-top:0.3rem;line-height:1.45;flex:1}.card-foot{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;margin-top:0.8rem;flex-wrap:wrap}.badges{display:flex;flex-wrap:wrap;gap:0.3rem}@media (prefers-reduced-motion:reduce){.card,.card:hover,.feature-card:hover{transform:none}}.jump{display:flex;flex-wrap:wrap;gap:0.4rem;list-style:none;padding:0;margin:1rem 0 0;font-family:var(--font-ui);font-size:0.86rem}.jump li{margin:0}.jump a{display:inline-flex;gap:0.4rem;align-items:center;padding:0.3rem 0.8rem;border:1px solid var(--border);border-radius:999px;text-decoration:none;background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.jump a::before{content:"";width:0.45rem;height:0.45rem;border-radius:50%;background:var(--accent,var(--c-nc))}.jump a:hover{border-color:var(--border-strong)}.theme-desc{color:var(--text-muted);margin:0;max-width:60ch}.filters{font-family:var(--font-ui);border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:1rem 1.15rem;margin:1.5rem 0 0;display:grid;gap:0.75rem;box-shadow:var(--shadow-sm)}.filter-group{display:flex;flex-wrap:wrap;gap:0.4rem;align-items:center}.filter-label{font-weight:600;font-size:0.82rem;min-width:7.5rem;color:var(--text-muted)}.chip{font:inherit;font-size:0.84rem;padding:0.3rem 0.8rem;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;transition:border-color .15s,background-color .15s}.chip:hover{border-color:var(--border-strong)}.chip[aria-pressed="true"]{background:var(--text);border-color:var(--text);color:var(--bg)}.filter-status{font-size:0.82rem;color:var(--text-muted);margin:0}.no-results{font-family:var(--font-ui);color:var(--text-muted)}.pillars{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));margin-top:1rem}.pillar{padding:1.1rem 1.2rem;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-sm)}.pillar h3{margin:0 0 0.35rem;font-size:1rem}.pillar p{margin:0;font-size:0.95rem;color:var(--text-muted)}.history-note{display:grid;grid-template-columns:minmax(0,70ch);margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border);color:var(--text-muted);font-size:0.95rem}.prose{max-width:var(--measure)}.prose h2{border-top:1px solid var(--border);padding-top:1rem}.prose .page-intro{margin-bottom:1rem}.roles{display:grid;grid-template-columns:minmax(0,1fr);gap:0.2rem 1.25rem}.roles dt{font-family:var(--font-ui);font-weight:600;color:var(--brand);margin-top:0.6rem}.roles dd{margin:0}@media (min-width:40rem){.roles{grid-template-columns:13rem 1fr}.roles dt{margin-top:0}}@media print{@page{size:A4;margin:18mm 14mm 16mm}:root,:root[data-theme="dark"],:root:not([data-theme="light"]){--bg:#fff;--surface:#fff;--surface-2:#f2f2f2;--text:#000;--text-muted:#333;--border:#bbb;--brand:#000;--brand-soft:#fff;--shadow-sm:none;--shadow-md:none;--accent-exam-bg:#fff;--accent-warn-bg:#fff;--accent-exam:#000;--accent-warn:#000;--res-s:#000;--res-r:#000;--res-i:#000;--t-pos:#000;--t-neg:#000;--t-struct:#000;--t-atb:#000;--t-gen:#000;--t-nc:#000;color-scheme:light}body{background:#fff!important;color:#000;font-size:10.5pt;line-height:1.45}.site-header,.toc,.tools,.site-footer,.skip-link,.omnibar,.filters,.jump,.hero-art,.theme-toggle,.header-actions,.copy-status{display:none!important}.layout{display:block;padding:0;max-width:none}h1{font-size:18pt;color:#000!important}h2{font-size:13pt;margin-top:1.2em;color:#000!important}h3{font-size:11pt}a{color:#000;text-decoration:none}h2,h3{break-after:avoid}.callout,.tldr,.exam-box,table,figure,tr{break-inside:avoid}.exam-box{background:#fff;border:1.5pt solid #000;box-shadow:none}.tldr{border:1pt solid #000;border-left-width:3pt}.card,.pillar,.silo,.eeat,.table-wrap{box-shadow:none}.card::before{display:none}tbody th{position:static}.table-wrap{overflow:visible}.pill{border-color:#000;background:none}.print-only{display:block}.print-brand{position:fixed;top:-12mm;left:0;right:0;display:flex;justify-content:space-between;gap:1rem;font-family:var(--font-ui);font-size:8pt;color:#000;border-bottom:0.5pt solid #000;padding-bottom:1.5mm}.print-footer{position:fixed;bottom:-11mm;left:0;right:0;font-family:var(--font-ui);font-size:7.5pt;color:#333;text-align:center}body.mode-fiche{font-size:9.5pt;line-height:1.35}body.mode-fiche .course-body>section:not(:has(.key-points,.table-wrap)),body.mode-fiche .course-body>section>:not(h2):not(.key-points):not(.table-wrap),body.mode-fiche .eeat,body.mode-fiche .references,body.mode-fiche .callout-warning,body.mode-fiche .meta,body.mode-fiche .kicker{display:none!important}body.mode-fiche .fiche-label{display:block;font-family:var(--font-ui);font-size:9pt;font-weight:700;text-transform:uppercase;letter-spacing:0.06em}body.mode-fiche h1{font-size:15pt;margin:0 0 0.3em}body.mode-fiche h2{font-size:11pt;margin:0.7em 0 0.25em;padding-top:0;border-top:0}body.mode-fiche .tldr{padding:0.45em 0.8em;margin:0 0 0.6em}body.mode-fiche .tldr h2{font-size:9pt;margin:0 0 0.2em}body.mode-fiche .exam-box{padding:0.5em 0.8em;margin:0 0 0.6em}body.mode-fiche .exam-box .key-points ul{gap:0.1em}body.mode-fiche .tldr li + li{margin-top:0.1em}body.mode-fiche .table-wrap{margin:0.4em 0}body.mode-fiche table{font-size:8.5pt;line-height:1.3}body.mode-fiche caption{padding:0.3em 0.5em;font-size:9pt}body.mode-fiche th,body.mode-fiche td{padding:0.2em 0.45em}body.mode-fiche thead th{font-size:7.5pt}body.mode-fiche .table-note{padding:0.2em 0.5em 0.35em;font-size:7.5pt}}:root{--font-mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace}.rt,.row-count,.count-badge,.stat-value,td,.cmd-side,time{font-variant-numeric:tabular-nums}h1,h2,h3,.card-title,.bento-title,.stat-value{letter-spacing:-0.025em}.mono-badge{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.02em;line-height:1.35;padding:2px 6px;border-radius:4px;border:1px solid var(--border-strong);background:var(--tint);color:var(--text-muted);text-decoration:none;white-space:nowrap;transition:color .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease),background-color .2s var(--ease)}a.mono-badge:hover,a.mono-badge:focus-visible{color:var(--t-struct);border-color:color-mix(in srgb,var(--c-struct) 55%,transparent);background:color-mix(in srgb,var(--c-struct) 10%,transparent);box-shadow:0 0 12px -2px color-mix(in srgb,var(--c-struct) 55%,transparent)}[data-tip]{position:relative}[data-tip]::after{content:attr(data-tip);position:absolute;right:0;bottom:calc(100% + 8px);z-index:20;pointer-events:none;font-family:var(--font-ui);font-size:0.72rem;font-weight:500;text-transform:none;letter-spacing:0;white-space:nowrap;padding:0.3rem 0.55rem;border-radius:6px;background:var(--text);color:var(--bg);box-shadow:var(--shadow-md);opacity:0;transform:translateY(3px);transition:opacity .15s var(--ease),transform .15s var(--ease)}[data-tip]:hover::after,[data-tip]:focus-visible::after{opacity:1;transform:none}@media (hover:none){[data-tip]::after{display:none}}.spot{background-image:radial-gradient(260px circle at var(--mx,50%) var(--my,-50%),color-mix(in srgb,var(--accent,var(--c-struct)) 0%,transparent),transparent 70%)}@media (hover:hover){.spot:hover{background-image:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--accent,var(--c-struct)) 9%,transparent),transparent 70%)}}.card-link,.cmd-main{color:inherit;text-decoration:none}.card-link::after,.cmd-main::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:0}.card-link:focus-visible,.cmd-main:focus-visible{outline:none}.card:has(.card-link:focus-visible),.cmd-row:has(.cmd-main:focus-visible){outline:2px solid var(--c-struct);outline-offset:2px}.card .mono-badge,.cmd-row .mono-badge{position:relative;z-index:1}.card{cursor:pointer}.card-actions{display:inline-flex;gap:0.5rem;align-items:center}.course-body ul:not([class]),.prose ul:not([class]),.tldr ul,.callout ul:not([class]){list-style:none;padding-left:1.15rem}.course-body ul:not([class])>li,.prose ul:not([class])>li,.tldr ul>li,.callout ul:not([class])>li{position:relative}.course-body ul:not([class])>li::before,.prose ul:not([class])>li::before,.tldr ul>li::before,.callout ul:not([class])>li::before{content:"";position:absolute;left:-1rem;top:0.68em;width:0.38rem;height:0.38rem;border-radius:2px;background:var(--accent,var(--c-struct));opacity:0.75}.course-body ol:not([class])>li::marker,.prose ol:not([class])>li::marker,.references ol>li::marker{color:var(--text-muted);font-family:var(--font-mono);font-size:0.85em}.course-body a,.prose a,.lead a,.history-note a,.pillar a,.eeat a,.references a{text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-decoration-thickness:1px}.course-body a:hover,.prose a:hover{text-decoration-color:currentColor}.cmdk-trigger{display:inline-flex;align-items:center;gap:0.5rem;height:2.25rem;padding:0 0.5rem 0 0.7rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);font:500 0.85rem/1 var(--font-ui);cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .2s var(--ease),color .2s var(--ease)}.cmdk-trigger:hover{border-color:var(--border-strong);color:var(--text)}.cmdk-trigger svg{width:0.95rem;height:0.95rem}.cmdk-trigger .cmdk-label{min-width:7rem;text-align:left}@media (max-width:52rem){.cmdk-trigger .cmdk-label,.cmdk-trigger .mono-badge{display:none}.cmdk-trigger{width:2.25rem;justify-content:center;padding:0}}.palette{width:min(40rem,calc(100vw - 2rem));max-height:min(34rem,calc(100vh - 6rem));margin:12vh auto auto;padding:0;border:1px solid var(--border-strong);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:0 30px 80px -20px rgba(2,6,23,0.55);overflow:hidden;font-family:var(--font-ui)}.palette::backdrop{background:rgba(2,6,23,0.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.palette-field{position:relative;border-bottom:1px solid var(--border)}.palette-field svg{position:absolute;left:1rem;top:50%;width:1.1rem;height:1.1rem;transform:translateY(-50%);color:var(--text-muted)}.palette input{width:100%;border:0;outline:none;background:transparent;color:var(--text);font:400 1rem var(--font-ui);padding:1rem 4rem 1rem 2.8rem}.palette input::-webkit-search-cancel-button{display:none}.palette-field .mono-badge{position:absolute;right:0.9rem;top:50%;transform:translateY(-50%)}.palette .search-results{border:0;box-shadow:none;border-radius:0;margin:0;max-height:24rem}.palette .search-status{padding:0.55rem 1rem;margin:0;border-top:1px solid var(--border);font-size:0.76rem}.palette-empty{padding:1rem;color:var(--text-muted);font-size:0.88rem;margin:0}.site-footer .footer-grid{max-width:78rem;margin:0 auto;padding:2.5rem 1rem 1.5rem;display:grid;gap:2rem;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr))}@media (max-width:52rem){.site-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-brand{grid-column:1 / -1}}.footer-brand p{margin:0.6rem 0 0;max-width:32ch;line-height:1.55}.footer-col h2{margin:0 0 0.75rem;padding:0;border:0;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--text);font-weight:600}.footer-links{list-style:none;margin:0;padding:0;display:grid;gap:0.45rem}.footer-links li{margin:0}.footer-links a{color:var(--text-muted);text-decoration:none;transition:color .15s var(--ease)}.footer-links a:hover{color:var(--text)}.footer-bottom{max-width:78rem;margin:0 auto;padding:1rem 1rem 2rem;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;justify-content:space-between;gap:0.5rem 1.5rem;font-size:0.8rem}.stats{display:grid;gap:0.75rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr));margin:1.5rem 0 0}.stat{padding:1rem 1.1rem;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-sm);font-family:var(--font-ui);position:relative;overflow:hidden}.stat::before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:var(--accent,var(--c-struct));opacity:0.8}.stat-value{display:block;font-size:1.6rem;font-weight:700;line-height:1.1;color:var(--text)}.stat-value.small{font-size:1.05rem;padding-top:0.35rem}.stat-label{display:block;margin-top:0.3rem;font-size:0.8rem;color:var(--text-muted)}.filter-bar{display:flex;flex-wrap:wrap;gap:0.4rem;align-items:center;margin:1.25rem 0 0;font-family:var(--font-ui)}.filter-bar .chip{display:inline-flex;gap:0.4rem;align-items:center}.filter-bar .chip::before{content:"";width:0.45rem;height:0.45rem;border-radius:50%;background:var(--accent,var(--text-muted))}.filter-bar .chip[data-value=""]::before{display:none}.bento{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));align-items:start;margin-top:1.25rem}.bento-card{position:relative;border:1px solid var(--border);border-radius:14px;background-color:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden;font-family:var(--font-ui)}.bento-card::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,var(--accent,var(--brand)),transparent);opacity:0.7}.bento-head{display:flex;align-items:center;gap:0.6rem;padding:0.95rem 1.1rem 0.75rem}.bento-head .row-dot{width:0.55rem;height:0.55rem}.page .bento-title{margin:0;padding:0;border:0;font-size:0.98rem;font-weight:650;flex:1;color:var(--text)}.bento-title a{color:inherit;text-decoration:none}.count-badge{font-family:var(--font-mono);font-size:0.7rem;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:4px;color:var(--accent-text,var(--text-muted));background:color-mix(in srgb,var(--accent,var(--c-nc)) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent,var(--c-nc)) 28%,transparent);white-space:nowrap}.bento-desc{margin:-0.35rem 1.1rem 0.6rem;font-size:0.82rem;color:var(--text-muted)}.cmd-list{list-style:none;margin:0;padding:0.25rem 0.4rem 0.45rem;border-top:1px solid var(--border)}.cmd-row{position:relative;display:flex;align-items:center;gap:0.7rem;margin:0;padding:0.55rem 0.65rem;border-radius:8px;transition:background-color .2s var(--ease)}.cmd-row + .cmd-row{margin-top:1px}.cmd-row:hover{background-color:var(--tint)}.cmd-row .cmd-dot{width:0.4rem;height:0.4rem;border-radius:50%;flex:none;background:var(--accent,var(--c-nc));box-shadow:0 0 8px var(--accent,transparent)}.cmd-main{flex:1;min-width:0;font-size:0.9rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmd-side{display:inline-flex;align-items:center;gap:0.55rem;flex:none;color:var(--text-muted);font-size:0.75rem}.cmd-arrow{color:var(--text-muted);transition:transform .25s var(--ease),color .2s var(--ease)}.cmd-row:hover .cmd-arrow{transform:translateX(3px);color:var(--text)}.cmd-row[hidden]{display:none!important}.doc{display:grid;gap:2.5rem;grid-template-columns:minmax(0,1fr)}@media (min-width:64rem){.doc{grid-template-columns:minmax(0,46rem) 14rem;justify-content:space-between}}.doc-toc{font-family:var(--font-ui);font-size:0.85rem}@media (min-width:64rem){.doc-toc{position:sticky;top:calc(var(--header-h) + 1rem);align-self:start}}.doc-toc p{margin:0 0 0.5rem;text-transform:uppercase;letter-spacing:0.08em;font-size:0.7rem;color:var(--text-muted);font-weight:600}.doc-toc .cmd-list{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:0.3rem}.doc-toc .cmd-main{font-size:0.84rem}.panel{position:relative;margin:0 0 1rem;padding:1.25rem 1.4rem 0.4rem;border:1px solid var(--border);border-radius:14px;background-color:var(--surface);box-shadow:var(--shadow-sm)}.page .panel>h2{margin:0 0 0.75rem;padding:0;border:0;font-size:1.15rem}.panel>h3{font-size:1rem;margin-top:1.1rem}.prose .callout{margin:0 0 1rem}.page-intro .lead + .meta{margin-top:0.25rem}.roles{gap:0.6rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))!important;margin-bottom:1rem}.roles>div{padding:0.85rem 1rem;border:1px solid var(--border);border-radius:10px;background:var(--tint)}.roles dt{margin:0!important;font-size:0.82rem;text-transform:uppercase;letter-spacing:0.06em}.roles dd{margin:0.3rem 0 0;font-size:0.95rem}.error-code{font-family:var(--font-mono);font-size:0.8rem;color:var(--t-neg)}.study-bar{display:flex;flex-wrap:wrap;gap:0.5rem;align-items:center;padding:0.55rem;margin:0 0 1.5rem;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-sm)}.study-bar .sep{width:1px;align-self:stretch;background:var(--border);margin:0 0.15rem}.study-bar .btn{box-shadow:none}.study-meta{display:inline-flex;gap:0.5rem;align-items:center;padding:0 0.35rem;font-family:var(--font-ui);font-size:0.8rem;color:var(--text-muted)}@media print{.cmdk-trigger,.palette,.study-bar,.doc-toc,.filter-bar,.stats,.footer-grid,.footer-bottom{display:none!important}.panel,.bento-card,.stat{box-shadow:none}.doc{display:block}}.nav-short{display:none}@media (max-width:80rem){.nav-long{display:none}.nav-short{display:inline}}@media (max-width:72rem){.cmdk-trigger .cmdk-label{display:none}.cmdk-trigger{padding:0 0.45rem}}@media (min-width:52.01rem){.header-top{flex-wrap:nowrap}.brand{flex:none}}.bento{display:block;columns:3 20rem;column-gap:1rem}.bento>.bento-card{break-inside:avoid;margin:0 0 1rem}.bento>.bento-card[hidden]{display:none!important}.card-foot{flex-wrap:nowrap;align-items:center}.card-foot .badges{min-width:0}.card-actions{margin-left:auto;flex:none}.page h2:has(>.count-badge){display:flex;align-items:center;gap:0.6rem;flex-wrap:wrap}.chip[aria-pressed="true"]{background:var(--surface-2);color:var(--text);border-color:var(--border-strong);box-shadow:inset 0 0 0 1px var(--border-strong);font-weight:600}@media (max-width:52rem){.site-header{position:relative}html{scroll-padding-top:1rem}.breadcrumb ol{flex-wrap:nowrap;overflow:hidden;white-space:nowrap}.breadcrumb li:last-child{overflow:hidden;text-overflow:ellipsis;min-width:0}.toc{position:static}}@media (max-width:52rem){.jump{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-1rem;padding-right:1rem;-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}.jump::-webkit-scrollbar{display:none}.jump a{white-space:nowrap}}.prose p,.prose li,.prose td{overflow-wrap:break-word}.mono-badge.code{text-transform:none;letter-spacing:0}:root{--c-neg:#ec4899;--t-neg:#be185d}@media screen and (prefers-color-scheme:dark){:root:not([data-theme="light"]){--t-neg:#f9a8d4}}@media screen{:root[data-theme="dark"]{--t-neg:#f9a8d4}}.morpho-icon{width:2.4rem;height:2.4rem;flex:none;color:var(--accent,var(--c-struct));overflow:visible}.card{isolation:isolate;box-shadow:inset 0 1px 0 var(--tint),var(--shadow-sm)}.card::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--accent,var(--brand)) 11%,transparent),transparent 58%)}.card .card-icon{position:absolute;top:0.85rem;right:0.85rem;width:2.3rem;height:2.3rem;filter:drop-shadow(0 0 10px color-mix(in srgb,var(--accent,var(--brand)) 40%,transparent));transition:transform .35s var(--ease)}.card:hover .card-icon{transform:rotate(-8deg) scale(1.08)}.card:has(.card-icon) .card-title,.card:has(.card-icon) .card-desc{padding-right:2.9rem}@media (prefers-reduced-motion:reduce){.card:hover .card-icon{transform:none}}.bento-featured{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:0.9rem;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense}.bento-featured>li{margin:0}.bento-featured>li.is-hero{grid-column:span 2;grid-row:span 2}@media (max-width:64rem){.bento-featured{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:40rem){.bento-featured{grid-template-columns:minmax(0,1fr)}.bento-featured>li.is-hero{grid-column:auto;grid-row:auto}}.is-hero .card{padding:1.6rem 1.6rem 1.3rem;min-height:100%;box-shadow:inset 0 1px 0 var(--tint),0 24px 60px -30px color-mix(in srgb,var(--accent) 70%,transparent)}.is-hero .card-title{font-size:1.45rem;line-height:1.2;max-width:16ch}.is-hero .card-desc{font-size:0.95rem;max-width:36ch}.is-hero .card-icon{width:8.5rem;height:8.5rem;top:auto;bottom:3.2rem;right:1.2rem;opacity:0.95}.is-hero .card-kicker{display:inline-flex;margin-bottom:0.6rem}.card-kicker{display:none;font-family:var(--font-mono);font-size:0.68rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--accent-text)}.tools-grid{display:grid;gap:1rem;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);margin-top:1rem}@media (max-width:56rem){.tools-grid{grid-template-columns:minmax(0,1fr)}}.tool-tile{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1.4rem 1.5rem;border:1px solid var(--border);border-radius:16px;background-color:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden;isolation:isolate;font-family:var(--font-ui)}.tool-tile::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(100% 120% at 100% 50%,color-mix(in srgb,var(--accent,var(--c-struct)) 14%,transparent),transparent 60%)}.tool-tile h3{margin:0.2rem 0 0.4rem;font-size:1.15rem}.tool-tile p{margin:0 0 0.9rem;color:var(--text-muted);font-size:0.92rem}.tool-tile .morpho-icon{width:5.5rem;height:5.5rem}.course-header{position:relative}.course-art{position:absolute;top:0.2rem;right:0;width:6.5rem;height:6.5rem;opacity:0.9;filter:drop-shadow(0 0 18px color-mix(in srgb,var(--accent) 45%,transparent));pointer-events:none}@media (min-width:40rem){.course-header:has(.course-art) h1{padding-right:7rem}}@media (max-width:39.99rem){.course-art{width:3.6rem;height:3.6rem;top:-0.2rem;opacity:0.6}}.read-progress{position:fixed;inset:0 0 auto 0;height:3px;z-index:60;pointer-events:none}.read-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--c-struct),var(--accent,var(--c-pos)));box-shadow:0 0 10px var(--accent,var(--c-struct))}.study-dock{position:fixed;left:50%;bottom:1rem;z-index:55;display:flex;align-items:center;gap:0.3rem;padding:0.35rem;border:1px solid var(--border-strong);border-radius:14px;background:var(--surface-glass);-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);box-shadow:var(--shadow-md),0 0 0 1px var(--tint);font:500 0.8rem var(--font-ui);transform:translate(-50%,160%);transition:transform .4s var(--ease);max-width:calc(100vw - 1.5rem)}.study-dock.is-visible{transform:translate(-50%,0)}.dock-time{padding:0 0.6rem;color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.dock-sep{width:1px;align-self:stretch;background:var(--border);margin:0.15rem 0.1rem}.dock-btn{display:inline-flex;align-items:center;gap:0.4rem;padding:0.42rem 0.65rem;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;transition:background-color .15s var(--ease),border-color .15s var(--ease)}.dock-btn:hover{background:var(--tint)}.dock-btn[aria-pressed="true"]{background:color-mix(in srgb,var(--accent,var(--c-struct)) 14%,transparent);border-color:color-mix(in srgb,var(--accent,var(--c-struct)) 40%,transparent);color:var(--accent-text,var(--text))}.dock-btn kbd{font-family:var(--font-mono);font-size:0.66rem;padding:0 4px;border:1px solid var(--border-strong);border-radius:4px;color:var(--text-muted)}@media (max-width:40rem){.study-dock{left:0.5rem;right:0.5rem;bottom:0.5rem;transform:translateY(160%);justify-content:space-between}.study-dock.is-visible{transform:none}.dock-btn kbd,.dock-label{display:none}}.express-banner{display:none}body.mode-express .express-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem;padding:0.6rem 0.9rem;border:1px solid color-mix(in srgb,var(--c-atb) 40%,transparent);border-radius:10px;background:color-mix(in srgb,var(--c-atb) 8%,transparent);font:600 0.85rem var(--font-ui);color:var(--t-atb)}body.mode-express .course-body>section:not(.exam-box):not(:has(.table-wrap,.callout-warning)),body.mode-express .course-body>section:not(.exam-box)>:not(h2):not(.table-wrap):not(.callout-warning),body.mode-express .eeat,body.mode-express .references,body.mode-express .course .meta{display:none!important}body.mode-recall .course-body td,body.mode-recall .exam-box li,body.mode-recall .tldr li{filter:blur(6px);cursor:pointer;user-select:none;transition:filter .25s var(--ease)}body.mode-recall .course-body td.revealed,body.mode-recall .exam-box li.revealed,body.mode-recall .tldr li.revealed{filter:none;user-select:auto}body.mode-recall .course-body td:focus-visible,body.mode-recall li:focus-visible{outline:2px solid var(--c-struct)}.seg{display:inline-flex;padding:2px;border:1px solid var(--border);border-radius:10px;background:var(--tint);gap:2px;font:500 0.8rem var(--font-ui)}.seg button{padding:0.35rem 0.7rem;border:0;border-radius:8px;background:transparent;color:var(--text-muted);font:inherit;cursor:pointer;white-space:nowrap}.seg button:hover{color:var(--text)}.seg button[aria-pressed="true"]{color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm),inset 0 0 0 1px color-mix(in srgb,var(--st,var(--c-struct)) 55%,transparent)}.st-revoir{--st:var(--c-atb)}.st-encours{--st:var(--c-struct)}.st-maitrisee{--st:var(--c-gen)}.st-dot{display:inline-block;width:0.55rem;height:0.55rem;border-radius:50%;background:var(--st);box-shadow:0 0 8px var(--st);flex:none}.practice{margin-top:3rem;padding:1.4rem 1.4rem 1.2rem;border-radius:16px;border:1.5px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,linear-gradient(135deg,var(--c-gen),var(--c-struct) 50%,var(--c-pos)) border-box;box-shadow:0 20px 50px -30px color-mix(in srgb,var(--c-struct) 60%,transparent);font-family:var(--font-ui)}.course .practice h2{margin:0 0 0.4rem;padding:0;border:0;color:var(--text);font-size:1.2rem}.practice-intro{color:var(--text-muted);font-size:0.9rem;margin:0 0 1rem}.tabs{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border);border-radius:10px;background:var(--tint);margin-bottom:1rem}.tabs [role="tab"]{padding:0.4rem 0.85rem;border:0;border-radius:8px;background:transparent;color:var(--text-muted);font:600 0.82rem var(--font-ui);cursor:pointer}.tabs [role="tab"][aria-selected="true"]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.fc-stage{perspective:1400px}.fc-card{position:relative;min-height:12.5rem;transform-style:preserve-3d;transition:transform .55s var(--ease);cursor:pointer}.fc-card.is-flipped{transform:rotateY(180deg)}.fc-face{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:0.6rem;padding:1.3rem 1.4rem;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:auto}.fc-back{transform:rotateY(180deg);background:color-mix(in srgb,var(--c-gen) 8%,var(--surface));border-color:color-mix(in srgb,var(--c-gen) 35%,transparent)}.fc-label{font-family:var(--font-mono);font-size:0.68rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-muted)}.fc-text{font-family:var(--font-text);font-size:1.05rem;line-height:1.5;color:var(--text)}.cloze{display:inline-block;min-width:4.5rem;border-bottom:2px solid var(--c-struct);color:transparent}@media (prefers-reduced-motion:reduce){.fc-card{transition:none}}.practice-bar{display:flex;flex-wrap:wrap;gap:0.5rem;align-items:center;justify-content:space-between;margin-top:0.9rem}.practice-count{font-size:0.8rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.qz-q{font-family:var(--font-text);font-size:1.05rem;margin:0 0 0.8rem}.qz-ctx{display:block;font-family:var(--font-mono);font-size:0.7rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-muted);margin-bottom:0.35rem}.qz-options{display:grid;gap:0.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}.qz-opt{text-align:left;padding:0.7rem 0.9rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:500 0.9rem var(--font-ui);cursor:pointer;transition:border-color .15s var(--ease),background-color .15s var(--ease)}.qz-opt:hover:not(:disabled){border-color:var(--border-strong);background:var(--tint)}.qz-opt.is-correct{border-color:var(--res-s);background:color-mix(in srgb,var(--res-s) 10%,transparent)}.qz-opt.is-wrong{border-color:var(--res-r);background:color-mix(in srgb,var(--res-r) 10%,transparent)}.qz-score{font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums}.practice-status{display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem;margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--border);font-size:0.85rem;color:var(--text-muted)}.progress-panel{margin:1.25rem 0 0;padding:1rem 1.15rem;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm);font-family:var(--font-ui)}.progress-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0.5rem 1rem}.progress-title{margin:0;font-size:0.95rem;font-weight:600}.progress-title strong{font-variant-numeric:tabular-nums}.pbar{display:flex;height:8px;margin:0.7rem 0;border-radius:999px;background:var(--surface-2);overflow:hidden}.pbar span{height:100%;transition:width .6s var(--ease)}.pbar .p-maitrisee{background:var(--c-gen)}.pbar .p-encours{background:var(--c-struct)}.pbar .p-revoir{background:var(--c-atb)}.progress-legend{display:flex;flex-wrap:wrap;gap:0.4rem;align-items:center}.progress-legend .chip{display:inline-flex;align-items:center;gap:0.4rem}.progress-tools{display:inline-flex;gap:0.4rem}.progress-tools .btn{padding:0.35rem 0.6rem;font-size:0.78rem}.card .st-dot,.cmd-row .st-dot{margin-left:0.15rem}.kbd-help{width:min(28rem,calc(100vw - 2rem));padding:1.2rem 1.3rem;border:1px solid var(--border-strong);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:0 30px 80px -20px rgba(2,6,23,0.55);font-family:var(--font-ui)}.kbd-help::backdrop{background:rgba(2,6,23,0.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.kbd-help h2{margin:0 0 0.8rem;font-size:1rem;padding:0;border:0}.kbd-help dl{display:grid;grid-template-columns:auto 1fr;gap:0.5rem 1rem;margin:0;font-size:0.88rem}.kbd-help dd{margin:0;color:var(--text-muted)}.idb-tabs{margin-top:1.5rem}.idb{display:grid;gap:1.25rem;grid-template-columns:minmax(0,1fr);margin-top:0.5rem}@media (min-width:60rem){.idb{grid-template-columns:22rem minmax(0,1fr);align-items:start}.idb-steps{position:sticky;top:calc(var(--header-h) + 1rem)}}.idb-steps{display:grid;gap:0.75rem;font-family:var(--font-ui)}.idb-step{padding:0.9rem 1rem;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-sm)}.idb-step-head{display:flex;align-items:center;gap:0.6rem;margin-bottom:0.6rem}.idb-num{display:inline-grid;place-items:center;width:1.45rem;height:1.45rem;border-radius:50%;font:700 0.72rem var(--font-mono);background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.idb-step.is-set .idb-num{background:var(--c-struct);color:#04131a;border-color:transparent}.idb-step h3{margin:0;font-size:0.9rem;flex:1}.idb-choices{display:flex;flex-wrap:wrap;gap:0.35rem}.idb-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0.75rem;margin-bottom:0.9rem;font-family:var(--font-ui)}.idb-count{font-size:2rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-0.03em}.idb-count small{font-size:0.85rem;font-weight:500;color:var(--text-muted);letter-spacing:0}.idb-note{font-size:0.82rem;color:var(--text-muted);margin:0.6rem 0 0}.unknown{color:var(--text-muted);font-style:italic}.duel-pick{display:grid;gap:0.75rem;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;margin:1rem 0;font-family:var(--font-ui)}@media (max-width:40rem){.duel-pick{grid-template-columns:minmax(0,1fr)}}.duel-pick label{display:grid;gap:0.3rem;font-size:0.8rem;color:var(--text-muted);font-weight:600}.duel-pick select{font:500 0.95rem var(--font-ui);padding:0.6rem 0.7rem;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);color:var(--text)}.duel-vs{font:700 0.9rem var(--font-mono);color:var(--text-muted);padding-bottom:0.7rem;text-align:center}.duel-presets{display:flex;flex-wrap:wrap;gap:0.4rem;font-family:var(--font-ui)}tr.is-diff th,tr.is-diff td{background:color-mix(in srgb,var(--c-atb) 7%,transparent)}tr.is-diff th::after{content:" ≠";color:var(--t-atb);font-family:var(--font-mono)}@media print{.read-progress,.study-dock,.practice,.express-banner,.course-art,.progress-panel,.kbd-help{display:none!important}body.mode-recall .course-body td,body.mode-recall li{filter:none!important}}@media (max-width:40rem){.dock-st{display:none!important}}a.tool-tile{color:inherit;text-decoration:none}a.tool-tile:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.course-body .exam-box .key-points ul{padding-left:0}.course-body .exam-box .key-points ul>li{padding-left:1.5rem}.course-body .exam-box .key-points ul>li::before{content:"✓";left:0;top:0;width:auto;height:auto;border-radius:0;background:none;opacity:1;font-family:var(--font-ui);font-weight:700;color:var(--t-gen)}a.dock-btn{text-decoration:none}.dock-btn svg{flex:none}.btn-primary .mono-badge{color:inherit;border-color:currentColor;background:transparent;opacity:0.85}body:has(.study-dock) .site-footer{padding-bottom:4.5rem}.toc-time{font-weight:400;color:var(--text-muted);white-space:nowrap}.related{margin-top:2.5rem}@media print{.related{display:none!important}}.toc-time{font-weight:400;color:var(--text-muted);white-space:nowrap}.related{margin-top:2.5rem}@media print{.related{display:none!important}}.course-crossref{color:var(--text-muted)}.brand-mark .bm-tile{fill:#0f4c81}.brand-mark .bm-ring{fill:none;stroke:#ffffff}.brand-mark .bm-pos{fill:#cfa6ec}.brand-mark .bm-neg{fill:#f2a2c0}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .brand-mark .bm-tile{fill:#1c2a3a}:root:not([data-theme="light"]) .brand-mark .bm-ring{stroke:#8bb8e8}}:root[data-theme="dark"] .brand-mark .bm-tile{fill:#1c2a3a}:root[data-theme="dark"] .brand-mark .bm-ring{stroke:#8bb8e8}
