/* ═══════════════════════════════════════════════════════════
   ORBITECH AI Academy — orbitech.css
   UNIFIED CSS: articles + nav + accessibility widget
   Dark theme · SpaceX-inspired · Apple polish
   ═══════════════════════════════════════════════════════════ */

/* ═══ NAV + FLAGS ═══ */
@font-face{font-family:"Twemoji Country Flags";unicode-range:U+1F1E6-1F1FF,U+1F3F4,U+E0062-E0063,U+E0065,U+E0067,U+E006C,U+E006E,U+E0073-E0074,U+E0077,U+E007F;src:url("https://cdn.jsdelivr.net/npm/country-flag-emoji-polyfill@0.1/dist/TwemojiCountryFlags.woff2") format("woff2");font-display:swap}
body,*{font-family:"Twemoji Country Flags","Inter","DM Sans",sans-serif}
.world-nav {
    position: sticky; top: 0; z-index: 100;
    background: rgba(250,250,249,0.55);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    border-bottom: 0.5px solid rgba(0,0,0,0.06);
}
@media (prefers-color-scheme: dark) {
    .world-nav { background: rgba(10,10,10,0.6); border-color: rgba(255,255,255,0.08); }
}
.world-nav-inner {
    max-width: 1200px; margin: 0 auto; padding: 12px 24px;
    display: flex; align-items: center; justify-content: space-between;
}
.world-nav-logo { font-family: 'DM Sans', sans-serif; font-size: 18px; font-weight: 800; color: #6366f1; text-decoration: none; }
.world-nav-logo span { color: var(--text, #1a1a1a); font-weight: 600; }
.world-nav-links { display: flex; gap: 4px; align-items: center; }
.world-nav-link {
    font-family: 'DM Sans', sans-serif; font-size: 13px; font-weight: 600;
    color: var(--text-muted, #6b6b6b); text-decoration: none;
    padding: 8px 14px; border-radius: 10px; transition: all 0.2s;
}
.world-nav-link:hover { background: rgba(99,102,241,0.08); color: #6366f1; }
.world-nav-link.active { background: rgba(99,102,241,0.12); color: #6366f1; }
.world-nav-link.cta { background: #6366f1; color: #fff; }
.world-nav-link.cta:hover { background: #5558e6; }
@media (max-width: 640px) {
    .world-nav-links { gap: 2px; }
    .world-nav-link { font-size: 11px; padding: 6px 8px; }
}



/* ═══ VIEW TRANSITIONS — SPA-like navigation, zero JS ═══ */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-fade-out 150ms ease}
::view-transition-new(root){animation:vt-fade-in 150ms ease}
@keyframes vt-fade-out{from{opacity:1}to{opacity:0}}
@keyframes vt-fade-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}

/* ═══ RESET & BASE ═══ */
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;background:#000;color:#e4e4e7;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
html{overflow-x:hidden}
a{color:#6366f1;text-decoration:none;transition:color .2s}
a:hover{color:#818cf8}
img{max-width:100%;border-radius:8px}
hr{display:none}
::selection{background:rgba(99,102,241,0.3);color:#f5f5f7}

/* ═══ HERO ═══ */
.article-hero{background:linear-gradient(160deg,#1a1040 0%,#0d0820 60%,#000 100%);padding:80px 24px 56px;text-align:center;position:relative;overflow:hidden}
.article-hero::before{content:'';position:absolute;top:-50%;left:50%;transform:translateX(-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(99,102,241,0.08) 0%,transparent 70%);pointer-events:none}
.article-hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:100px;background:linear-gradient(transparent,#000);pointer-events:none}
.hero-container{max-width:760px;margin:0 auto;position:relative;z-index:1}
.back-to-blog{display:inline-flex;align-items:center;gap:8px;color:#a1a1aa;font-size:13px;border:1px solid rgba(255,255,255,0.1);padding:8px 18px;border-radius:100px;margin-bottom:24px;transition:all .2s;backdrop-filter:blur(8px)}
.back-to-blog:hover{border-color:rgba(99,102,241,0.4);color:#fff;background:rgba(99,102,241,0.08)}
.breadcrumb{font-size:12px;color:#8b8b94;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap}
.breadcrumb a{color:#a1a1aa;transition:color .2s}
.breadcrumb a:hover{color:#6366f1}
.breadcrumb-sep{margin:0 8px;color:#3f3f46}
.article-meta{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;font-size:13px;color:#a1a1aa;margin-bottom:20px}
.type-badge{display:inline-flex;align-items:center;gap:5px;font-weight:700;padding:6px 16px;border-radius:10px;font-size:12px;letter-spacing:.4px;text-transform:uppercase;box-shadow:0 0 20px rgba(99,102,241,0.08)}
.type-cours{color:#818cf8;background:rgba(99,102,241,0.12)}
.type-quiz{color:#fbbf24;background:rgba(245,158,11,0.12)}
.type-exercice,.type-exercices{color:#4ade80;background:rgba(34,197,94,0.12)}
.type-fiche,.type-fiches{color:#38bdf8;background:rgba(59,130,246,0.12)}
.type-flashcards{color:#c084fc;background:rgba(192,132,252,0.12)}
.type-formules{color:#60a5fa;background:rgba(96,165,250,0.12)}
.type-glossaire{color:#fb923c;background:rgba(251,146,60,0.12)}
.type-annales{color:#f87171;background:rgba(248,113,113,0.12)}
.article-title{font-size:clamp(1.6rem,5vw,2.6rem);font-weight:900;line-height:1.15;color:#f5f5f7;letter-spacing:-1px;margin-bottom:16px}
.article-subtitle{font-size:17px;color:#a1a1aa;line-height:1.6;max-width:600px;margin:0 auto}

/* ═══ TABLE OF CONTENTS ═══ */
.toc{max-width:760px;margin:24px auto 32px;padding:20px 24px;background:rgba(99,102,241,0.04);border:1px solid rgba(99,102,241,0.1);border-radius:16px;backdrop-filter:blur(8px)}
.toc ol{list-style:none;margin:0;padding:0;columns:2;column-gap:24px}
.toc li{margin:0 0 8px;padding:0;break-inside:avoid}
.toc li a{display:flex;align-items:center;gap:8px;font-size:13px;color:#a1a1aa;padding:6px 12px;border-radius:8px;transition:all .2s;text-decoration:none;border:1px solid transparent}
.toc li a:hover{color:#818cf8;background:rgba(99,102,241,0.08);border-color:rgba(99,102,241,0.15);transform:translateX(3px)}
.toc li a::before{content:counter(toc-item);counter-increment:toc-item;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;background:rgba(99,102,241,0.12);color:#818cf8;border-radius:6px;font-size:11px;font-weight:700}
.toc ol{counter-reset:toc-item}
@media(max-width:600px){.toc ol{columns:1}.toc{margin:16px 12px 0;padding:16px}}

/* ═══ DISCLAIMER ═══ */
.disclaimer-banner{max-width:760px;margin:20px auto 0;padding:10px 16px;background:rgba(99,102,241,0.04);border-left:2px solid rgba(99,102,241,0.3);border-radius:0 8px 8px 0;font-size:12px;color:#8b8b94;line-height:1.5}
.disclaimer-banner i{color:rgba(99,102,241,0.5);margin-right:6px;font-size:11px}

/* ═══ CONTENT ═══ */
.article-content{max-width:760px;margin:0 auto;padding:48px 24px 60px}
.article-container{max-width:100%;overflow-wrap:break-word;word-break:break-word;overflow-x:hidden}

/* Headings */
.article-content h2{font-size:1.35rem;font-weight:800;color:#f5f5f7;margin:120px 0 28px;padding-bottom:14px;border-bottom:1px solid rgba(99,102,241,0.12);letter-spacing:-.3px;position:relative}
.article-content h2::before{content:'';position:absolute;bottom:-1px;left:0;width:40px;height:2px;background:#6366f1;border-radius:2px}
.article-content h3{font-size:1.1rem;font-weight:700;color:#d4d4d8;margin:28px 0 12px}

/* Text */
.article-content p{font-size:16.5px;line-height:1.95;color:#c8c8d0;margin-bottom:18px}
.article-content p:empty{display:none}
.article-content p:first-of-type{font-size:18px;line-height:1.85;color:#e4e4e7}
.article-content strong{color:#f0f0f3}
/* Code blocks (smartText extracts ``` triple-backticks) */
.article-content pre{display:block;padding:14px 16px;margin:18px 0;overflow-x:auto;background:rgba(15,15,25,0.92);border:1px solid rgba(99,102,241,0.18);border-radius:12px;font-family:'JetBrains Mono',monospace;font-size:13.5px;line-height:1.55;color:#e4e4e7;white-space:pre;max-width:100%}
.article-content pre code{background:transparent;padding:0;font-size:inherit;color:inherit;border-radius:0;font-family:inherit}
.article-content :not(pre)>code{font-family:'JetBrains Mono',monospace;background:rgba(99,102,241,0.1);padding:2px 6px;border-radius:4px;font-size:0.88em;color:#a78bfa}

/* Lists */
.article-content ul,.article-content ol{margin:16px 0 20px 32px;color:#c8c8d0;font-size:16.5px;line-height:1.95}
.article-content li{margin-bottom:12px;padding-left:4px}
.article-content li::marker{color:#6366f1;font-weight:700}

/* ═══ BOXES — Enhanced ═══ */
.highlight-box,.definition-box,.example-box,.warning-box,.formula-box,.step-box,.theorem-box,.exercise-box{border-radius:0 12px 12px 0;padding:20px 22px;margin:24px 0;font-size:15.5px;line-height:1.8;color:#dcdce4;position:relative;transition:transform .15s,box-shadow .15s;overflow-wrap:break-word;word-break:break-word;max-width:100%;box-sizing:border-box}
.highlight-box:hover,.definition-box:hover,.example-box:hover,.warning-box:hover,.formula-box:hover{transform:translateX(3px)}
.highlight-box{background:rgba(99,102,241,0.07);border-left:3px solid #6366f1}
.definition-box{background:rgba(139,92,246,0.07);border-left:3px solid #8b5cf6}
.example-box{background:rgba(34,197,94,0.06);border-left:3px solid #22c55e}
.warning-box{background:rgba(239,68,68,0.06);border-left:3px solid #ef4444}
.formula-box{background:rgba(59,130,246,0.06);border-left:3px solid #3b82f6}
.step-box{background:rgba(245,158,11,0.06);border-left:3px solid #f59e0b}
.theorem-box{background:rgba(139,92,246,0.06);border-left:3px solid #a78bfa}
.highlight-box p,.definition-box p,.example-box p,.warning-box p,.formula-box p,.step-box p,.theorem-box p{margin-bottom:6px;color:#dcdce4;font-size:15.5px}
.highlight-box strong{color:#818cf8}
.definition-box strong{color:#a78bfa}
.example-box strong{color:#4ade80}
.warning-box strong{color:#f87171}
.formula-box strong{color:#60a5fa}
.step-box strong{color:#fbbf24}
.theorem-box strong{color:#c084fc}

/* Lists inside boxes — mobile-first readability */
.example-box ul,.example-box ol,.step-box ol,.highlight-box ul,.warning-box ul,.theorem-box ul{margin:10px 0 6px 0;padding-left:20px;font-size:15px;line-height:1.75}
.example-box li,.step-box li,.highlight-box li,.warning-box li,.theorem-box li{margin-bottom:6px;padding-left:4px}
.example-box>p,.step-box>p,.definition-box>p,.theorem-box>p{margin:8px 0 4px 0}
.example-box li::marker{color:#4ade80}
.step-box li::marker{color:#fbbf24;font-weight:700}
.highlight-box li::marker{color:#818cf8}
.warning-box li::marker{color:#f87171}
.theorem-box li::marker{color:#c084fc}
@media(max-width:600px){.example-box ul,.step-box ol,.highlight-box ul,.warning-box ul,.theorem-box ul{padding-left:16px;font-size:13.5px}}

/* ═══ READABILITY — New structured fields ═══ */
.exercise-data{margin:8px 0 12px;padding-left:20px;font-size:14px;line-height:1.6;color:#a1a1aa;list-style:disc}
.exercise-data li{margin-bottom:4px}
.exercise-sub-questions{margin:8px 0 12px;padding-left:20px;font-size:14.5px;line-height:1.7;color:#dcdce4}
.exercise-sub-questions li{margin-bottom:6px}
.fiche-tip{color:#8b8b94;font-style:italic;font-size:12px}
.glossary-keypoint{margin:6px 0 0;font-size:12.5px}
.glossary-keypoint strong{color:#fb923c;font-weight:600}
.quiz-wrong-reason{font-size:13px;color:#f87171;margin-top:4px}
.qa-quote{font-size:12px;color:#8b8b94;border-left:2px solid rgba(99,102,241,0.3);padding:4px 10px;margin:0 0 8px;background:rgba(99,102,241,0.03);border-radius:0 6px 6px 0}
.flashcard-detail{font-size:11.5px;color:#8b8b94;margin-top:4px;font-style:italic}
@media(max-width:600px){.exercise-data{padding-left:16px;font-size:13px}.exercise-sub-questions{padding-left:16px;font-size:13.5px}}

/* ═══ GFM ALERTS (marked-alert) ═══ */
.markdown-alert{border-radius:0 12px 12px 0;padding:20px 22px;margin:24px 0;font-size:15.5px;line-height:1.8;color:#dcdce4;position:relative;transition:transform .15s,box-shadow .15s}
.markdown-alert:hover{transform:translateX(3px)}
.markdown-alert-title{font-weight:700;margin-bottom:8px;font-size:14px;display:flex;align-items:center;gap:8px}
.markdown-alert-title svg{flex-shrink:0}
.markdown-alert p{margin-bottom:6px;color:#dcdce4;font-size:15.5px}
.markdown-alert-note{background:rgba(99,102,241,0.07);border-left:3px solid #6366f1}
.markdown-alert-note .markdown-alert-title{color:#818cf8}
.markdown-alert-note .markdown-alert-title svg{fill:#818cf8}
.markdown-alert-tip{background:rgba(34,197,94,0.06);border-left:3px solid #22c55e}
.markdown-alert-tip .markdown-alert-title{color:#4ade80}
.markdown-alert-tip .markdown-alert-title svg{fill:#4ade80}
.markdown-alert-important{background:rgba(139,92,246,0.07);border-left:3px solid #8b5cf6}
.markdown-alert-important .markdown-alert-title{color:#a78bfa}
.markdown-alert-important .markdown-alert-title svg{fill:#a78bfa}
.markdown-alert-warning{background:rgba(245,158,11,0.06);border-left:3px solid #f59e0b}
.markdown-alert-warning .markdown-alert-title{color:#fbbf24}
.markdown-alert-warning .markdown-alert-title svg{fill:#fbbf24}
.markdown-alert-caution{background:rgba(239,68,68,0.06);border-left:3px solid #ef4444}
.markdown-alert-caution .markdown-alert-title{color:#f87171}
.markdown-alert-caution .markdown-alert-title svg{fill:#f87171}

/* ═══ ADMONITIONS (marked-admonition-extension) ═══ */
.admonition{border-radius:0 12px 12px 0;padding:20px 22px;margin:24px 0;font-size:15.5px;line-height:1.8;color:#dcdce4;position:relative;transition:transform .15s,box-shadow .15s}
.admonition:hover{transform:translateX(3px)}
.admonition-title{font-weight:700;margin-bottom:8px;font-size:14px;text-transform:uppercase;letter-spacing:.4px}
.admonition p{margin-bottom:6px;color:#dcdce4;font-size:15.5px}
.admonition.admonition-note,.admonition.admonition-info{background:rgba(99,102,241,0.07);border-left:3px solid #6366f1}
.admonition.admonition-note .admonition-title,.admonition.admonition-info .admonition-title{color:#818cf8}
.admonition.admonition-tip,.admonition.admonition-hint,.admonition.admonition-success{background:rgba(34,197,94,0.06);border-left:3px solid #22c55e}
.admonition.admonition-tip .admonition-title,.admonition.admonition-hint .admonition-title,.admonition.admonition-success .admonition-title{color:#4ade80}
.admonition.admonition-warning,.admonition.admonition-caution,.admonition.admonition-attention{background:rgba(245,158,11,0.06);border-left:3px solid #f59e0b}
.admonition.admonition-warning .admonition-title,.admonition.admonition-caution .admonition-title,.admonition.admonition-attention .admonition-title{color:#fbbf24}
.admonition.admonition-danger,.admonition.admonition-error{background:rgba(239,68,68,0.06);border-left:3px solid #ef4444}
.admonition.admonition-danger .admonition-title,.admonition.admonition-error .admonition-title{color:#f87171}
.admonition.admonition-example{background:rgba(139,92,246,0.06);border-left:3px solid #8b5cf6}
.admonition.admonition-example .admonition-title{color:#a78bfa}
.admonition.admonition-question{background:rgba(56,189,248,0.06);border-left:3px solid #38bdf8}
.admonition.admonition-question .admonition-title{color:#38bdf8}

/* ═══ TABLE — Enhanced ═══ */
.formulas-table,div:has(>table){overflow-x:auto;-webkit-overflow-scrolling:touch;margin:24px 0;border-radius:12px;scrollbar-width:thin;scrollbar-color:rgba(99,102,241,0.3) transparent}
.formulas-table::-webkit-scrollbar,div:has(>table)::-webkit-scrollbar{height:6px}
.formulas-table::-webkit-scrollbar-track,div:has(>table)::-webkit-scrollbar-track{background:transparent}
.formulas-table::-webkit-scrollbar-thumb,div:has(>table)::-webkit-scrollbar-thumb{background:rgba(99,102,241,0.3);border-radius:3px}
.formulas-table::-webkit-scrollbar-thumb:hover,div:has(>table)::-webkit-scrollbar-thumb:hover{background:rgba(99,102,241,0.5)}
.article-container table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(99,102,241,0.3) transparent}
table{width:100%;border-collapse:collapse;font-size:14px;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,0.06);min-width:500px}
th{background:rgba(99,102,241,0.1);padding:13px 16px;text-align:left;font-weight:700;color:#e4e4e7;font-size:12px;text-transform:uppercase;letter-spacing:.6px}
td{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,0.04);color:#a1a1aa;transition:background .15s}
tr:nth-child(even) td{background:rgba(255,255,255,0.015)}
tr:hover td{background:rgba(99,102,241,0.04)}

/* ═══ CODE ═══ */
code{background:rgba(255,255,255,0.06);padding:2px 7px;border-radius:5px;font-size:13px;font-family:'JetBrains Mono',monospace;color:#a78bfa}
pre{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:20px;margin:20px 0;overflow-x:auto}
pre code{background:none;padding:0}

/* ═══ KATEX ═══ */
.katex{font-size:1.05em;overflow-wrap:break-word}
.katex-display{margin:24px 0;overflow-x:auto;padding:12px 0;max-width:100%}
.math-block,.math-inline{max-width:100%;overflow-x:auto;display:inline-block}
/* Force display math inside paragraphs to render inline */
p .katex-display{display:inline;margin:0;padding:0;text-align:left}
p .katex-display>.katex{display:inline}
li .katex-display{display:inline;margin:0;padding:0}
li .katex-display>.katex{display:inline}

/* ═══ FLASHCARD CARDS (details/summary flip) ═══ */
details.flashcard{margin:16px 0;background:linear-gradient(135deg,rgba(192,132,252,0.06) 0%,rgba(139,92,246,0.03) 100%);border:1px solid rgba(192,132,252,0.15);border-radius:16px;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}
details.flashcard:hover{border-color:rgba(192,132,252,0.3);transform:translateY(-2px);box-shadow:0 8px 30px rgba(192,132,252,0.1)}
details.flashcard summary{padding:20px 24px;cursor:pointer;font-size:16px;font-weight:600;color:#c084fc;list-style:none;display:flex;align-items:center;gap:10px;transition:background .2s;line-height:1.6}
details.flashcard summary::-webkit-details-marker{display:none}
details.flashcard summary::before{content:'❓';font-size:18px;flex-shrink:0}
details.flashcard[open] summary::before{content:'💡'}
details.flashcard summary:hover{background:rgba(192,132,252,0.06)}
details.flashcard>p{padding:20px 24px;margin:0;font-size:15px;line-height:1.8;color:#dcdce4;border-top:1px solid rgba(192,132,252,0.1);background:rgba(192,132,252,0.03)}
details.flashcard[open]{background:linear-gradient(135deg,rgba(192,132,252,0.08) 0%,rgba(139,92,246,0.05) 100%);border-color:rgba(192,132,252,0.25)}

/* ═══ DETAILS/SUMMARY (Quiz reveal) ═══ */
details{margin:16px 0;background:rgba(251,191,36,0.04);border:1px solid rgba(251,191,36,0.12);border-radius:12px;overflow:hidden;transition:all .2s}
details:hover{border-color:rgba(251,191,36,0.25)}
details summary{padding:14px 20px;cursor:pointer;font-size:14px;font-weight:600;color:#fbbf24;list-style:none;display:flex;align-items:center;gap:8px;transition:background .2s}
details summary::-webkit-details-marker{display:none}
details summary::before{content:'▶';font-size:10px;transition:transform .2s}
details[open] summary::before{transform:rotate(90deg)}
details summary:hover{background:rgba(251,191,36,0.06)}
details>*:not(summary){padding:16px 20px;font-size:15px;line-height:1.8;color:#dcdce4}
details[open]{background:rgba(251,191,36,0.06);border-color:rgba(251,191,36,0.2)}

/* ═══ CHECKLIST ═══ */
.checklist{list-style:none;margin:16px 0;padding:0}
.checklist li{padding:14px 20px;margin-bottom:10px;background:rgba(34,197,94,0.04);border:1px solid rgba(34,197,94,0.1);border-radius:10px;font-size:15px;line-height:1.7;color:#dcdce4;transition:all .2s}
.checklist li:empty,li:empty,ul>li:empty,ol>li:empty{display:none}
.checklist li:hover{background:rgba(34,197,94,0.08);border-left-color:#4ade80;transform:translateX(3px)}

/* ═══ SOURCES ═══ */
.article-content h2#section-sources~p{font-size:13px;line-height:2.8;color:#8b8b94}
.article-content p a[href^="http"]{color:#818cf8;word-break:break-all;transition:color .2s}
.article-content p a[href^="http"]:hover{color:#a5b4fc}

/* ═══ CTA EXPLORE ═══ */
.cta-explore{max-width:760px;margin:32px auto 0;padding:28px 32px;background:linear-gradient(135deg,rgba(99,102,241,0.06) 0%,rgba(139,92,246,0.04) 100%);border:1px solid rgba(99,102,241,0.1);border-radius:16px;text-align:center;transition:border-color .2s}
.cta-explore:hover{border-color:rgba(99,102,241,0.25)}
.cta-explore p{font-size:14px;color:#a1a1aa;margin:0}
.cta-explore a{color:#818cf8;font-weight:700;transition:all .2s;padding:6px 16px;border-radius:8px}
.cta-explore a:hover{color:#fff;background:rgba(99,102,241,0.15);text-decoration:none}

/* ═══ SMOOTH SCROLL ═══ */
html{scroll-behavior:smooth}


/* ═══════════════════════════════════════════════════════════
   REVEAL SYSTEM (click/tap to reveal)
   ═══════════════════════════════════════════════════════════ */

/* ── Flashcards — blur to clear ── */
.format-flashcards li.revealed,.format-flashcards li.revealed p{color:#d4d4d8!important;text-shadow:none!important}
.format-flashcards li.revealed{border-color:rgba(192,132,252,0.3)!important;background:linear-gradient(135deg,rgba(192,132,252,0.08) 0%,rgba(139,92,246,0.04) 100%)!important;box-shadow:0 8px 30px rgba(192,132,252,0.12)!important}
.format-flashcards li.revealed::after{opacity:0!important}

/* ── Quiz — handled by quizdown.js, no custom reveal needed ── */

/* ── Exercices — blur only the LAST ol (exercise section), not educational ol ── */
.format-exercices .article-container li{cursor:pointer;position:relative}
/* TOC counter override is below in the unified block */
/* Kill format-specific counters/badges/reveals in TOC — the TOC already has its own counter via .toc li a::before */
.toc ol>li::before{content:none!important;display:none!important}
.toc ol>li::after{content:none!important;display:none!important}
.toc ol>li{counter-increment:none!important;background:transparent!important;border-color:transparent!important;padding:0!important;margin:0 0 8px!important;color:#a1a1aa!important;text-shadow:none!important;cursor:default!important}

/* Exercices reveal — scoped to article-container to avoid TOC */
.format-exercices .article-container ol:last-of-type>li:not(.revealed){color:transparent;text-shadow:0 0 8px rgba(34,197,94,0.3)}
.format-exercices .article-container ol:last-of-type>li:not(.revealed) strong{text-shadow:none;color:#4ade80}
.format-exercices .article-container ol:last-of-type>li:not(.revealed)::after{content:'tap to reveal';position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:10px;color:rgba(34,197,94,0.25);letter-spacing:.5px;text-shadow:none}
.format-exercices .article-container ol:last-of-type>li:hover,.format-exercices .article-container ol:last-of-type>li.revealed{color:#d4d4d8!important;text-shadow:none!important;border-color:rgba(34,197,94,0.3)!important;background:rgba(34,197,94,0.06)!important}
.format-exercices .article-container ol:last-of-type>li:hover::after,.format-exercices .article-container ol:last-of-type>li.revealed::after{opacity:0!important}
.format-exercices .article-container li.revealed{border-color:rgba(34,197,94,0.3)!important;background:rgba(34,197,94,0.06)!important;box-shadow:0 0 20px rgba(34,197,94,0.08)!important}

/* ── Annales — no blur (mixed educational + exercise content), click highlight only ── */
.format-annales .article-content li{cursor:pointer;position:relative}
.format-annales .article-content li.revealed{border-color:rgba(248,113,113,0.3)!important;background:rgba(248,113,113,0.06)!important;box-shadow:0 0 20px rgba(248,113,113,0.08)!important}
.format-annales .article-content li.revealed::after{content:'✓';position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:16px;color:#f87171}

/* ═══ FOOTER CARD ═══ */
.article-footer-card{max-width:760px;margin:0 auto;padding:24px;border-top:1px solid rgba(255,255,255,0.06);text-align:center}
.footer-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px;justify-content:center}
.footer-action-btn{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);color:#a1a1aa;padding:10px 18px;border-radius:10px;font-size:13px;font-family:inherit;cursor:pointer;transition:all .2s}
.footer-action-btn:hover{border-color:rgba(99,102,241,0.3);color:#6366f1;transform:translateY(-1px)}
.article-license{font-size:12px;color:#3f3f46;text-align:center;margin-top:8px}

/* ═══ FOOTER ═══ */
footer{text-align:center;padding:40px 24px;font-size:13px;color:#8b8b94;border-top:1px solid rgba(255,255,255,0.04)}
footer a{color:#8b8b94;text-decoration:none}
footer a:hover{color:#6366f1}

/* ═══ COLORBLIND ═══ */
#colorblind-filters{display:none}


/* ═══════════════════════════════════════════════════════════
   FORMAT-SPECIFIC STYLES
   ═══════════════════════════════════════════════════════════ */

/* ── COURS — Rich educational article (default) ── */
.format-cours .article-hero{background:linear-gradient(160deg,#1a1040 0%,#0d0820 60%,#000 100%)}

/* ── FICHES — Compact revision sheet ── */
.format-fiches .article-hero{background:linear-gradient(160deg,#0a1628 0%,#071020 60%,#000 100%)}
.format-fiches .article-hero::before{background:radial-gradient(circle,rgba(56,189,248,0.08) 0%,transparent 70%)}
.format-fiches .article-content{padding:28px 24px 48px;max-width:820px}
.format-fiches .article-content h2{font-size:12px;margin:72px 0 20px;border-bottom-color:rgba(56,189,248,0.2);color:#38bdf8;text-transform:uppercase;letter-spacing:.8px}
.format-fiches .article-content h2::before{background:#38bdf8}
.format-fiches .article-content p{font-size:14.5px;line-height:1.75;margin-bottom:16px;color:#a8b2c0}
.format-fiches .article-content p:first-of-type{font-size:14px;color:#94a3b8}
.format-fiches .highlight-box,.format-fiches .definition-box,.format-fiches .example-box,.format-fiches .warning-box{padding:16px 20px;margin:20px 0;font-size:14px;line-height:1.7;border-radius:0 10px 10px 0}
.format-fiches .highlight-box{border-left-color:#38bdf8;background:rgba(56,189,248,0.05)}
.format-fiches .highlight-box strong{color:#38bdf8}
.format-fiches .definition-box{border-left-color:#818cf8;background:rgba(99,102,241,0.05)}
.format-fiches .definition-box strong{color:#818cf8}
.format-fiches .example-box strong{color:#4ade80}
.format-fiches .warning-box strong{color:#f87171}
.format-fiches table{font-size:12px;border-color:rgba(56,189,248,0.1)}
.format-fiches th{padding:8px 12px;font-size:11px;background:rgba(56,189,248,0.08);color:#38bdf8}
.format-fiches td{padding:8px 12px}
.format-fiches ul,.format-fiches ol{font-size:14.5px;line-height:1.75;margin:16px 0 20px 24px}
.format-fiches li{margin-bottom:12px;padding-left:4px}
.format-fiches li strong{color:#38bdf8}
.format-fiches strong{color:#cbd5e1}
/* ── Fiches "Points clés" timeline (dl/dt/dd) ── */
.format-fiches .key-facts{margin:48px 0 32px;padding:28px 24px;background:rgba(15,22,40,0.5);border:1px solid rgba(56,189,248,0.18);border-radius:16px}
.format-fiches .key-facts h2{margin:0 0 20px;padding:0;border:none;font-size:12px;color:#38bdf8;text-transform:uppercase;letter-spacing:1px}
.format-fiches .key-facts h2::before{display:none}
.format-fiches .key-facts dl{margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:0;position:relative}
.format-fiches .key-facts dl::before{content:'';position:absolute;left:11px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,rgba(56,189,248,0.4) 0%,rgba(56,189,248,0.1) 100%);border-radius:1px}
.format-fiches .key-facts dt{position:relative;margin:14px 0 4px;padding-left:32px;font-size:13px;font-weight:700;color:#38bdf8;letter-spacing:.2px}
.format-fiches .key-facts dt::before{content:'';position:absolute;left:5px;top:50%;transform:translateY(-50%);width:14px;height:14px;background:#0a1628;border:2px solid #38bdf8;border-radius:50%;box-shadow:0 0 0 3px rgba(56,189,248,0.08)}
.format-fiches .key-facts dt:first-of-type{margin-top:0}
.format-fiches .key-facts dd{margin:0 0 6px 32px;padding:0 0 10px;font-size:14px;line-height:1.65;color:#cbd5e1;border-bottom:1px dashed rgba(56,189,248,0.08)}
.format-fiches .key-facts dd:last-child{border-bottom:none;padding-bottom:0}

/* ── QUIZ — Question/answer feel ── */
.format-quiz .article-hero{background:linear-gradient(160deg,#1a1400 0%,#0d0a00 60%,#000 100%)}
.format-quiz .article-hero::before{background:radial-gradient(circle,rgba(251,191,36,0.08) 0%,transparent 70%)}
.format-quiz .article-content h2{border-bottom-color:rgba(251,191,36,0.2);color:#fbbf24}
.format-quiz .article-content h2::before{background:#fbbf24}
.format-quiz .highlight-box{background:rgba(251,191,36,0.06);border-left:4px solid #f59e0b;border-radius:0 14px 14px 0;padding:20px 24px}
.format-quiz .highlight-box strong{color:#fbbf24}
.format-quiz .example-box{background:rgba(34,197,94,0.06);border-left:4px solid #22c55e;border-radius:0 14px 14px 0;padding:20px 24px}
.format-quiz .example-box strong{color:#4ade80}
.format-quiz .definition-box{background:rgba(251,191,36,0.05);border-left:4px solid #fbbf24;border-radius:0 14px 14px 0;padding:20px 24px}
.format-quiz .warning-box{border-left:4px solid #ef4444;border-radius:0 14px 14px 0;padding:20px 24px}
/* Quiz lists handled by quizdown.js */
.format-quiz .article-content p:first-of-type{font-size:15px;color:#a1a1aa}
.format-quiz .article-content h2:last-of-type{color:#22c55e;border-bottom-color:rgba(34,197,94,0.2)}
.format-quiz .article-content h2:last-of-type::before{background:#22c55e}

/* ── EXERCICES — Practice / workout ── */
.format-exercices .article-hero{background:linear-gradient(160deg,#0a1a0a 0%,#050d05 60%,#000 100%)}
.format-exercices .article-hero::before{background:radial-gradient(circle,rgba(34,197,94,0.08) 0%,transparent 70%)}
.format-exercices .article-content h2{border-bottom-color:rgba(74,222,128,0.2);color:#4ade80}
.format-exercices .article-content h2::before{background:#22c55e}
.format-exercices .highlight-box{background:rgba(34,197,94,0.06);border-left:4px solid #22c55e;border-radius:0 14px 14px 0}
.format-exercices .highlight-box strong{color:#4ade80}
.format-exercices .example-box{background:rgba(59,130,246,0.06);border-left:4px solid #3b82f6;border-radius:0 14px 14px 0}
.format-exercices .definition-box{background:rgba(34,197,94,0.04);border-left:4px solid #22c55e}
/* Exercices ol — no custom counter to avoid TOC conflicts */
/* KILLED: bogus border-top on every h3/h4 that created spurious horizontal lines inside each exercise */
.format-exercices .article-content p:first-of-type{font-size:15px;color:#a1a1aa}
/* ── Bento cards for each exercise — clear separation, each in its own wrapper ── */
.format-exercices .article-content{counter-reset:exercise-counter}
.format-exercices .article-content section.exercise{counter-increment:exercise-counter;position:relative;margin:56px 0;padding:34px 30px 30px;background:rgba(15,25,15,0.45);border:1px solid rgba(34,197,94,0.18);border-radius:20px;box-shadow:0 1px 0 rgba(255,255,255,0.02) inset,0 8px 24px rgba(0,0,0,0.25)}
.format-exercices .article-content section.exercise:first-of-type{margin-top:32px}
.format-exercices .article-content section.exercise::before{content:'Exercice ' counter(exercise-counter);position:absolute;top:-13px;left:24px;padding:4px 14px;background:linear-gradient(135deg,rgba(15,25,15,0.98) 0%,rgba(10,20,10,0.98) 100%);color:#4ade80;border:1px solid rgba(34,197,94,0.4);border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;box-shadow:0 2px 8px rgba(0,0,0,0.4)}
.format-exercices .article-content section.exercise .exercise-head{margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid rgba(34,197,94,0.12)}
.format-exercices .article-content section.exercise h2{margin:0;padding:0;border:none;font-size:1.25rem;color:#4ade80;letter-spacing:-.2px}
.format-exercices .article-content section.exercise h2::before{display:none}
.format-exercices .article-content section.exercise h3{margin:18px 0 8px;padding:0;border:none;font-size:12px;font-weight:700;color:#86efac;text-transform:uppercase;letter-spacing:.8px;display:flex;align-items:center;gap:8px}
.format-exercices .article-content section.exercise h3::before{display:none}
.format-exercices .article-content section.exercise .exercise-problem{margin:0 0 18px;font-size:15.5px;line-height:1.75;color:#dcdce4}
.format-exercices .article-content section.exercise .exercise-problem p{margin:0}
.format-exercices .article-content section.exercise details.exercise-solution{margin-top:18px;padding:0;background:none;border:none;border-top:1px dashed rgba(34,197,94,0.2);padding-top:18px}
.format-exercices .article-content section.exercise details.exercise-solution summary{font-weight:700;color:#4ade80;cursor:pointer;padding:10px 14px;background:rgba(34,197,94,0.08);border:1px solid rgba(34,197,94,0.2);border-radius:10px;list-style:none;font-size:13px;text-transform:uppercase;letter-spacing:.6px}
.format-exercices .article-content section.exercise details.exercise-solution summary::-webkit-details-marker{display:none}
.format-exercices .article-content section.exercise details.exercise-solution[open] summary{margin-bottom:14px}
.format-exercices .article-content section.exercise .exercise-steps{margin:14px 0 0;padding-left:22px}
.format-exercices .article-content section.exercise .exercise-steps li{margin-bottom:14px;padding-left:6px;line-height:1.75}
.format-exercices .article-content section.exercise .exercise-answer{margin-top:18px;padding:12px 16px;background:rgba(34,197,94,0.08);border-left:3px solid #22c55e;border-radius:8px;color:#bbf7d0}
.format-exercices .article-content section.exercise .exercise-verification{margin-top:12px}
/* Kill the old special-case h2 rule (was flood-specific, now broken by our card wrapper) */
.format-exercices .article-content h2:nth-last-of-type(2){background:none;margin:0;padding:0;border:none;font-size:inherit}
.format-exercices .article-content h2:nth-last-of-type(2)::before{display:none}
.format-exercices .article-container ul{list-style:none;margin-left:0;padding-left:0}
.format-exercices .article-container ul>li{padding:14px 18px;margin-bottom:10px;background:rgba(34,197,94,0.02);border:1px solid rgba(34,197,94,0.06);border-radius:10px;transition:all .2s;position:relative;padding-left:20px}
.format-exercices .article-container ul>li:hover{border-color:rgba(34,197,94,0.15);background:rgba(34,197,94,0.05)}
.format-exercices .article-container ul>li::marker{content:""}
.format-exercices .article-container ul>li strong{color:#4ade80}
.format-exercices .warning-box{border-left:4px solid #ef4444;border-radius:0 14px 14px 0;background:rgba(239,68,68,0.06)}
.format-exercices table{border-color:rgba(34,197,94,0.1)}
.format-exercices th{background:rgba(34,197,94,0.1);color:#4ade80;font-size:11px}
/* (old h2:nth-last-of-type hack removed — replaced by the section.exercise bento card above) */

/* ── FLASHCARDS — Card-like blocks ── */
.format-flashcards .article-hero{background:linear-gradient(160deg,#1a0a28 0%,#0d0518 60%,#000 100%)}
.format-flashcards .article-hero::before{background:radial-gradient(circle,rgba(192,132,252,0.1) 0%,transparent 70%)}
.format-flashcards .article-content h2{font-size:11px;border-bottom:none;margin:36px 0 16px;color:#c084fc;text-transform:uppercase;letter-spacing:1px;padding-bottom:0}
.format-flashcards .article-content h2::before{display:none}
.format-flashcards .article-content h2::after{content:'';display:block;width:30px;height:2px;background:#c084fc;margin-top:8px;border-radius:2px}
.format-flashcards .article-content p{font-size:14px;line-height:1.7}
.format-flashcards .article-content p:first-of-type{font-size:14px;color:#a1a1aa}
.format-flashcards .highlight-box,.format-flashcards .definition-box{background:rgba(192,132,252,0.04);border:1px solid rgba(192,132,252,0.12);border-left:4px solid #c084fc;border-radius:16px;padding:24px;margin:16px 0;transition:all .25s cubic-bezier(.4,0,.2,1)}
.format-flashcards .highlight-box:hover,.format-flashcards .definition-box:hover{transform:translateY(-4px) scale(1.005);box-shadow:0 12px 40px rgba(192,132,252,0.15);border-color:rgba(192,132,252,0.3)}
.format-flashcards .highlight-box strong{color:#c084fc}
.format-flashcards .definition-box strong{color:#a78bfa}
.format-flashcards .example-box{background:rgba(34,197,94,0.03);border:1px solid rgba(34,197,94,0.1);border-left:4px solid #22c55e;border-radius:16px;padding:24px;margin:16px 0;transition:all .25s cubic-bezier(.4,0,.2,1)}
.format-flashcards .example-box:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(34,197,94,0.1)}
.format-flashcards .example-box strong{color:#4ade80}
.format-flashcards .warning-box{border:1px solid rgba(239,68,68,0.1);border-left:4px solid #ef4444;border-radius:16px;padding:24px;margin:16px 0;transition:all .25s}
.format-flashcards .warning-box:hover{transform:translateY(-2px)}
.format-flashcards .warning-box strong{color:#f87171}
.format-flashcards .formula-box{background:rgba(59,130,246,0.03);border:1px solid rgba(59,130,246,0.1);border-left:4px solid #3b82f6;border-radius:16px;padding:24px;margin:16px 0;transition:all .25s}
.format-flashcards .formula-box:hover{transform:translateY(-2px)}
.format-flashcards ul{list-style:none;margin:12px 0;padding:0}
.format-flashcards ul>li{padding:18px 22px;margin-bottom:12px;background:linear-gradient(135deg,rgba(192,132,252,0.04) 0%,rgba(139,92,246,0.02) 100%);border:1px solid rgba(192,132,252,0.1);border-radius:14px;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative;color:transparent;text-shadow:0 0 8px rgba(192,132,252,0.3)}
.format-flashcards ul>li::after{content:'hover to reveal';position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:10px;color:rgba(192,132,252,0.25);letter-spacing:.5px;text-shadow:none;transition:opacity .3s}
.format-flashcards ul>li strong{color:#c084fc;text-shadow:none;font-size:15px}
.format-flashcards ul>li:hover,.format-flashcards ul>li.revealed{color:#d4d4d8;text-shadow:none;border-color:rgba(192,132,252,0.3);background:linear-gradient(135deg,rgba(192,132,252,0.08) 0%,rgba(139,92,246,0.04) 100%);box-shadow:0 8px 30px rgba(192,132,252,0.12);transform:translateY(-3px)}
.format-flashcards ul>li:hover::after,.format-flashcards ul>li.revealed::after{opacity:0}
.format-flashcards ul>li p{color:inherit;text-shadow:inherit}
.format-flashcards ol{list-style:none;counter-reset:fc-counter;margin:12px 0;padding:0}
.format-flashcards ol>li{counter-increment:fc-counter;padding:18px 22px 18px 52px;margin-bottom:12px;background:linear-gradient(135deg,rgba(192,132,252,0.04) 0%,rgba(139,92,246,0.02) 100%);border:1px solid rgba(192,132,252,0.1);border-radius:14px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;color:transparent;text-shadow:0 0 8px rgba(192,132,252,0.3)}
.format-flashcards ol>li::before{content:counter(fc-counter);position:absolute;left:16px;top:18px;width:24px;height:24px;background:#c084fc;color:#000;font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center;border-radius:50%;text-shadow:none}
.format-flashcards ol>li::after{content:'hover to reveal';position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:10px;color:rgba(192,132,252,0.25);letter-spacing:.5px;text-shadow:none;transition:opacity .3s}
.format-flashcards ol>li strong{color:#c084fc;text-shadow:none;font-size:15px}
.format-flashcards ol>li:hover,.format-flashcards ol>li.revealed{color:#d4d4d8;text-shadow:none;border-color:rgba(192,132,252,0.3);background:linear-gradient(135deg,rgba(192,132,252,0.08) 0%,rgba(139,92,246,0.04) 100%);box-shadow:0 8px 30px rgba(192,132,252,0.12);transform:translateY(-3px)}
.format-flashcards ol>li:hover::after,.format-flashcards ol>li.revealed::after{opacity:0}
.format-flashcards ol>li p{color:inherit;text-shadow:inherit}
.format-flashcards table{border-color:rgba(192,132,252,0.1)}
.format-flashcards th{background:rgba(192,132,252,0.08);color:#c084fc;font-size:11px}

/* ── FORMULES — Clean, math-focused ── */
.format-formules .article-hero{background:linear-gradient(160deg,#0a0a1a 0%,#050518 60%,#000 100%)}
.format-formules .article-hero::before{background:radial-gradient(circle,rgba(59,130,246,0.08) 0%,transparent 70%)}
.format-formules .article-content{max-width:700px}
.format-formules .article-content h2{border-bottom-color:rgba(96,165,250,0.15);color:#60a5fa;font-size:1.1rem}
.format-formules .article-content h2::before{background:#3b82f6}
.format-formules .article-content p{font-size:14px;line-height:1.7;color:#94a3b8}
.format-formules .article-content p:first-of-type{font-size:14px;color:#94a3b8}
.format-formules .katex-display{background:rgba(59,130,246,0.04);border:1px solid rgba(59,130,246,0.12);border-radius:14px;padding:24px 20px;margin:28px 0;text-align:center;box-shadow:0 4px 20px rgba(59,130,246,0.06)}
.format-formules .formula-box{background:rgba(59,130,246,0.06);border:1px solid rgba(59,130,246,0.12);border-left:4px solid #3b82f6;border-radius:0 14px 14px 0;padding:24px;font-size:15px;transition:all .2s}
.format-formules .formula-box:hover{box-shadow:0 4px 20px rgba(59,130,246,0.1);transform:translateX(3px)}
.format-formules .formula-box strong{color:#60a5fa}
.format-formules .highlight-box{background:rgba(96,165,250,0.04);border-left-color:#60a5fa}
.format-formules .highlight-box strong{color:#60a5fa}
.format-formules .definition-box{border-left-color:#818cf8}
.format-formules .definition-box strong{color:#818cf8}
.format-formules ul,.format-formules ol{font-size:14px}
.format-formules li strong{color:#60a5fa}
.format-formules table{border-color:rgba(59,130,246,0.1)}
.format-formules th{background:rgba(59,130,246,0.08);color:#60a5fa;font-size:11px}

/* ── GLOSSAIRE — Dictionary / Encyclopedia ── */
.format-glossaire .article-hero{background:linear-gradient(160deg,#1a1410 0%,#0d0a08 60%,#000 100%)}
.format-glossaire .article-hero::before{background:radial-gradient(circle,rgba(251,146,60,0.1) 0%,transparent 70%)}
.format-glossaire .article-content h2{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;border-bottom:2px solid rgba(251,146,60,0.12);color:#fb923c;margin:36px 0 16px;padding-bottom:12px}
.format-glossaire .article-content h2::before{background:#fb923c;height:3px;width:50px}
.format-glossaire .article-content h2::after{content:'§';float:right;color:rgba(251,146,60,0.2);font-size:16px;text-transform:none;letter-spacing:0}
.format-glossaire .article-content p{font-size:14px;line-height:1.7}
.format-glossaire .article-content p:first-of-type{font-size:14px;color:#a1a1aa}
.format-glossaire .definition-box{background:linear-gradient(135deg,rgba(251,146,60,0.05) 0%,rgba(251,146,60,0.02) 100%);border:1px solid rgba(251,146,60,0.1);border-left:4px solid #fb923c;border-radius:0 16px 16px 0;padding:22px 26px;margin:16px 0;transition:all .25s cubic-bezier(.4,0,.2,1)}
.format-glossaire .definition-box:hover{border-color:rgba(251,146,60,0.3);box-shadow:0 8px 30px rgba(251,146,60,0.08);transform:translateY(-2px)}
.format-glossaire .definition-box strong{color:#fb923c;font-size:13px;text-transform:uppercase;letter-spacing:.5px}
.format-glossaire .highlight-box{background:rgba(251,146,60,0.03);border-left-color:#f97316}
.format-glossaire .highlight-box strong{color:#fb923c}
.format-glossaire .article-content h3{color:#fb923c;font-size:1.15rem;margin-top:48px}
.format-glossaire ul{list-style:none;margin-left:0;padding:0}
.format-glossaire ul>li{padding:18px 22px;margin-bottom:10px;border:1px solid rgba(251,146,60,0.06);border-left:3px solid rgba(251,146,60,0.2);border-radius:0 14px 14px 0;font-size:14px;transition:all .25s cubic-bezier(.4,0,.2,1);background:rgba(251,146,60,0.02)}
.format-glossaire ul>li:hover{border-left-color:#fb923c;background:rgba(251,146,60,0.06);transform:translateX(6px);box-shadow:0 4px 20px rgba(251,146,60,0.06)}
.format-glossaire ul>li strong{color:#fb923c;font-size:15px;display:block;margin-bottom:6px;letter-spacing:.2px}
/* Glossaire ol — no custom counter, let default styles handle it */
/* Glossaire ol/li — no custom counter badges to avoid TOC conflicts */
/* ═══ GLOSSARY ENTRIES — Card-style terms ═══ */
.glossary{margin:24px 0}
.glossary dl{margin:0;padding:0}
.glossary-entry{margin:0 0 16px;padding:20px 24px;background:linear-gradient(135deg,rgba(251,146,60,0.04) 0%,rgba(251,146,60,0.01) 100%);border:1px solid rgba(251,146,60,0.1);border-left:4px solid rgba(251,146,60,0.4);border-radius:0 14px 14px 0;transition:all .25s cubic-bezier(.4,0,.2,1)}
.glossary-entry:hover{border-left-color:#fb923c;box-shadow:0 6px 24px rgba(251,146,60,0.08);transform:translateX(4px)}
.glossary-entry dt{font-size:16px;font-weight:800;color:#fb923c;margin:0 0 8px;text-transform:capitalize;letter-spacing:-.2px}
.glossary-entry dd{margin:0;font-size:14px;line-height:1.7;color:#d4d4d8}
.glossary-entry dd .formula{margin:10px 0;padding:8px 12px;background:rgba(251,146,60,0.04);border-radius:8px;display:inline-block}
.glossary-example{margin:10px 0 0 !important;padding:10px 14px;background:rgba(251,146,60,0.03);border-radius:8px;font-size:13px;color:#a1a1aa;border:1px dashed rgba(251,146,60,0.1)}
.glossary-related{margin:8px 0 0 !important;font-size:12px;color:#8b8b94}
.glossary-related a{color:#fb923c;text-decoration:none}

.format-glossaire table{border:1px solid rgba(251,146,60,0.1);border-radius:14px;overflow:hidden}
.format-glossaire th{background:linear-gradient(135deg,rgba(251,146,60,0.1),rgba(251,146,60,0.06));color:#fb923c;font-size:11px;letter-spacing:.8px}
.format-glossaire td{border-bottom-color:rgba(251,146,60,0.06)}
.format-glossaire td strong{color:#fb923c}
.format-glossaire tr:hover td{background:rgba(251,146,60,0.03)}

/* ── ANNALES — Exam paper style ── */
.format-annales .article-hero{background:linear-gradient(160deg,#1a0a0a 0%,#0d0505 60%,#000 100%)}
.format-annales .article-hero::before{background:radial-gradient(circle,rgba(248,113,113,0.08) 0%,transparent 70%)}
.format-annales .article-content h2{border-bottom-color:rgba(248,113,113,0.15);color:#f87171}
.format-annales .article-content h2::before{background:#ef4444}
.format-annales .article-content p:first-of-type{font-size:15px;color:#a1a1aa}
.format-annales .highlight-box{background:rgba(248,113,113,0.04);border:1px solid rgba(248,113,113,0.1);border-left:4px solid #f87171;border-radius:0 14px 14px 0;padding:20px 24px}
.format-annales .highlight-box strong{color:#f87171}
.format-annales .warning-box{background:rgba(248,113,113,0.06);border:1px solid rgba(248,113,113,0.12);border-left:4px solid #dc2626;border-radius:0 14px 14px 0;padding:20px 24px;font-weight:600}
.format-annales .warning-box strong{color:#ef4444}
.format-annales .example-box{background:rgba(34,197,94,0.04);border:1px solid rgba(34,197,94,0.1);border-left:4px solid #22c55e;border-radius:0 14px 14px 0;padding:20px 24px}
.format-annales .example-box strong{color:#4ade80}
.format-annales .definition-box{border-left-color:#f87171}
.format-annales .definition-box strong{color:#f87171}
/* Annales ol — no custom counter to avoid TOC conflicts */
.format-annales ol>li strong{color:#f87171}
.format-annales ul{list-style:none;margin-left:0;padding:0}
.format-annales ul>li{padding:14px 20px;margin-bottom:8px;background:rgba(248,113,113,0.02);border:1px solid rgba(248,113,113,0.06);border-radius:10px;transition:all .2s}
.format-annales ul>li:hover{border-color:rgba(248,113,113,0.15);transform:translateX(4px)}
.format-annales ul>li strong{color:#f87171}
.format-annales table{border-color:rgba(248,113,113,0.1)}
.format-annales th{background:rgba(248,113,113,0.08);color:#f87171;font-size:11px}

/* ── FORUM (QA) — Reddit/StackOverflow inspired ── */
.format-qa .banner{background:linear-gradient(90deg,rgba(99,102,241,0.08),rgba(139,92,246,0.04));border-bottom:1px solid rgba(99,102,241,0.1);padding:10px 20px;text-align:center;font-size:12px;color:#8b8b94}
.format-qa .banner b{color:#6366f1}
.format-qa .back-link{display:inline-flex;align-items:center;gap:8px;color:#a1a1aa;font-size:13px;text-decoration:none;border:1px solid rgba(255,255,255,0.08);padding:8px 18px;border-radius:100px;margin-bottom:20px;transition:all .2s}
.format-qa .back-link:hover{border-color:rgba(99,102,241,0.4);color:#fff;background:rgba(99,102,241,0.08)}
.format-qa .container{max-width:780px;margin:0 auto;padding:40px 20px 60px}
.format-qa .qa-tags{margin-bottom:16px;display:flex;gap:8px}
.format-qa .qa-tag{display:inline-block;font-size:10px;font-weight:700;color:#6366f1;background:rgba(99,102,241,0.1);padding:5px 14px;border-radius:100px;letter-spacing:.5px;text-transform:uppercase;border:1px solid rgba(99,102,241,0.15)}
.format-qa h1{font-size:clamp(1.4rem,3vw,2.2rem);font-weight:900;line-height:1.25;margin-bottom:16px;color:#f5f5f7;letter-spacing:-.5px}
.format-qa .qa-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:#8b8b94;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,0.04)}
/* Original question */
.format-qa .container>p:first-of-type,.format-qa .container>div.qa-meta+p{font-size:16px;line-height:1.7;color:#d4d4d8;padding:20px 24px;background:rgba(99,102,241,0.03);border:1px solid rgba(99,102,241,0.08);border-radius:16px;margin-bottom:24px}
/* Replies */
.format-qa .qa-reply{background:rgba(255,255,255,0.015);border:1px solid rgba(255,255,255,0.05);border-radius:18px;padding:24px 28px;margin-bottom:16px;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;border-left:3px solid transparent}
.format-qa .qa-reply:hover{border-color:rgba(255,255,255,0.08);border-left-color:rgba(99,102,241,0.4);background:rgba(99,102,241,0.02);transform:translateY(-2px);box-shadow:0 12px 40px rgba(0,0,0,0.25)}
/* Best answer — green glow */
.format-qa .qa-reply.best{background:linear-gradient(135deg,rgba(34,197,94,0.04) 0%,rgba(34,197,94,0.01) 100%);border:1px solid rgba(34,197,94,0.12);border-left:3px solid #22c55e}
.format-qa .qa-reply.best:hover{border-color:rgba(34,197,94,0.25);border-left-color:#22c55e;box-shadow:0 12px 40px rgba(34,197,94,0.1)}
.format-qa .qa-reply.best::before{content:"✓ Best Answer";display:inline-block;font-size:10px;font-weight:800;color:#22c55e;background:rgba(34,197,94,0.1);padding:5px 16px;border-radius:100px;margin-bottom:16px;letter-spacing:.5px;text-transform:uppercase;border:1px solid rgba(34,197,94,0.15)}
/* Header */
.format-qa .qa-reply-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.format-qa .qa-username{font-size:13px;font-weight:800;color:#818cf8;letter-spacing:.2px;padding-left:28px;position:relative}
.format-qa .qa-username::before{content:"";position:absolute;left:0;top:1px;width:20px;height:20px;background:linear-gradient(135deg,#6366f1,#818cf8);border-radius:50%}
.format-qa .qa-time{font-size:11px;color:#3f3f46;font-style:italic}
/* Body */
.format-qa .qa-reply-body{font-size:15px;line-height:1.8;color:#d4d4d8}
.format-qa .qa-reply-body p{margin-bottom:10px}
/* Votes */
.format-qa .qa-reply-votes{margin-top:14px;font-size:12px;color:#8b8b94;display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:rgba(255,255,255,0.03);border-radius:100px;border:1px solid rgba(255,255,255,0.04);transition:all .2s}
.format-qa .qa-reply-votes:hover{border-color:rgba(99,102,241,0.2);color:#818cf8}
.format-qa .qa-reply-votes::before{content:"▲";font-size:10px;color:#6366f1}
.format-qa .highlight-box{background:rgba(99,102,241,0.06);border-left:3px solid #6366f1;border-radius:0 10px 10px 0;padding:14px 16px;margin:12px 0;font-size:14px;color:#d4d4d8}
.format-qa .example-box{background:rgba(34,197,94,0.05);border-left:3px solid #22c55e;border-radius:0 10px 10px 0;padding:14px 16px;margin:12px 0;font-size:14px;color:#d4d4d8}
.format-qa .warning-box{background:rgba(239,68,68,0.05);border-left:3px solid #ef4444;border-radius:0 10px 10px 0;padding:14px 16px;margin:12px 0;font-size:14px;color:#d4d4d8}
.format-qa .formula-box{background:rgba(59,130,246,0.05);border-left:3px solid #3b82f6;border-radius:0 10px 10px 0;padding:14px 16px;margin:12px 0;font-size:14px;color:#d4d4d8}
.format-qa table{width:100%;border-collapse:collapse;margin:12px 0;font-size:14px}
.format-qa th{background:rgba(99,102,241,0.1);padding:10px 14px;text-align:left;font-weight:700;color:#e4e4e7}
.format-qa td{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,0.05);color:#a1a1aa}
.format-qa strong{color:#e4e4e7}


/* ═══ RESPONSIVE ═══ */
@media(max-width:640px){
    .article-hero{padding:60px 16px 36px}
    .article-hero::before{width:300px;height:300px}
    .article-content{padding:28px 16px 48px}
    .article-content h2{font-size:1.2rem;margin:36px 0 14px}
    .article-meta{font-size:11px;gap:8px}
    .article-title{font-size:1.4rem;letter-spacing:-.5px}
    .article-subtitle{font-size:15px}
    .type-badge{padding:4px 12px;font-size:11px}
    .highlight-box,.definition-box,.example-box,.warning-box,.formula-box{padding:14px 16px;margin:16px 0;font-size:13px}
    table{font-size:13px}
    th,td{padding:10px 12px}
    .footer-actions{flex-direction:column}
    .cta-explore{padding:20px 16px;margin:24px 16px 0}
    .related-grid{grid-template-columns:1fr!important}
    .format-qa .container{padding:30px 16px 48px}
    .format-qa .qa-meta{font-size:11px;gap:10px}
    .format-qa .qa-reply{padding:16px;border-radius:12px}
}

/* ═══ PRINT ═══ */
@media print{
    body{background:#fff;color:#1a1a1a}
    .article-hero{background:#fff!important;padding:20px 0}
    .article-title{color:#1a1a1a}
    .disclaimer-banner,.back-to-blog,.footer-actions,.cta-explore,footer,.banner,.back-link{display:none}
    .article-content{padding:0}
    .highlight-box,.definition-box,.example-box,.warning-box,.formula-box{border:1px solid #ddd;background:#f9f9f9;color:#333}
    a{color:#333}
    table{border:1px solid #ddd}
    th{background:#f0f0f0;color:#333}
    td{color:#333;border-color:#ddd}
}
aside{max-width:800px !important;margin-left:auto !important;margin-right:auto !important;padding:28px 24px;box-sizing:border-box}

/* ═══ SCROLL MARGIN ═══ */
h2[id]{scroll-margin-top:80px}

/* ═══ READING PROGRESS BAR ═══ */
.progress-bar{position:fixed;top:0;left:0;width:0;height:3px;background:linear-gradient(90deg,#6366f1,#818cf8,#a78bfa);z-index:99999;transition:width 50ms linear;box-shadow:0 0 10px rgba(99,102,241,0.5)}

/* ═══ BACK TO TOP ═══ */
.back-to-top{position:fixed;bottom:24px;right:24px;width:44px;height:44px;background:#1c1c1e;border:1px solid rgba(99,102,241,0.2);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#6366f1;font-size:18px;cursor:pointer;opacity:0;transform:translateY(20px);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:9998;box-shadow:0 4px 20px rgba(0,0,0,0.4)}
.back-to-top.visible{opacity:1;transform:translateY(0)}
.back-to-top:hover{background:#2c2c2e;border-color:rgba(99,102,241,0.4);transform:translateY(-3px);box-shadow:0 8px 30px rgba(99,102,241,0.15)}

/* ═══ ACTIVE SECTION HIGHLIGHT IN TOC ═══ */
.toc li a.active{color:#818cf8;background:rgba(99,102,241,0.1);border-color:rgba(99,102,241,0.2)}

/* ═══ LIGHT MODE TOGGLE ═══ */
body.light-mode{background:#f5f5f7;color:#1d1d1f}
body.light-mode .article-hero{background:linear-gradient(160deg,#e8e0f0 0%,#f5f5f7 60%,#fff 100%)}
body.light-mode .article-content p,body.light-mode p{color:#4a4a4a}
body.light-mode h2{color:#1d1d1f;border-bottom-color:rgba(99,102,241,0.2)}
body.light-mode h3{color:#333}
body.light-mode strong{color:#1d1d1f}
body.light-mode .highlight-box{background:rgba(99,102,241,0.06)}
body.light-mode .definition-box{background:rgba(139,92,246,0.06)}
body.light-mode .example-box{background:rgba(34,197,94,0.05)}
body.light-mode .warning-box{background:rgba(239,68,68,0.05)}
body.light-mode .formula-box{background:rgba(59,130,246,0.05)}
body.light-mode table{border-color:rgba(0,0,0,0.1)}
body.light-mode th{background:rgba(99,102,241,0.08);color:#333}
body.light-mode td{color:#4a4a4a;border-bottom-color:rgba(0,0,0,0.06)}
body.light-mode tr:hover td{background:rgba(99,102,241,0.03)}
body.light-mode .toc{background:rgba(99,102,241,0.03);border-color:rgba(99,102,241,0.1)}
body.light-mode .toc li a{color:#666}
body.light-mode .toc li a:hover{color:#6366f1;background:rgba(99,102,241,0.06)}
body.light-mode .disclaimer-banner{background:rgba(99,102,241,0.03)}
body.light-mode .back-to-top{background:#fff;border-color:rgba(0,0,0,0.1);box-shadow:0 4px 20px rgba(0,0,0,0.1)}
body.light-mode code{background:rgba(0,0,0,0.05);color:#6366f1}
body.light-mode .article-title{color:#1d1d1f}
body.light-mode .article-subtitle{color:#666}
body.light-mode .article-meta{color:#666}


/* ═══ ACCESSIBILITY WIDGET ═══ */
.a11y-toggle{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:9999;width:40px;height:40px;background:#1c1c1e;border:1px solid rgba(99,102,241,0.2);border-right:none;border-radius:12px 0 0 12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:-2px 0 20px rgba(0,0,0,0.3)}
.a11y-toggle:hover{width:48px;background:#2c2c2e;border-color:rgba(99,102,241,0.4)}
.a11y-toggle svg{width:20px;height:20px;color:#6366f1;transition:transform .3s}
.a11y-toggle:hover svg{transform:scale(1.1)}
.a11y-panel{position:fixed;right:-320px;top:0;width:300px;height:100vh;background:#0a0a0a;border-left:1px solid rgba(99,102,241,0.15);z-index:10000;transition:right .35s cubic-bezier(.4,0,.2,1);overflow-y:auto;padding:0;box-shadow:-8px 0 40px rgba(0,0,0,0.5)}
.a11y-panel.open{right:0}
.a11y-header{padding:20px 20px 16px;border-bottom:1px solid rgba(255,255,255,0.06);display:flex;justify-content:space-between;align-items:center}
.a11y-title{font-size:14px;font-weight:700;color:#f5f5f7;letter-spacing:.3px}
.a11y-close{background:none;border:none;color:#8b8b94;cursor:pointer;font-size:18px;padding:4px 8px;border-radius:6px;transition:all .2s}
.a11y-close:hover{color:#f5f5f7;background:rgba(255,255,255,0.06)}
.a11y-section{padding:16px 20px;border-bottom:1px solid rgba(255,255,255,0.04)}
.a11y-label{font-size:11px;font-weight:600;color:#8b8b94;text-transform:uppercase;letter-spacing:.8px;margin-bottom:12px}
.a11y-options{display:flex;flex-direction:column;gap:8px}
.a11y-btn{display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.06);border-radius:10px;padding:12px 16px;color:#a1a1aa;font-size:13px;font-family:inherit;cursor:pointer;transition:all .2s;width:100%}
.a11y-btn:hover{border-color:rgba(99,102,241,0.2);background:rgba(99,102,241,0.04);color:#d4d4d8}
.a11y-btn.active{border-color:rgba(99,102,241,0.4);background:rgba(99,102,241,0.08);color:#818cf8}
.a11y-btn .a11y-icon{font-size:16px;margin-right:10px}
.a11y-btn .a11y-check{font-size:14px;color:#22c55e;opacity:0;transition:opacity .2s}
.a11y-btn.active .a11y-check{opacity:1}
.a11y-size{display:flex;gap:6px}
.a11y-size button{flex:1;padding:10px;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.06);border-radius:8px;color:#a1a1aa;font-size:14px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .2s}
.a11y-size button:hover{border-color:rgba(99,102,241,0.2);color:#d4d4d8}
.a11y-size button.active{border-color:rgba(99,102,241,0.4);background:rgba(99,102,241,0.08);color:#818cf8}
.a11y-reset{margin:16px 20px 20px;padding:10px;background:none;border:1px solid rgba(239,68,68,0.2);border-radius:10px;color:#8b8b94;font-size:12px;font-family:inherit;cursor:pointer;width:calc(100% - 40px);transition:all .2s;text-align:center}
.a11y-reset:hover{border-color:rgba(239,68,68,0.4);color:#f87171;background:rgba(239,68,68,0.04)}
.a11y-footer{padding:16px 20px;text-align:center;font-size:11px;color:#3f3f46}
@media(max-width:640px){.a11y-panel{width:280px;right:-300px}.a11y-toggle{width:36px;height:36px}.a11y-toggle svg{width:18px;height:18px}}

/* Accessibility modes applied to body */
body.a11y-large-text .article-content p,body.a11y-large-text .article-content li,body.a11y-large-text .qa-reply-body{font-size:18px!important;line-height:2!important}
body.a11y-larger-text .article-content p,body.a11y-larger-text .article-content li,body.a11y-larger-text .qa-reply-body{font-size:21px!important;line-height:2.1!important}
body.a11y-high-contrast .article-content,body.a11y-high-contrast .article-hero,body.a11y-high-contrast .qa-reply{filter:contrast(1.4)!important}
body.a11y-dyslexia .article-content *,body.a11y-dyslexia .article-hero *,body.a11y-dyslexia .qa-reply *{font-family:OpenDyslexic,Comic Sans MS,sans-serif!important}
body.a11y-reduce-motion .article-content *,body.a11y-reduce-motion .article-hero *{animation:none!important;transition:none!important}
body.a11y-highlight-links a{outline:2px solid #fbbf24!important;outline-offset:2px;text-decoration:underline!important}
body.a11y-text-spacing .article-content p,body.a11y-text-spacing .article-content li{letter-spacing:1px!important;word-spacing:4px!important;line-height:2.2!important}
body.a11y-large-cursor,body.a11y-large-cursor *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Ccircle cx='16' cy='16' r='14' fill='%236366f1' opacity='0.3'/%3E%3Ccircle cx='16' cy='16' r='4' fill='%236366f1'/%3E%3C/svg%3E") 16 16,auto!important}
body.a11y-protanopia .article-content,body.a11y-protanopia .article-hero{filter:saturate(0.8) hue-rotate(-20deg)!important}
body.a11y-deuteranopia .article-content,body.a11y-deuteranopia .article-hero{filter:saturate(0.8) hue-rotate(40deg)!important}
body.a11y-tritanopia .article-content,body.a11y-tritanopia .article-hero{filter:saturate(0.8) hue-rotate(-40deg) brightness(1.1)!important}
body.a11y-grayscale .article-content,body.a11y-grayscale .article-hero{filter:grayscale(1)!important}
body.a11y-invert .article-content,body.a11y-invert .article-hero{filter:invert(1) hue-rotate(180deg)!important}
body.a11y-saturation .article-content,body.a11y-saturation .article-hero{filter:saturate(2)!important}
body.a11y-adhd .disclaimer-banner,body.a11y-adhd .article-meta,body.a11y-adhd .cta-explore,body.a11y-adhd .article-footer-card,body.a11y-adhd .banner,body.a11y-adhd footer{display:none!important}
body.a11y-adhd .article-content{max-width:640px!important}
body.a11y-adhd .article-content p{font-size:17px!important;line-height:2!important}
body.a11y-seizure-safe .article-content *,body.a11y-seizure-safe .article-hero *{animation:none!important;transition:none!important}
body.a11y-seizure-safe .article-content img,body.a11y-seizure-safe .article-content video{opacity:0.3!important}
body.a11y-seizure-safe .article-content,body.a11y-seizure-safe .article-hero{filter:saturate(0.6)!important}
body.a11y-cognitive .article-meta,body.a11y-cognitive .breadcrumb,body.a11y-cognitive .cta-explore,body.a11y-cognitive .article-footer-card,body.a11y-cognitive .banner{display:none!important}
body.a11y-cognitive .article-content p{font-size:18px!important;line-height:2.2!important;max-width:600px!important}
body.a11y-cognitive .article-content{max-width:640px!important}
body.a11y-hide-images .article-content img,body.a11y-hide-images .article-content video{display:none!important}
body.a11y-line-height .article-content p,body.a11y-line-height .article-content li,body.a11y-line-height .qa-reply-body{line-height:2.5!important}
body.a11y-keyboard-nav *:focus{outline:3px solid #6366f1!important;outline-offset:3px!important}
body.a11y-keyboard-nav a:focus,body.a11y-keyboard-nav button:focus{box-shadow:0 0 0 3px rgba(99,102,241,0.4)!important}
.a11y-reading-mask{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9997;pointer-events:none;display:none}
.a11y-reading-mask-top,.a11y-reading-mask-bottom{position:absolute;left:0;right:0;background:rgba(0,0,0,0.85);pointer-events:none}
.a11y-reading-mask-top{top:0}
.a11y-reading-mask-bottom{bottom:0}
body.a11y-reading-mask .a11y-reading-mask{display:block}
.a11y-reading-guide{position:fixed;left:0;right:0;height:40px;background:rgba(99,102,241,0.06);border-top:2px solid rgba(99,102,241,0.3);border-bottom:2px solid rgba(99,102,241,0.3);pointer-events:none;z-index:9998;display:none}
body.a11y-reading-guide .a11y-reading-guide{display:block}

/* ═══ FLASHCARDS — 3D Flip Cards ═══ */
.flashcards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin:24px 0;perspective:1200px}
@media(max-width:640px){.flashcards-grid{grid-template-columns:1fr;gap:14px}}

.flip-card{height:220px;cursor:pointer;perspective:1000px}
.flip-card-inner{position:relative;width:100%;height:100%;transition:transform 0.6s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}
.flip-card.flipped .flip-card-inner{transform:rotateY(180deg)}

.flip-card-front,.flip-card-back{position:absolute;top:0;left:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:16px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px;box-sizing:border-box;text-align:center;overflow:hidden}

.flip-card-front{background:linear-gradient(135deg,rgba(192,132,252,0.08) 0%,rgba(139,92,246,0.04) 100%);border:1px solid rgba(192,132,252,0.2)}
.flip-card-front:hover{border-color:rgba(192,132,252,0.4);box-shadow:0 8px 30px rgba(192,132,252,0.12)}
.flip-card-question{font-size:15px;font-weight:600;color:#e4e4e7;line-height:1.5;margin:8px 0}
.flip-card-tap{font-size:11px;color:#8b8b94;margin-top:auto}

.flip-card-back{background:linear-gradient(135deg,rgba(99,102,241,0.1) 0%,rgba(79,70,229,0.06) 100%);border:1px solid rgba(99,102,241,0.25);transform:rotateY(180deg)}
.flip-card-back p{font-size:14px;line-height:1.6;color:#d4d4d8;margin:0}
.flip-card-back .formula{margin:10px 0 0;font-size:13px}

.flashcard-category{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#a78bfa;background:rgba(167,139,250,0.12);padding:3px 10px;border-radius:8px}
.flashcard-hint{font-size:12px;color:#8b8b94;margin-top:6px;font-style:italic}

/* ─── Forum QA enhancements (tree, author roles, tags, timestamps) ─── */
.qa-question-title{font-size:18px;font-weight:700;color:#e4e4e7;margin:0 0 8px;padding:0;border:none}
.qa-meta{display:flex;flex-wrap:wrap;gap:4px;font-size:12px;color:#8b8b94;align-items:center}
.qa-meta time{font-family:'JetBrains Mono',monospace;font-size:11px}
.qa-status{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.qa-status.status-answered{background:rgba(16,185,129,0.12);color:#34d399}
.qa-status.status-open{background:rgba(245,158,11,0.12);color:#fbbf24}
.qa-status.status-closed{background:rgba(107,114,128,0.12);color:#9ca3af}
.qa-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.qa-tag{display:inline-block;padding:2px 8px;background:rgba(99,102,241,0.1);border:1px solid rgba(99,102,241,0.2);border-radius:6px;font-size:11px;color:#a78bfa}

.qa-role{display:inline-block;padding:1px 7px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-left:4px}
.qa-role-student{background:rgba(59,130,246,0.12);color:#93c5fd}
.qa-role-teacher{background:rgba(167,139,250,0.14);color:#c4b5fd}
.qa-role-expert{background:rgba(251,191,36,0.14);color:#fde68a}
.qa-role-parent{background:rgba(236,72,153,0.1);color:#f9a8d4}
.qa-role-alumni{background:rgba(14,165,233,0.12);color:#7dd3fc}
.qa-role-bot{background:rgba(107,114,128,0.14);color:#9ca3af}

.qa-best-badge{margin-left:8px;padding:2px 8px;background:rgba(16,185,129,0.14);color:#34d399;border-radius:4px;font-size:11px;font-weight:600}
.qa-best-badge i{margin-right:3px}

.qa-children{margin-left:16px;margin-top:10px;padding-left:12px;border-left:2px solid rgba(99,102,241,0.15)}
.qa-depth-1{background:rgba(30,30,46,0.25)}
.qa-depth-2{background:rgba(30,30,46,0.35)}
.qa-depth-3{background:rgba(30,30,46,0.45)}
/* Flatten nesting beyond 3 levels — no more indent to prevent unreadable narrow columns */
.qa-depth-4 .qa-children,.qa-depth-5 .qa-children,.qa-depth-6 .qa-children{margin-left:0;padding-left:0;border-left:none}
.qa-depth-4,.qa-depth-5,.qa-depth-6{background:rgba(30,30,46,0.5)}
/* Fix reply header badges wrapping weirdly on narrow columns */
.qa-reply-header{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:#8b8b94;line-height:1.6}
.qa-reply-header .qa-username{font-weight:600;color:#c4b5fd;flex-shrink:0}
.qa-reply-header .qa-role{flex-shrink:0}
.qa-reply-header time{flex-shrink:0;font-family:'JetBrains Mono',monospace;font-size:11px}
.qa-reply{padding:12px 14px;margin:8px 0;border-radius:8px;border:1px solid rgba(99,102,241,0.1);overflow:hidden;min-width:0}
.qa-reply.best{border-color:rgba(16,185,129,0.3);background:rgba(16,185,129,0.04)}
.qa-reply-body{margin:8px 0;font-size:14px;line-height:1.55;color:#d4d4d8;word-wrap:break-word;overflow-wrap:break-word}
.qa-reply-body p{margin:6px 0}
.qa-reply-body p:empty{display:none}
/* Code blocks from Mistral (triple-backticks) — smartText breaks parent <p> with </p><pre>...</pre><p> */
.qa-reply-body code{font-family:'JetBrains Mono',monospace;background:rgba(30,30,46,0.8);padding:1px 5px;border-radius:4px;font-size:12px;color:#a78bfa}
.qa-reply-body pre{display:block;padding:12px 14px;margin:10px 0;overflow-x:auto;background:rgba(15,15,25,0.92);border:1px solid rgba(99,102,241,0.18);border-radius:10px;font-family:'JetBrains Mono',monospace;font-size:12.5px;line-height:1.5;color:#e4e4e7;white-space:pre;max-width:100%}
.qa-reply-body pre code{background:transparent;padding:0;font-size:inherit;color:inherit;border-radius:0}

.qa-reply-footer{margin-top:8px;padding-top:8px;border-top:1px solid rgba(99,102,241,0.1);font-size:12px;color:#8b8b94;display:flex;gap:10px}
.qa-votes{display:inline-flex;align-items:center;gap:4px;font-weight:600;color:#a78bfa}
.qa-formula{margin:8px 0}

/* ─── Annales enhancements (exam banner, per-subq solutions, rubric, mistakes) ─── */
.exam-banner{margin:16px 0 28px;padding:18px 22px;background:linear-gradient(135deg,rgba(139,92,246,0.08) 0%,rgba(167,139,250,0.05) 100%);border:1px solid rgba(139,92,246,0.25);border-radius:14px}
.exam-banner-title{font-size:16px;font-weight:700;color:#c4b5fd;margin-bottom:12px}
.exam-banner-title i{margin-right:8px}
.exam-banner-meta{display:flex;flex-wrap:wrap;gap:8px}
.eb-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:rgba(30,30,46,0.6);border:1px solid rgba(139,92,246,0.2);border-radius:8px;font-size:12px;color:#d4d4d8}
.eb-chip i{color:#a78bfa;font-size:11px}
.exam-banner-disclaimer{margin:12px 0 0;padding-top:12px;border-top:1px dashed rgba(139,92,246,0.2);font-size:12px;color:#a1a1aa;font-style:italic}
.exam-banner-disclaimer i{color:#a78bfa;margin-right:4px}

.problem-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:12px}
.problem-head h2{flex:1;min-width:0;margin:0}
.problem-head-meta{display:flex;flex-wrap:wrap;gap:6px}
.ph-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:rgba(99,102,241,0.1);border:1px solid rgba(99,102,241,0.2);border-radius:6px;font-size:11px;color:#c4b5fd}
.ph-chip i{font-size:10px;color:#a78bfa}
.ph-topic{background:rgba(59,130,246,0.1);border-color:rgba(59,130,246,0.3);color:#93c5fd}

.subq-solution{margin:16px 0;padding:14px 16px;background:rgba(30,30,46,0.3);border-left:3px solid rgba(99,102,241,0.4);border-radius:0 8px 8px 0}
.subq-solution h4{font-size:14px;font-weight:600;color:#e4e4e7;margin:0 0 10px;padding:0;border:none}
.subq-solution h4 em{color:#a1a1aa;font-weight:400}
.sp-points{font-size:11px;color:#a78bfa;background:rgba(167,139,250,0.12);padding:2px 8px;border-radius:4px;font-weight:600}

.grading-rubric{margin:16px 0;padding:14px 16px;background:rgba(16,185,129,0.05);border:1px solid rgba(16,185,129,0.2);border-radius:10px}
.grading-rubric h4{font-size:13px;font-weight:600;color:#34d399;margin:0 0 10px;padding:0;border:none}
.grading-rubric h4 i{margin-right:6px}
.grading-rubric table{width:100%;border-collapse:collapse;font-size:13px}
.grading-rubric th{padding:6px 10px;text-align:left;font-size:11px;font-weight:700;color:#6ee7b7;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid rgba(16,185,129,0.2)}
.grading-rubric td{padding:7px 10px;color:#d4d4d8;border-top:1px solid rgba(16,185,129,0.08)}
.grading-rubric td data{font-weight:600;color:#34d399}

.student-mistakes{margin:16px 0;padding:14px 16px;background:rgba(239,68,68,0.05);border:1px solid rgba(239,68,68,0.2);border-radius:10px}
.student-mistakes h4{font-size:13px;font-weight:600;color:#f87171;margin:0 0 8px;padding:0;border:none}
.student-mistakes h4 i{margin-right:6px}
.student-mistakes ul{list-style:none;padding:0;margin:0}
.student-mistakes li{padding:4px 0 4px 20px;font-size:13px;color:#d4d4d8;position:relative;line-height:1.5}
.student-mistakes li::before{content:'✗';position:absolute;left:0;color:#f87171;font-weight:700}

/* ─── Formula cards (full rewrite from 4-col table to rich figure per formula) ─── */
.formula-category{margin:28px 0}
.formula-category h2{font-size:20px;font-weight:700;color:#e4e4e7;margin:0 0 8px;padding-bottom:10px;border-bottom:1px solid rgba(99,102,241,0.2)}
.category-desc{margin:4px 0 20px;font-size:14px;color:#a1a1aa;line-height:1.55}
.formula-cards{display:grid;grid-template-columns:1fr;gap:16px}
.formula-card{margin:0;padding:18px 20px;background:rgba(30,30,46,0.5);border:1px solid rgba(99,102,241,0.2);border-radius:14px}
.formula-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;font-size:15px;color:#e4e4e7}
.formula-card-head strong{flex:1}
.formula-type-badge{display:inline-block;padding:2px 8px;background:rgba(167,139,250,0.12);color:#c4b5fd;border:1px solid rgba(167,139,250,0.25);border-radius:6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.formula-primary{padding:14px;margin:10px 0;background:rgba(99,102,241,0.08);border-radius:10px;text-align:center;font-size:18px;overflow-x:auto}
.formula-alt{margin:10px 0}
.formula-alt summary{cursor:pointer;font-size:12px;font-weight:600;color:#a78bfa;list-style:none;padding:4px 0}
.formula-alt summary::-webkit-details-marker{display:none}
.formula-alt ul{list-style:none;padding:0;margin:8px 0 0}
.formula-alt li{padding:6px 0;font-size:14px;color:#d4d4d8}
.formula-alt li small{font-size:11px;color:#8b8b94;margin-left:6px}
.formula-vars{width:100%;border-collapse:collapse;margin:12px 0;font-size:13px;background:rgba(30,30,46,0.3);border-radius:8px;overflow:hidden}
.formula-vars thead{background:rgba(99,102,241,0.08)}
.formula-vars th{padding:6px 10px;text-align:left;font-size:10px;font-weight:700;color:#a78bfa;text-transform:uppercase;letter-spacing:.5px}
.formula-vars td{padding:6px 10px;border-top:1px solid rgba(99,102,241,0.1);color:#d4d4d8;vertical-align:top}
.formula-vars td var{color:#f59e0b;font-weight:600}
.formula-vars-legacy{list-style:none;padding:0;margin:10px 0;font-size:13px;color:#d4d4d8}
.formula-vars-legacy li{padding:3px 0}
.formula-validity{margin:10px 0 6px;padding:8px 12px;background:rgba(245,158,11,0.06);border-left:3px solid rgba(245,158,11,0.4);border-radius:4px;font-size:12px;color:#d4d4d8}
.formula-validity strong{color:#fbbf24;margin-right:4px}
.formula-dim{margin:6px 0;color:#a1a1aa;font-size:12px}
.formula-example{margin:10px 0 0;padding-top:8px;border-top:1px dashed rgba(99,102,241,0.15);font-size:13px;color:#a1a1aa;line-height:1.5}
.formula-example em{color:#d4d4d8;font-style:normal;font-weight:600;margin-right:4px}

/* ─── Exercise enhancements (structured data, unknowns, hints, verification) ─── */
.exercise-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:16px}
.exercise-head h2{flex:1;min-width:0;margin:0}
.exercise-badges{display:flex;flex-wrap:wrap;gap:6px}
.exercise-type-badge{display:inline-block;padding:3px 10px;background:rgba(59,130,246,0.12);color:#93c5fd;border:1px solid rgba(59,130,246,0.3);border-radius:8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.exercise-data-structured,.exercise-unknowns,.exercise-hints{margin:14px 0}
.exercise-data-structured h3,.exercise-unknowns h3,.exercise-hints h3{font-size:13px;font-weight:600;color:#d4d4d8;margin:0 0 8px;padding:0;border:none;display:flex;align-items:center;gap:8px}
.exercise-data-structured h3 i,.exercise-unknowns h3 i,.exercise-hints h3 i{color:#a78bfa;font-size:11px}
.data-table{width:100%;border-collapse:collapse;font-size:13px;background:rgba(30,30,46,0.4);border-radius:8px;overflow:hidden}
.data-table thead{background:rgba(99,102,241,0.08)}
.data-table th{padding:8px 12px;text-align:left;font-size:11px;font-weight:700;color:#a78bfa;text-transform:uppercase;letter-spacing:.5px}
.data-table td{padding:8px 12px;border-top:1px solid rgba(99,102,241,0.1);color:#d4d4d8}
.data-table td var{color:#f59e0b;font-weight:600}
.exercise-unknowns ul{list-style:none;padding:0;margin:0}
.exercise-unknowns li{padding:6px 12px;margin:4px 0;background:rgba(245,158,11,0.06);border-left:3px solid rgba(245,158,11,0.4);border-radius:4px;font-size:13px;color:#d4d4d8}
.hint-step{margin:6px 0;padding:8px 14px;background:rgba(251,191,36,0.06);border:1px solid rgba(251,191,36,0.2);border-radius:8px}
.hint-step summary{cursor:pointer;font-size:12px;font-weight:600;color:#fbbf24;list-style:none}
.hint-step summary::-webkit-details-marker{display:none}
.hint-step p{margin:8px 0 0;font-size:13px;color:#d4d4d8;line-height:1.55}
.exercise-verification{margin-top:16px;padding:10px 14px;background:rgba(16,185,129,0.06);border-left:3px solid rgba(16,185,129,0.4);border-radius:4px;font-size:13px;color:#d4d4d8}
.exercise-verification i{color:#10b981;margin-right:6px}
.exercise-verification strong{color:#34d399}

/* ─── Glossary enhancements (categories, alphabetical nav, synonyms, pronunciation) ─── */
.glossary-alpha{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0 24px;padding:12px 16px;background:rgba(99,102,241,0.06);border:1px solid rgba(99,102,241,0.2);border-radius:12px}
.glossary-alpha a{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:rgba(30,30,46,0.6);border:1px solid rgba(99,102,241,0.2);border-radius:8px;font-weight:700;color:#a78bfa;text-decoration:none;font-size:13px}
.glossary-alpha a:hover{background:rgba(99,102,241,0.15);border-color:rgba(99,102,241,0.4)}
.glossary-category{margin:24px 0}
.glossary-category h2{font-size:18px;font-weight:700;color:#e4e4e7;margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid rgba(99,102,241,0.2)}
.glossary-entry dt dfn{font-style:normal;font-weight:700;color:#a78bfa;border:none;cursor:auto}
.g-pos{font-size:11px;color:#8b8b94;font-style:italic;margin-left:6px}
.g-ipa{font-size:12px;color:#2dd4bf;font-family:'JetBrains Mono',monospace;margin-left:8px}
.g-synonyms{margin:6px 0;font-size:13px;color:#a1a1aa}
.g-synonyms strong{color:#d4d4d8;margin-right:4px}
.glossary-related{margin-top:8px;font-size:13px;color:#a1a1aa}
.glossary-related strong{color:#d4d4d8;margin-right:4px}
.glossary-related .xref{color:#a78bfa;text-decoration:none;border-bottom:1px dashed rgba(167,139,250,0.4)}
.glossary-related .xref:hover{border-bottom-style:solid}

/* ─── Quiz enhancements (score banner, difficulty badges, per-option explanations) ─── */
.quiz-score-banner{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 24px;padding:12px 16px;background:rgba(99,102,241,0.08);border:1px solid rgba(99,102,241,0.2);border-radius:12px}
.qs-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:rgba(30,30,46,0.6);border-radius:8px;font-size:13px;color:#d4d4d8}
.qs-chip i{color:#a78bfa;font-size:11px}
.quiz-q-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:10px}
.quiz-q-head .quiz-q-title{flex:1;min-width:0;margin:0}
.quiz-q-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.q-badge{display:inline-block;padding:3px 10px;border-radius:8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.q-diff-easy{background:rgba(16,185,129,0.12);color:#34d399;border:1px solid rgba(16,185,129,0.3)}
.q-diff-medium{background:rgba(245,158,11,0.12);color:#fbbf24;border:1px solid rgba(245,158,11,0.3)}
.q-diff-hard{background:rgba(239,68,68,0.12);color:#f87171;border:1px solid rgba(239,68,68,0.3)}
.q-points{background:rgba(167,139,250,0.12);color:#c4b5fd;border:1px solid rgba(167,139,250,0.3)}
.q-category{background:rgba(59,130,246,0.12);color:#93c5fd;border:1px solid rgba(59,130,246,0.3);text-transform:none;letter-spacing:0}
.quiz-wrong-expl{margin:8px 0;padding:8px 12px;background:rgba(239,68,68,0.05);border-left:3px solid rgba(239,68,68,0.4);border-radius:4px;font-size:13px;line-height:1.55}
.quiz-wrong-expl strong{color:#f87171}
.quiz-answer-line strong{color:#34d399}
.q-bloom{margin-top:10px;color:#8b8b94}
.q-bloom i{margin-right:4px}

/* ─── New block types (proof, analogy, mnemonic, checkpoint, tldr, figure) ─── */
.proof-box{margin:16px 0;padding:0;background:rgba(6,182,212,0.06);border:1px solid rgba(6,182,212,0.25);border-radius:12px;overflow:hidden}
.proof-box details{padding:14px 18px}
.proof-box summary{font-weight:600;color:#22d3ee;cursor:pointer;font-size:14px;list-style:none}
.proof-box summary::-webkit-details-marker{display:none}
.proof-box summary i{margin-right:8px}
.proof-intro{margin:10px 0;font-size:14px;line-height:1.6;color:#d4d4d8}
.proof-steps{margin:10px 0;padding-left:20px;font-size:14px;line-height:1.65;color:#d4d4d8}
.proof-steps li{margin:6px 0}
.proof-qed{margin:12px 0;text-align:center}
.proof-qed-label{margin-top:10px;font-size:13px;color:#a1a1aa;text-align:right}

.analogy-box{display:flex;gap:14px;margin:16px 0;padding:16px 20px;background:rgba(20,184,166,0.06);border:1px solid rgba(20,184,166,0.25);border-radius:12px}
.analogy-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgba(20,184,166,0.12);border-radius:10px;color:#2dd4bf;font-size:16px}
.analogy-body{flex:1}
.analogy-body strong{display:block;font-size:13px;color:#2dd4bf;text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}
.analogy-body p{margin:6px 0;font-size:14px;line-height:1.6;color:#d4d4d8}
.analogy-bridge{color:#2dd4bf!important}

.mnemonic-box{display:flex;gap:14px;margin:16px 0;padding:16px 20px;background:rgba(236,72,153,0.06);border:1px solid rgba(236,72,153,0.25);border-radius:12px}
.mnemonic-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgba(236,72,153,0.12);border-radius:10px;color:#f472b6;font-size:16px}
.mnemonic-body{flex:1}
.mnemonic-body strong{display:block;font-size:13px;color:#f472b6;text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}
.mnemonic-body p{margin:6px 0;font-size:14px;line-height:1.6;color:#d4d4d8}
.mnemonic-letters{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.mnemonic-letters li{padding:6px 12px;background:rgba(236,72,153,0.1);border:1px solid rgba(236,72,153,0.2);border-radius:8px;font-size:13px;color:#f9a8d4}

.checkpoint-box{display:flex;gap:14px;margin:16px 0;padding:16px 20px;background:rgba(249,115,22,0.06);border:1px solid rgba(249,115,22,0.25);border-radius:12px}
.checkpoint-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgba(249,115,22,0.12);border-radius:10px;color:#fb923c;font-size:16px}
.checkpoint-body{flex:1}
.checkpoint-body strong{display:block;font-size:13px;color:#fb923c;text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}
.checkpoint-question{margin:6px 0;font-size:14px;font-weight:600;line-height:1.55;color:#e4e4e7}
.checkpoint-reveal{margin-top:10px}
.checkpoint-reveal summary{cursor:pointer;font-size:13px;color:#fb923c;font-weight:600;list-style:none}
.checkpoint-reveal summary::-webkit-details-marker{display:none}
.checkpoint-reveal p{margin:8px 0 0;font-size:14px;color:#d4d4d8;line-height:1.6}

.tldr-box{margin:18px 0;padding:12px 18px;background:rgba(71,85,105,0.15);border-left:4px solid #94a3b8;border-radius:6px;font-size:14px;line-height:1.55;color:#e4e4e7}
.tldr-box strong{display:inline-block;margin-right:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#94a3b8;padding:2px 8px;background:rgba(148,163,184,0.12);border-radius:4px}

.figure-box{margin:18px 0;padding:0;background:rgba(30,30,46,0.4);border:1px solid rgba(99,102,241,0.15);border-radius:12px;overflow:hidden}
.figure-placeholder{height:200px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(99,102,241,0.05),rgba(167,139,250,0.03));color:#6b7280;font-size:48px}
.figure-box figcaption{padding:12px 18px;font-size:13px;color:#a1a1aa;line-height:1.55;border-top:1px solid rgba(99,102,241,0.1)}
.figure-box figcaption strong{color:#d4d4d8;margin-right:6px}

/* Cross-reference anchor links */
.xref{color:#a78bfa;text-decoration:none;border-bottom:1px dashed rgba(167,139,250,0.4)}
.xref:hover{border-bottom-style:solid}

/* Inline semantic tags */
dfn{font-style:normal;font-weight:600;color:#a78bfa;border-bottom:1px dotted rgba(167,139,250,0.4);cursor:help}
var{font-style:italic;color:#f59e0b;font-family:'Times New Roman',serif}
kbd{display:inline-block;padding:2px 7px;font-size:12px;font-family:'JetBrains Mono',monospace;background:rgba(30,30,46,0.8);border:1px solid rgba(99,102,241,0.3);border-bottom-width:2px;border-radius:4px;color:#e4e4e7}
mark{background:rgba(251,191,36,0.2);color:#fde68a;padding:1px 4px;border-radius:3px}
abbr[title]{text-decoration:underline dotted;cursor:help;text-underline-offset:2px}
data{font-weight:600;color:#10b981}
time{color:#a1a1aa;font-variant-numeric:tabular-nums}
cite{font-style:italic;color:#a1a1aa;font-size:.9em}

/* ─── Definition box (structured: intuition + formal + counter) ────── */
.def-term{display:block;font-size:16px;font-weight:700;color:#a78bfa;font-style:normal;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(167,139,250,0.2)}
.def-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#8b8b94;margin-right:6px}
.def-intuition{margin:10px 0;padding:10px 14px;background:rgba(99,102,241,0.08);border-left:3px solid #a78bfa;border-radius:6px;font-size:14px;line-height:1.55}
.def-formal{margin:10px 0;font-size:14px;line-height:1.55;color:#d4d4d8}
.def-counter{margin:10px 0;padding:10px 14px;background:rgba(239,68,68,0.06);border-left:3px solid rgba(239,68,68,0.5);border-radius:6px;font-size:14px;line-height:1.55;color:#d4d4d8}
.def-counter .def-label{color:#ef4444}
.def-usage{margin-top:12px;padding-top:8px;border-top:1px dashed rgba(99,102,241,0.15);font-size:13px;color:#a1a1aa}

/* ─── Learning pack ─────────────────────────────────────────── */
.article-content .learning-pack{margin:0 0 32px;padding:24px 28px;background:linear-gradient(135deg,rgba(99,102,241,0.08) 0%,rgba(167,139,250,0.05) 100%);border:1px solid rgba(99,102,241,0.2);border-radius:16px}
.article-content .learning-pack-title{font-size:12px;font-weight:700;color:#a78bfa;text-transform:uppercase;letter-spacing:1.2px;margin:0 0 18px;padding:0;border:none;display:block}
.article-content .learning-pack-title::before{display:none}
.learning-pack-block{margin-bottom:18px}
.learning-pack-block:last-of-type{margin-bottom:0}
.learning-pack-block h3{font-size:13px;font-weight:600;color:#e4e4e7;margin:0 0 8px;padding:0;border:none;display:flex;align-items:center;gap:8px}
.learning-pack-block h3 i{color:#a78bfa;font-size:12px}
.learning-pack-block ul{list-style:none;margin:0;padding:0}
.learning-pack-block ul li{position:relative;padding:4px 0 4px 22px;font-size:14px;line-height:1.5;color:#d4d4d8}
.learning-pack-objectives ul li::before{content:'→';position:absolute;left:0;color:#a78bfa;font-weight:700}
.learning-pack-prereqs ul li::before{content:'✓';position:absolute;left:0;color:#10b981;font-weight:700}
.learning-pack-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid rgba(99,102,241,0.15)}
.lp-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:rgba(30,30,46,0.6);border:1px solid rgba(99,102,241,0.2);border-radius:10px;font-size:12px;color:#d4d4d8}
.lp-chip i{font-size:11px;color:#a78bfa}
.lp-chip time{font-weight:600;color:#e4e4e7}
.lp-diff-dots{letter-spacing:1px;font-size:10px;color:#a78bfa}
.lp-difficulty-easy .lp-diff-dots{color:#10b981}
.lp-difficulty-medium .lp-diff-dots{color:#f59e0b}
.lp-difficulty-hard .lp-diff-dots{color:#ef4444}
.lp-difficulty-expert .lp-diff-dots{color:#8b5cf6}
