        body {
            font-family: 'Plus Jakarta Sans', sans-serif;
            background-color: #FFFFFF;
            color: #111111;
            overflow-x: hidden; /* fallback navigateurs anciens */
            overflow-x: clip;   /* coupe le débordement horizontal SANS créer un scroll imbriqué
                                   (corrige, sur iOS, le « bloqué en bas » au changement de page) */
        }

        /* Évite le flash des éléments Alpine (ex. fil d'Ariane) avant l'init */
        [x-cloak] { display: none !important; }

        /* Désactive le « scroll anchoring » : sur iOS, l'intro plein écran (100vh) qui
           s'insère en haut au retour sur l'accueil repoussait le scroll de ~100vh APRÈS
           notre remise à zéro (la page apparaissait « scrollée »). Sans ancrage, elle reste en haut. */
        html, body { overflow-anchor: none; }

        /* Hiérarchie Typographique Unity */
        .h1-swiss {
            font-family: 'Syncopate', sans-serif;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            line-height: 1.15 !important;
        }
        
        .h2-swiss {
            font-family: 'Plus Jakarta Sans', sans-serif;
            font-weight: 800;
            letter-spacing: -0.025em;
            line-height: 1.12;
        }
        
        .h3-swiss {
            font-family: 'Plus Jakarta Sans', sans-serif;
            font-weight: 700;
            letter-spacing: -0.02em;
        }
        
        .body-swiss {
            font-family: 'Plus Jakarta Sans', sans-serif;
            font-weight: 400;
            line-height: 1.65;
        }
        
        .micro-ui {
            font-family: 'ui-monospace', 'SFMono-Regular', 'Menlo', 'monospace';
            font-size: 11px;
            text-transform: uppercase;
            letter-spacing: 0.15em;
        }

        /* Blueprint & Swiss Grid Background Pattern */
        .swiss-grid-bg {
            background-size: 40px 40px;
            background-image: linear-gradient(to right, rgba(17, 17, 17, 0.02) 1px, transparent 1px),
                              linear-gradient(to bottom, rgba(17, 17, 17, 0.02) 1px, transparent 1px);
        }

        .swiss-grid-accent {
            background-size: 20px 20px;
            background-image: linear-gradient(to right, rgba(124, 58, 237, 0.03) 1px, transparent 1px),
                              linear-gradient(to bottom, rgba(124, 58, 237, 0.03) 1px, transparent 1px);
        }
        
        /* Custom layout structures */
        .mask-blueprint {
            mask-image: linear-gradient(to bottom, white, transparent);
        }

        /* Custom scrollbar matching branding colors */
        ::-webkit-scrollbar {
            width: 6px;
        }
        ::-webkit-scrollbar-track {
            background: #FFFFFF;
        }
        ::-webkit-scrollbar-thumb {
            background: #7C3AED;
        }
        ::-webkit-scrollbar-thumb:hover {
            background: #111111;
        }

        @keyframes pulseSubtle {
            0%, 100% { opacity: 1; }
            50% { opacity: .7; }
        }

        /* Coins arrondis pour toutes les structures de contenu */
        [class~="border"],
        [class~="border-2"],
        button[class~="bg-violetPr"],
        button[class~="bg-dark"],
        button[class~="bg-grayBg"],
        button[class~="bg-white"] {
            border-radius: 0.75rem;
        }
        /* Garder les séparateurs/lignes simples bien droits */
        [class~="border-b"]:not([class~="border"]),
        [class~="border-t"]:not([class~="border"]),
        [class~="border-l-4"],
        [class~="divide-y"],
        table,
        thead,
        tbody,
        tr,
        th,
        td {
            border-radius: 0;
        }

        /* ===== Intro plein écran (première page, on scrolle pour passer) ===== */
        .intro-three { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
        .intro-three canvas { display: block; width: 100% !important; height: 100% !important; }
        .intro-splash .intro-inner { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; will-change: transform, opacity; }
        .intro-splash .intro-scroll { z-index: 2; }
        .intro-splash { position: relative; width: 100%; height: 100vh; min-height: 560px; z-index: 1; background: #03030A; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; }
        .intro-splash::before { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
            background: radial-gradient(54% 48% at 50% 46%, rgba(3,3,10,.55), rgba(3,3,10,.18) 42%, transparent 70%),
                        radial-gradient(120% 120% at 50% 50%, transparent 55%, rgba(3,3,10,.6) 100%); }
        .intro-word { display: flex; perspective: 900px; letter-spacing: .14em; animation: introTighten .9s 1s cubic-bezier(.16,1,.3,1) forwards; }
        @keyframes introTighten { to { letter-spacing: .02em; } }
        .intro-word span {
            font-family: 'Syncopate', sans-serif; font-weight: 700; color: #fff;
            font-size: clamp(3.4rem, 15vw, 12rem); line-height: 1; display: inline-block;
            transform-origin: 50% 100%; opacity: 0; transform: translateY(46px) rotateY(42deg);
            animation: introLetter .95s cubic-bezier(.16,1,.3,1) forwards;
            text-shadow: 0 2px 40px rgba(0,0,0,.55), 0 0 14px rgba(0,0,0,.35);
        }
        .intro-word span:nth-child(1) { animation-delay: .08s; }
        .intro-word span:nth-child(2) { animation-delay: .17s; }
        .intro-word span:nth-child(3) { animation-delay: .26s; }
        .intro-word span:nth-child(4) { animation-delay: .35s; }
        .intro-word span:nth-child(5) { animation-delay: .44s; }
        .intro-word span .u-dot { color: #7C3AED; }
        @keyframes introLetter { to { opacity: 1; transform: translateY(0) rotateY(0deg); } }
        .intro-line { height: 2px; width: 0; background: #7C3AED; margin-top: 1.6rem; animation: introLine .75s 1.15s cubic-bezier(.16,1,.3,1) forwards; }
        @keyframes introLine { to { width: clamp(120px, 18vw, 300px); } }
        .intro-sub { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .42em; font-size: clamp(.58rem, 1.4vw, .82rem); color: rgba(255,255,255,.62); margin-top: 1.6rem; padding-left: .42em; opacity: 0; transform: translateY(14px); animation: introSub .8s 1.55s ease forwards; }
        @keyframes introSub { to { opacity: 1; transform: none; } }
        .intro-scroll { position: absolute; bottom: 2.2rem; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: .55rem; cursor: pointer; opacity: 0; animation: introSub .8s 2.1s ease forwards; }
        .intro-scroll span { font-family: 'Plus Jakarta Sans', sans-serif; text-transform: uppercase; letter-spacing: .28em; font-size: .55rem; color: rgba(255,255,255,.4); }
        .intro-scroll i { width: 1px; height: 30px; background: linear-gradient(rgba(255,255,255,.5), transparent); position: relative; overflow: hidden; }
        .intro-scroll i::after { content: ""; position: absolute; top: -50%; left: 0; width: 100%; height: 50%; background: #fff; animation: introScrollDot 1.8s ease-in-out infinite; }
        @keyframes introScrollDot { 0% { top: -50%; } 60%,100% { top: 110%; } }

        @media (prefers-reduced-motion: reduce) {
            .intro-word { letter-spacing: .04em; animation: none; }
            .intro-word span { opacity: 1 !important; transform: none !important; animation: none !important; }
            .intro-line { width: clamp(120px, 18vw, 300px) !important; animation: none !important; }
            .intro-sub, .intro-scroll { opacity: 1 !important; transform: translateX(-50%) !important; animation: none !important; }
            .intro-sub { transform: none !important; }
        }

        /* ===== Hero mockup premium ===== */
        .hero-three { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
        .hero-three canvas { display: block; width: 100% !important; height: 100% !important; }
        .hero-stage { position: relative; perspective: 1600px; }
        .hero-glow { position: absolute; inset: -12% -8% -12% -2%; z-index: 0; pointer-events: none;
            background: radial-gradient(58% 58% at 72% 28%, rgba(124,58,237,.24), transparent 70%),
                        radial-gradient(48% 48% at 26% 82%, rgba(255,92,122,.18), transparent 72%); filter: blur(6px); }
        .hero-browser { position: relative; z-index: 2; border-radius: 16px; overflow: hidden; background: #fff;
            border: 1px solid rgba(17,17,17,.12); box-shadow: 0 45px 95px -42px rgba(17,17,17,.5);
            transform: rotateY(-9deg) rotateX(4deg); transform-style: preserve-3d; animation: heroFloat 7s ease-in-out infinite; }
        @keyframes heroFloat { 0%,100% { transform: rotateY(-9deg) rotateX(4deg) translateY(0); } 50% { transform: rotateY(-6.5deg) rotateX(3deg) translateY(-14px); } }
        .hero-bbar { display: flex; align-items: center; gap: .5rem; padding: .7rem .9rem; background: #FAFAF7; border-bottom: 1px solid rgba(17,17,17,.08); }
        .hero-bbar .d { width: 9px; height: 9px; border-radius: 9999px; background: #E2E2DD; }
        .hero-url { flex: 1; margin: 0 .4rem; display: flex; align-items: center; gap: .4rem; font-family: 'Plus Jakarta Sans', sans-serif; font-size: .6rem; letter-spacing: .03em; color: rgba(17,17,17,.55); background: #fff; border: 1px solid rgba(17,17,17,.08); border-radius: 9999px; padding: .3rem .7rem; }
        .hero-url .lock { width: 7px; height: 7px; border-radius: 2px; border: 1.5px solid #34d399; }
        .hero-live { display: inline-flex; align-items: center; gap: .35rem; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: .5rem; letter-spacing: .14em; color: #16a34a; white-space: nowrap; }
        .hero-live i { width: 6px; height: 6px; border-radius: 9999px; background: #34d399; animation: pulseSubtle 1.6s ease-out infinite; }
        .hero-viewport { position: relative; height: clamp(320px, 40vh, 440px); overflow: hidden; background: #fff; }
        .mini-nav { display: flex; align-items: center; justify-content: space-between; padding: .9rem 1.1rem; }
        .mini-logo { font-family: 'Syncopate', sans-serif; font-weight: 700; font-size: .6rem; letter-spacing: .08em; color: #111; }
        .mini-links { display: flex; gap: .5rem; }
        .mini-links i { width: 18px; height: 4px; border-radius: 9999px; background: rgba(17,17,17,.12); }
        .mini-hero { position: relative; height: 56%; margin: 0 1.1rem; border-radius: 12px; overflow: hidden; background-size: cover; background-position: center; }
        .mini-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(17,17,17,.78), rgba(17,17,17,.15)); }
        .mini-hcopy { position: absolute; z-index: 2; left: 1rem; bottom: 1rem; right: 1rem; color: #fff; }
        .mini-eyebrow { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: .5rem; letter-spacing: .16em; color: #FF5C7A; }
        .mini-hcopy h4 { font-family: 'Syncopate', sans-serif; font-weight: 700; text-transform: uppercase; font-size: .95rem; line-height: 1.15; margin-top: .35rem; }
        .mini-btn { display: inline-block; margin-top: .6rem; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: .52rem; letter-spacing: .08em; text-transform: uppercase; color: #111; background: #fff; padding: .35rem .7rem; border-radius: 9999px; }
        .mini-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: .55rem; padding: .9rem 1.1rem; }
        .mini-card { height: 38px; border-radius: 8px; background: #F3F4F6; position: relative; overflow: hidden; }
        .mini-card::before { content: ""; position: absolute; top: 8px; left: 8px; width: 40%; height: 5px; border-radius: 9999px; background: rgba(17,17,17,.15); }
        .mini-card:nth-child(2)::after { content: ""; position: absolute; top: 8px; left: 8px; width: 18px; height: 5px; border-radius: 9999px; background: #7C3AED; }

        /* cursor that glides across the mockup */
        .hero-cursor { position: absolute; z-index: 5; width: 16px; height: 16px; top: 0; left: 0; pointer-events: none;
            filter: drop-shadow(0 2px 3px rgba(0,0,0,.3)); animation: heroCursor 6.5s cubic-bezier(.6,.05,.3,.95) infinite; }
        @keyframes heroCursor {
            0% { transform: translate(78%, 30%); opacity: 0; }
            12% { opacity: 1; }
            45% { transform: translate(40%, 230%); }
            60% { transform: translate(40%, 230%); }
            72% { transform: translate(40%, 230%) scale(.82); }
            80% { transform: translate(40%, 230%) scale(1); }
            92% { opacity: 1; }
            100% { transform: translate(60%, 120%); opacity: 0; }
        }

        /* floating responsive phone */
        .hero-phone { position: absolute; z-index: 3; left: -5%; bottom: -9%; width: 28%; max-width: 138px; aspect-ratio: 9/19; background: #111; border-radius: 22px; padding: 6px; border: 1px solid rgba(255,255,255,.1); box-shadow: 0 34px 64px -26px rgba(17,17,17,.6); animation: heroFloatB 7s ease-in-out infinite; }
        @keyframes heroFloatB { 0%,100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-11px) rotate(-5deg); } }
        .hero-phone-scr { width: 100%; height: 100%; border-radius: 15px; overflow: hidden; background: #fff; position: relative; }
        .hero-phone-img { height: 52%; background-size: cover; background-position: center; position: relative; }
        .hero-phone-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17,17,17,.1), rgba(17,17,17,.6)); }
        .hero-phone-body { padding: 7px 8px; }
        .hero-phone-body span { display: block; height: 4px; border-radius: 9999px; background: rgba(17,17,17,.12); margin-bottom: 5px; }
        .hero-phone-body span.w60 { width: 60%; } .hero-phone-body span.w40 { width: 40%; background: #7C3AED; }
        .hero-phone-body .pbtn { height: 11px; width: 70%; border-radius: 9999px; background: #111; margin-top: 8px; }

        /* floating stat chip */
        .hero-chip { position: absolute; z-index: 4; right: -3%; top: 16%; display: flex; align-items: center; gap: .55rem; background: #111; color: #fff; border-radius: 13px; padding: .6rem .8rem; box-shadow: 0 26px 52px -22px rgba(17,17,17,.65); animation: heroFloatC 6s ease-in-out infinite; }
        .hero-chip .ring { width: 26px; height: 26px; border-radius: 9999px; background: conic-gradient(#7C3AED 0% 96%, rgba(255,255,255,.15) 96% 100%); display: flex; align-items: center; justify-content: center; }
        .hero-chip .ring i { width: 18px; height: 18px; border-radius: 9999px; background: #111; }
        .hero-chip .ct { line-height: 1; }
        .hero-chip .ct b { font-family: 'Syncopate', sans-serif; font-size: .8rem; }
        .hero-chip .ct span { display: block; font-family: 'Plus Jakarta Sans', sans-serif; font-size: .5rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.55); margin-top: 2px; }
        @keyframes heroFloatC { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }

        @media (max-width: 1023px) {
            .hero-browser { transform: none; animation: none; }
            .hero-stage { max-width: 540px; margin: 0 auto; }
            .hero-phone { animation: none; transform: rotate(-5deg); }
            .hero-chip { animation: none; }
        }
        @media (prefers-reduced-motion: reduce) {
            .hero-browser, .hero-phone, .hero-chip { animation: none !important; }
            .hero-cursor { display: none; }
        }

        /* ===== Prisme 3D des 3 étapes ===== */
        .hscroll-section { position: relative; }
        .prism-sticky { display: flex; flex-direction: column; }
        .prism-scene { perspective: 1700px; perspective-origin: 50% 44%; flex: 1; display: flex; align-items: center; justify-content: center; }
        .prism { position: relative; transform-style: preserve-3d; transition: transform .35s cubic-bezier(.16,1,.3,1); }
        .prism-face { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
        .prism-card {
            position: relative; width: 100%; height: 100%; overflow: hidden;
            border-radius: 20px; padding: 3rem;
            backface-visibility: hidden;
            border: 1px solid rgba(17,17,17,.16);
            transform: scale(var(--s,1)) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateZ(var(--lift,0px));
            transition: box-shadow .45s ease, filter .45s ease, opacity .45s ease, background .45s ease, transform .38s cubic-bezier(.16,1,.3,1);
        }
        /* Variantes */
        .prism-card--v1 { background: #111111; color: #fff; --accent: #7C3AED; border-color: rgba(255,255,255,.16); }
        .prism-card--v2 { background: #111111; color: #fff; --accent: #7C3AED; border-color: rgba(255,255,255,.16); }
        .prism-card--v3 { background: #111111; color: #fff; --accent: #7C3AED; border-color: rgba(255,255,255,.16); }

        /* Mot géant en arrière-plan */
        .prism-word {
            position: absolute; left: 2.2rem; bottom: -2%;
            font-family: 'Syncopate', sans-serif; font-weight: 700;
            font-size: clamp(5rem, 15vw, 12rem); line-height: .8; letter-spacing: -.02em;
            white-space: nowrap; pointer-events: none; user-select: none; z-index: 0;
            color: transparent; -webkit-text-stroke: 1.5px rgba(255,255,255,.12);
            transform: translateX(calc(var(--wscroll,0px) + var(--hx,0px)));
            transition: transform .6s cubic-bezier(.16,1,.3,1);
        }
        .prism-card--v2 .prism-word { -webkit-text-stroke: 1.5px rgba(255,255,255,.12); }


        /* En-tête : numéro + tag */
        .prism-head { position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: flex-start; }
        .prism-num { font-family: 'Syncopate', sans-serif; font-weight: 700; font-size: clamp(2.2rem, 4vw, 3.6rem); line-height: 1; background: linear-gradient(135deg, #EaEaEa 0%, #9A9FA8 38%, #5C616B 60%, #C7CBD1 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; transition: transform .4s cubic-bezier(.16,1,.3,1), opacity .4s ease; }
        .prism-tag { display: inline-flex; align-items: center; gap: .5rem; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
        .prism-tag i { width: 9px; height: 9px; border-radius: 9999px; background: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 20%, transparent); }

        /* Corps */
        .prism-body { position: absolute; left: 3rem; right: 3rem; bottom: 3rem; z-index: 2; }
        .prism-title { font-family: 'Syncopate', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; line-height: 1.08; font-size: clamp(1.7rem, 3.6vw, 3.1rem); }
        .prism-title .u-dot { color: var(--accent); }
        .prism-text { font-family: 'Plus Jakarta Sans', sans-serif; font-size: clamp(.95rem, 1.2vw, 1.2rem); margin-top: .9rem; max-width: 32ch; color: color-mix(in srgb, currentColor 62%, transparent); }
        .prism-cta { display: inline-flex; align-items: center; gap: .45rem; margin-top: 1.6rem; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); cursor: pointer; }
        .prism-cta span { transition: transform .4s cubic-bezier(.16,1,.3,1); }
        .prism-cta:hover span { transform: translate(3px,-3px); }
        /* détail graphique */
        .prism-deco { position: absolute; top: 3rem; right: 3rem; width: clamp(70px, 9vw, 120px); height: clamp(70px, 9vw, 120px); z-index: 1; border-radius: 14px; border: 1.5px solid var(--accent); opacity: .35; transition: transform .4s cubic-bezier(.16,1,.3,1), opacity .5s ease; }
        .prism-deco::before { content: ""; position: absolute; inset: 22%; border-radius: 9999px; border: 1.5px solid var(--accent); }

        /* Indicateur + navigation */
        .prism-nav { display: flex; align-items: center; justify-content: center; gap: 1.2rem; padding-bottom: 2rem; }
        .prism-dot { display: inline-flex; align-items: center; gap: .5rem; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: .72rem; letter-spacing: .1em; color: rgba(17,17,17,.35); cursor: pointer; transition: color .3s ease; }
        .prism-dot i { width: 26px; height: 2px; background: rgba(17,17,17,.2); display: inline-block; transition: background .3s ease, width .3s ease; }
        .prism-dot.is-on { color: #111; }
        .prism-dot.is-on i { background: #7C3AED; width: 42px; }
        .prism-hint { text-align: center; }

        @media (min-width: 768px) {
            .hscroll-section { height: 340vh; }
            .prism-sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; }
            .prism { width: min(82vw, 1180px); height: 76vh; min-height: 520px; }
            .prism-face { transform-style: preserve-3d; }
            .prism-card { padding: clamp(3rem, 5vw, 5.5rem); }
            /* face active vs faces en retrait */
            .prism-face:not(.is-front) .prism-card { filter: brightness(.55) saturate(.85); opacity: .9; }
            .prism-face.is-front .prism-card { --s: 1.02; }
            /* Hover premium (face active) */
            .prism-face.is-front .prism-card { cursor: none; }
            .prism-face.is-front .prism-card:hover { --s: 1.035; --lift: 26px; }
            .prism-card--v1.is-glow, .prism-face.is-front .prism-card--v1 { box-shadow: 0 50px 110px -45px rgba(124,58,237,.55); }
            .prism-face.is-front .prism-card--v2 { box-shadow: 0 50px 110px -45px rgba(0,212,255,.5); }
            .prism-face.is-front .prism-card--v3 { box-shadow: 0 50px 110px -45px rgba(255,92,122,.45); }
            .prism-face.is-front .prism-card--v1:hover { background: #171717; box-shadow: 0 70px 130px -42px rgba(124,58,237,.6), 0 0 0 1px rgba(124,58,237,.3); }
            .prism-face.is-front .prism-card--v2:hover { background: #171717; box-shadow: 0 70px 130px -42px rgba(124,58,237,.5), 0 0 0 1px rgba(124,58,237,.28); }
            .prism-face.is-front .prism-card--v3:hover { background: #171717; box-shadow: 0 70px 130px -42px rgba(124,58,237,.5), 0 0 0 1px rgba(124,58,237,.3); }
            .prism-card:hover .prism-num { transform: translate(var(--nx,0px), var(--ny,0px)); opacity: .82; }
            .prism-card:hover .prism-deco { transform: translate(var(--dx,0px), var(--dy,0px)); opacity: .6; }
            /* CTA révélé au hover */
            .prism-face.is-front .prism-cta { opacity: 0; transform: translateY(10px); }
            .prism-face.is-front .prism-card:hover .prism-cta { opacity: 1; transform: none; }
        }

        @media (max-width: 767px) {
            .hscroll-section { padding: 2.5rem 0 1rem; }
            .prism-scene { display: block; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; perspective: none; }
            .prism-scene::-webkit-scrollbar { display: none; }
            .prism { position: static; transform: none !important; transform-style: flat; display: flex; gap: 1rem; padding: 0 1rem 1.5rem; width: max-content; height: auto; }
            .prism-face { position: static; transform: none !important; width: 84vw; height: 64vh; flex: 0 0 auto; scroll-snap-align: center; }
            .prism-deco { width: 70px; height: 70px; }
        }

        @media (prefers-reduced-motion: reduce) {
            .prism { transform: none !important; }
            .prism-face { position: relative !important; transform: none !important; }
            .prism-face:not(.is-front) .prism-card { filter: none !important; opacity: 1 !important; }
            .prism-card, .prism-card:hover { --s: 1 !important; --lift: 0 !important; --rx: 0deg !important; --ry: 0deg !important; }
            .prism-cta { opacity: 1 !important; transform: none !important; }
        }

        /* Pastille curseur « Explorer » */
        .prism-cursor {
            position: fixed; top: 0; left: 0; z-index: 95; pointer-events: none;
            display: inline-flex; align-items: center; gap: .45rem;
            padding: .6rem 1rem; border-radius: 9999px;
            font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: .6rem; letter-spacing: .16em; text-transform: uppercase;
            color: #fff; background: rgba(17,17,17,.92); backdrop-filter: blur(4px);
            opacity: 0; transform: translate(-50%,-50%) scale(.55);
            transition: opacity .35s ease, transform .4s cubic-bezier(.16,1,.3,1);
        }
        .prism-cursor i { width: 7px; height: 7px; border-radius: 9999px; background: var(--cur, #7C3AED); box-shadow: 0 0 0 3px color-mix(in srgb, var(--cur, #7C3AED) 30%, transparent); }
        .prism-cursor.is-on { opacity: 1; transform: translate(-50%,-50%) scale(1); }
        @media (max-width: 767px), (prefers-reduced-motion: reduce) {
            .prism-cursor { display: none !important; }
            .prism-face.is-front .prism-card { cursor: auto; }
        }

        /* Révélation au scroll (cartes) */
        .reveal-card {
            opacity: 0;
            transform: translateX(-60px) scale(0.96);
            transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
            will-change: opacity, transform;
        }
        .reveal-card.is-visible {
            opacity: 1;
            transform: none;
        }
        @media (prefers-reduced-motion: reduce) {
            .reveal-card { opacity: 1 !important; transform: none !important; }
        }

        /* Curseur personnalisé : logo Unity en petit */
        *, *::before, *::after {
            cursor: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='28'%20height='28'%20viewBox='0%200%20120%20120'%20fill='%237C3AED'%3E%3Crect%20x='15'%20y='10'%20width='12'%20height='35'/%3E%3Crect%20x='33'%20y='10'%20width='12'%20height='35'/%3E%3Crect%20x='15'%20y='75'%20width='12'%20height='35'/%3E%3Crect%20x='33'%20y='75'%20width='12'%20height='35'/%3E%3Crect%20x='75'%20y='10'%20width='12'%20height='35'/%3E%3Crect%20x='93'%20y='10'%20width='12'%20height='35'/%3E%3Crect%20x='75'%20y='75'%20width='12'%20height='35'/%3E%3Crect%20x='93'%20y='75'%20width='12'%20height='35'/%3E%3Crect%20x='15'%20y='53'%20width='90'%20height='14'/%3E%3Crect%20x='49'%20y='43'%20width='22'%20height='34'/%3E%3C/svg%3E") 14 14, auto !important;
        }
        /* Gris métallique (détail ~10%) */
        .metal-num { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700;
            background: linear-gradient(135deg, #6B7079 0%, #2C2F36 42%, #565B64 60%, #9298A2 100%);
            -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
        .metal-rule { height: 1px; border: 0; background: linear-gradient(90deg, transparent, rgba(138,143,154,.55), transparent); }
        /* Cartes d'offres : effet survol métal brossé */
        .offer-card { transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease, background .45s ease, border-color .45s ease; }
        .offer-card:hover { transform: translateY(-8px); border-color: #8A8F9A;
            background: linear-gradient(150deg, #FBFBFC 0%, #ECEEF1 46%, #D7DAE1 100%);
            box-shadow: 0 34px 64px -34px rgba(17,17,17,.45), inset 0 1px 0 rgba(255,255,255,.7); }
        .offer-card--feat:hover { border-color: #7C3AED; }
