/* ═══════════════════════════════════════════════════════════════
   TANGIBLE — Pitch deck web (HTML/CSS/JS)
   Design system: ink #2B2F33 · flame #E6733C · ivory #FBF8F1
   ═══════════════════════════════════════════════════════════════ */

:root {
    /* Brand palette */
    --ink:            #2B2F33;
    --ink-deep:       #15171B;
    --ink-mid:        #22252A;
    --ink-soft:       #3A3E45;
    --ink-line:       #4D525A;

    --flame:          #E6733C;
    --flame-bright:   #FF8A4F;
    --flame-deep:     #C5582A;
    --flame-glow:     rgba(230, 115, 60, 0.4);

    --ivory:          #FBF8F1;
    --ivory-deep:     #F3ECDE;
    --paper:          #FFFFFF;
    --paper-warm:     #FAF6EA;

    --muted:          #9C978D;
    --muted-dark:     #5E5B53;
    --muted-light:    #D0CCC0;

    --success:        #3AA574;
    --success-soft:   #E7F4EC;
    --warn:           #E6733C;
    --danger:         #D14A3D;

    /* Shadows */
    --shadow-xs:   0 1px 3px rgba(0,0,0,.08);
    --shadow-sm:   0 4px 12px rgba(0,0,0,.08);
    --shadow-md:   0 12px 32px rgba(0,0,0,.12);
    --shadow-lg:   0 24px 60px rgba(0,0,0,.22);
    --shadow-xl:   0 40px 100px rgba(0,0,0,.35);
    --shadow-flame:0 16px 48px rgba(230,115,60,.35);

    /* Radii */
    --r-sm:  8px;
    --r:     14px;
    --r-lg:  20px;
    --r-xl:  28px;

    --font-title: "Fraunces", Georgia, serif;
    --font-body:  "Inter", system-ui, -apple-system, sans-serif;
    --font-mono:  "JetBrains Mono", ui-monospace, monospace;

    /* Deck dimensions (reference) — 16:9 */
    --deck-w: 1920px;
    --deck-h: 1080px;
}

/* ─── Reset ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
    height: 100%;
    overflow: hidden;
    background: #000;
    color: var(--ivory);
    font-family: var(--font-body);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-text-size-adjust: 100%;
}

/* ─── Fullscreen : cursor hides with HUD ────────────── */
body.is-fullscreen {
    cursor: none;
    transition: cursor .2s;
}
body.is-fullscreen.cursor-active {
    cursor: default;
}
body.is-fullscreen button,
body.is-fullscreen a {
    cursor: none;
}
body.is-fullscreen.cursor-active button,
body.is-fullscreen.cursor-active a {
    cursor: pointer;
}

img { max-width: 100%; display: block; }

button {
    font-family: inherit;
    cursor: pointer;
    border: none;
    background: none;
    color: inherit;
}

/* ─── Grain overlay ─────────────────────────────────── */
.grain {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9000;
    opacity: 0.05;
    mix-blend-mode: overlay;
    background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* ═══════════════════════════════════════════════════════════════
   DECK + SLIDES
   ═══════════════════════════════════════════════════════════════ */
.deck {
    position: fixed;
    inset: 0;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 1;
}

.slide.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    z-index: 10;
    animation: slide-enter .6s cubic-bezier(.22, 1, .36, 1) both;
}

.slide.was-active {
    opacity: 0;
    visibility: visible;
    pointer-events: none;
    z-index: 5;
    animation: slide-leave .5s cubic-bezier(.4, 0, .2, 1) both;
}

/* Cross-fade + subtle zoom-in, pas de translation horizontale
   (beaucoup plus elegant, style editorial Apple/Linear) */
@keyframes slide-enter {
    0%   { opacity: 0; transform: scale(1.04); filter: blur(14px); }
    50%  { opacity: 1; filter: blur(0); }
    100% { opacity: 1; transform: scale(1); filter: blur(0); }
}
@keyframes slide-leave {
    0%   { opacity: 1; transform: scale(1); filter: blur(0); }
    100% { opacity: 0; transform: scale(.97); filter: blur(12px); }
}

/* ─── Content stagger progressif ──────────────────────
   Chaque element entre avec delay croissant pour un
   effet "assemblage" editorial.
   ───────────────────────────────────────────────────── */

/* --- FRAME : eyebrow, titre, underline, subtitle --- */
.slide.active .slide-inner > .eyebrow {
    animation: rise .6s .10s cubic-bezier(.22, 1, .36, 1) both;
}
.slide.active .slide-inner > .title,
.slide.active .slide-inner > h1:not(.closing-slogan):not(.cover-slogan) {
    animation: rise .7s .22s cubic-bezier(.22, 1, .36, 1) both;
}
.slide.active .slide-inner > .title-underline {
    animation: underline-grow .7s .38s cubic-bezier(.22, 1, .36, 1) both;
}
.slide.active .slide-inner > .subtitle {
    animation: rise .6s .42s cubic-bezier(.22, 1, .36, 1) both;
}

/* --- CARDS / PILLARS : 4 (ou 3 ou 2) un par un --- */
.slide.active .cards > article,
.slide.active .cards > figure {
    opacity: 0;
    animation: rise-scale .7s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .cards > *:nth-child(1) { animation-delay: .50s; }
.slide.active .cards > *:nth-child(2) { animation-delay: .62s; }
.slide.active .cards > *:nth-child(3) { animation-delay: .74s; }
.slide.active .cards > *:nth-child(4) { animation-delay: .86s; }

/* --- PILLARS BULLETS : chaque li l'un apres l'autre --- */
.slide.active .pillar ul li {
    opacity: 0;
    animation: rise .5s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .pillar-1 ul li:nth-child(1) { animation-delay: .75s; }
.slide.active .pillar-1 ul li:nth-child(2) { animation-delay: .82s; }
.slide.active .pillar-1 ul li:nth-child(3) { animation-delay: .89s; }
.slide.active .pillar-1 ul li:nth-child(4) { animation-delay: .96s; }
.slide.active .pillar-1 ul li:nth-child(5) { animation-delay: 1.03s; }
.slide.active .pillar-2 ul li:nth-child(1) { animation-delay: .87s; }
.slide.active .pillar-2 ul li:nth-child(2) { animation-delay: .94s; }
.slide.active .pillar-2 ul li:nth-child(3) { animation-delay: 1.01s; }
.slide.active .pillar-2 ul li:nth-child(4) { animation-delay: 1.08s; }
.slide.active .pillar-2 ul li:nth-child(5) { animation-delay: 1.15s; }

/* --- DEMO 2 : certificat + resale --- */
.slide.active .demo2-grid > article {
    opacity: 0;
    animation: rise-scale .8s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .demo2-grid > article:nth-child(1) { animation-delay: .50s; }
.slide.active .demo2-grid > article:nth-child(2) { animation-delay: .70s; }

/* --- CERTIFICAT : details un par un --- */
.slide.active .cert-data > div {
    opacity: 0;
    animation: rise .45s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .cert-data > div:nth-child(1) { animation-delay: .85s; }
.slide.active .cert-data > div:nth-child(2) { animation-delay: .95s; }
.slide.active .cert-data > div:nth-child(3) { animation-delay: 1.05s; }
.slide.active .cert-data > div:nth-child(4) { animation-delay: 1.15s; }
.slide.active .cert-chips .chip {
    opacity: 0;
    animation: pop-in .5s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .cert-chips .chip:nth-child(1) { animation-delay: 1.3s; }
.slide.active .cert-chips .chip:nth-child(2) { animation-delay: 1.4s; }

/* --- SPLIT BARS (slide 5) : se remplissent --- */
.slide.active .split-row {
    opacity: 0;
    animation: rise .5s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .split-row:nth-child(1) { animation-delay: .95s; }
.slide.active .split-row:nth-child(2) { animation-delay: 1.10s; }
.slide.active .split-row:nth-child(3) { animation-delay: 1.25s; }
.slide.active .split-row .bar-fill {
    transform: scaleX(0);
    transform-origin: left center;
    animation: bar-grow-x .9s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .split-row:nth-child(1) .bar-fill { animation-delay: 1.05s; }
.slide.active .split-row:nth-child(2) .bar-fill { animation-delay: 1.20s; }
.slide.active .split-row:nth-child(3) .bar-fill { animation-delay: 1.35s; }

/* --- TABLEAU COMPARE : rows une par une --- */
.slide.active .table-wrap {
    animation: rise .6s .50s cubic-bezier(.22, 1, .36, 1) both;
}
.slide.active .compare-table tbody tr {
    opacity: 0;
    animation: rise .4s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .compare-table tbody tr:nth-child(1) { animation-delay: .85s; }
.slide.active .compare-table tbody tr:nth-child(2) { animation-delay: .92s; }
.slide.active .compare-table tbody tr:nth-child(3) { animation-delay: .99s; }
.slide.active .compare-table tbody tr:nth-child(4) { animation-delay: 1.06s; }
.slide.active .compare-table tbody tr:nth-child(5) { animation-delay: 1.13s; }
.slide.active .compare-table tbody tr:nth-child(6) { animation-delay: 1.20s; }
.slide.active .compare-table tbody tr:nth-child(7) { animation-delay: 1.27s; }
.slide.active .compare-table tbody tr:nth-child(8) { animation-delay: 1.34s; }

/* --- CHART BARS (slide 9) : grandissent depuis le bas --- */
.slide.active .chart-card {
    animation: rise .7s .50s cubic-bezier(.22, 1, .36, 1) both;
}
.slide.active .chart-bar {
    transform: scaleY(0);
    transform-origin: bottom center;
    animation: bar-grow-y 1.1s cubic-bezier(.34, 1.56, .64, 1) forwards;
}
.slide.active .bar-group:nth-child(1) .chart-bar { animation-delay: .95s; }
.slide.active .bar-group:nth-child(2) .chart-bar { animation-delay: 1.15s; }
.slide.active .bar-group:nth-child(3) .chart-bar { animation-delay: 1.35s; }
.slide.active .bar-value,
.slide.active .bar-year,
.slide.active .be-marker {
    opacity: 0;
    animation: rise .45s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .bar-group:nth-child(1) .bar-value { animation-delay: 1.50s; }
.slide.active .bar-group:nth-child(2) .bar-value { animation-delay: 1.70s; }
.slide.active .bar-group:nth-child(3) .bar-value { animation-delay: 1.90s; }
.slide.active .bar-group:nth-child(1) .bar-year { animation-delay: 1.15s; }
.slide.active .bar-group:nth-child(2) .bar-year { animation-delay: 1.35s; }
.slide.active .bar-group:nth-child(3) .bar-year { animation-delay: 1.55s; }
.slide.active .be-marker { animation-delay: 2.0s; }

.slide.active .ask-card {
    animation: rise-scale .8s .70s cubic-bezier(.22, 1, .36, 1) both;
}

/* --- TEAM rows un par un --- */
.slide.active .team-list .team-row {
    opacity: 0;
    animation: rise .5s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .team-row:nth-child(1) { animation-delay: .65s; }
.slide.active .team-row:nth-child(2) { animation-delay: .75s; }
.slide.active .team-row:nth-child(3) { animation-delay: .85s; }
.slide.active .team-row:nth-child(4) { animation-delay: .95s; }

/* --- TIMELINE rows un par un (avec la ligne qui grandit) --- */
.slide.active .timeline::before {
    transform-origin: top;
    animation: grow-vertical .9s .70s cubic-bezier(.22, 1, .36, 1) both;
}
.slide.active .tl-row {
    opacity: 0;
    animation: rise .5s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .tl-row:nth-child(1) { animation-delay: .80s; }
.slide.active .tl-row:nth-child(2) { animation-delay: .95s; }
.slide.active .tl-row:nth-child(3) { animation-delay: 1.10s; }
.slide.active .tl-row:nth-child(4) { animation-delay: 1.25s; }

/* --- BANNER, VISION, TAGLINE, FOOTER (closing frame) --- */
.slide.active .slide-inner > .banner {
    animation: rise-scale .75s .95s cubic-bezier(.22, 1, .36, 1) both;
}
.slide.active .slide-inner > .vision {
    animation: rise .6s 1.15s cubic-bezier(.22, 1, .36, 1) both;
}
.slide.active .slide-inner > .tagline {
    animation: rise .6s 1.45s cubic-bezier(.22, 1, .36, 1) both;
}
.slide.active .slide-inner > .page-footer-left {
    animation: fade-in .5s 1.0s ease both;
}

/* --- CLOSING layout : items un par un --- */
.slide.active .closing-layout > * {
    opacity: 0;
    animation: rise .7s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .closing-layout > *:nth-child(1) { animation-delay: .35s; }
.slide.active .closing-layout > *:nth-child(2) { animation-delay: .55s; }
.slide.active .closing-layout > *:nth-child(3) { animation-delay: .70s; }
.slide.active .closing-layout > *:nth-child(4) { animation-delay: .85s; }
.slide.active .closing-layout > *:nth-child(5) { animation-delay: 1.00s; }
.slide.active .closing-layout > *:nth-child(6) { animation-delay: 1.15s; }

/* --- COVER : logo + slogan + en + footer --- */
.slide--cover.active .cover-header,
.slide--cover.active .cover-logo-wrap,
.slide--cover.active .cover-divider,
.slide--cover.active .cover-slogan,
.slide--cover.active .cover-slogan-en,
.slide--cover.active .cover-team,
.slide--cover.active .cover-footer {
    opacity: 0;
    animation: rise .8s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide--cover.active .cover-header    { animation-delay: .15s; }
.slide--cover.active .cover-logo-wrap { animation-delay: .30s; animation-duration: 1s; }
.slide--cover.active .cover-divider   { animation-delay: .70s; animation-name: underline-grow; }
.slide--cover.active .cover-slogan    { animation-delay: .85s; }
.slide--cover.active .cover-slogan-en { animation-delay: 1.10s; }
.slide--cover.active .cover-team      { animation-delay: 1.25s; }
.slide--cover.active .cover-footer    { animation-delay: 1.40s; }

/* --- ASK STATS (slide 11) --- */
.slide.active .ask-cards .ask-stat {
    opacity: 0;
    animation: rise-scale .7s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .ask-stat:nth-child(1) { animation-delay: .70s; }
.slide.active .ask-stat:nth-child(2) { animation-delay: .85s; }
.slide.active .ask-stat:nth-child(3) { animation-delay: 1.00s; }

/* ─── KEYFRAMES ───────────────────────────────────── */
@keyframes rise {
    0%   { opacity: 0; transform: translateY(26px); }
    100% { opacity: 1; transform: translateY(0); }
}
@keyframes rise-scale {
    0%   { opacity: 0; transform: translateY(30px) scale(.96); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes pop-in {
    0%   { opacity: 0; transform: scale(.7); }
    60%  { opacity: 1; transform: scale(1.05); }
    100% { opacity: 1; transform: scale(1); }
}
@keyframes underline-grow {
    0%   { opacity: 0; transform: scaleX(0); transform-origin: left center; }
    100% { opacity: 1; transform: scaleX(1); transform-origin: left center; }
}
@keyframes bar-grow-x {
    0%   { transform: scaleX(0); }
    100% { transform: scaleX(1); }
}
@keyframes bar-grow-y {
    0%   { transform: scaleY(0); }
    100% { transform: scaleY(1); }
}
@keyframes grow-vertical {
    0%   { transform: scaleY(0); }
    100% { transform: scaleY(1); }
}
@keyframes fade-in {
    0%   { opacity: 0; }
    100% { opacity: 1; }
}

/* 16:9 content container that scales to viewport */
.slide-inner {
    position: absolute;
    top: 50%;
    left: 50%;
    width: var(--deck-w);
    height: var(--deck-h);
    transform: translate(-50%, -50%) scale(var(--scale, 0.5));
    transform-origin: center center;
    overflow: hidden;
}

/* Slide background applied via data-bg */
.slide[data-bg="dark"]  .slide-inner { background: var(--ink-deep); color: var(--ivory); }
.slide[data-bg="light"] .slide-inner { background: var(--ivory); color: var(--ink); }

/* ─── Global typography ─────────────────────────────── */
.slide h1, .slide h2, .slide h3, .slide h4 {
    font-family: var(--font-title);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.015em;
}

.slide em {
    font-style: italic;
    color: var(--flame);
    font-weight: 700;
}

.mono { font-family: var(--font-mono); }
.muted { color: var(--muted); }
.small { font-size: 0.85em; }
.italic { font-style: italic; }
.flame { color: var(--flame); }
.flame-text { color: var(--flame-deep); }
.b, b { font-weight: 700; }

/* ─── Eyebrow ───────────────────────────────────────── */
.eyebrow {
    position: absolute;
    top: 56px;
    left: 90px;
    display: flex;
    align-items: center;
    gap: 18px;
    font-family: var(--font-mono);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.22em;
    color: var(--flame);
}
.eyebrow-bar {
    width: 36px;
    height: 2px;
    background: var(--flame);
    box-shadow: 0 0 10px var(--flame-glow);
}

/* ─── Title styles ──────────────────────────────────── */
.title {
    position: absolute;
    top: 108px;
    left: 90px;
    right: 90px;
    font-family: var(--font-title);
    font-size: 88px;
    font-weight: 700;
    line-height: 1.05;
    color: var(--ink);
}
.slide[data-bg="dark"] .title { color: var(--ivory); }
.title--light { color: var(--ivory) !important; }
.title--hero { font-size: 104px; font-style: italic; line-height: 1; }

.title-underline {
    position: absolute;
    top: 240px;
    left: 90px;
    width: 140px;
    height: 5px;
    background: var(--flame);
    border-radius: 3px;
    box-shadow: 0 0 20px var(--flame-glow);
}

.subtitle {
    position: absolute;
    top: 280px;
    left: 90px;
    right: 90px;
    font-style: italic;
    font-size: 24px;
    color: var(--muted-dark);
}
.slide[data-bg="dark"] .subtitle { color: var(--muted-light); opacity: 0.85; }

/* ─── Footer unifié bas-gauche (brand + page) ────────── */
.page-footer-left {
    position: absolute;
    bottom: 48px;
    left: 64px;
    display: flex;
    align-items: center;
    gap: 14px;
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.22em;
    color: var(--muted);
    z-index: 5;
}
.slide[data-bg="dark"] .page-footer-left { color: var(--muted-light); opacity: 0.65; }
.page-footer-left .footer-sep { opacity: 0.5; }
.page-footer-left .footer-page {
    color: var(--flame);
    font-size: 14px;
    letter-spacing: 0.15em;
    text-shadow: 0 0 10px var(--flame-glow);
}

/* ─── QR code badges ────────────────────────────────── */
.qr-badge {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 16px 22px 16px 16px;
    background: rgba(255,255,255,0.04);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-lg);
    z-index: 6;
}
.qr-badge img {
    width: 120px;
    height: 120px;
    background: var(--ivory);
    padding: 8px;
    border-radius: 12px;
    display: block;
}
.qr-caption {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-family: var(--font-mono);
    line-height: 1.2;
}
.qr-caption .flame {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.15em;
}
.qr-caption .muted {
    font-size: 15px;
    color: var(--ivory);
    opacity: 0.75;
    letter-spacing: 0.06em;
}

.qr-badge--ask {
    bottom: 110px;
    left: 64px;
    background: rgba(230, 115, 60, 0.08);
    border-color: rgba(230, 115, 60, 0.3);
    box-shadow: 0 16px 40px rgba(230, 115, 60, 0.25);
}

/* ─── Corner marks ──────────────────────────────────── */
.corner-mark {
    position: absolute;
    width: 44px;
    height: 44px;
}
.corner-mark::before,
.corner-mark::after {
    content: "";
    position: absolute;
    background: var(--flame);
}
.corner-tr { top: 50px; right: 60px; }
.corner-tr::before { top: 0; right: 0; width: 44px; height: 2px; }
.corner-tr::after  { top: 0; right: 0; width: 2px; height: 44px; }

.corner-tl { top: 50px; left: 60px; }
.corner-tl::before { top: 0; left: 0; width: 44px; height: 2px; }
.corner-tl::after  { top: 0; left: 0; width: 2px; height: 44px; }

/* ─── Glow / ambient ──────────────────────────────────
   Note: pas de filter:blur ici (Firefox rend mal avec
   border-radius). On compte sur la transparence du
   radial-gradient pour le fondu doux.
   ─────────────────────────────────────────────────── */
.glow {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    will-change: transform;
}
.glow-left {
    width: 900px; height: 900px;
    top: 10%; left: -100px;
    background: radial-gradient(circle, var(--flame-glow) 0%, transparent 60%);
    border-radius: 50%;
    opacity: 0.8;
}
.glow-right {
    width: 600px; height: 600px;
    bottom: 0; right: 0;
    background: radial-gradient(circle, rgba(197, 88, 42, 0.35) 0%, transparent 60%);
    border-radius: 50%;
    opacity: 0.7;
}
.glow-left-mid {
    width: 700px; height: 700px;
    top: 40%; left: 10%;
    background: radial-gradient(circle, var(--flame-glow) 0%, transparent 60%);
    border-radius: 50%;
    opacity: 0.5;
}
.glow-left-big {
    width: 1100px; height: 1100px;
    top: 20%; left: -200px;
    background: radial-gradient(circle, var(--flame-glow) 0%, transparent 60%);
    border-radius: 50%;
    opacity: 0.9;
}
.glow-center-top {
    width: 900px; height: 900px;
    top: 5%; left: 50%;
    translate: -50% 0;
    background: radial-gradient(circle, var(--flame-glow) 0%, transparent 55%);
    border-radius: 50%;
    opacity: 0.7;
}
.glow-center-bottom {
    width: 1000px; height: 1000px;
    bottom: -200px; left: 50%;
    translate: -50% 0;
    background: radial-gradient(circle, rgba(230, 115, 60, 0.28) 0%, transparent 60%);
    border-radius: 50%;
    opacity: 0.8;
}

/* ─── Watermarks ───────────────────────────────────── */
.watermark {
    position: absolute;
    opacity: 0.08;
    pointer-events: none;
    filter: blur(1px);
}
.wm-right {
    width: 700px;
    height: auto;
    top: 5%;
    right: -100px;
}
.wm-right-big {
    width: 950px;
    height: auto;
    top: 10%;
    right: -150px;
    opacity: 0.06;
}

/* ─── Inline logo (header) ──────────────────────────── */
.inline-logo {
    position: absolute;
    top: 50px;
    left: 300px;
    height: 72px;
    width: auto;
}

/* ═══════════════════════════════════════════════════════════════
   SLIDE 1 — COVER
   ═══════════════════════════════════════════════════════════════ */
.slide--cover .slide-inner {
    background:
        radial-gradient(ellipse at 20% 40%, rgba(230,115,60,0.25) 0%, transparent 55%),
        radial-gradient(ellipse at 80% 80%, rgba(197,88,42,0.15) 0%, transparent 55%),
        linear-gradient(135deg, #1E2024 0%, #12141A 100%);
}

.cover-header {
    position: absolute;
    top: 60px; left: 90px; right: 90px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.cover-header span { font-size: 15px; font-weight: 700; letter-spacing: 0.2em; color: var(--flame); }
.cover-header .muted { color: var(--muted); }

.cover-logo-wrap {
    position: absolute;
    top: 170px;
    left: 0;
    right: 0;
    margin-inline: auto;
    width: 440px;
    height: 440px;
    display: grid;
    place-items: center;
}
.logo-halo {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: radial-gradient(circle, var(--flame-glow) 0%, transparent 60%);
    filter: blur(60px);
    animation: pulse 4s ease-in-out infinite;
}
.cover-logo {
    position: relative;
    max-width: 92%;
    max-height: 92%;
    width: auto;
    height: auto;
    filter: drop-shadow(0 0 40px var(--flame-glow));
    animation: float 6s ease-in-out infinite;
}

.cover-divider {
    position: absolute;
    top: 640px;
    left: 0;
    right: 0;
    margin-inline: auto;
    width: 220px;
    height: 2px;
    background: var(--flame);
    box-shadow: 0 0 20px var(--flame-glow);
}

.cover-slogan {
    position: absolute;
    top: 680px;
    left: 90px;
    right: 90px;
    font-family: var(--font-title);
    font-size: 76px;
    font-weight: 900;
    font-style: italic;
    color: var(--ivory);
    text-align: center;
    line-height: 1.05;
    letter-spacing: -0.015em;
}
.cover-slogan em {
    color: var(--flame);
    text-shadow: 0 0 40px var(--flame-glow);
}

.cover-slogan-en {
    position: absolute;
    top: 870px;
    left: 90px; right: 90px;
    font-family: var(--font-mono);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.2em;
    color: var(--flame);
    text-align: center;
}

.cover-footer {
    position: absolute;
    bottom: 50px;
    left: 90px; right: 90px;
    font-family: var(--font-mono);
    font-size: 14px;
    letter-spacing: 0.25em;
    color: var(--muted);
    text-align: center;
}

.cover-team {
    position: absolute;
    bottom: 88px;
    left: 90px; right: 90px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    font-family: var(--font-mono);
    font-size: 13px;
    letter-spacing: 0.12em;
    color: rgba(251,248,241,0.55);
}
.ct-sep {
    color: var(--flame);
    opacity: 0.5;
    font-size: 11px;
}

.closing-team {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    font-family: var(--font-mono);
    font-size: 13px;
    letter-spacing: 0.12em;
    color: rgba(251,248,241,0.45);
    margin-bottom: 8px;
}

.ask-team {
    position: absolute;
    bottom: 48px;
    left: 90px; right: 90px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    font-family: var(--font-mono);
    font-size: 13px;
    letter-spacing: 0.12em;
    color: rgba(251,248,241,0.35);
}

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-10px); }
}
@keyframes pulse {
    0%, 100% { opacity: 0.7; transform: scale(1); }
    50%      { opacity: 1;   transform: scale(1.06); }
}
@keyframes orbitGlow {
    0%   { transform: translate(0, 0) scale(1);   opacity: 0.7; }
    33%  { transform: translate(20px, -10px) scale(1.08); opacity: 1; }
    66%  { transform: translate(-15px, 18px) scale(.95); opacity: .85; }
    100% { transform: translate(0, 0) scale(1);   opacity: 0.7; }
}
@keyframes askHaloPulse {
    0%, 100% { transform: scale(1);    opacity: 0.7; }
    50%      { transform: scale(1.18); opacity: 1; }
}

/* ═══════════════════════════════════════════════════════════════
   SLIDE 2 — PROBLÈME
   ═══════════════════════════════════════════════════════════════ */
.slide--problem .slide-inner {
    background:
        radial-gradient(ellipse at 75% 30%, rgba(44,47,52,1) 0%, rgba(21,23,27,1) 70%);
}

.bg-symbol {
    position: absolute;
    top: -180px;
    right: -100px;
    font-family: var(--font-title);
    font-size: 900px;
    font-weight: 900;
    font-style: italic;
    color: var(--flame);
    opacity: 0.09;
    line-height: 1;
    pointer-events: none;
    user-select: none;
    transform: rotate(-14deg);
    transform-origin: top right;
    text-shadow: 0 0 80px rgba(230, 115, 60, 0.3);
}

.cards {
    position: absolute;
    display: grid;
    gap: 28px;
    padding: 0 90px;
}
.cards-4 {
    left: 0; right: 0;
    top: 390px;
    bottom: 140px;
    grid-template-columns: repeat(4, 1fr);
    align-content: start;
}
.cards-4 .card { height: 420px; }
.cards-3 {
    left: 0; right: 0;
    top: 380px;
    grid-template-columns: repeat(3, 1fr);
}
.cards-2 {
    left: 0; right: 0;
    top: 370px;
    bottom: 100px;
    grid-template-columns: 1fr 1fr;
}

.card {
    position: relative;
    padding: 56px 40px 40px;
    background: linear-gradient(180deg, rgba(46,50,55,1) 0%, rgba(30,33,37,1) 100%);
    border-radius: var(--r-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}
.card-stripe {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 6px;
    background: linear-gradient(90deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 0 20px var(--flame-glow);
}
.card-line {
    width: 48px;
    height: 2px;
    background: var(--flame);
    margin: 16px 0 28px;
}
.card .mono.flame { font-size: 18px; font-weight: 700; letter-spacing: 0.12em; }
.card h3 {
    font-size: 28px;
    color: var(--ivory);
    margin-bottom: 6px;
}
.card p.italic { font-size: 22px; margin-bottom: 20px; }
.card-body {
    font-size: 17px;
    color: var(--muted-light);
    line-height: 1.55;
}
.card-body em { color: var(--flame); font-style: normal; font-weight: 600; }

/* ═══════════════════════════════════════════════════════════════
   SLIDE 3 — SOLUTION
   ═══════════════════════════════════════════════════════════════ */
.slide--solution .slide-inner {
    background:
        radial-gradient(ellipse at 20% 20%, var(--paper) 0%, var(--ivory-deep) 70%);
}

.cards-2 {
    position: absolute;
    top: 380px;
    left: 90px; right: 90px;
    bottom: 80px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    padding: 0;
}

.pillar {
    position: relative;
    padding: 56px 52px 52px;
    background: linear-gradient(135deg, var(--paper) 0%, var(--paper-warm) 100%);
    border-radius: var(--r-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}
.pillar--accent {
    box-shadow: 0 24px 60px rgba(197, 88, 42, 0.25), var(--shadow-lg);
}
.pillar-stripe {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 8px;
    background: linear-gradient(90deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 0 24px var(--flame-glow);
}
.pillar-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 52px;
    background: var(--ivory-deep);
    color: var(--flame);
    font-family: var(--font-mono);
    font-size: 22px;
    font-weight: 700;
    border-radius: 12px;
    margin-bottom: 24px;
}
.pillar-badge--accent {
    background: linear-gradient(135deg, var(--flame-bright), var(--flame-deep));
    color: var(--ivory);
    box-shadow: 0 8px 24px var(--flame-glow);
}
.pillar h2 {
    font-size: 56px;
    color: var(--ink);
    margin-bottom: 8px;
}
.pillar-sub {
    font-size: 22px;
    color: var(--muted-dark);
    font-style: italic;
    margin-bottom: 28px;
}
.pillar-accent {
    width: 56px;
    height: 3px;
    background: var(--flame);
    border-radius: 2px;
    margin-bottom: 28px;
}
.pillar ul {
    list-style: none;
}
.pillar li {
    position: relative;
    padding: 12px 0 12px 40px;
    font-size: 20px;
    color: var(--ink-soft);
    border-top: 1px solid rgba(43, 47, 51, 0.08);
    line-height: 1.45;
}
.pillar li:first-child { border-top: none; }
.pillar li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 12px;
    font-weight: 700;
    color: var(--flame);
    font-size: 18px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(230, 115, 60, 0.12);
    display: grid;
    place-items: center;
}
.pillar li b { color: var(--ink); font-weight: 700; }

/* ═══════════════════════════════════════════════════════════════
   SLIDE 4 — DÉMO 1/2
   ═══════════════════════════════════════════════════════════════ */
.slide--demo1 .slide-inner {
    background: linear-gradient(135deg, var(--ivory) 0%, var(--ivory-deep) 100%);
}

.cards-demo {
    top: 340px;
    bottom: 80px;
}

.screen {
    position: relative;
    background: var(--paper);
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    display: flex;
    flex-direction: column;
}
.screen--accent {
    box-shadow: 0 24px 60px rgba(230, 115, 60, 0.3), var(--shadow-lg);
}

.chrome {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 24px;
    background: var(--ivory-deep);
    border-bottom: 1px solid rgba(0,0,0,0.05);
}
.chrome-orange {
    background: linear-gradient(90deg, var(--flame-bright), var(--flame-deep));
    color: var(--ivory);
}
.chrome .dot {
    width: 14px; height: 14px;
    border-radius: 50%;
    display: inline-block;
}
.dot-r { background: #E36A5E; }
.dot-o { background: #E0B04D; }
.dot-g { background: #5AC05A; }
.chrome-title {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.15em;
    color: var(--muted);
    margin-left: 12px;
}
.chrome-title.light { color: var(--ivory); margin-left: 0; }

.screen-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    padding: 0;
    text-align: center;
    gap: 24px;
    overflow: hidden;
    min-height: 0;
}
/* Variante avec contenu textuel (placeholder) */
.screen-body--padded {
    padding: 40px;
    align-items: center;
}
.screen-shot {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    border-radius: 0;
    box-shadow: none;
}

/* ─── Mockup PLAYER (slide 4) ───────────────────────── */
.mock-player {
    padding: 28px 28px 24px;
    background: var(--ivory-deep);
    align-items: stretch;
    gap: 20px;
}
.mock-feature {
    background: var(--ink);
    color: var(--ivory);
    padding: 24px 28px;
    border-radius: 18px;
    position: relative;
    overflow: hidden;
}
.mock-feature::before {
    content: "";
    position: absolute;
    top: -40px; right: -40px;
    width: 240px; height: 240px;
    background: radial-gradient(circle, rgba(230, 115, 60, 0.55) 0%, transparent 65%);
    border-radius: 50%;
    pointer-events: none;
    animation: orbitGlow 14s ease-in-out infinite;
}
.mock-tag {
    display: inline-block;
    font-size: 11px;
    letter-spacing: 0.2em;
    font-weight: 700;
    color: var(--flame);
    margin-bottom: 8px;
    position: relative;
}
.mock-feature h5 {
    font-family: var(--font-title);
    font-size: 28px;
    font-weight: 700;
    line-height: 1.1;
    color: var(--ivory);
    margin-bottom: 8px;
    position: relative;
}
.mock-feature p {
    font-size: 14px;
    color: rgba(251, 248, 241, 0.75);
    margin-bottom: 16px;
    position: relative;
}
.mock-btn {
    background: var(--flame);
    color: var(--ivory);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    padding: 10px 22px;
    border-radius: 999px;
    box-shadow: 0 6px 18px var(--flame-glow);
    position: relative;
}
.mock-collection {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 0;
}
.mock-collection-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 700;
    color: var(--ink);
}
.mock-chip {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--success);
    background: rgba(58, 165, 116, 0.12);
    padding: 3px 10px;
    border-radius: 999px;
}
.mock-grid {
    flex: 1;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
    min-height: 0;
}
.mock-poster {
    border-radius: 12px;
    background: linear-gradient(135deg, var(--ink-soft), var(--ink));
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 8px;
    color: var(--ivory);
    font-family: var(--font-title);
    font-size: 14px;
    font-style: italic;
    font-weight: 700;
    text-align: center;
    line-height: 1.1;
    min-height: 0;
    box-shadow: var(--shadow-sm);
}
.mock-p1 { background: linear-gradient(135deg, #D6A368, #8C5E2E); }
.mock-p2 { background: linear-gradient(135deg, #4D525A, #2B2F33); }
.mock-p3 { background: linear-gradient(135deg, #8D6A9F, #5A3E72); }
.mock-p4 { background: linear-gradient(135deg, #3B6E78, #1F3F4A); }
.mock-p5 {
    background: rgba(43, 47, 51, 0.06);
    color: var(--ink-soft);
    border: 1px dashed var(--ink-line);
    box-shadow: none;
}

/* ─── Mockup STORE (slide 4) ────────────────────────── */
.mock-store {
    padding: 28px;
    background: var(--ivory-deep);
    align-items: stretch;
}
.mock-store-grid {
    flex: 1;
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 24px;
    min-height: 0;
}
.mock-store-poster {
    background: linear-gradient(135deg, #D6A368, #8C5E2E);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ivory);
    box-shadow: var(--shadow-md);
}
.mock-poster-title {
    font-family: var(--font-title);
    font-size: 38px;
    font-weight: 900;
    line-height: 1;
    text-align: center;
    letter-spacing: -0.02em;
}
.mock-poster-title em {
    font-style: italic;
    color: var(--flame-bright);
    font-size: 56px;
    display: block;
    margin-top: 8px;
}
.mock-store-info {
    display: flex;
    flex-direction: column;
    gap: 10px;
    text-align: left;
    min-width: 0;
}
.mock-store-info h4 {
    font-family: var(--font-title);
    font-size: 26px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.1;
}
.mock-store-meta {
    font-size: 13px;
    color: var(--muted-dark);
    font-style: italic;
}
.mock-store-rate {
    font-size: 11px;
    letter-spacing: 0.06em;
    color: var(--flame-deep);
    font-weight: 700;
}
.mock-store-price {
    font-family: var(--font-title);
    font-size: 32px;
    font-weight: 900;
    color: var(--ink);
    line-height: 1;
    margin-top: 4px;
}
.mock-store-price span {
    font-size: 14px;
    font-weight: 600;
    color: var(--muted-dark);
    margin-left: 6px;
}
.mock-cta {
    background: linear-gradient(180deg, var(--flame-bright), var(--flame-deep));
    color: var(--ivory);
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.15em;
    padding: 12px 18px;
    border-radius: 10px;
    box-shadow: 0 8px 20px var(--flame-glow);
    margin-top: 6px;
}
.mock-incl {
    list-style: none;
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 12px;
    color: var(--ink-soft);
}
.mock-incl li::before {
    content: "";
    margin-right: 6px;
    color: var(--success);
    font-weight: 700;
}
.placeholder-text {
    font-family: var(--font-mono);
    font-size: 22px;
    color: var(--muted);
}
.placeholder-hint {
    font-family: var(--font-body);
    font-size: 15px;
    font-style: italic;
    color: var(--muted);
}
.price {
    font-family: var(--font-title);
    font-size: 44px;
    font-weight: 700;
    color: var(--ink);
    margin-top: 32px;
}
.cta {
    padding: 18px 40px;
    background: linear-gradient(180deg, var(--flame-bright), var(--flame-deep));
    color: var(--ivory);
    font-family: var(--font-mono);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.15em;
    border-radius: 999px;
    box-shadow:
        0 8px 24px var(--flame-glow),
        0 0 0 1px rgba(255, 255, 255, 0.1) inset;
    transition: transform .15s;
}
.cta:hover { transform: translateY(-2px); }

.screen figcaption {
    padding: 20px;
    text-align: center;
    font-family: var(--font-body);
    font-size: 20px;
    font-weight: 700;
    color: var(--ink);
    background: rgba(0,0,0,0.02);
}
.screen--accent figcaption {
    color: var(--flame-deep);
    background: rgba(230, 115, 60, 0.05);
}

/* ═══════════════════════════════════════════════════════════════
   SLIDE 5 — DÉMO 2/2 (certificat + revente)
   ═══════════════════════════════════════════════════════════════ */
.slide--demo2 .slide-inner {
    background:
        radial-gradient(ellipse at 70% 30%, var(--ink-mid) 0%, var(--ink-deep) 70%);
}

.demo2-grid {
    position: absolute;
    top: 350px;
    left: 90px; right: 90px;
    bottom: 80px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.certificate {
    position: relative;
    background: linear-gradient(135deg, var(--paper) 0%, var(--ivory-deep) 100%);
    color: var(--ink);
    border-radius: var(--r-xl);
    padding: 48px 44px;
    box-shadow:
        var(--shadow-xl),
        0 0 0 1px rgba(255, 255, 255, 0.1) inset;
    overflow: hidden;
    transform: perspective(1800px) rotateY(-3deg) rotateX(1deg);
    transition: transform .5s cubic-bezier(.4,.0,.2,1);
}
.certificate:hover {
    transform: perspective(1800px) rotateY(0) rotateX(0);
}
.cert-ribbon {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 8px;
    background: linear-gradient(90deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 0 20px var(--flame-glow);
}
.certificate header {
    font-family: var(--font-mono);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.15em;
    color: var(--flame);
    margin-bottom: 16px;
}
.certificate h3 {
    font-size: 40px;
    color: var(--ink);
    margin-bottom: 10px;
}
.cert-meta {
    font-size: 18px;
    font-style: italic;
    color: var(--muted-dark);
    margin-bottom: 24px;
}
.cert-divider {
    height: 1px;
    background: repeating-linear-gradient(
        90deg,
        transparent 0 6px,
        rgba(43, 47, 51, 0.2) 6px 12px
    );
    margin-bottom: 28px;
}
.cert-data {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 32px;
    margin-bottom: 32px;
}
.cert-data div dt {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.15em;
    color: var(--muted-dark);
    margin-bottom: 4px;
}
.cert-data div dd code {
    font-family: var(--font-mono);
    font-size: 16px;
    font-weight: 700;
    color: var(--ink);
    background: var(--ivory-deep);
    padding: 4px 10px;
    border-radius: 6px;
}
.cert-chips {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    padding-top: 24px;
    border-top: 1px dashed rgba(43, 47, 51, 0.2);
}
.chip {
    display: inline-flex;
    align-items: center;
    padding: 10px 18px;
    border-radius: 999px;
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.1em;
}
.chip-ok { background: var(--success-soft); color: var(--success); }
.chip-flame { background: rgba(230, 115, 60, 0.12); color: var(--flame-deep); }

.resale {
    position: relative;
    background: linear-gradient(135deg, var(--ink) 0%, var(--ink-deep) 100%);
    color: var(--ivory);
    border-radius: var(--r-xl);
    padding: 48px 44px;
    box-shadow: var(--shadow-xl);
    overflow: hidden;
}
.resale-ribbon {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 8px;
    background: linear-gradient(90deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 0 20px var(--flame-glow);
}
.resale .mono.flame { font-size: 16px; font-weight: 700; letter-spacing: 0.15em; margin-bottom: 24px; }
.resale-title {
    font-size: 64px;
    font-style: italic;
    color: var(--ivory);
    margin-bottom: 36px;
    line-height: 1.0;
}
.resale-title em { color: var(--flame); font-weight: 900; }
.resale-example {
    font-size: 14px !important;
    font-weight: 700;
    letter-spacing: 0.12em;
}
.resale-line {
    width: 48px; height: 2px;
    background: var(--flame);
    margin: 12px 0 28px;
    box-shadow: 0 0 10px var(--flame-glow);
}

.splits { display: flex; flex-direction: column; gap: 16px; }
.split-row {
    display: grid;
    grid-template-columns: 160px 1fr 100px;
    align-items: center;
    gap: 20px;
    font-size: 20px;
    color: var(--ivory);
}
.split-row .mono {
    font-weight: 700;
    font-size: 22px;
    color: var(--flame);
    text-align: right;
}
.bar {
    height: 14px;
    background: rgba(255,255,255,0.08);
    border-radius: 4px;
    overflow: hidden;
}
.bar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 0 12px var(--flame-glow);
    border-radius: 4px;
}

/* ═══════════════════════════════════════════════════════════════
   SLIDE 6 — SÉCURITÉ (7 couches + DMS)
   ═══════════════════════════════════════════════════════════════ */
.slide--security .slide-inner {
    background:
        radial-gradient(ellipse at 75% 25%, rgba(230, 115, 60, 0.12) 0%, transparent 60%),
        linear-gradient(135deg, #1A1D22 0%, #12141A 100%);
}

.sec-grid {
    position: absolute;
    top: 310px;
    left: 90px; right: 90px;
    bottom: 110px;
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 32px;
}
.sec-grid--single {
    grid-template-columns: 1fr;
    max-width: 900px;
    margin: 0 auto;
    left: 0; right: 0;
}

/* ─── Sidebar Standards / Hardware / Audits ────────── */
.sec-side {
    display: flex;
    flex-direction: column;
    gap: 14px;
    align-self: stretch;
}
.sec-side-block {
    padding: 16px 18px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 12px;
}
.sec-side-block--accent {
    background: linear-gradient(135deg, rgba(230, 115, 60, 0.10), rgba(230, 115, 60, 0.02));
    border-color: rgba(230, 115, 60, 0.3);
}
.sec-side-tag {
    display: block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.22em;
    color: var(--flame);
    margin-bottom: 10px;
    text-shadow: 0 0 8px rgba(230, 115, 60, 0.3);
}
.sec-side-block ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.sec-side-block li {
    font-size: 13px;
    line-height: 1.4;
    color: var(--muted-light);
}
.sec-kw {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    color: var(--ivory);
    background: rgba(230, 115, 60, 0.14);
    padding: 1px 6px;
    border-radius: 4px;
    margin-right: 4px;
}
.sec-side-quote {
    margin-top: 4px;
    padding: 12px 16px;
    border-left: 3px solid var(--flame);
    background: rgba(230, 115, 60, 0.05);
    border-radius: 0 8px 8px 0;
    font-family: var(--font-title);
    font-size: 13px;
    line-height: 1.5;
    color: var(--muted-light);
}
.sec-side-quote em {
    color: var(--ivory);
    font-style: italic;
    font-weight: 500;
}

.slide.active .sec-side-block {
    opacity: 0;
    animation: rise .55s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .sec-side-block:nth-child(1) { animation-delay: .55s; }
.slide.active .sec-side-block:nth-child(2) { animation-delay: .68s; }
.slide.active .sec-side-block:nth-child(3) { animation-delay: .81s; }
.slide.active .sec-side-quote {
    opacity: 0;
    animation: rise .5s 1.0s cubic-bezier(.22, 1, .36, 1) forwards;
}

/* ─── Stack 7 couches (gauche) ──────────────────────── */
.sec-stack {
    display: flex;
    flex-direction: column;
    gap: 7px;
}
.sec-layer {
    display: grid;
    grid-template-columns: 56px 1fr auto;
    align-items: center;
    gap: 18px;
    padding: 10px 18px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 10px;
    transition: background .25s, border-color .25s, transform .2s;
}
.sec-layer:hover {
    background: rgba(230, 115, 60, 0.08);
    border-color: rgba(230, 115, 60, 0.25);
    transform: translateX(4px);
}
.sec-layer--key {
    background: linear-gradient(90deg,
        rgba(230, 115, 60, 0.12) 0%,
        rgba(230, 115, 60, 0.03) 100%);
    border-color: rgba(230, 115, 60, 0.25);
}

.sec-num {
    font-family: var(--font-mono);
    font-size: 28px;
    font-weight: 900;
    color: var(--flame);
    text-align: center;
    letter-spacing: -0.02em;
    line-height: 1;
    text-shadow: 0 0 14px rgba(230, 115, 60, 0.4);
}
.sec-layer--key .sec-num {
    color: var(--flame-bright);
    text-shadow: 0 0 20px rgba(230, 115, 60, 0.6);
}

.sec-info h4 {
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 700;
    color: var(--ivory);
    line-height: 1.1;
    margin-bottom: 3px;
}
.sec-info h4 code {
    font-family: var(--font-mono);
    font-size: 16px;
    background: rgba(230, 115, 60, 0.15);
    color: var(--flame);
    padding: 1px 6px;
    border-radius: 4px;
}
.sec-info p {
    font-size: 13px;
    color: var(--muted-light);
    line-height: 1.3;
    opacity: 0.85;
}

.sec-diff {
    font-size: 11px;
    color: var(--flame);
    letter-spacing: -0.05em;
    white-space: nowrap;
}

/* ─── DMS aside (droite) ────────────────────────────── */
.sec-dms {
    position: relative;
    padding: 28px 30px;
    background: linear-gradient(135deg, var(--ink) 0%, var(--ink-deep) 100%);
    border-radius: var(--r-lg);
    overflow: hidden;
    border: 1px solid rgba(230, 115, 60, 0.25);
    box-shadow:
        var(--shadow-xl),
        0 0 60px rgba(230, 115, 60, 0.15) inset;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.sec-dms::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 0 18px var(--flame-glow);
}
.sec-dms::after {
    content: "";
    position: absolute;
    top: -80px; right: -80px;
    width: 280px; height: 280px;
    background: radial-gradient(circle, rgba(230, 115, 60, 0.5) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    animation: orbitGlow 12s ease-in-out infinite reverse;
    pointer-events: none;
}

.sec-dms-tag {
    position: relative;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.22em;
    color: var(--flame);
    text-shadow: 0 0 10px var(--flame-glow);
}

.sec-dms h3 {
    position: relative;
    font-family: var(--font-title);
    font-size: 28px;
    font-weight: 700;
    color: var(--ivory);
    line-height: 1.1;
}
.sec-dms h3 em {
    color: var(--flame);
    font-style: italic;
}

.sec-dms-lead {
    position: relative;
    font-size: 14px;
    line-height: 1.5;
    color: var(--muted-light);
}

.sec-flow {
    position: relative;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 4px 0 0;
    padding: 0;
    counter-reset: none;
}
.sec-flow li {
    position: relative;
    display: grid;
    grid-template-columns: 56px 1fr;
    align-items: center;
    gap: 12px;
    padding: 0;
    color: var(--ivory);
}
.sec-flow-tag {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    padding: 4px 0;
    background: rgba(230, 115, 60, 0.14);
    color: var(--flame);
    border-radius: 5px;
    text-align: center;
    line-height: 1.2;
}
.sec-flow-text {
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
    color: var(--ivory);
    line-height: 1.35;
    letter-spacing: 0.01em;
}

.sec-dms-promise {
    position: relative;
    margin-top: 6px;
    padding: 10px 14px;
    background: rgba(230, 115, 60, 0.08);
    border-left: 3px solid var(--flame);
    border-radius: 0 6px 6px 0;
    font-size: 12px;
    line-height: 1.5;
    color: var(--muted-light);
}
.sec-dms-promise em {
    color: var(--flame);
    font-style: italic;
    font-weight: 600;
}

/* ─── Animations stagger sécurité ───────────────────── */
.slide.active .sec-layer {
    opacity: 0;
    animation: rise .5s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .sec-layer[data-lvl="7"] { animation-delay: .50s; }
.slide.active .sec-layer[data-lvl="6"] { animation-delay: .58s; }
.slide.active .sec-layer[data-lvl="5"] { animation-delay: .66s; }
.slide.active .sec-layer[data-lvl="4"] { animation-delay: .74s; }
.slide.active .sec-layer[data-lvl="3"] { animation-delay: .82s; }
.slide.active .sec-layer[data-lvl="2"] { animation-delay: .90s; }
.slide.active .sec-layer[data-lvl="1"] { animation-delay: .98s; }
.slide.active .sec-dms {
    opacity: 0;
    animation: rise-scale .8s 1.05s cubic-bezier(.22, 1, .36, 1) forwards;
}

/* ═══════════════════════════════════════════════════════════════
   SLIDE 7 — COMPARAISON
   ═══════════════════════════════════════════════════════════════ */
.slide--compare .slide-inner {
    background: linear-gradient(135deg, var(--paper) 0%, var(--ivory-deep) 100%);
}

.table-wrap {
    position: absolute;
    top: 320px;
    left: 90px; right: 90px;
    bottom: 190px;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.compare-table {
    width: 100%;
    max-width: 1300px;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--paper);
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    font-size: 19px;
}
.compare-table th, .compare-table td {
    padding: 14px 22px;
    text-align: center;
    border-bottom: 1px solid rgba(43,47,51,0.06);
}
.compare-table thead th {
    background: linear-gradient(180deg, var(--ink-soft), var(--ink));
    color: var(--ivory);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 18px;
    padding: 20px 22px;
    letter-spacing: 0.03em;
}
.compare-table .th-flame {
    background: linear-gradient(180deg, var(--flame-bright), var(--flame-deep)) !important;
    box-shadow: 0 0 30px var(--flame-glow) inset;
    font-weight: 700;
}
.compare-table .th-flame img {
    display: inline-block;
    height: 28px;
    vertical-align: middle;
    margin-right: 8px;
}
.compare-table tbody th {
    text-align: left;
    font-weight: 500;
    background: var(--ivory);
    color: var(--ink);
    font-family: var(--font-body);
    padding: 14px 22px;
}
.compare-table tbody td.ok,
.compare-table tbody td.warn,
.compare-table tbody td.ko {
    font-family: var(--font-mono);
    font-size: 22px;
    font-weight: 700;
}
.compare-table tbody td:nth-child(2) {
    background: rgba(230, 115, 60, 0.08);
}
.compare-table tbody tr:last-child th,
.compare-table tbody tr:last-child td { border-bottom: none; }

.compare-table .ok   { color: var(--success); }
.compare-table .warn { color: var(--flame); }
.compare-table .ko   { color: var(--danger); opacity: 0.5; }

.tagline {
    position: absolute;
    bottom: 110px;
    left: 0; right: 0;
    text-align: center;
    font-family: var(--font-title);
    font-size: 26px;
    font-weight: 700;
    font-style: italic;
    color: var(--flame);
}
.tagline em { color: var(--flame-deep); font-style: italic; }

/* ═══════════════════════════════════════════════════════════════
   SLIDE 7 — MARCHÉ
   ═══════════════════════════════════════════════════════════════ */
.slide--market .slide-inner {
    background:
        radial-gradient(ellipse at 50% 15%, var(--paper) 0%, var(--ivory-deep) 70%);
}

.kpis {
    top: 340px;
    bottom: 310px;
}

.kpi {
    position: relative;
    padding: 56px 44px 40px;
    background: linear-gradient(135deg, var(--paper) 0%, var(--ivory-deep) 100%);
    border-radius: var(--r-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.kpi-stripe {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 6px;
    background: linear-gradient(90deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 0 18px var(--flame-glow);
}
.kpi-big {
    font-family: var(--font-title);
    font-size: 144px;
    font-weight: 900;
    color: var(--ink);
    line-height: 1;
}
.kpi-unit {
    font-family: var(--font-title);
    font-size: 44px;
    font-weight: 700;
    color: var(--flame);
    display: inline-block;
    vertical-align: baseline;
    margin-left: 8px;
}
.kpi-label {
    font-size: 22px;
    color: var(--ink-soft);
    margin-top: auto;
    padding-top: 24px;
}
.kpi-source {
    font-size: 13px;
    color: var(--muted);
    letter-spacing: 0.08em;
    margin-top: 12px;
}

.banner {
    position: absolute;
    left: 90px; right: 90px;
    bottom: 120px;
    padding: 32px 48px 32px 64px;
    background: linear-gradient(135deg, var(--ink) 0%, var(--ink-deep) 100%);
    color: var(--ivory);
    border-radius: var(--r-xl);
    box-shadow: var(--shadow-xl);
    overflow: hidden;
}
.banner-accent {
    position: absolute;
    top: 0; bottom: 0; left: 0;
    width: 10px;
    background: linear-gradient(180deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 0 20px var(--flame-glow);
}
.banner .mono.flame {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.2em;
    margin-bottom: 16px;
    display: block;
}
.banner-text {
    font-family: var(--font-title);
    font-size: 38px;
    font-weight: 700;
    font-style: italic;
    color: var(--ivory);
    line-height: 1.2;
}

/* ─── Slide 8 : Segment du marché visé (niche → expansion) ─── */
.niche-layout {
    position: absolute;
    top: 270px;
    left: 90px; right: 90px;
    bottom: 70px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* KPI strip "Marché fatigué" */
.market-kpi-strip {
    display: flex;
    align-items: center;
    gap: 36px;
    padding: 22px 32px;
    background: rgba(43, 47, 51, 0.04);
    border-left: 6px solid var(--flame);
    border-radius: var(--r-md);
    box-shadow: var(--shadow-sm);
}
.mks-label {
    flex: 0 0 auto;
    font-size: 14px;
    letter-spacing: 0.24em;
    font-weight: 700;
    color: var(--ink);
    white-space: nowrap;
}
.mks-stats {
    display: flex;
    gap: 56px;
    flex: 1;
    justify-content: space-around;
}
.mks-stat {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.mks-num {
    font-family: var(--font-title);
    font-size: 56px;
    font-weight: 900;
    color: var(--ink);
    line-height: 1;
}
.mks-num i {
    font-style: normal;
    font-size: 28px;
    font-weight: 700;
    color: var(--flame);
    margin-left: 6px;
}
.mks-desc {
    font-size: 14px;
    color: var(--muted-dark);
    letter-spacing: 0.06em;
    font-weight: 500;
}

.niche-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    flex: 0 0 auto;
}

.niche-card {
    position: relative;
    padding: 20px 26px 18px;
    background: linear-gradient(135deg, var(--paper) 0%, var(--ivory-deep) 100%);
    border-radius: var(--r-xl);
    box-shadow: var(--shadow-md);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.niche-card--accent {
    box-shadow: 0 18px 44px rgba(230, 115, 60, 0.22), var(--shadow-md);
}
.niche-stripe {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 5px;
    background: linear-gradient(90deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 0 16px var(--flame-glow);
    opacity: 0.7;
}
.niche-card--accent .niche-stripe { opacity: 1; }

.niche-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
}
.niche-icon {
    font-size: 36px;
    line-height: 1;
}
.niche-card h3 {
    font-family: var(--font-title);
    font-size: 26px;
    font-weight: 800;
    color: var(--ink);
    line-height: 1.1;
    margin: 0;
}

.niche-list {
    list-style: none;
    padding: 0;
    margin: 0 0 10px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.niche-list li {
    position: relative;
    padding-left: 18px;
    font-size: 14px;
    line-height: 1.35;
    color: var(--ink-soft);
}
.niche-list li::before {
    content: "→";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--flame);
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: 13px;
}
.niche-list b { color: var(--ink); font-weight: 700; }

.niche-tag {
    margin-top: auto;
    padding-top: 8px;
}
.niche-tag .mono {
    font-size: 11px;
    letter-spacing: 0.18em;
    font-weight: 700;
}

/* Justification */
.niche-rationale {
    padding: 18px 28px;
    background: linear-gradient(135deg, var(--ink) 0%, var(--ink-deep) 100%);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-md);
    display: flex;
    align-items: center;
    gap: 22px;
    color: var(--ivory);
}
.niche-rationale .mono {
    flex: 0 0 auto;
    font-size: 12px;
    letter-spacing: 0.22em;
    font-weight: 700;
}
.niche-rationale p {
    margin: 0;
    font-size: 16px;
    line-height: 1.45;
    color: rgba(251, 248, 241, 0.85);
}

/* Horizon timeline */
.niche-horizon {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    gap: 14px;
    align-items: stretch;
}
.horizon-step {
    padding: 14px 20px 16px;
    background: linear-gradient(135deg, var(--paper) 0%, var(--ivory-deep) 100%);
    border-radius: var(--r-md);
    box-shadow: var(--shadow-sm);
    border-left: 3px solid rgba(230, 115, 60, 0.3);
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.horizon--now    { border-left-color: var(--flame); }
.horizon--mid    { border-left-color: rgba(230, 115, 60, 0.6); }
.horizon--future { border-left-color: var(--success); }

.horizon-tag {
    font-size: 10px;
    letter-spacing: 0.18em;
    font-weight: 700;
    color: var(--muted-dark);
    text-transform: uppercase;
}
.horizon-step h4 {
    font-family: var(--font-title);
    font-size: 19px;
    font-weight: 800;
    color: var(--ink);
    margin: 0;
    line-height: 1.1;
}
.horizon-step p {
    margin: 0;
    font-size: 13px;
    color: var(--ink-soft);
    line-height: 1.35;
}

.horizon-arrow {
    align-self: center;
    font-family: var(--font-mono);
    font-size: 22px;
    font-weight: 700;
    color: var(--flame);
    opacity: 0.5;
}

/* Stagger entrance */
.slide.active .market-kpi-strip,
.slide.active .niche-card,
.slide.active .niche-rationale,
.slide.active .horizon-step {
    opacity: 0;
    animation: rise-scale .6s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .market-kpi-strip          { animation-delay: .40s; }
.slide.active .niche-card:nth-child(1)   { animation-delay: .60s; }
.slide.active .niche-card:nth-child(2)   { animation-delay: .75s; }
.slide.active .niche-rationale           { animation-delay: .95s; }
.slide.active .horizon-step:nth-child(1) { animation-delay: 1.15s; }
.slide.active .horizon-step:nth-child(3) { animation-delay: 1.30s; }
.slide.active .horizon-step:nth-child(5) { animation-delay: 1.45s; }

/* ═══════════════════════════════════════════════════════════════
   SLIDE 8 — BUSINESS MODEL
   ═══════════════════════════════════════════════════════════════ */
.slide--bm .slide-inner {
    background: linear-gradient(135deg, var(--paper) 0%, var(--ivory-deep) 100%);
}

.cards-bm {
    top: 340px;
    bottom: 80px;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 1fr;
}

.bm-card {
    position: relative;
    padding: 44px 44px 40px 52px;
    background: linear-gradient(135deg, var(--paper) 0%, var(--ivory-deep) 100%);
    border-radius: var(--r-xl);
    box-shadow: var(--shadow-md);
    overflow: hidden;
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 32px;
    align-items: center;
}
.bm-card--primary {
    box-shadow: 0 20px 48px rgba(230, 115, 60, 0.3), var(--shadow-md);
}
.bm-stripe {
    position: absolute;
    top: 0; bottom: 0; left: 0;
    width: 8px;
    background: var(--ink-soft);
}
.bm-card--primary .bm-stripe {
    background: linear-gradient(180deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 0 20px var(--flame-glow);
}
.badge-primary {
    position: absolute;
    top: 24px;
    right: 24px;
    padding: 6px 14px;
    background: linear-gradient(135deg, var(--flame-bright), var(--flame-deep));
    color: var(--ivory);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.15em;
    border-radius: 999px;
    box-shadow: 0 4px 14px var(--flame-glow);
}
.bm-big {
    font-family: var(--font-title);
    font-size: 72px;
    font-weight: 900;
    color: var(--flame);
    line-height: 1;
}
.bm-card h3 {
    font-size: 32px;
    color: var(--ink);
    margin-bottom: 8px;
}
.bm-card p {
    font-size: 18px;
    color: var(--ink-soft);
    line-height: 1.4;
}

/* ═══════════════════════════════════════════════════════════════
   SLIDE 9 — FINANCIER
   ═══════════════════════════════════════════════════════════════ */
.slide--finance .slide-inner {
    background: linear-gradient(135deg, var(--paper) 0%, var(--ivory-deep) 100%);
}

.finance-grid {
    position: absolute;
    top: 320px;
    left: 90px; right: 90px;
    bottom: 130px;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr auto;
    gap: 24px;
    align-items: stretch;
}
/* Chart card prend toute la largeur (centre sur la page) */
.finance-grid > .chart-card { max-width: 1100px; margin: 0 auto; width: 100%; }
.finance-grid > .ask-card  { max-width: 1100px; margin: 0 auto; width: 100%; }

.chart-card {
    position: relative;
    padding: 32px 40px;
    background: linear-gradient(135deg, var(--paper) 0%, var(--ivory-deep) 100%);
    border-radius: var(--r-xl);
    box-shadow: var(--shadow-lg);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.chart-card .mono.muted {
    font-size: 13px;
    letter-spacing: 0.2em;
    font-weight: 700;
    text-align: center;
}
.chart-hero {
    font-family: var(--font-title);
    font-size: 36px;
    font-weight: 700;
    color: var(--flame-deep);
    margin-top: 6px;
    margin-bottom: 24px;
    text-align: center;
}
.chart-hero em { color: var(--flame); font-style: italic; }

.chart {
    position: relative;
    height: 280px;
    max-height: 320px;
    display: grid;
    grid-template-columns: 50px 1fr;
    gap: 16px;
}

.chart-grid {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-bottom: 40px;
}
.chart-grid .grid-row {
    position: relative;
    font-size: 13px;
    color: var(--muted);
    text-align: right;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.chart-bars {
    position: relative;
    display: flex;
    justify-content: space-around;
    align-items: flex-end;
    padding-bottom: 40px;
    background-image:
        repeating-linear-gradient(
            0deg,
            transparent 0,
            transparent calc(25% - 1px),
            rgba(0,0,0,0.06) calc(25% - 1px),
            rgba(0,0,0,0.06) 25%
        );
}

.bar-group {
    position: relative;
    width: 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
}
.bar-value {
    font-family: var(--font-title);
    font-size: 24px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 8px;
}
.bar-value.flame { color: var(--flame); }
.bar-year {
    position: absolute;
    bottom: 0;
    font-size: 16px;
    font-weight: 700;
    color: var(--ink-soft);
    letter-spacing: 0.08em;
}
.chart-bar {
    width: 100%;
    background: linear-gradient(180deg, var(--flame-bright), var(--flame-deep));
    border-radius: 8px 8px 0 0;
    margin-top: auto;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.chart-bar--1 {
    background: linear-gradient(180deg, #F8CDAE, #D89E74);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.chart-bar--2 {
    background: linear-gradient(180deg, #F5A578, #C5582A);
    box-shadow: 0 8px 20px rgba(0,0,0,0.12);
}
.chart-bar--3 {
    box-shadow:
        0 -2px 0 rgba(255,255,255,0.2) inset,
        0 16px 40px var(--flame-glow),
        0 4px 12px rgba(0,0,0,0.2);
}
.be-marker {
    position: absolute;
    top: -40px;
    left: 50%;
    translate: -50% 0;
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    color: var(--success);
    letter-spacing: 0.1em;
    white-space: nowrap;
}

.ask-card {
    position: relative;
    padding: 24px 36px;
    background: linear-gradient(135deg, var(--ink) 0%, var(--ink-deep) 100%);
    color: var(--ivory);
    border-radius: var(--r-xl);
    box-shadow: var(--shadow-xl);
    overflow: hidden;
    display: grid;
    grid-template-columns: auto 1px 1fr 1px auto;
    align-items: center;
    gap: 32px;
}
.ask-card > .ask-divider {
    width: 1px;
    height: 70%;
    background: rgba(255, 255, 255, 0.12);
}
.ask-ribbon {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 6px;
    background: linear-gradient(90deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 0 18px var(--flame-glow);
}
.ask-halo {
    position: absolute;
    width: 460px; height: 460px;
    top: -120px; left: 50%;
    translate: -50% 0;
    background: radial-gradient(circle, rgba(230, 115, 60, 0.5) 0%, transparent 65%);
    border-radius: 50%;
    pointer-events: none;
    animation: askHaloPulse 6s ease-in-out infinite;
    pointer-events: none;
}
.ask-card .mono.flame {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.2em;
    margin-top: 8px;
    margin-bottom: 20px;
    position: relative;
}
.ask-big {
    font-family: var(--font-title);
    font-size: 76px;
    font-weight: 900;
    color: var(--ivory);
    line-height: 1;
    position: relative;
    text-shadow: 0 0 30px var(--flame-glow);
    white-space: nowrap;
}
.ask-big span { font-size: 26px; color: var(--flame); }
.ask-sub {
    font-size: 14px;
    color: var(--muted-light);
    margin-top: 6px;
    position: relative;
}
.ask-line { display: none; }
.ask-usage {
    list-style: none;
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--ivory);
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 4px;
    white-space: nowrap;
}
.ask-usage li { padding: 0; }

/* ═══════════════════════════════════════════════════════════════
   SLIDE 10 — ÉQUIPE & ROADMAP
   ═══════════════════════════════════════════════════════════════ */
.slide--team .slide-inner {
    background:
        radial-gradient(ellipse at 50% 15%, var(--paper) 0%, var(--ivory-deep) 70%);
}

.team-grid {
    position: absolute;
    top: 330px;
    left: 90px; right: 90px;
    bottom: 80px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
}

.col-title {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.25em;
    margin-bottom: 12px;
}
.col-line {
    width: 56px; height: 2px;
    background: var(--flame);
    margin-bottom: 40px;
    box-shadow: 0 0 10px var(--flame-glow);
}

.team-list { display: flex; flex-direction: column; gap: 32px; }
.team-row {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 24px;
    align-items: center;
}
.role-badge {
    padding: 10px 0;
    width: 100%;
    background: linear-gradient(135deg, var(--ink-soft), var(--ink));
    color: var(--ivory);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-align: center;
    border-radius: 12px;
    box-shadow: var(--shadow-sm);
}
.role-badge--primary {
    background: linear-gradient(135deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 8px 24px var(--flame-glow);
}
.team-row h4 {
    font-size: 26px;
    color: var(--ink);
    font-weight: 700;
    line-height: 1.1;
}
.team-row p {
    font-size: 16px;
    font-style: italic;
    color: var(--muted-dark);
    margin-top: 4px;
}

.timeline {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding-left: 20px;
}
.timeline::before {
    content: "";
    position: absolute;
    top: 16px;
    bottom: 16px;
    left: 9px;
    width: 2px;
    background: var(--ink-line);
    opacity: 0.4;
}
.tl-row {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 20px;
    align-items: center;
}
.tl-dot {
    width: 20px; height: 20px;
    border-radius: 50%;
    background: var(--ink);
    z-index: 1;
    position: relative;
    overflow: hidden;
}
.tl-row--active .tl-dot {
    background: radial-gradient(circle, var(--flame-bright), var(--flame-deep));
    box-shadow:
        0 0 0 6px rgba(230, 115, 60, 0.2),
        0 0 24px var(--flame-glow);
    animation: pulseDot 2.4s ease-in-out infinite;
}
.tl-content .mono.flame {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.2em;
}
.tl-content .muted { color: var(--muted); }
.tl-content h4 {
    font-size: 24px;
    color: var(--ink);
    margin-top: 4px;
}

@keyframes pulseDot {
    0%, 100% { box-shadow: 0 0 0 6px rgba(230, 115, 60, 0.2), 0 0 24px var(--flame-glow); }
    50%      { box-shadow: 0 0 0 12px rgba(230, 115, 60, 0.0), 0 0 40px var(--flame-glow); }
}

/* ═══════════════════════════════════════════════════════════════
   SLIDE 11 — ASK
   ═══════════════════════════════════════════════════════════════ */
.slide--ask .slide-inner {
    background:
        radial-gradient(ellipse at 25% 40%, var(--ink) 0%, var(--ink-deep) 70%);
}

.bg-number {
    position: absolute;
    top: -80px;
    left: 0;
    right: 0;
    font-family: var(--font-title);
    font-size: 720px;
    font-weight: 900;
    color: rgba(255,255,255,0.025);
    text-align: center;
    line-height: 0.9;
    pointer-events: none;
    letter-spacing: -0.05em;
    user-select: none;
}

.corner-icon {
    position: absolute;
    top: 40px;
    right: 80px;
    width: 100px;
    height: auto;
    filter: brightness(0) invert(1) drop-shadow(0 0 16px var(--flame-glow));
    opacity: 0.9;
}

.slide--ask .title {
    top: 110px;
}
.slide--ask .title b { font-weight: 900; color: var(--flame); text-shadow: 0 0 40px var(--flame-glow); }
.slide--ask .title-underline { top: 360px; }

.ask-cards {
    top: 520px;
    bottom: 230px;
}

.ask-stat {
    position: relative;
    padding: 40px 36px;
    background: linear-gradient(135deg, rgba(40, 44, 50, 0.9) 0%, rgba(21, 23, 27, 0.9) 100%);
    border-radius: var(--r-xl);
    box-shadow: var(--shadow-xl);
    overflow: hidden;
    color: var(--ivory);
    backdrop-filter: blur(10px);
}
.ask-stat--primary {
    box-shadow: 0 24px 60px rgba(230, 115, 60, 0.35), var(--shadow-xl);
}
.stat-stripe {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 5px;
    background: var(--ink-line);
}
.ask-stat--primary .stat-stripe {
    background: linear-gradient(90deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 0 20px var(--flame-glow);
}
.stat-big {
    font-family: var(--font-title);
    font-size: 88px;
    font-weight: 900;
    color: var(--flame);
    line-height: 1;
    text-shadow: 0 0 24px var(--flame-glow);
}
.stat-big span {
    font-size: 32px;
    color: var(--flame-bright);
}
.stat-label {
    font-size: 22px;
    font-weight: 700;
    color: var(--ivory);
    margin-top: 16px;
}
.stat-detail {
    font-size: 16px;
    color: var(--muted-light);
    margin-top: 12px;
    line-height: 1.45;
}

.vision {
    position: absolute;
    bottom: 130px;
    left: 0; right: 0;
    text-align: center;
    font-family: var(--font-title);
    font-size: 28px;
    font-style: italic;
    color: var(--muted-light);
}
.vision em {
    color: var(--flame);
    font-weight: 700;
}
.vision .muted {
    display: block;
    margin-top: 6px;
    font-family: var(--font-body);
    font-size: 18px;
    font-style: italic;
    color: rgba(255, 255, 255, 0.5);
}

/* ═══════════════════════════════════════════════════════════════
   SLIDE 12 — CLOSING
   ═══════════════════════════════════════════════════════════════ */
.slide--closing .slide-inner {
    background: linear-gradient(180deg, var(--ink) 0%, var(--ink-deep) 100%);
}

.closing-layout {
    position: absolute;
    inset: 0;
    padding: 120px 100px 80px;
    display: grid;
    grid-template-rows: auto auto auto auto 1fr auto;
    gap: 24px;
    align-items: center;
    justify-items: center;
}

.closing-logo-wrap {
    position: relative;
    width: 300px;
    height: 330px;
    display: grid;
    place-items: center;
}
.logo-halo--small {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: radial-gradient(circle, var(--flame-glow) 0%, transparent 60%);
    filter: blur(50px);
    opacity: 0.8;
    animation: pulse 4s ease-in-out infinite;
}
.closing-logo {
    position: relative;
    max-width: 92%;
    max-height: 92%;
    width: auto;
    height: auto;
    filter: drop-shadow(0 0 50px var(--flame-glow));
    animation: float 6s ease-in-out infinite;
}

.closing-divider {
    position: relative;
    width: 220px;
    height: 2px;
    background: var(--flame);
    box-shadow: 0 0 24px var(--flame-glow);
}

.closing-slogan {
    font-family: var(--font-title);
    font-size: 62px;
    font-weight: 900;
    font-style: italic;
    color: var(--ivory);
    text-align: center;
    line-height: 1.05;
    letter-spacing: -0.015em;
    margin: 0;
}
.closing-slogan em { color: var(--flame); text-shadow: 0 0 40px var(--flame-glow); }

.closing-en {
    font-family: var(--font-mono);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.22em;
    color: var(--flame);
    text-align: center;
    margin: 0;
}

.closing-qr-wrap {
    display: flex;
    align-items: center;
    gap: 28px;
    padding: 20px 28px;
    background: rgba(230, 115, 60, 0.06);
    border: 1px solid rgba(230, 115, 60, 0.22);
    border-radius: var(--r-lg);
    box-shadow: 0 20px 60px rgba(0,0,0,0.4);
}
.qr-big {
    width: 170px;
    height: 170px;
    padding: 10px;
    background: var(--ivory);
    border-radius: 14px;
    display: grid;
    place-items: center;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
}
.qr-big img { width: 100%; height: 100%; display: block; }
.closing-qr-text {
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-family: var(--font-mono);
}
.closing-qr-text .flame {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.2em;
}
.closing-url {
    font-size: 24px;
    color: var(--ivory);
    letter-spacing: 0.1em;
    font-weight: 600;
    margin: 0;
}

.closing-thanks {
    font-family: var(--font-title);
    font-style: italic;
    font-size: 22px;
    color: var(--muted-light);
    margin: 0;
    text-align: center;
}

/* ═══════════════════════════════════════════════════════════════
   HUD minimale (edges + corner)
   ═══════════════════════════════════════════════════════════════ */
.hud-edge {
    position: fixed;
    top: 0;
    bottom: 0;
    width: 80px;
    z-index: 9500;
    display: grid;
    place-items: center;
    color: var(--ivory);
    opacity: 0;
    transition: opacity .25s, background .25s;
    background: linear-gradient(to right, rgba(0,0,0,0), rgba(0,0,0,0));
}
.hud-edge.visible { opacity: 1; }
.hud-edge span {
    display: grid;
    place-items: center;
    width: 52px; height: 52px;
    border-radius: 50%;
    background: rgba(21, 23, 27, 0.55);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255,255,255,0.08);
    font-size: 16px;
    transition: background .2s, transform .15s, border-color .2s;
}
.hud-prev { left: 0; }
.hud-next { right: 0; }
.hud-prev:hover span,
.hud-next:hover span {
    background: var(--flame);
    border-color: var(--flame-bright);
    transform: scale(1.1);
    box-shadow: 0 0 24px var(--flame-glow);
}

.hud-corner {
    position: fixed;
    bottom: 22px;
    right: 22px;
    z-index: 9500;
    display: flex;
    gap: 8px;
    padding: 6px;
    background: rgba(21, 23, 27, 0.55);
    backdrop-filter: blur(14px) saturate(140%);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 999px;
    opacity: 0;
    transition: opacity .25s;
}
.hud-corner.visible { opacity: 1; }

.hud-btn-small {
    width: 38px; height: 38px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: var(--ivory);
    font-size: 14px;
    background: transparent;
    transition: background .2s, transform .15s;
}
.hud-btn-small:hover {
    background: var(--flame);
    transform: scale(1.1);
}

/* ─── Speaker notes panel ───────────────────────────── */
.notes {
    position: fixed;
    right: 24px;
    top: 24px;
    bottom: 100px;
    width: 380px;
    padding: 32px 28px;
    background: rgba(21, 23, 27, 0.9);
    backdrop-filter: blur(20px);
    color: var(--ivory);
    border: 1px solid rgba(230, 115, 60, 0.25);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-xl);
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.55;
    overflow-y: auto;
    z-index: 9998;
    transform: translateX(420px);
    transition: transform .35s cubic-bezier(.4,.0,.2,1);
    display: none;
}
.notes.visible { transform: translateX(0); display: block; }
.notes strong { color: var(--flame); font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.1em; }
.notes em { color: var(--muted-light); }

/* ─── Help panel ────────────────────────────────────── */
.help {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    place-items: center;
    background: rgba(0,0,0,0.72);
    backdrop-filter: blur(12px);
}
.help.visible { display: grid; }
.help-panel {
    min-width: 480px;
    padding: 40px 48px;
    background: var(--ink);
    border-radius: var(--r-xl);
    box-shadow: var(--shadow-xl);
    border: 1px solid rgba(230, 115, 60, 0.3);
    color: var(--ivory);
    font-family: var(--font-body);
}
.help-panel h3 {
    color: var(--flame);
    font-family: var(--font-title);
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 24px;
}
.help-panel dl {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 12px 32px;
    font-size: 15px;
}
.help-panel dt {
    color: var(--flame);
    font-weight: 700;
    font-size: 13px;
}

/* ═══════════════════════════════════════════════════════════════
   PRINT / PDF EXPORT
   ═══════════════════════════════════════════════════════════════ */
@media print {
    @page {
        size: 1920px 1080px;
        margin: 0;
    }
    html, body { width: 1920px; height: auto; overflow: visible; background: white; }
    .grain, .hud, .notes, .help { display: none !important; }
    .deck { position: static; display: block; }
    .slide {
        display: block !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        position: relative;
        width: 1920px;
        height: 1080px;
        page-break-after: always;
        page-break-inside: avoid;
        break-after: page;
    }
    .slide-inner {
        position: absolute;
        inset: 0;
        width: 1920px;
        height: 1080px;
        transform: none;
    }
    /* Disable animations for clean print */
    *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ═══════════════════════════════════════════════════════════════
   SLIDES 9-10 — PIE CHARTS (charges + revenus)
   ═══════════════════════════════════════════════════════════════ */
.slide--charges .slide-inner,
.slide--revenus .slide-inner {
    background: linear-gradient(135deg, var(--paper) 0%, var(--ivory-deep) 100%);
}

.pie-grid {
    position: absolute;
    top: 280px;
    left: 90px; right: 90px;
    bottom: 110px;
    display: grid;
    grid-template-columns: 1fr 1.15fr;
    gap: 60px;
    align-items: center;
    align-content: center;
}

.pie-wrap {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: auto;
    align-self: center;
}

.pie-wrap { overflow: visible; }
.pie-ring {
    width: 420px;
    height: 420px;
    border-radius: 50%;
    flex-shrink: 0;
    /* Firefox-safe clip : evite que le conic-gradient deborde */
    -webkit-mask: radial-gradient(circle, #000 99%, transparent 100%);
            mask: radial-gradient(circle, #000 99%, transparent 100%);
    clip-path: circle(50% at 50% 50%);
    /* Shadow via filter:drop-shadow (suit la forme clippée), pas box-shadow */
    filter: drop-shadow(0 24px 48px rgba(0, 0, 0, 0.28));
}

.pie-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 190px;
    height: 190px;
    border-radius: 50%;
    background: var(--paper);
    box-shadow: 0 4px 28px rgba(0,0,0,0.14);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    pointer-events: none;
}

.pie-total {
    font-family: var(--font-title);
    font-size: 30px;
    font-weight: 900;
    color: var(--ink);
    line-height: 1;
}

.pie-sub-label {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--muted);
}

.pie-legend {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.legend-item {
    display: grid;
    grid-template-columns: 22px 1fr auto;
    gap: 18px;
    align-items: center;
    padding: 18px 22px;
    background: var(--paper);
    border-radius: var(--r);
    box-shadow: var(--shadow-xs);
}

.legend-item--primary {
    background: linear-gradient(135deg, rgba(230,115,60,0.07) 0%, var(--paper) 100%);
    box-shadow: var(--shadow-sm), 0 0 0 1px rgba(230,115,60,0.18);
}

.legend-dot {
    width: 22px;
    height: 22px;
    border-radius: 5px;
    flex-shrink: 0;
}

.price-chip {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 8px;
    background: rgba(230, 115, 60, 0.14);
    color: var(--flame);
    border-radius: 999px;
    font-size: 0.78em;
    font-weight: 700;
    letter-spacing: 0.05em;
    vertical-align: 1px;
}

.legend-text {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.legend-name {
    font-size: 18px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.2;
}

.legend-pct {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    color: var(--muted);
    letter-spacing: 0.05em;
}

.legend-amount {
    font-family: var(--font-title);
    font-size: 26px;
    font-weight: 700;
    color: var(--flame);
    white-space: nowrap;
}

.rev-note {
    margin-top: 4px;
    padding: 20px 22px;
    background: linear-gradient(135deg, var(--ink) 0%, var(--ink-deep) 100%);
    color: var(--muted-light);
    border-radius: var(--r);
    font-size: 17px;
    line-height: 1.7;
}
.rev-note b { color: var(--ivory); font-weight: 700; }

/* ─── Animations pie slides ─── */
.slide.active .pie-wrap {
    animation: rise-scale .9s .45s cubic-bezier(.22, 1, .36, 1) both;
}
.slide.active .pie-legend .legend-item,
.slide.active .pie-legend .rev-note {
    opacity: 0;
    animation: rise .5s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .pie-legend > *:nth-child(1) { animation-delay: .65s; }
.slide.active .pie-legend > *:nth-child(2) { animation-delay: .75s; }
.slide.active .pie-legend > *:nth-child(3) { animation-delay: .85s; }
.slide.active .pie-legend > *:nth-child(4) { animation-delay: .95s; }
.slide.active .pie-legend > *:nth-child(5) { animation-delay: 1.05s; }
.slide.active .pie-legend > *:nth-child(6) { animation-delay: 1.15s; }
.slide.active .pie-legend > *:nth-child(7) { animation-delay: 1.25s; }

/* ═══════════════════════════════════════════════════════════════
   SLIDE 11 — RÉSUMÉ FINANCIER (dark)
   ═══════════════════════════════════════════════════════════════ */
.slide--fin-summary .slide-inner {
    background:
        radial-gradient(ellipse at 25% 40%, var(--ink) 0%, var(--ink-deep) 70%);
}

/* ─── Break-even chart (slide 11) ─────────────────── */
.be-wrap {
    position: absolute;
    top: 280px;
    left: 90px; right: 90px;
    bottom: 110px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.be-svg {
    width: 100%;
    height: auto;
    max-height: 100%;
    display: block;
}
.slide.active .be-wrap {
    animation: rise-scale .8s .4s cubic-bezier(.22, 1, .36, 1) both;
}

/* ─── Barres An1/An2/An3 : grow-from-zero-line ──── */
.be-bar,
.be-bar-cap,
.be-num {
    transform-box: fill-box;
}
.be-bar { transform: scaleY(0); }
.be-bar--neg { transform-origin: 50% 0%; }
.be-bar--pos { transform-origin: 50% 100%; }

.be-bar-cap { transform: scaleX(0); transform-origin: 50% 50%; }
.be-num { opacity: 0; transform: translateY(8px); }

.slide.active .be-bar     { animation: be-bar-grow .9s cubic-bezier(.22, 1, .36, 1) forwards; }
.slide.active .be-bar-cap { animation: be-cap-grow .55s cubic-bezier(.22, 1, .36, 1) forwards; }
.slide.active .be-num     { animation: be-num-rise .5s cubic-bezier(.22, 1, .36, 1) forwards; }

.slide.active .be-bar--1     { animation-delay: .80s; }
.slide.active .be-bar-cap--1 { animation-delay: 1.55s; }
.slide.active .be-num--1     { animation-delay: 1.55s; }

.slide.active .be-bar--2     { animation-delay: 1.05s; }
.slide.active .be-bar-cap--2 { animation-delay: 1.80s; }
.slide.active .be-num--2     { animation-delay: 1.80s; }

.slide.active .be-bar--3     { animation-delay: 1.30s; }
.slide.active .be-bar-cap--3 { animation-delay: 2.05s; }
.slide.active .be-num--3     { animation-delay: 2.05s; }

@keyframes be-bar-grow { to { transform: scaleY(1); } }
@keyframes be-cap-grow { to { transform: scaleX(1); } }
@keyframes be-num-rise { to { opacity: 1; transform: translateY(0); } }

/* ─── Courbe trajectoire ─── */
.be-curve-red   { stroke-dasharray: 700; stroke-dashoffset: 700; }
.be-curve-green { stroke-dasharray: 360; stroke-dashoffset: 360; }
.slide.active .be-curve-red   { animation: be-draw .9s 2.20s cubic-bezier(.4, 0, .2, 1) forwards; }
.slide.active .be-curve-green { animation: be-draw .8s 3.10s cubic-bezier(.4, 0, .2, 1) forwards; }
@keyframes be-draw { to { stroke-dashoffset: 0; } }

.be-dot { transform-box: fill-box; transform-origin: 50% 50%; opacity: 0; transform: scale(0); }
.slide.active .be-dot--1 { animation: be-pop .35s 2.65s cubic-bezier(.34, 1.56, .64, 1) forwards; }
.slide.active .be-dot--2 { animation: be-pop .35s 2.85s cubic-bezier(.34, 1.56, .64, 1) forwards; }
.slide.active .be-dot--3 { animation: be-pop .4s  3.85s cubic-bezier(.34, 1.56, .64, 1) forwards; }
@keyframes be-pop { to { opacity: 1; transform: scale(1); } }

/* ─── Seuil de rentabilité ─── */
.be-seuil-line,
.be-seuil-badge,
.be-seuil-text,
.be-seuil-dot,
.be-seuil-core {
    transform-box: fill-box;
    transform-origin: 50% 50%;
    opacity: 0;
}
.be-seuil-dot,
.be-seuil-core { transform: scale(0); }
.be-seuil-text { transform: translateY(4px); }

.slide.active .be-seuil-dot   { animation: be-pop .45s 3.95s cubic-bezier(.34, 1.56, .64, 1) forwards; }
.slide.active .be-seuil-core  { animation: be-pop .35s 4.10s cubic-bezier(.34, 1.56, .64, 1) forwards; }
.slide.active .be-seuil-line  { animation: be-fade-soft .4s 4.20s ease-out forwards; }
.slide.active .be-seuil-badge { animation: be-fade-full .45s 4.35s ease-out forwards; }
.slide.active .be-seuil-text  { animation: be-num-rise .45s 4.45s cubic-bezier(.22, 1, .36, 1) forwards; }
.slide.active .be-seuil-halo  { animation: be-halo 1.8s 4.55s ease-out infinite; }
@keyframes be-fade-soft { to { opacity: 0.7; } }
@keyframes be-fade-full { to { opacity: 1; } }
@keyframes be-halo {
    0%   { opacity: 0.65; r: 12; }
    100% { opacity: 0;    r: 28; }
}

.fin-summary-grid {
    position: absolute;
    top: 340px;
    left: 90px; right: 90px;
    bottom: 80px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    align-content: start;
}

.fin-card {
    position: relative;
    padding: 48px 40px 40px;
    background: linear-gradient(135deg, rgba(40,44,50,.92) 0%, rgba(21,23,27,.92) 100%);
    color: var(--ivory);
    border-radius: var(--r-xl);
    box-shadow: var(--shadow-xl);
    overflow: hidden;
    backdrop-filter: blur(10px);
}

.fin-card--primary {
    box-shadow: 0 24px 60px rgba(230,115,60,0.35), var(--shadow-xl);
}

.fin-stripe {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 5px;
    background: var(--ink-line);
}
.fin-stripe--flame {
    background: linear-gradient(90deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 0 20px var(--flame-glow);
}

.fin-card-label {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.22em;
    margin-bottom: 18px;
    display: block;
}

.fin-big {
    font-family: var(--font-title);
    font-size: 88px;
    font-weight: 900;
    color: var(--flame);
    line-height: 1;
    text-shadow: 0 0 24px var(--flame-glow);
}
.fin-big span {
    font-size: 30px;
    color: var(--flame-bright);
    font-weight: 700;
}

.fin-sub {
    font-size: 16px;
    color: var(--muted-light);
    margin-top: 8px;
    font-style: italic;
}

.fin-details {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid rgba(255,255,255,0.07);
    font-size: 16px;
    color: var(--muted-light);
    line-height: 1.4;
}
.fin-details b { color: var(--ivory); font-weight: 700; }

/* ─── Animations fin-summary ─── */
.slide.active .fin-summary-grid .fin-card {
    opacity: 0;
    animation: rise-scale .7s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .fin-summary-grid .fin-card:nth-child(1) { animation-delay: .50s; }
.slide.active .fin-summary-grid .fin-card:nth-child(2) { animation-delay: .65s; }
.slide.active .fin-summary-grid .fin-card:nth-child(3) { animation-delay: .80s; }

/* ═══════════════════════════════════════════════════════════════
   SLIDE 12 — PROJECTION AN+1 AN+2 (light)
   ═══════════════════════════════════════════════════════════════ */
.slide--projection .slide-inner {
    background: linear-gradient(135deg, var(--paper) 0%, var(--ivory-deep) 100%);
}

.proj-grid {
    position: absolute;
    top: 295px;
    left: 90px; right: 90px;
    bottom: 80px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    align-content: start;
}

.proj-year {
    position: relative;
    padding: 36px 34px 32px;
    background: var(--paper);
    border-radius: var(--r-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    border-top: 6px solid var(--ink-line);
}

.proj-year--be {
    border-top-color: var(--success);
    box-shadow: 0 20px 48px rgba(58,165,116,0.18), var(--shadow-lg);
}

.proj-year-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 28px;
    gap: 8px;
}

.proj-tag {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.17em;
}
.proj-tag--be { color: var(--success) !important; }

.proj-numbers {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

.proj-ca {
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 700;
    color: var(--ink);
}

.proj-res {
    font-family: var(--font-mono);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.04em;
}
.proj-res--loss   { color: var(--danger); }
.proj-res--profit { color: var(--success); }

.proj-bars {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-bottom: 24px;
}

.proj-bar-row {
    display: grid;
    grid-template-columns: 155px 1fr 46px;
    align-items: center;
    gap: 12px;
}

.proj-bar-label {
    font-size: 14px;
    font-weight: 600;
    color: var(--ink-soft);
}

.proj-track {
    height: 12px;
    background: rgba(0,0,0,0.06);
    border-radius: 6px;
    overflow: hidden;
}

.proj-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--flame-bright), var(--flame-deep));
    border-radius: 6px;
    box-shadow: 0 2px 8px var(--flame-glow);
    transform: scaleX(0);
    transform-origin: left center;
}
.proj-fill--dim {
    background: var(--muted-light);
    box-shadow: none;
}
.proj-fill--ok {
    background: linear-gradient(90deg, #5AD090, var(--success));
    box-shadow: 0 2px 8px rgba(58,165,116,0.3);
}

.proj-pct {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    color: var(--flame);
    text-align: right;
}

.proj-focus {
    font-size: 15px;
    color: var(--muted-dark);
    line-height: 1.55;
    padding-top: 16px;
    border-top: 1px solid rgba(0,0,0,0.06);
    font-style: italic;
}
.proj-focus b {
    color: var(--ink);
    font-style: normal;
}

.proj-be-chip {
    display: inline-block;
    margin-top: 14px;
    padding: 8px 16px;
    background: rgba(58,165,116,0.12);
    color: var(--success);
    border-radius: 999px;
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.1em;
}

/* ─── Animations projection ─── */
.slide.active .proj-grid .proj-year {
    opacity: 0;
    animation: rise-scale .7s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .proj-grid .proj-year:nth-child(1) { animation-delay: .50s; }
.slide.active .proj-grid .proj-year:nth-child(2) { animation-delay: .65s; }
.slide.active .proj-grid .proj-year:nth-child(3) { animation-delay: .80s; }
.slide.active .proj-fill {
    animation: bar-grow-x .9s .95s cubic-bezier(.22, 1, .36, 1) both;
}

/* ─── Reduced motion ────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}

/* ═══════════════════════════════════════════════════════════════
   SLIDE 14 — PARTENAIRES
   ═══════════════════════════════════════════════════════════════ */
.slide--partners .slide-inner {
    background:
        radial-gradient(ellipse at 85% 20%, rgba(230, 115, 60, 0.08) 0%, transparent 60%),
        linear-gradient(135deg, var(--paper) 0%, var(--ivory-deep) 100%);
}

.partners-grid {
    position: absolute;
    top: 310px;
    left: 90px; right: 90px;
    bottom: 100px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, 1fr);
    gap: 18px;
}
.partners-grid > article:nth-child(7) { grid-column: 2; grid-row: 3; }
.partners-grid > article:nth-child(8) { grid-column: 3; grid-row: 3; }

.partner-cat {
    position: relative;
    padding: 24px 26px 22px;
    background: linear-gradient(135deg, var(--paper) 0%, var(--ivory-deep) 100%);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-md);
    overflow: hidden;
    transition: transform .3s, box-shadow .3s;
    display: flex;
    flex-direction: column;
}
.partner-cat:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}
.partner-cat--accent {
    box-shadow: 0 16px 40px rgba(230, 115, 60, 0.22), var(--shadow-md);
}
.partner-cat--accent::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--flame-bright), var(--flame-deep));
    box-shadow: 0 0 16px var(--flame-glow);
}

.cat-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}
.cat-icon {
    font-size: 28px;
    line-height: 1;
}
.partner-cat h3 {
    font-family: var(--font-title);
    font-size: 20px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.1;
    margin: 0;
}

.partner-logos {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 58px;
    gap: 8px;
    align-content: start;
}
.partner-logos > .partner-chip:only-child,
.partner-logos > .partner-chip:nth-child(3):last-child {
    grid-column: span 2;
}
.partner-chip {
    position: relative;
    display: grid;
    grid-template-rows: 24px auto;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    align-items: center;
    row-gap: 3px;
    padding: 8px 10px 6px;
    height: 58px;
    min-width: 0;
    background: rgba(43, 47, 51, 0.04);
    border: 1px solid rgba(43, 47, 51, 0.06);
    border-radius: 10px;
    transition: background .2s, border-color .2s, transform .2s;
    overflow: hidden;
}
.partner-chip:hover {
    background: rgba(230, 115, 60, 0.08);
    border-color: rgba(230, 115, 60, 0.3);
    transform: scale(1.03);
}
.partner-chip img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    min-width: 0;
    min-height: 0;
    object-fit: contain;
    object-position: center;
    filter: brightness(0);
    opacity: 0.85;
    transition: opacity .2s, filter .2s;
}
.partner-chip .chip-name {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}
.partner-chip:hover img {
    opacity: 1;
}
.chip-name {
    font-family: var(--font-mono);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.1;
    text-transform: uppercase;
    color: var(--muted-dark);
    white-space: nowrap;
    opacity: 0.7;
}
.partner-chip:hover .chip-name {
    color: var(--flame-deep);
    opacity: 1;
}

.partner-chip--target {
    background: rgba(230, 115, 60, 0.08);
    border: 1px dashed rgba(230, 115, 60, 0.4);
}
.partner-chip--target img {
    filter: brightness(0) saturate(1) invert(47%) sepia(80%) saturate(1500%) hue-rotate(340deg);
    opacity: 0.9;
}
.partner-chip--target .chip-name {
    color: var(--flame-deep);
    opacity: 0.9;
}
.partner-chip--target::after {
    content: "cible";
    position: absolute;
    top: 4px;
    right: 6px;
    font-family: var(--font-mono);
    font-size: 7px;
    color: var(--flame);
    letter-spacing: 0.15em;
    text-transform: uppercase;
    opacity: 0.7;
    font-weight: 700;
}

.slide.active .partners-grid > article {
    opacity: 0;
    animation: rise-scale .65s cubic-bezier(.22, 1, .36, 1) forwards;
}
.slide.active .partners-grid > article:nth-child(1) { animation-delay: .50s; }
.slide.active .partners-grid > article:nth-child(2) { animation-delay: .58s; }
.slide.active .partners-grid > article:nth-child(3) { animation-delay: .66s; }
.slide.active .partners-grid > article:nth-child(4) { animation-delay: .74s; }
.slide.active .partners-grid > article:nth-child(5) { animation-delay: .82s; }
.slide.active .partners-grid > article:nth-child(6) { animation-delay: .90s; }
.slide.active .partners-grid > article:nth-child(7) { animation-delay: .98s; }
.slide.active .partners-grid > article:nth-child(8) { animation-delay: 1.06s; }
