.eiffel-terminal{--e-fond:#0b1014;--e-encre:#b8c7b6;--e-accent:#d4a24e;--e-sourdine:#7f9088;--e-filet:#2a3a3a;--e-lien:#8fb8c9;position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:100vh;background:var(--e-fond);color:var(--e-encre);font-family:var(--font-chivo-mono),monospace;line-height:1.5}.eiffel-terminal[data-theme=clair]{--e-fond:#c9c9c9;--e-encre:#1a1a1a;--e-accent:#6b1a1a;--e-sourdine:#454545;--e-filet:#8f8f8f;--e-lien:#00008b}.eiffel-terminal a{color:var(--e-lien)}.eiffel-terminal a:focus-visible,.eiffel-terminal a:hover{text-decoration:underline}.eiffel-terminal [tabindex]:focus-visible,.eiffel-terminal a:focus-visible,.eiffel-terminal button:focus-visible{outline:2px solid var(--e-accent);outline-offset:2px}.eiffel-terminal:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.04) 0,rgba(0,0,0,.04) 4px)}.eiffel-terminal[data-theme=clair]:after{display:none}@media (prefers-reduced-motion:reduce){.eiffel-terminal:after{display:none}}.eiffel-terminal .eiffel-etat{position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.5rem;padding:.75rem 1.25rem;background:var(--e-fond);border-bottom:1px solid var(--e-filet);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--e-sourdine)}.eiffel-terminal .eiffel-etat-actions{display:flex;align-items:center;gap:1rem;flex-shrink:0}.eiffel-terminal .eiffel-etat-actions a{color:var(--e-sourdine);text-decoration:none}.eiffel-terminal .eiffel-etat-actions a:focus-visible,.eiffel-terminal .eiffel-etat-actions a:hover{color:var(--e-accent);text-decoration:none}.eiffel-terminal .eiffel-bascule-theme{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:var(--e-sourdine);cursor:pointer}.eiffel-terminal .eiffel-bascule-theme:focus-visible,.eiffel-terminal .eiffel-bascule-theme:hover{color:var(--e-accent)}.eiffel-terminal .eiffel-cadre{position:relative;z-index:2;flex:1 0 auto;display:grid;grid-template-columns:280px 1fr;gap:0;align-items:start}.eiffel-terminal .eiffel-cadre>:first-child{border-right:1px solid var(--e-filet);padding:1.25rem 1rem;position:sticky;top:2.75rem;max-height:calc(100vh - 2.75rem);overflow-y:auto}@media (max-width:900px){.eiffel-terminal .eiffel-cadre{grid-template-columns:1fr}.eiffel-terminal .eiffel-cadre>:first-child{position:static;max-height:none;border-right:none;border-bottom:1px solid var(--e-filet)}.eiffel-terminal .eiffel-cadre[data-sommaire=ouvert]>:first-child{position:fixed;inset:2.75rem 0 0 0;z-index:20;background:var(--e-fond);max-height:none;overflow-y:auto}}.eiffel-terminal .eiffel-lecture{max-width:68ch;padding:1.5rem 1.25rem 3rem;margin:0 auto;font-family:var(--font-chivo),sans-serif}.eiffel-terminal .eiffel-titre-chapitre{font-family:var(--font-chivo-mono),monospace;font-weight:700;color:var(--e-accent);letter-spacing:.02em;margin:0 0 1.25rem}.eiffel-terminal .eiffel-titre-chapitre:after{content:"\2588";display:inline-block;margin-left:.35em;animation:eiffel-cursor-clignote 1.1s step-end infinite}@keyframes eiffel-cursor-clignote{0%,to{opacity:1}50%{opacity:0}}@media (prefers-reduced-motion:reduce){.eiffel-terminal .eiffel-titre-chapitre:after{animation:none;opacity:1}}.eiffel-terminal .piece{border:1px solid var(--e-filet);padding:1rem 1.1rem;margin:0 0 1.25rem;background:color-mix(in srgb,var(--e-fond) 92%,var(--e-encre) 8%)}.eiffel-terminal .piece-entete{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem;margin-bottom:.6rem;font-family:var(--font-chivo-mono),monospace;font-size:.85rem;color:var(--e-sourdine)}.eiffel-terminal .piece-medias{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem;margin:.75rem 0}.eiffel-terminal .piece-medias img,.eiffel-terminal .piece-medias video{display:block;width:100%;height:auto;border:1px solid var(--e-filet)}.eiffel-terminal .piece-metriques{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:.75rem;font-family:var(--font-chivo-mono),monospace;font-size:.78rem;color:var(--e-sourdine)}.eiffel-terminal .piece--suite{border:none;border-left:2px solid var(--e-filet);margin-left:.9rem;padding-left:1rem}.eiffel-terminal .piece--tiers{background:transparent;border-style:dashed;color:var(--e-sourdine);font-size:.92em}.eiffel-terminal .eiffel-sommaire-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.eiffel-terminal .eiffel-sommaire-lien{display:block;padding:.3rem .4rem;color:var(--e-encre);text-decoration:none;font-size:.85rem;line-height:1.4;word-break:break-word}.eiffel-terminal .eiffel-sommaire-lien:focus-visible,.eiffel-terminal .eiffel-sommaire-lien:hover{color:var(--e-accent);text-decoration:none}.eiffel-terminal .eiffel-sommaire-lien[aria-current=page]{color:var(--e-accent);background:color-mix(in srgb,var(--e-accent) 14%,transparent);font-weight:700}.eiffel-terminal .eiffel-sommaire-item--interlude{padding-left:1rem}.eiffel-terminal .eiffel-sommaire-item--interlude .eiffel-sommaire-lien{color:var(--e-sourdine);font-size:.78rem;font-style:italic}.eiffel-terminal .eiffel-sommaire-item--interlude .eiffel-sommaire-lien[aria-current=page]{color:var(--e-accent)}.eiffel-terminal .eiffel-sommaire-vide{color:var(--e-sourdine);font-size:.85rem}.eiffel-terminal .eiffel-sommaire-bouton{display:none}@media (max-width:900px){.eiffel-terminal .eiffel-sommaire-bouton{display:block;appearance:none;background:none;border:1px solid var(--e-filet);color:var(--e-encre);font:inherit;font-size:.85rem;padding:.4rem .75rem;margin-bottom:.75rem;cursor:pointer}.eiffel-terminal .eiffel-sommaire-bouton:focus-visible,.eiffel-terminal .eiffel-sommaire-bouton:hover{color:var(--e-accent);border-color:var(--e-accent)}.eiffel-terminal .eiffel-sommaire-liste{display:none}.eiffel-terminal .eiffel-sommaire[data-ouvert=true] .eiffel-sommaire-liste{display:flex;position:fixed;inset:2.75rem 0 0 0;z-index:30;margin:0;padding:1.25rem;background:var(--e-fond);overflow-y:auto}}.eiffel-terminal .eiffel-fiche{max-width:68ch;margin:0 auto;padding:1.5rem 1.25rem 0;font-family:var(--font-chivo-mono),monospace}.eiffel-terminal .eiffel-fiche-banniere{display:block;width:100%;max-height:200px;object-fit:cover;border:1px solid var(--e-filet);margin-bottom:.75rem}.eiffel-terminal .eiffel-fiche-medias{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.eiffel-terminal .eiffel-fiche-avatar{width:72px;height:72px;object-fit:cover;border:1px solid var(--e-filet);flex-shrink:0}.eiffel-terminal .eiffel-fiche-champs{margin:0;font-size:.85rem}.eiffel-terminal .eiffel-fiche-ligne{display:block;margin-bottom:.3rem}.eiffel-terminal .eiffel-fiche-ligne dd,.eiffel-terminal .eiffel-fiche-ligne dt{display:inline;margin:0}.eiffel-terminal .eiffel-fiche-ligne dt{color:var(--e-sourdine)}.eiffel-terminal .eiffel-fiche-ligne dd{margin-left:.4em;color:var(--e-encre)}.eiffel-terminal .eiffel-fiche-statut{color:var(--e-accent);font-weight:700}.eiffel-terminal .eiffel-vide{margin:0 auto;padding:2rem 1.25rem;text-align:center}.eiffel-terminal .eiffel-section-titre,.eiffel-terminal .eiffel-vide{max-width:68ch;color:var(--e-sourdine);font-family:var(--font-chivo-mono),monospace}.eiffel-terminal .eiffel-section-titre{margin:1.75rem auto .75rem;padding:0 1.25rem;font-size:.85rem;letter-spacing:.04em;text-transform:uppercase}.eiffel-terminal .eiffel-sommaire-pleine-largeur{max-width:68ch;margin:0 auto;padding:0 1.25rem 2rem}.eiffel-terminal .eiffel-entete-chapitre{margin:0 0 .4rem;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--e-sourdine)}.eiffel-terminal .eiffel-periode{margin:0 0 1.5rem;font-size:.85rem;color:var(--e-sourdine)}.eiffel-terminal .eiffel-bloc-texte{margin:0 0 1.25rem}.eiffel-terminal .eiffel-bloc-texte p{margin:0 0 1em}.eiffel-terminal .eiffel-bloc-texte p:last-child{margin-bottom:0}.eiffel-terminal .piece-texte{margin:0;white-space:pre-wrap;overflow-wrap:break-word}.eiffel-terminal .piece-medias figure{margin:0}.eiffel-terminal .piece-legende{margin-top:.3rem;font-family:var(--font-chivo-mono),monospace;font-size:.72rem;color:var(--e-sourdine)}.eiffel-terminal .eiffel-visionneuse-bouton{display:block;width:100%;padding:0;margin:0;border:1px solid var(--e-filet);background:none;cursor:zoom-in}.eiffel-terminal .eiffel-visionneuse-bouton img{display:block;width:100%;height:auto;border:none}.eiffel-terminal .eiffel-visionneuse-dialogue{padding:0;border:none;max-width:96vw;max-height:96vh;background:var(--e-fond)}.eiffel-terminal .eiffel-visionneuse-dialogue::backdrop{background:rgba(0,0,0,.85)}.eiffel-terminal .eiffel-visionneuse-dialogue img{display:block;max-width:100%;max-height:96vh;cursor:zoom-out}.eiffel-terminal .eiffel-visionneuse-fermer{position:absolute;top:.5rem;right:.5rem;z-index:1;appearance:none;border:1px solid var(--e-filet);background:var(--e-fond);color:var(--e-encre);font-family:var(--font-chivo-mono),monospace;font-size:.78rem;padding:.3rem .6rem;cursor:pointer}.eiffel-terminal .eiffel-visionneuse-fermer:focus-visible,.eiffel-terminal .eiffel-visionneuse-fermer:hover{color:var(--e-accent);border-color:var(--e-accent)}.eiffel-terminal .eiffel-navigation-chapitres{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--e-filet);font-family:var(--font-chivo-mono),monospace;font-size:.85rem}.eiffel-terminal .eiffel-nav-lien{text-decoration:none}.eiffel-terminal .eiffel-nav-lien:focus-visible,.eiffel-terminal .eiffel-nav-lien:hover{text-decoration:underline}.eiffel-terminal .eiffel-nav-lien--suivant{margin-left:auto}.eiffel-terminal .eiffel-404{max-width:68ch;margin:0 auto;padding:3rem 1.25rem;text-align:center;font-family:var(--font-chivo-mono),monospace;color:var(--e-sourdine)}.eiffel-terminal .eiffel-404 p{margin:0 0 1.25rem;color:var(--e-encre)}.eiffel-terminal .eiffel-pied{position:relative;z-index:2;padding:1rem 1.25rem;border-top:1px solid var(--e-filet);text-align:center;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--e-sourdine)}