/* SABI ONE — site public. Surfaces minérales (jamais de blanc pur), vert profond, citron mat. */
:root{color-scheme:light;--canvas:#F5F3ED;--panel:#ECE9DF;--elevated:#FAF8F2;--ink:#17231F;--muted:#4D5A54;--line:#CBCFC4;--forest:#075B45;--forest-deep:#053D2F;--citron:#DDEB55;--orange:#F06A24;--on-forest:#F2F1E9;--danger:#9E302C;--ok:#075B45;--ease:cubic-bezier(.22,1,.36,1);--shadow:0 1px 0 rgba(23,35,31,.04),0 18px 40px -22px rgba(23,35,31,.35);--font:Inter,"Segoe UI",system-ui,-apple-system,sans-serif}
[data-theme=dark]{color-scheme:dark;--canvas:#111C18;--panel:#1D2B25;--elevated:#28372F;--ink:#F2F1E9;--muted:#BBC8BE;--line:#3E5147;--forest:#DDEB55;--forest-deep:#0B2A20;--shadow:0 18px 40px -22px rgba(0,0,0,.7)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--canvas);color:var(--ink);font:17px/1.6 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%;display:block}a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--forest);outline-offset:3px;border-radius:6px}
[data-theme=dark] :focus-visible{outline-color:var(--citron)}
.skip{position:absolute;left:12px;top:-60px;background:var(--ink);color:var(--canvas);padding:10px 16px;border-radius:8px;z-index:100}.skip:focus{top:12px}
.wrap{width:min(1200px,100% - 48px);margin-inline:auto}
.eyebrow{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--forest)}
[data-theme=dark] .eyebrow{color:var(--citron)}
h1,h2,h3{line-height:1.04;letter-spacing:-.035em;margin:0;font-weight:800}
h1{font-size:clamp(2.6rem,6.6vw,5.4rem)}h2{font-size:clamp(2rem,4.2vw,3.5rem)}h3{font-size:1.25rem;letter-spacing:-.02em;line-height:1.2}
.lead{font-size:clamp(1.06rem,1.6vw,1.28rem);color:var(--muted);max-width:56ch}
.pill-one{display:inline-block;background:var(--citron);color:#17231F;border-radius:.28em;padding:0 .22em .04em;margin-left:.06em;transform:rotate(-2deg)}
/* Header */
.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--canvas) 86%,transparent);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .25s}
.nav.scrolled{border-color:var(--line)}
.nav .wrap{display:flex;align-items:center;gap:28px;height:72px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:1.25rem;letter-spacing:-.03em}
.brand img{width:34px;height:34px;border-radius:9px}.brand strong{background:var(--citron);color:#17231F;padding:0 .3em;border-radius:.3em}
.nav-links{display:flex;gap:26px;margin-left:auto;font-size:15px;font-weight:600}.nav-links a{white-space:nowrap;text-decoration:none;color:var(--muted);transition:color .2s}.nav-links a:hover{color:var(--ink)}
.tools{display:flex;gap:10px;align-items:center}
.icon-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:transparent;cursor:pointer;display:grid;place-items:center;transition:background .2s,transform .2s var(--ease)}.icon-btn:hover{background:var(--panel)}.icon-btn:active{transform:scale(.94)}
.menu-btn{display:none}
.btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:999px;border:1.5px solid var(--ink);background:transparent;font-weight:700;text-decoration:none;cursor:pointer;transition:transform .25s var(--ease),background .2s,box-shadow .25s}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.btn:active{transform:translateY(0) scale(.98)}
.btn.primary{background:var(--forest);border-color:var(--forest);color:var(--on-forest)}[data-theme=dark] .btn.primary{color:#17231F}
.btn.citron{background:var(--citron);border-color:var(--citron);color:#17231F}
.btn .arrow{transition:transform .3s var(--ease)}.btn:hover .arrow{transform:translateX(4px)}
.btn[disabled]{opacity:.6;cursor:progress;transform:none;box-shadow:none}
/* Hero */
.hero{position:relative;padding:clamp(48px,8vw,104px) 0 clamp(56px,7vw,96px);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:center}
.hero h1{margin:18px 0 22px}.hero .actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.hero small{display:block;margin-top:18px;color:var(--muted);font-size:14px}
.stack{position:relative;display:grid;gap:16px;min-height:430px;align-content:center}
.stack-card{position:relative;background:var(--elevated);border:1px solid var(--line);border-radius:22px;padding:18px 20px;box-shadow:var(--shadow);display:flex;align-items:center;gap:16px;animation:cardIn .65s var(--ease) both}
.stack-card:nth-of-type(3){animation-delay:.15s}.stack-card:nth-of-type(4){animation-delay:.3s}.stack-card:nth-of-type(5){animation-delay:.45s}
@keyframes cardLoop{0%{opacity:0;transform:translateY(24px) scale(.97)}7%,82%{opacity:1;transform:none}92%,100%{opacity:0;transform:translateY(-8px) scale(.98)}}
.dot{flex:none;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--panel);font-weight:800}
.stack-card:nth-of-type(2) .dot{background:var(--citron);color:#17231F}
.stack-card b{display:block;font-size:1.02rem;letter-spacing:-.01em}.stack-card span.sub{font-size:14px;color:var(--muted)}
.stack-card .state{margin-left:auto;font-size:12px;font-weight:700;border:1px solid var(--line);padding:4px 10px;border-radius:999px;white-space:nowrap}
.trace{position:absolute;left:41px;top:44px;width:2px;height:330px;background:var(--line);z-index:0;overflow:hidden}
.trace::after{content:"";position:absolute;left:0;top:0;width:100%;height:100%;background:var(--forest);transform-origin:top;transform:scaleY(0);animation:traceLoop 12s var(--ease) infinite}[data-theme=dark] .trace::after{background:var(--citron)}
@keyframes traceLoop{0%{transform:scaleY(0)}28%,82%{transform:scaleY(1)}92%,100%{transform:scaleY(1);opacity:0}}
.caption{position:relative;font-size:13px;color:var(--muted)}
/* Sections */
section{padding:clamp(64px,9vw,128px) 0}
.sec-head{display:grid;gap:16px;max-width:760px;margin-bottom:clamp(36px,5vw,64px)}
.reveal{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0s)}.reveal.in{opacity:1;transform:none}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:var(--elevated);border:1px solid var(--line);border-radius:24px;padding:28px;display:grid;gap:12px;align-content:start;transition:transform .35s var(--ease),box-shadow .35s}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.card p{margin:0;color:var(--muted);font-size:16px}
.num{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--citron);color:#17231F;font-weight:800}
.chain{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative}
.chain .step{padding:0 22px 0 0;position:relative}
.chain .step::before{content:"";display:block;height:2px;background:var(--line);margin:21px 0 26px;transform-origin:left;transform:scaleX(0);transition:transform .9s var(--ease);transition-delay:calc(var(--i)*.22s)}
.chain.in .step::before{transform:scaleX(1);background:var(--forest)}[data-theme=dark] .chain.in .step::before{background:var(--citron)}
.chain .step::after{content:"";position:absolute;left:0;top:12px;width:20px;height:20px;border-radius:50%;background:var(--canvas);border:2px solid var(--forest);transition:background .4s;transition-delay:calc(var(--i)*.22s + .3s)}
.chain.in .step::after{background:var(--citron)}
.chain h3{margin-bottom:8px}.chain p{margin:0;color:var(--muted);font-size:15.5px}
.forest{background:var(--forest-deep);color:var(--on-forest)}.forest .eyebrow{color:var(--citron)}.forest .lead{color:#BBC8BE}
.forest .card{background:#0E3A2D;border-color:#1D5A47;color:var(--on-forest)}.forest .card p{color:#BBC8BE}
.included{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.included .card .num{background:var(--citron)}
.tag{display:inline-block;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;border:1px solid currentColor;width:max-content}
.tag.lime{background:var(--citron);color:#17231F;border-color:var(--citron)}
.mods{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.mod{background:var(--elevated);border:1px solid var(--line);border-radius:18px;padding:20px;display:grid;gap:6px;transition:transform .3s var(--ease),border-color .2s}
.mod:hover{transform:translateY(-4px);border-color:var(--forest)}.mod b{font-size:1.02rem;letter-spacing:-.01em}.mod span{font-size:14px;color:var(--muted);line-height:1.45}
.chat{background:#0B2A20;color:var(--on-forest);border-radius:28px;padding:26px;display:grid;gap:14px;box-shadow:var(--shadow);border:1px solid #1D5A47}
.chat .bar{display:flex;gap:8px;align-items:center;font-size:13px;color:#BBC8BE}.chat .bar i{width:10px;height:10px;border-radius:50%;background:var(--citron)}
.bubble{max-width:88%;padding:14px 18px;border-radius:18px;font-size:16px;line-height:1.5;opacity:0;transform:translateY(14px);animation:bubbleLoop 14s var(--ease) infinite}
.bubble.me{justify-self:end;background:var(--citron);color:#17231F;border-bottom-right-radius:6px}.bubble.ssi{background:#14402F;border-bottom-left-radius:6px;animation-delay:2.2s}.bubble.me.b2{animation-delay:5.5s}.bubble.ssi.b2{animation-delay:7.4s}
@keyframes bubbleLoop{0%{opacity:0;transform:translateY(14px)}5%,86%{opacity:1;transform:none}96%,100%{opacity:0}}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:center}
.faq{display:grid;gap:12px;max-width:860px}
details{background:var(--elevated);border:1px solid var(--line);border-radius:18px;padding:0 24px;transition:border-color .2s}details[open]{border-color:var(--forest)}
summary{cursor:pointer;list-style:none;padding:22px 0;font-weight:700;font-size:1.08rem;display:flex;justify-content:space-between;gap:20px;min-height:44px}summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:1.6rem;line-height:1;transition:transform .3s var(--ease)}details[open] summary::after{transform:rotate(45deg)}
details p{margin:0 0 22px;color:var(--muted)}
.cta{background:var(--citron);color:#17231F;border-radius:36px;padding:clamp(36px,6vw,80px);display:grid;gap:22px;justify-items:start;position:relative;overflow:hidden}
.cta h2{max-width:14ch}.cta .btn{border-color:#17231F}.cta .btn.primary{background:#17231F;color:var(--citron);border-color:#17231F}
footer{padding:48px 0 64px;color:var(--muted);font-size:14px;border-top:1px solid var(--line)}footer .wrap{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}
@media(max-width:980px){.hero .wrap,.split{grid-template-columns:1fr}.stack{min-height:410px}.grid3,.included{grid-template-columns:1fr}.mods{grid-template-columns:repeat(2,1fr)}.chain{grid-template-columns:1fr 1fr;row-gap:36px}.nav-links{display:none;position:absolute;top:72px;left:0;right:0;flex-direction:column;background:var(--canvas);padding:20px 24px;border-bottom:1px solid var(--line);gap:18px;margin:0}.nav-links.open{display:flex}.menu-btn{display:grid}}
@media(max-width:560px){.wrap{width:calc(100% - 32px)}.mods{grid-template-columns:1fr}.chain{grid-template-columns:1fr}.tools .btn{display:none}.stack-card .state{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal,.stack-card,.bubble{opacity:1;transform:none}.trace::after{transform:scaleY(1)}.chain .step::before{transform:scaleX(1)}}

.nowrap{white-space:nowrap}.tint{background:var(--panel)}.gap-h{margin:16px 0 18px}.more{margin-top:14px}.grid3.four{grid-template-columns:repeat(4,1fr)}.cta .eyebrow.dark,.cta .lead.dark{color:#17231F}
@media(max-width:980px){.grid3.four{grid-template-columns:1fr 1fr}}@media(max-width:560px){.grid3.four{grid-template-columns:1fr}}

@media(max-width:1180px){.nav-links{display:none;position:absolute;top:72px;left:0;right:0;flex-direction:column;background:var(--canvas);padding:20px 24px;border-bottom:1px solid var(--line);gap:18px;margin:0}.nav-links.open{display:flex}.menu-btn{display:grid}.tools{margin-left:auto}}

[hidden]{display:none!important}

.hero h1{font-size:clamp(2.3rem,5.4vw,4.4rem)}.move{display:block;margin-top:.12em;color:var(--forest)}[data-theme=dark] .move{color:var(--citron)}
.grid3.six{grid-template-columns:repeat(3,1fr)}.grid3.six .card h3{font-size:1.3rem}.grid3.six .num{width:auto;min-width:44px;padding:0 12px;letter-spacing:.04em}
.demo{display:grid;grid-template-columns:260px 1fr;gap:clamp(20px,4vw,56px);align-items:start}
.demo-rail{position:relative;display:grid;gap:8px}
.demo-rail button{position:relative;z-index:1;display:flex;align-items:center;gap:14px;min-height:56px;padding:0 18px;border-radius:16px;border:1.5px solid var(--line);background:var(--elevated);font-weight:700;text-align:left;cursor:pointer;transition:all .35s var(--ease)}
.demo-rail button span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line);font-size:13px;transition:all .35s var(--ease)}
.demo-rail button[aria-selected=true]{border-color:var(--forest);transform:translateX(6px)}.demo-rail button[aria-selected=true] span{background:var(--citron);border-color:var(--citron);color:#17231F}
.demo-rail button.past span{background:var(--forest);border-color:var(--forest);color:var(--on-forest)}[data-theme=dark] .demo-rail button.past span{color:#17231F}
.demo-stage{background:var(--elevated);border:1px solid var(--line);border-radius:28px;padding:clamp(24px,4vw,44px);box-shadow:var(--shadow);min-height:340px;display:grid;align-content:space-between;gap:24px}
.demo-card{display:grid;gap:12px;animation:cardIn .55s var(--ease)}@keyframes cardIn{from{opacity:0;transform:translateY(22px) scale(.98)}to{opacity:1;transform:none}}
.demo-card h3{font-size:clamp(1.8rem,3.4vw,2.6rem);letter-spacing:-.035em}.demo-card p{margin:0;color:var(--muted);font-size:1.1rem;max-width:46ch}
.chip-state{width:max-content;background:var(--citron);color:#17231F;font-weight:700;font-size:13px;padding:6px 14px;border-radius:999px}
.demo-controls{display:flex;gap:12px;flex-wrap:wrap}.demo-note{margin:0;font-size:13px;color:var(--muted)}
@media(max-width:980px){.demo{grid-template-columns:1fr}.demo-rail{grid-template-columns:repeat(4,1fr)}.demo-rail button{flex-direction:column;justify-content:center;min-height:72px;padding:8px;font-size:13px;gap:6px;text-align:center}.demo-rail button[aria-selected=true]{transform:none}.grid3.six{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.grid3.six{grid-template-columns:1fr}.demo-rail button{font-size:11px}}
@media(prefers-reduced-motion:reduce){.demo-card{animation:none}}

/* Mostly light: the "included" band becomes a mineral panel; dark is reserved for small accents. */
.forest{background:var(--panel);color:var(--ink)}.forest .eyebrow{color:var(--forest)}[data-theme=dark] .forest .eyebrow{color:var(--citron)}.forest .lead{color:var(--muted)}
.forest .card{background:var(--elevated);border-color:var(--line);color:var(--ink)}.forest .card p{color:var(--muted)}
.tint{background:var(--canvas)}#chaine{background:var(--canvas)}#demo.tint{background:var(--panel)}#faq.tint{background:var(--panel)}
[data-theme=dark] .forest{background:var(--forest-deep)}[data-theme=dark] .forest .card{background:#0E3A2D;border-color:#1D5A47}
.offer{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;border:1px solid var(--line);border-radius:28px;padding:clamp(24px,4vw,48px);background:var(--elevated)}.offer h2{font-size:clamp(30px,3.4vw,44px);margin-top:16px}.offer ul{padding-left:20px;color:var(--muted);font-size:15px}.offer li{margin:10px 0}.offer aside{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px;border-left:1px solid var(--line);padding-left:36px}.offer aside p{margin:0;color:var(--muted)}.offer .btn{white-space:normal;text-align:center}footer nav{display:flex;flex-wrap:wrap;gap:16px}footer a{min-height:32px;display:inline-flex;align-items:center}.nav-links a:focus-visible{outline-offset:6px}@media(max-width:760px){.offer{grid-template-columns:1fr;gap:24px}.offer aside{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.stack-card{padding:16px;gap:12px}.stack-card b{font-size:15px}.stack-card span.sub{font-size:13px}.btn{white-space:normal;text-align:center}.hero .actions .btn{flex-grow:1}.nav .wrap{gap:16px}}
