/* MEMORY OPS — landing page. Polices hébergées sur le site (aucun appel à Google Fonts). */
@font-face{font-family:'Unbounded';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/unbounded-latin-300-normal.woff2) format('woff2')}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/unbounded-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/geist-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Geist';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/geist-sans-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/geist-mono-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/geist-mono-latin-500-normal.woff2) format('woff2')}

html{scroll-behavior:smooth;background:#04050A}
body{margin:0;background:#04050A}
a{color:#9FBBFF}a:hover{color:#FFFFFF}
.mo{font-family:'Geist',system-ui,sans-serif;color:#EEF1F8;background:#04050A;-webkit-font-smoothing:antialiased}
.mo *{box-sizing:border-box}
.disp{font-family:'Unbounded',system-ui,sans-serif}
.mono{font-family:'Geist Mono',ui-monospace,monospace}
.visually-hidden{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:2px solid #9FBBFF;outline-offset:3px}

@keyframes fadeUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.in1{animation:fadeUp 1.1s cubic-bezier(.2,.7,.2,1) .1s both}
.in2{animation:fadeUp 1.1s cubic-bezier(.2,.7,.2,1) .25s both}
.in3{animation:fadeUp 1.1s cubic-bezier(.2,.7,.2,1) .4s both}
.in4{animation:fadeUp 1.1s cubic-bezier(.2,.7,.2,1) .55s both}
.in5{animation:fadeUp 1.1s cubic-bezier(.2,.7,.2,1) .7s both}
.scene-in{animation:fadeIn 1.6s ease .5s both}
.fi1{animation:fadeIn .8s ease 1.4s both}.fi2{animation:fadeIn .8s ease 1.75s both}.fi3{animation:fadeIn .8s ease 2.1s both}.fi4{animation:fadeIn .8s ease 2.45s both}
@keyframes ringPulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.85}100%{transform:translate(-50%,-50%) scale(1.85);opacity:0}}
.ring{position:absolute;width:4.9%;aspect-ratio:1 / 1;border-radius:50%;border:2px solid currentColor;transform:translate(-50%,-50%);animation:ringPulse 3.2s ease-out infinite;pointer-events:none}
.hero-label{position:absolute;transform:translateY(-50%);display:flex;align-items:baseline;gap:8px;font-family:'Geist Mono',ui-monospace,monospace;font-size:clamp(10px,0.92vw,14px);letter-spacing:0.08em;white-space:nowrap;text-shadow:0 0 14px rgba(4,5,10,.95),0 0 4px rgba(4,5,10,.95);pointer-events:none}
.hl-left{transform:translate(-100%,-50%)}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee{display:flex;width:max-content;animation:marquee 46s linear infinite}
@keyframes flow{to{stroke-dashoffset:-400}}
.strand{stroke-dasharray:2 10;animation:flow 9s linear infinite}
@keyframes light{from{stroke-dashoffset:1700}to{stroke-dashoffset:0}}
.light{stroke-dasharray:140 1600;animation:light 5.5s cubic-bezier(.45,0,.55,1) infinite}
.light2{stroke-dasharray:90 1650;animation:light 7s cubic-bezier(.45,0,.55,1) 1.8s infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.float{animation:float 7s ease-in-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.55)}70%{box-shadow:0 0 0 14px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
@keyframes qIn{from{opacity:0;transform:translateX(28px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
.q-enter{animation:qIn .6s cubic-bezier(.2,.7,.2,1) both}
@keyframes reveal{from{opacity:0;transform:scale(.96);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}
.reveal-in{animation:reveal 1.1s cubic-bezier(.2,.7,.2,1) both}
@keyframes stepGlow{0%,100%{box-shadow:0 0 0 0 rgba(91,140,255,0)}50%{box-shadow:0 0 28px 2px rgba(91,140,255,.35)}}
.proof-step{position:relative;padding:26px 24px 28px;border-radius:22px;background:rgba(11,14,24,.78);border:1px solid rgba(160,175,255,.16);display:flex;flex-direction:column;gap:12px}
.ps1{animation:stepGlow 6s ease-in-out 0s infinite}.ps2{animation:stepGlow 6s ease-in-out 1.5s infinite}.ps3{animation:stepGlow 6s ease-in-out 3s infinite}.ps4{animation:stepGlow 6s ease-in-out 4.5s infinite}
@keyframes tourne{to{transform:rotate(360deg)}}
.attente{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid rgba(160,190,255,.35);border-top-color:#EEF1F8;animation:tourne .9s linear infinite;vertical-align:-2px}
@supports (animation-timeline: view()){
.rise{animation:fadeUp linear both;animation-timeline:view();animation-range:entry 0% cover 28%}
}

.btn-primary{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 26px;border-radius:999px;background:#EEF1F8;color:#04050A;font:inherit;font-weight:500;font-size:16px;text-decoration:none;border:0;cursor:pointer;transition:box-shadow .35s ease,transform .35s ease}
.btn-primary:hover{color:#04050A;transform:translateY(-2px);box-shadow:0 0 0 1px rgba(160,190,255,.6),0 0 40px rgba(91,140,255,.55)}
.btn-primary:disabled{opacity:.35;cursor:not-allowed;transform:none;box-shadow:none}
.btn-ghost{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 24px;border-radius:999px;border:1px solid rgba(190,200,255,.28);color:#EEF1F8;font:inherit;font-size:16px;text-decoration:none;background:transparent;cursor:pointer;transition:border-color .3s ease,background .3s ease}
.btn-ghost:hover{color:#FFFFFF;border-color:rgba(190,200,255,.7);background:rgba(255,255,255,.04)}

.chip{display:inline-flex;align-items:center;min-height:46px;padding:10px 18px;border-radius:999px;font:inherit;font-size:15px;cursor:pointer;background:rgba(255,255,255,.03);border:1px solid rgba(160,175,255,.22);color:#D9DEEC;transition:all .25s ease;text-align:left}
.chip:hover{border-color:rgba(160,190,255,.6);color:#FFFFFF}
.chip[aria-pressed="true"]{background:rgba(91,140,255,.18);border-color:#86A9FF;color:#FFFFFF;box-shadow:0 0 0 1px rgba(127,166,255,.35),0 0 26px rgba(91,140,255,.35)}

.field{width:100%;min-height:52px;padding:14px 18px;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(160,175,255,.22);color:#EEF1F8;font:inherit;font-size:16px;outline:none;transition:border-color .25s ease,box-shadow .25s ease}
.field:focus{border-color:#86A9FF;box-shadow:0 0 0 3px rgba(91,140,255,.25)}
.field::placeholder{color:#7D869E}

.mark-card{position:relative;padding:30px 28px 32px;border-radius:26px;background:rgba(11,14,24,.78);border:1px solid rgba(160,175,255,.14);transition:transform .45s cubic-bezier(.2,.7,.2,1),border-color .45s ease,box-shadow .45s ease;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.mark-card:hover{transform:translateY(-8px)}
.mc-ac:hover{border-color:rgba(245,176,65,.6);box-shadow:0 20px 60px -20px rgba(245,176,65,.45)}
.mc-me:hover{border-color:rgba(255,99,99,.6);box-shadow:0 20px 60px -20px rgba(255,99,99,.45)}
.mc-p:hover{border-color:rgba(91,155,255,.7);box-shadow:0 20px 60px -20px rgba(91,155,255,.5)}
.mc-ub:hover{border-color:rgba(176,132,255,.7);box-shadow:0 20px 60px -20px rgba(176,132,255,.5)}

.node{display:flex;align-items:center;gap:14px;color:#7D869E;font-size:14px;transition:color .4s ease}
.node .dot{width:14px;height:14px;border-radius:50%;border:1px solid rgba(160,175,255,.35);background:#04050A;transition:all .4s ease;flex:none}
.node-done{color:#C9D2EA}
.node-done .dot{background:#5B8CFF;border-color:#86A9FF;box-shadow:0 0 14px rgba(91,140,255,.8)}
.node-active{color:#FFFFFF}
.node-active .dot{background:#EEF1F8;border-color:#FFFFFF;animation:pulse 2.2s ease-out infinite}

.seg{height:8px;flex:1;border-radius:999px;background:rgba(255,255,255,.07)}
.seg-ac{background:#F5B041;box-shadow:0 0 12px rgba(245,176,65,.6)}
.seg-me{background:#FF6363;box-shadow:0 0 12px rgba(255,99,99,.6)}
.seg-p{background:#5B9BFF;box-shadow:0 0 12px rgba(91,155,255,.6)}
.seg-ub{background:#B084FF;box-shadow:0 0 12px rgba(176,132,255,.6)}

.envoi{padding:18px 22px;border-radius:18px;font-size:15px;line-height:1.6;display:flex;gap:12px;align-items:flex-start}
.envoi-cours{border:1px solid rgba(160,175,255,.25);background:rgba(255,255,255,.03);color:#C9D2EA}
.envoi-ok{border:1px solid rgba(110,220,160,.45);background:rgba(110,220,160,.07);color:#CFF5DF}
.envoi-garde{border:1px solid rgba(245,176,65,.5);background:rgba(245,176,65,.06);color:#F8D394}

/* Les blocs décoratifs débordent volontairement : « clip » empêche qu'un clic, une tabulation ou un défilement
   automatique ne décale le contenu sur le côté (« hidden » laisse ce défilement possible). */
.mo [style*="overflow: hidden"]{overflow:clip !important}
.sig{white-space:nowrap}
.navlink{color:#C9D2EA;text-decoration:none;font-size:15px}
.navlink:hover{color:#FFFFFF}
.show-sm{display:none}
@media (max-width:860px){
.hide-sm{display:none !important}.show-sm{display:flex !important}
.sec{padding-top:76px !important;padding-bottom:76px !important}
.cards-up{margin-top:20px !important;padding:0 !important}
.rail{flex-basis:100% !important;padding:20px 24px !important;border-right:0 !important;border-bottom:1px solid rgba(160,175,255,.12)}
.rail-list{display:none !important}
.qzone{min-height:0 !important}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.mo *{animation:none !important;transition:none !important}}
