:root{--ivoire:#faf5ea;--ivoire-2:#f5efe0;--ivoire-3:#ede5d2;--encre:#1a1916;--encre-soft:#2e2b26;--encre-mute:#6f6a60;--terre:#a8472a;--terre-soft:#c25d3f;--terre-glow:#a8472a14;--sage:#4d6053;--sage-soft:#6f8275;--sage-glow:#4d605312;--gold:#b68b3d;--gold-soft:#d4a85c;--gold-glow:#b68b3d1f;--rule:#1a19161f;--rule-strong:#1a19163d;--font-display:"Fraunces", Georgia, serif;--font-body:"Manrope", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"JetBrains Mono", Consolas, monospace}.editorial *{box-sizing:border-box;margin:0;padding:0}.editorial{scroll-behavior:smooth;background:var(--ivoire);color:var(--encre);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:17px;font-weight:400;line-height:1.6}.editorial ::selection{background:var(--terre);color:var(--ivoire)}.editorial .topbar{z-index:100;background:var(--ivoire);border-bottom:1px solid var(--rule);-webkit-backdrop-filter:saturate(140%)blur(8px);position:sticky;top:0}.editorial .topbar-inner{justify-content:space-between;align-items:center;gap:24px;max-width:1200px;margin:0 auto;padding:14px 32px;display:flex}.editorial .wordmark{font-family:var(--font-display);letter-spacing:-.02em;font-variation-settings:"opsz" 144, "SOFT" 30;font-size:19px;font-weight:600}.editorial .wordmark em{font-variation-settings:"opsz" 144, "SOFT" 100;color:var(--terre);font-style:italic}.editorial .wordmark-sub{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.14em;color:var(--encre-mute);margin-top:2px;font-size:11px;font-weight:500;display:block}.editorial .topbar-meta{font-family:var(--font-mono);color:var(--encre-mute);text-align:right;font-size:12px;line-height:1.4}.editorial .topbar-meta strong{color:var(--encre);font-weight:500}.editorial .container{grid-template-columns:1fr minmax(0,720px) 1fr;column-gap:32px;max-width:1200px;margin:0 auto;padding:64px 32px 120px;display:grid}.editorial .content{grid-column:2}.editorial .rail-left{grid-column:1;position:relative}.editorial .rail-right{grid-column:3;position:relative}.editorial .rail-left:before{content:"";background:linear-gradient(to bottom, transparent, var(--rule-strong) 30%, var(--rule-strong) 70%, transparent);width:1px;height:240px;position:absolute;top:0;right:16px}.editorial .hero{margin-bottom:56px;position:relative}.editorial .hero-badge{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.18em;color:var(--terre);align-items:center;gap:12px;margin-bottom:32px;font-size:11px;font-weight:600;display:flex}.editorial .hero-badge:before{content:"";background:var(--terre);width:28px;height:1px}.editorial .hero-numeral{font-family:var(--font-display);letter-spacing:-.06em;color:var(--encre);font-variation-settings:"opsz" 144, "SOFT" 80;-webkit-user-select:none;user-select:none;margin-bottom:-8px;font-size:clamp(140px,22vw,220px);font-weight:300;line-height:.85}.editorial .hero-numeral em{color:var(--terre);font-variation-settings:"opsz" 144, "SOFT" 100;font-style:italic}.editorial .hero-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--encre);font-variation-settings:"opsz" 144, "SOFT" 50;max-width:18ch;margin:8px 0 24px;font-size:clamp(36px,5vw,52px);font-weight:400;line-height:1.05}.editorial .hero-meta{font-family:var(--font-mono);color:var(--encre-mute);border-top:1px solid var(--rule);flex-wrap:wrap;gap:0 28px;padding-top:20px;font-size:12px;display:flex}.editorial .hero-meta span{align-items:center;gap:8px;display:flex}.editorial .hero-meta strong{color:var(--encre);font-weight:500}.editorial .hero-meta .dot{background:var(--terre);border-radius:50%;width:4px;height:4px;display:inline-block}.editorial section{margin:56px 0}.editorial section+section{margin-top:72px}.editorial .section-head{border-bottom:1px solid var(--rule);align-items:baseline;gap:16px;margin-bottom:28px;padding-bottom:12px;display:flex}.editorial .section-num{font-family:var(--font-mono);color:var(--terre);letter-spacing:.06em;font-size:12px;font-weight:500}.editorial .section-title{font-family:var(--font-display);letter-spacing:-.015em;color:var(--encre);font-variation-settings:"opsz" 144, "SOFT" 50;font-size:24px;font-weight:500}.editorial .objectif{background:var(--ivoire-2);border-left:3px solid var(--terre);margin:40px 0 56px;padding:28px 32px;position:relative}.editorial .objectif-label{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.16em;color:var(--terre);margin-bottom:12px;font-size:11px;font-weight:700;display:block}.editorial .objectif-text{font-family:var(--font-display);color:var(--encre);font-variation-settings:"opsz" 144, "SOFT" 70;letter-spacing:-.01em;font-size:21px;font-weight:400;line-height:1.45}.editorial .objectif-text em{color:var(--terre);font-variation-settings:"opsz" 144, "SOFT" 100;font-style:italic}.editorial .prose p{color:var(--encre-soft);max-width:64ch;margin-bottom:1.2em}.editorial .prose p:first-of-type:first-letter{font-family:var(--font-display);float:left;color:var(--terre);font-variation-settings:"opsz" 144, "SOFT" 60;padding:6px 14px 0 0;font-size:4.4em;font-weight:400;line-height:.85}.editorial .prose strong{color:var(--encre);font-weight:600}.editorial .prose em{font-style:italic}.editorial .prose h3{font-family:var(--font-display);letter-spacing:-.01em;color:var(--encre);font-variation-settings:"opsz" 144, "SOFT" 60;margin:36px 0 14px;font-size:19px;font-weight:500}.editorial .prose ul,.editorial .prose ol{color:var(--encre-soft);margin:12px 0 1.2em 24px}.editorial .prose li{max-width:64ch;margin-bottom:6px}.editorial .prose code{font-family:var(--font-mono);background:var(--ivoire-2);color:var(--terre);border-radius:3px;padding:2px 7px;font-size:14px}.editorial .models{background:var(--rule);border:1px solid var(--rule);grid-template-columns:repeat(3,1fr);gap:1px;margin:32px 0;display:grid}.editorial .model-card{background:var(--ivoire);flex-direction:column;gap:8px;padding:24px 22px;display:flex}.editorial .model-card .model-tier{font-family:var(--font-mono);color:var(--encre-mute);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.editorial .model-card .model-name{font-family:var(--font-display);letter-spacing:-.01em;color:var(--encre);font-variation-settings:"opsz" 144, "SOFT" 60;font-size:22px;font-weight:500}.editorial .model-card .model-name em{color:var(--terre);font-style:italic}.editorial .model-card .model-desc{color:var(--encre-soft);margin-top:4px;font-size:14px;line-height:1.5}.editorial .model-card.is-default{background:var(--ivoire-2);position:relative}.editorial .model-card.is-default:after{content:"défaut";font-family:var(--font-mono);color:var(--gold);text-transform:uppercase;letter-spacing:.1em;font-size:10px;position:absolute;top:14px;right:14px}.editorial .cards-grid{background:var(--rule);border:1px solid var(--rule);grid-template-columns:repeat(2,1fr);gap:1px;margin:32px 0;display:grid}.editorial .info-card{background:var(--ivoire);flex-direction:column;gap:8px;padding:22px 24px;display:flex}.editorial .info-card h4{font-family:var(--font-display);color:var(--encre);letter-spacing:-.01em;font-variation-settings:"opsz" 144, "SOFT" 60;font-size:16px;font-weight:500}.editorial .info-card p{color:var(--encre-soft);font-size:14px;line-height:1.5}.editorial .steps{counter-reset:step;margin:24px 0}.editorial .step{border-bottom:1px solid var(--rule);counter-increment:step;grid-template-columns:48px 1fr;gap:20px;padding:20px 0;display:grid}.editorial .step:last-child{border-bottom:none}.editorial .step:before{content:counter(step, decimal-leading-zero);font-family:var(--font-display);color:var(--terre);font-variation-settings:"opsz" 144, "SOFT" 80;font-size:32px;font-weight:300;line-height:1}.editorial .step-body p{color:var(--encre-soft);margin:0 0 8px}.editorial .step-body p:last-child{margin-bottom:0}.editorial .step-body strong{color:var(--encre)}.editorial .step-body code{font-family:var(--font-mono);background:var(--ivoire-2);color:var(--terre);border-radius:3px;padding:2px 7px;font-size:13.5px}.editorial .os-split{grid-template-columns:1fr 1fr;gap:16px;margin-top:14px;display:grid}.editorial .os-block{background:var(--ivoire-2);border-top:2px solid var(--encre);color:var(--encre-soft);padding:16px 18px;font-size:14px;line-height:1.55}.editorial .os-block.os-mac{border-top-color:var(--encre)}.editorial .os-block.os-win{border-top-color:var(--encre-mute)}.editorial .os-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--encre);margin-bottom:8px;font-size:10px;font-weight:500;display:block}.editorial .code-block{color:#e8e2d4;font-family:var(--font-mono);background:#1a1916;border-radius:4px;margin:24px 0;padding:22px 26px;font-size:13.5px;line-height:1.65;overflow-x:auto}.editorial .code-block .c-prompt{color:#b68b3d}.editorial .code-block .c-comment{color:#6f6a60;font-style:italic}.editorial .code-block .c-good{color:#84c98a}.editorial .code-block .c-bad{color:#e07a6a}.editorial .code-block .c-key{color:#d4a85c}.editorial .callout{background:var(--gold-glow);border-left:3px solid var(--gold);margin:32px 0;padding:22px 28px}.editorial .callout-label{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.16em;color:var(--gold);margin-bottom:10px;font-size:11px;font-weight:700;display:block}.editorial .callout p{color:var(--encre-soft);margin-bottom:.6em}.editorial .callout p:last-child{margin-bottom:0}.editorial .callout strong{color:var(--encre)}.editorial .exercice{background:var(--sage-glow);border:1px solid #4d605338;margin:40px 0;padding:32px 36px;position:relative}.editorial .exercice-label{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.16em;color:var(--sage);margin-bottom:14px;font-size:11px;font-weight:700;display:block}.editorial .exercice h4{font-family:var(--font-display);color:var(--encre);font-variation-settings:"opsz" 144, "SOFT" 60;letter-spacing:-.01em;margin-bottom:14px;font-size:22px;font-weight:500;line-height:1.3}.editorial .exercice p{color:var(--encre-soft);margin-bottom:12px}.editorial .exercice-input{background:var(--ivoire);border:1px solid var(--rule);width:100%;font-family:var(--font-body);color:var(--encre);resize:vertical;min-height:110px;margin-top:12px;padding:14px 16px;font-size:15px;line-height:1.5;transition:border-color .15s}.editorial .exercice-input:focus{border-color:var(--sage);outline:none}.editorial .sources{border:1px solid var(--rule);margin:40px 0;padding:24px 28px}.editorial .sources-label{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.16em;color:var(--encre);margin-bottom:14px;font-size:11px;font-weight:700;display:block}.editorial .sources ul{list-style:none}.editorial .sources li{font-family:var(--font-mono);border-bottom:1px dotted var(--rule);color:var(--encre-mute);align-items:baseline;gap:12px;padding:8px 0;font-size:13px;display:flex}.editorial .sources li:last-child{border-bottom:none}.editorial .sources a{color:var(--encre);border-bottom:1px solid var(--terre);padding-bottom:1px;text-decoration:none;transition:color .15s}.editorial .sources a:hover{color:var(--terre)}.editorial .sources .src-note{color:var(--encre-mute);font-size:11.5px;font-style:italic}.editorial .validation{border-top:2px solid var(--encre);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-top:64px;padding-top:40px;display:flex}.editorial .validation-text{font-family:var(--font-display);color:var(--encre);font-variation-settings:"opsz" 144, "SOFT" 60;max-width:32ch;font-size:18px;line-height:1.4}.editorial .btn-validate{font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;background:var(--encre);color:var(--ivoire);cursor:pointer;border:none;justify-content:center;align-items:center;gap:12px;min-width:240px;padding:16px 28px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.editorial .btn-validate:hover{background:var(--terre)}.editorial .btn-validate.is-acquis{background:var(--gold-glow);color:var(--gold);border:1px solid var(--gold)}.editorial .btn-validate.is-acquis:hover{background:var(--ivoire);color:var(--encre-mute)}.editorial .btn-validate .check-mark{width:14px;height:14px;display:none}.editorial .btn-validate.is-acquis .check-mark{display:inline-block}.editorial .btn-validate .label-default{display:inline}.editorial .btn-validate.is-acquis .label-default,.editorial .btn-validate .label-acquis{display:none}.editorial .btn-validate.is-acquis .label-acquis{display:inline}.editorial .acquis-meta{font-family:var(--font-mono);color:var(--encre-mute);text-align:right;width:100%;margin-top:8px;font-size:11px;display:none}.editorial .acquis-meta.visible{display:block}.editorial .lesson-nav{border-top:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:24px;margin-top:64px;padding-top:32px;display:grid}.editorial .nav-link{color:var(--encre);border:1px solid var(--rule);padding:18px 22px;text-decoration:none;transition:all .2s;display:block}.editorial .nav-link:hover{border-color:var(--terre);background:var(--ivoire-2)}.editorial .nav-link.is-disabled{opacity:.4;pointer-events:none}.editorial .nav-link .nav-direction{font-family:var(--font-mono);color:var(--encre-mute);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px;font-size:11px;display:block}.editorial .nav-link .nav-title{font-family:var(--font-display);font-variation-settings:"opsz" 144, "SOFT" 60;font-size:16px;font-weight:500}.editorial .nav-link.next{text-align:right}.editorial .page-footer{border-top:1px solid var(--rule);text-align:center;font-family:var(--font-mono);color:var(--encre-mute);letter-spacing:.04em;padding:32px 0;font-size:11px}@media print{.editorial .topbar,.editorial .lesson-nav,.editorial .btn-validate,.editorial .exercice-input{display:none}.editorial{background:#fff;font-size:11pt}.editorial .container{max-width:none;padding:0}.editorial .hero-numeral{font-size:100px}.editorial .hero-title{font-size:28pt}.editorial section{page-break-inside:avoid}}@media (max-width:920px){.editorial .container{grid-template-columns:1fr;padding:40px 24px 80px}.editorial .content{grid-column:1}.editorial .rail-left,.editorial .rail-right{display:none}.editorial .models,.editorial .cards-grid,.editorial .os-split,.editorial .lesson-nav{grid-template-columns:1fr}.editorial .nav-link.next{text-align:left}.editorial .topbar-inner{flex-direction:column;align-items:flex-start;gap:8px;padding:12px 20px}.editorial .topbar-meta{text-align:left}.editorial .validation{flex-direction:column;align-items:flex-start}.editorial .btn-validate{width:100%}}
