/* AIBMA — Heure Zéro · design system */
:root{
  --bg:#0B0C0B;--surface-1:#141614;--surface-2:#1C1F1C;--surface-3:#232723;
  --line:#2A2E2A;--line-strong:#5F645F;
  --text:#F3F1EA;--text-2:#A6A59C;--text-3:#86857D;
  --signal:#5CFF9D;--signal-hover:#8AFFBA;--signal-press:#3EE584;--signal-glow:rgba(92,255,157,.18);
  --ember:#FF7A45;--warning:#FFC24D;--error:#FF6161;--focus:#5CFF9D;
  --cream-bg:#F3F1EA;--cream-surface:#E8E4D8;--cream-text:#0B0C0B;--cream-text-2:#4A4A44;--cream-text-3:#5E5D56;
  --signal-deep:#0A7A44;--ember-deep:#C2410C;

  --f-display:"Bricolage Grotesque","Arial Narrow",Arial,sans-serif;
  --f-text:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;

  --fs-mega:clamp(3.5rem,1.2rem + 10.2vw,12.5rem);
  --fs-h1:clamp(2.75rem,1.4rem + 6vw,8rem);
  --fs-h2:clamp(2.25rem,1.5rem + 3.4vw,5rem);
  --fs-h3:clamp(1.5rem,1.2rem + 1.3vw,2.25rem);
  --fs-h4:clamp(1.125rem,1.05rem + .45vw,1.375rem);
  --fs-lead:clamp(1.125rem,1.05rem + .35vw,1.375rem);
  --fs-body:clamp(1rem,.97rem + .15vw,1.125rem);
  --fs-small:.875rem;
  --fs-mono-l:clamp(2rem,1.2rem + 3.5vw,4.5rem);
  --fs-mono:.8125rem;

  --r-xs:4px;--r-sm:8px;--r-md:14px;--r-lg:20px;--r-xl:28px;--r-pill:999px;
  --section-y:clamp(96px,6rem + 6vw,192px);
  --margin:20px;--gutter:16px;
  --shadow-card:0 1px 0 rgba(243,241,234,.04) inset,0 24px 48px -24px rgba(0,0,0,.6);
  --glow-signal:0 0 0 1px rgba(92,255,157,.35),0 8px 32px -4px rgba(92,255,157,.35);
  --ease-out:cubic-bezier(.16,1,.3,1);--ease-io:cubic-bezier(.65,0,.35,1);--ease-snap:cubic-bezier(.34,1.56,.64,1);
  color-scheme:dark;
}
@media (min-width:600px){:root{--margin:32px;--gutter:20px}}
@media (min-width:900px){:root{--margin:40px;--gutter:24px}}
@media (min-width:1200px){:root{--margin:64px}}

.theme-cream{--bg:var(--cream-bg);--surface-1:var(--cream-surface);--surface-2:#DDD8C9;--line:#D3CEBF;--line-strong:#8A887F;
  --text:var(--cream-text);--text-2:var(--cream-text-2);--text-3:var(--cream-text-3);--signal:var(--signal-deep);--ember:var(--ember-deep);color-scheme:light}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--f-text);font-size:var(--fs-body);line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:200;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
::selection{background:var(--signal);color:var(--bg)}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--f-display);margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.container{width:min(100% - 2*var(--margin),1520px);margin-inline:auto}
.section{padding-block:var(--section-y);position:relative}
.skip{position:absolute;inset-inline-start:16px;top:-60px;z-index:300;background:var(--signal);color:var(--bg);padding:10px 16px;border-radius:var(--r-sm);font-weight:600}
.skip:focus{top:16px}

/* Pixel Signal */
.px{display:inline-block;width:.42em;height:.42em;background:var(--signal);margin-inline-start:.12em;animation:blink 1.06s steps(1) infinite;vertical-align:baseline}
@keyframes blink{50%{opacity:0}}
.hl{color:var(--signal)}

/* Logo */
.logo{font-family:var(--f-display);font-weight:800;font-variation-settings:"wdth" 75,"opsz" 96;letter-spacing:-.04em;font-size:1.6rem;line-height:1;
  color:var(--text);display:inline-flex;align-items:baseline;text-decoration:none}
.logo .px{width:.42em;height:.42em}

/* Labels */
.label{font-family:var(--f-mono);font-size:var(--fs-mono);font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);display:inline-block;margin-bottom:16px}
.label b{color:var(--signal);font-weight:500}
.h2{font-size:var(--fs-h2);font-weight:700;font-variation-settings:"wdth" 100,"opsz" 96;line-height:.98;letter-spacing:-.035em;
  transition:font-variation-settings .9s var(--ease-out)}
.is-in .h2,.h2.is-in{font-variation-settings:"wdth" 82,"opsz" 96}
.lead{font-size:var(--fs-lead);line-height:1.5;color:var(--text-2);max-width:34rem;margin-top:24px}
.sec-head{display:grid;gap:8px;margin-bottom:clamp(32px,2rem + 2vw,64px)}
@media (min-width:900px){.sec-head--split{grid-template-columns:1.2fr 1fr;align-items:end;gap:48px}.sec-head--split .lead{margin-top:0}}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:56px;padding-inline:28px;border-radius:var(--r-md);
  font-family:var(--f-text);font-weight:600;font-size:1rem;letter-spacing:.01em;text-decoration:none;border:1px solid transparent;
  transition:background .2s,box-shadow .36s var(--ease-out),border-color .2s,transform .6s var(--ease-snap);white-space:nowrap}
.btn svg{width:20px;height:20px;flex:none}
.btn--signal{background:var(--signal);color:#0B0C0B}
.btn--signal:hover{background:var(--signal-hover);box-shadow:var(--glow-signal)}
.btn--signal:active{background:var(--signal-press);transform:scale(.98)}
.btn--ghost{background:transparent;border-color:var(--line-strong);color:var(--text)}
.btn--ghost:hover{background:var(--surface-2);border-color:var(--text-2)}
.btn--sm{height:44px;padding-inline:18px;font-size:.9375rem;border-radius:var(--r-sm)}
.btn--xl{height:72px;padding-inline:36px;font-size:1.125rem}
@media (max-width:599px){.btn{height:52px}}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;color:var(--text);
  background:linear-gradient(var(--signal),var(--signal)) 0 100%/0 1px no-repeat;padding-bottom:2px;transition:background-size .3s var(--ease-out)}
.link-arrow:hover{background-size:100% 1px}
.link-arrow .arr{transition:transform .36s var(--ease-out)}
.link-arrow:hover .arr{transform:translateX(4px)}
[dir=rtl] .arr{transform:scaleX(-1)}

/* Badge dispo */
.badge{display:inline-flex;align-items:center;gap:10px;padding:8px 14px;border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--line);
  font-family:var(--f-mono);font-size:var(--fs-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}
.badge__dot{width:8px;height:8px;background:var(--signal);position:relative;flex:none}
.badge__dot::after{content:"";position:absolute;inset:0;animation:pulse 2s var(--ease-out) infinite}
.badge.is-off .badge__dot{background:var(--text-3)}
.badge.is-off .badge__dot::after{animation:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(92,255,157,.6)}100%{box-shadow:0 0 0 8px rgba(92,255,157,0)}}

/* Header */
.header{position:fixed;inset-inline:0;top:0;z-index:100;transition:transform .36s var(--ease-io),background .3s,border-color .3s;border-bottom:1px solid transparent}
.header.is-scrolled{background:rgba(20,22,20,.72);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-color:var(--line)}
@supports not (backdrop-filter:blur(1px)){.header.is-scrolled{background:rgba(20,22,20,.96)}}
.header.is-hidden{transform:translateY(-100%)}
.header__in{display:flex;align-items:center;justify-content:space-between;height:72px;gap:24px}
.nav{display:none;gap:28px}
.nav a{text-decoration:none;color:var(--text-2);font-weight:500;font-size:.9375rem;transition:color .2s}
.nav a:hover{color:var(--text)}
.header__cta{display:flex;align-items:center;gap:10px}
.header__brief{display:none}
.burger{width:44px;height:44px;border:1px solid var(--line-strong);background:transparent;border-radius:var(--r-sm);display:grid;place-items:center}
.burger span,.burger span::before,.burger span::after{display:block;width:18px;height:1.5px;background:var(--text);position:relative;transition:transform .3s var(--ease-out)}
.burger span::before,.burger span::after{content:"";position:absolute;left:0}
.burger span::before{top:-6px}.burger span::after{top:6px}
.wa-compact{width:44px;padding:0}
.wa-compact .t{display:none}
@media (min-width:900px){
  .nav{display:flex}.burger{display:none}.header__brief{display:inline-flex}
  .wa-compact{width:auto;padding-inline:18px}.wa-compact .t{display:inline}
}
@media (max-width:599px){.header__in{height:64px}}

/* Menu mobile */
.menu{position:fixed;inset:0;z-index:150;background:var(--bg);display:flex;flex-direction:column;padding:96px var(--margin) calc(32px + env(safe-area-inset-bottom));
  opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.menu.is-open{opacity:1;visibility:visible}
.menu a.m-link{font-family:var(--f-display);font-size:var(--fs-h2);font-weight:700;letter-spacing:-.03em;text-decoration:none;padding-block:6px;border-bottom:1px solid var(--line)}
.menu__close{position:absolute;top:12px;inset-inline-end:var(--margin);width:44px;height:44px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:transparent;font-size:22px}
.menu__foot{margin-top:auto;display:grid;gap:12px}

/* Grille visible */
.gridlines{position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:repeating-linear-gradient(90deg,rgba(42,46,42,.4) 0 1px,transparent 1px calc((100% - 2*var(--margin)) / 12));
  background-position:var(--margin) 0;background-size:calc(100% - 2*var(--margin)) 100%;background-repeat:no-repeat;
  -webkit-mask-image:linear-gradient(180deg,#000 50%,transparent);mask-image:linear-gradient(180deg,#000 50%,transparent)}

/* HERO */
.hero{position:relative;padding-top:clamp(112px,9vw + 64px,176px);padding-bottom:clamp(64px,6vw,120px);min-height:100svh}
@media (orientation:landscape) and (max-height:500px){.hero{min-height:0}}
.hero__grid{position:relative;z-index:1;display:grid;gap:56px;align-items:center}
@media (min-width:1100px){.hero__grid{grid-template-columns:1fr 1fr;gap:64px}}
.hero h1{font-size:var(--fs-h1);font-weight:700;font-variation-settings:"wdth" 80,"opsz" 96;line-height:.92;letter-spacing:-.04em}
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.06em}
.hero h1 .line>span{display:inline-block}
.js.anim .hero h1 .line>span{animation:lineUp .7s var(--ease-out) both}
.js.anim .hero h1 .line:nth-child(2)>span{animation-delay:.08s}
@keyframes lineUp{from{transform:translateY(100%)}to{transform:none}}
.hero .lead{margin-top:28px}
.hero__ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.hero__meta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:28px}
.hero__note{font-size:var(--fs-small);color:var(--text-3)}
@media (max-width:599px){.hero__ctas .btn{width:100%}}

/* Moniteur */
.monitor-wrap{position:relative}
.monitor-wrap::before{content:"";position:absolute;left:50%;bottom:-40px;width:600px;height:600px;max-width:120%;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(92,255,157,.10),transparent 62%);pointer-events:none;z-index:-1}
.monitor{border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface-1);overflow:hidden;box-shadow:var(--shadow-card)}
.monitor__bar{display:flex;align-items:center;gap:12px;height:44px;padding-inline:16px;border-bottom:1px solid var(--line);background:#101210}
.monitor__dots{display:flex;gap:6px}.monitor__dots i{width:10px;height:10px;border-radius:50%;background:var(--surface-3)}
.monitor__url{flex:1;max-width:320px;margin-inline:auto;height:26px;border-radius:var(--r-sm);background:var(--surface-2);display:flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--f-mono);font-size:12px;color:var(--text-3)}
.monitor__url i{width:7px;height:7px;background:var(--signal)}
.monitor__screen{position:relative;aspect-ratio:16/10;overflow:hidden;background:#141210}
.monitor__screen>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:3}
/* mock site (riad) composé en CSS */
.mock{position:absolute;inset:0;display:grid;grid-template-rows:auto 1fr;font-family:var(--f-text);color:#F3EBDD}
.mock__nav{display:flex;justify-content:space-between;align-items:center;padding:4% 5% 0;font-size:clamp(7px,.75vw,11px);letter-spacing:.14em;text-transform:uppercase;position:relative;z-index:2}
.mock__nav b{font-family:var(--f-display);font-size:1.5em;letter-spacing:-.02em;text-transform:none}
.mock__nav span{display:flex;gap:1.6em;opacity:.8}
.mock__hero{position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:0 5% 6%;z-index:2}
.mock__hero h4{margin:0;font-family:var(--f-display);font-weight:700;font-variation-settings:"wdth" 78;font-size:clamp(28px,5.2vw,78px);line-height:.88;letter-spacing:-.04em;color:#F6EEDF}
.mock__hero p{margin-top:.6em;font-size:clamp(8px,.85vw,13px);opacity:.85;max-width:26em}
.mock__btn{margin-top:1.2em;align-self:flex-start;background:#F3EBDD;color:#2A1A12;font-size:clamp(8px,.8vw,12px);font-weight:600;padding:.8em 1.4em;border-radius:99px}
.mock__bg{position:absolute;inset:0;z-index:1;
  background:
   radial-gradient(60% 50% at 70% 30%,rgba(255,196,120,.35),transparent 70%),
   linear-gradient(180deg,rgba(20,14,10,.1),rgba(20,14,10,.75) 85%),
   linear-gradient(90deg,#3B2418 0 18%,#5A3A26 18% 19%,#7A4B2F 19% 81%,#5A3A26 81% 82%,#3B2418 82%);}
.mock__arch{position:absolute;z-index:1;left:30%;right:30%;top:16%;bottom:0;border-radius:999px 999px 0 0;
  background:linear-gradient(180deg,#E9B97A,#B9774A 55%,#1F3B33 56%,#173029);opacity:.9}
.mock__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.mock__shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(20,14,10,.35),transparent 30%,transparent 45%,rgba(20,14,10,.8))}
.mock__pool{position:absolute;z-index:1;left:22%;right:22%;bottom:0;height:16%;background:linear-gradient(180deg,#1E4A42,#0F2A25);border-top:2px solid #C9A574}
/* build-in */
.build{position:absolute;inset:0;z-index:4;pointer-events:none;display:grid;grid-template-columns:repeat(12,1fr);padding:0 5%}
.build i{border-inline-start:1px solid rgba(92,255,157,.25);transform-origin:top;transform:scaleY(0)}
.wire{position:absolute;z-index:5;background:var(--surface-3);border-radius:4px;clip-path:inset(0 100% 0 0);opacity:0}
.wire.w1{left:5%;top:7%;width:18%;height:5%}.wire.w2{right:5%;top:7%;width:30%;height:5%}
.wire.w3{left:5%;bottom:30%;width:55%;height:20%}.wire.w4{left:5%;bottom:20%;width:35%;height:5%}.wire.w5{left:5%;bottom:8%;width:16%;height:7%;border-radius:99px}
.js.anim .monitor.play .build i{animation:colDraw .5s var(--ease-out) forwards}
.js.anim .monitor.play .wire{animation:wireIn .4s var(--ease-out) .55s forwards,wireOut .5s var(--ease-io) 1.3s forwards}
.js.anim .monitor.play .build{animation:fadeOut .5s 1.4s forwards}
.js.anim .monitor.play .mock{animation:mockIn .5s var(--ease-io) .95s both}
@keyframes colDraw{to{transform:scaleY(1)}}
@keyframes wireIn{to{clip-path:inset(0);opacity:1}}
@keyframes wireOut{to{opacity:0}}
@keyframes fadeOut{to{opacity:0}}
@keyframes mockIn{from{opacity:0;filter:saturate(0)}to{opacity:1;filter:none}}
.stamp{position:absolute;z-index:6;inset-inline-end:12px;bottom:12px;font-family:var(--f-mono);font-size:12px;background:rgba(11,12,11,.8);border:1px solid var(--line);
  padding:6px 10px;border-radius:var(--r-xs);color:var(--signal);display:flex;align-items:center;gap:8px}
.chrono-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:20px;flex-wrap:wrap}
.chrono{font-family:var(--f-mono);font-weight:500;font-size:var(--fs-mono-l);letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums;color:var(--text);direction:ltr;unicode-bidi:isolate}
.chrono.is-live{color:var(--signal)}
.chrono-cap{font-family:var(--f-mono);font-size:var(--fs-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);max-width:18ch;text-align:end}

/* Marquee */
.marquee{border-block:1px solid var(--line);overflow:hidden;padding-block:18px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee__track{display:flex;width:max-content;animation:marq 60s linear infinite}
.marquee:hover .marquee__track,.marquee:focus-within .marquee__track{animation-play-state:paused}
.marquee__item{font-family:var(--f-mono);font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);padding-inline:20px;display:flex;align-items:center;gap:20px;white-space:nowrap}
.marquee__item::after{content:"";width:7px;height:7px;background:var(--signal)}
@keyframes marq{to{transform:translateX(-50%)}}
[dir=rtl] .marquee__track{animation-direction:reverse}

/* Reveal */
.js [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-stagger]>*{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.js [data-stagger].is-in>*{opacity:1;transform:none}
.js [data-stagger].is-in>*:nth-child(2){transition-delay:.06s}.js [data-stagger].is-in>*:nth-child(3){transition-delay:.12s}
.js [data-stagger].is-in>*:nth-child(4){transition-delay:.18s}.js [data-stagger].is-in>*:nth-child(5){transition-delay:.24s}
.js [data-stagger].is-in>*:nth-child(6){transition-delay:.3s}

/* Promesse / chiffres de principe */
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
@media (min-width:900px){.facts{grid-template-columns:repeat(4,1fr)}}
.fact{background:var(--bg);padding:clamp(20px,1rem + 1.5vw,40px)}
.fact b{display:block;font-family:var(--f-mono);font-weight:500;font-size:var(--fs-mono-l);line-height:1;letter-spacing:-.02em;color:var(--text)}
.fact b em{font-style:normal;color:var(--signal)}
.fact span{display:block;margin-top:12px;font-size:var(--fs-small);color:var(--text-2);max-width:22ch}

/* Timeline */
.tl{position:relative}
.tl__grid{display:grid;gap:40px}
.tl__counter{font-family:var(--f-mono);font-weight:500;font-size:var(--fs-mega);line-height:.85;letter-spacing:-.05em;font-variant-numeric:tabular-nums;color:var(--text);direction:ltr}
.tl__counter small{font-size:.3em;color:var(--text-3);letter-spacing:0;margin-inline-start:.2em}
.tl__bar{height:2px;background:var(--line);margin-top:28px;position:relative;overflow:hidden}
.tl__bar i{position:absolute;inset:0;background:var(--signal);transform-origin:left;transform:scaleX(var(--p,0))}
.tl__steps{display:grid;gap:16px;list-style:none;margin:0;padding:0}
.step{position:relative;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-1);padding:clamp(20px,1rem + 1.5vw,36px);
  display:grid;gap:18px;transition:border-color .36s var(--ease-io),opacity .36s var(--ease-io),background .36s}
.step__h{display:flex;align-items:center;gap:12px;font-family:var(--f-mono);font-size:var(--fs-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.step__h b{color:var(--text);font-weight:500;padding:4px 8px;border:1px solid var(--line-strong);border-radius:var(--r-xs)}
.step h3{font-size:var(--fs-h3);font-weight:600;letter-spacing:-.02em;line-height:1.1}
.step p{color:var(--text-2)}
.step__get{font-size:var(--fs-small);color:var(--text-2);border-top:1px solid var(--line);padding-top:14px}
.step__get b{color:var(--text);font-weight:600}
.step .ph{aspect-ratio:4/3}
@media (min-width:900px){
  .tl__grid{grid-template-columns:5fr 7fr;gap:64px;align-items:start}
  .tl__left{position:sticky;top:120px}
  .step{grid-template-columns:1fr 1fr;align-items:center;opacity:.45}
  .step.is-active{opacity:1;border-color:var(--signal);background:var(--surface-2)}
  .step.is-active .step__h b{color:var(--ember);border-color:var(--ember)}
}

/* Image placeholders */
.ph{position:relative;overflow:hidden;border-radius:var(--r-md);background:
  radial-gradient(80% 60% at 70% 20%,rgba(255,170,100,.16),transparent 70%),
  radial-gradient(60% 60% at 20% 90%,rgba(92,255,157,.06),transparent 70%),
  linear-gradient(160deg,#1C1F1C,#121412);border:1px solid var(--line)}
.ph::before{content:attr(data-label);position:absolute;inset-inline-start:14px;bottom:12px;font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}

/* Services bento */
.bento{display:grid;gap:var(--gutter)}
@media (min-width:700px){.bento{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.bento{grid-template-columns:repeat(4,1fr)}.card--wide{grid-column:span 2}}
.card{position:relative;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(22px,1rem + 1.2vw,36px);
  box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:14px;overflow:hidden;
  transition:transform .36s var(--ease-out),border-color .2s,background .2s}
.card::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(400px circle at var(--mx,50%) var(--my,50%),rgba(92,255,157,.07),transparent 60%)}
@media (hover:hover) and (pointer:fine){
  .card:hover{transform:translateY(-4px);border-color:var(--line-strong);background:var(--surface-2)}
  .card:hover::before{opacity:1}
}
.card__top{display:flex;justify-content:space-between;align-items:center}
.card__ico{width:44px;height:44px;border-radius:var(--r-sm);border:1px solid var(--line-strong);display:grid;place-items:center;color:var(--signal)}
.card__ico svg{width:22px;height:22px}
.card__tag{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
.card h3{font-size:var(--fs-h3);font-weight:600;letter-spacing:-.02em;line-height:1.05}
.card h3 small{display:block;font-family:var(--f-text);font-size:.875rem;font-weight:500;letter-spacing:0;color:var(--text-3);margin-top:6px}
.card p{color:var(--text-2);font-size:1rem}
.card ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-family:var(--f-mono);font-size:12.5px;color:var(--text-2)}
.card li::before{content:"▮ ";color:var(--signal);font-size:9px;vertical-align:2px}
.card .link-arrow{margin-top:auto;padding-top:6px;align-self:flex-start}
.card--feature{border-color:rgba(92,255,157,.35)}
.dash{margin-top:6px;border:1px solid var(--line);border-radius:var(--r-md);background:#0E100E;padding:14px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}
.dash__k{border:1px solid var(--line);border-radius:8px;padding:10px;font-family:var(--f-mono);font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em}
.dash__k b{display:block;font-size:20px;color:var(--text);letter-spacing:-.02em;margin-top:4px;font-weight:500}
.dash__k:first-child b{color:var(--signal)}
.dash__chart{grid-column:1/-1;height:72px;display:flex;align-items:flex-end;gap:5px;border-top:1px solid var(--line);padding-top:10px}
.dash__chart i{flex:1;background:var(--surface-3);border-radius:2px 2px 0 0}
.dash__chart i.on{background:var(--signal)}
.services-note{margin-top:28px;font-size:var(--fs-small);color:var(--text-3);font-family:var(--f-mono);letter-spacing:.04em}

/* Formules */
.plans{display:grid;gap:var(--gutter)}
@media (min-width:1000px){.plans{grid-template-columns:repeat(3,1fr)}}
.plan{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(24px,1rem + 2vw,44px);display:flex;flex-direction:column;gap:18px}
.plan--hi{border-color:var(--signal);background:var(--surface-2);box-shadow:0 0 120px -40px rgba(92,255,157,.25)}
.plan__n{font-family:var(--f-mono);font-size:var(--fs-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.plan h3{font-size:clamp(2rem,1.4rem + 2vw,3rem);font-weight:700;font-variation-settings:"wdth" 85;letter-spacing:-.035em;line-height:1}
.plan__q{color:var(--text-2);font-size:var(--fs-lead);line-height:1.4}
.plan ul{list-style:none;margin:0;padding:18px 0 0;border-top:1px solid var(--line);display:grid;gap:10px}
.plan li{display:flex;gap:12px;font-size:1rem}
.plan li svg{flex:none;width:18px;height:18px;margin-top:4px;color:var(--signal)}
.plan__for{font-size:var(--fs-small);color:var(--text-3);margin-top:auto}
.plan__ctas{display:grid;gap:10px}
.plans-note{text-align:center;margin-top:32px;color:var(--text-2)}

/* Secteurs */
.sectors{display:flex;gap:var(--gutter);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;margin-inline:calc(-1*var(--margin));padding-inline:var(--margin);scrollbar-width:thin}
.sector{flex:0 0 84%;scroll-snap-align:start;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column}
@media (min-width:600px){.sector{flex-basis:46%}}
@media (min-width:1100px){.sectors{display:grid;grid-template-columns:repeat(4,1fr);overflow:visible;margin-inline:0;padding-inline:0}}
.sector .ph{border:0;border-radius:0;aspect-ratio:4/3}
.sector__sw{position:absolute;inset:0;z-index:0}
.phone{position:absolute;left:50%;top:12%;width:34%;aspect-ratio:9/19;transform:translateX(-50%) rotate(-6deg);border-radius:14px;background:#0B0C0B;border:3px solid #26292A;
  box-shadow:0 30px 50px -20px rgba(0,0,0,.7);overflow:hidden;z-index:0}
.phone::before{content:"";position:absolute;inset:6% 8% auto;height:42%;border-radius:8px;background:var(--c2,#333)}
.phone::after{content:"";position:absolute;left:8%;right:30%;top:54%;height:5%;border-radius:3px;background:rgba(255,255,255,.7);box-shadow:0 14px 0 -2px rgba(255,255,255,.3),0 34px 0 0 var(--c3,#5CFF9D)}
.sector__body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.sector__k{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);display:flex;justify-content:space-between}
.sector__k em{font-style:normal;border:1px solid var(--line-strong);padding:1px 6px;border-radius:var(--r-xs)}
.sector h3{font-size:1.5rem;font-weight:600;letter-spacing:-.02em}
.sector p{font-size:.9375rem;color:var(--text-2)}
.sector .link-arrow{margin-top:auto;font-size:.9375rem}

/* Pipeline (crème) */
.pipe{background:var(--bg);color:var(--text)}
.nodes{display:grid;gap:12px;list-style:none;padding:0;margin:0;position:relative}
@media (min-width:900px){.nodes{grid-template-columns:repeat(5,1fr);gap:16px}
  .nodes::before{content:"";position:absolute;left:5%;right:5%;top:50%;height:1px;background:var(--line-strong);z-index:0}}
.node{position:relative;z-index:1;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;display:grid;gap:8px}
.node span{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
.node b{font-family:var(--f-display);font-size:1.375rem;font-weight:600;letter-spacing:-.02em;line-height:1.1;display:flex;align-items:baseline}
.node--ai{border-color:var(--signal)}
.node--live{background:var(--text);color:var(--bg)}
.node--live span{color:#A6A59C}
.cols3{display:grid;gap:var(--gutter);margin-top:48px}
@media (min-width:900px){.cols3{grid-template-columns:repeat(3,1fr)}}
.col3{border-top:1px solid var(--line-strong);padding-top:20px}
.col3 h3{font-size:var(--fs-h4);font-family:var(--f-text);font-weight:600;margin-bottom:12px}
.col3 ul{margin:0;padding:0;list-style:none;display:grid;gap:8px;color:var(--text-2)}
.col3 li::before{content:"— ";color:var(--signal)}
.team-ph{margin-top:48px;aspect-ratio:21/9;border-radius:0}
@media (max-width:699px){.team-ph{aspect-ratio:4/5}}
.theme-cream .ph{background:linear-gradient(160deg,#E2DDCF,#D3CDBC);border-color:var(--line)}
.pipe__cta{margin-top:40px}
.theme-cream .btn--ghost{border-color:var(--line-strong)}

/* Comparatif */
.cmp-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg)}
.cmp{width:100%;min-width:760px;border-collapse:collapse;font-size:.9375rem}
.cmp th,.cmp td{padding:16px 18px;text-align:start;border-bottom:1px solid var(--line);vertical-align:top}
.cmp thead th{font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);font-weight:500}
.cmp tbody th{font-weight:500;color:var(--text-2);position:sticky;left:0;background:var(--bg);z-index:1}
.cmp .us{background:var(--surface-2);color:var(--text);box-shadow:inset 1px 0 0 var(--signal),inset -1px 0 0 var(--signal)}
.cmp thead .us{color:var(--signal);box-shadow:inset 1px 0 0 var(--signal),inset -1px 0 0 var(--signal),inset 0 1px 0 var(--signal)}
.cmp tr:last-child td{border-bottom:0}
.cmp tr:last-child .us{box-shadow:inset 1px 0 0 var(--signal),inset -1px 0 0 var(--signal),inset 0 -1px 0 var(--signal)}
.ok,.no,.mid{display:inline-flex;gap:8px;align-items:baseline}
.ok::before{content:"✓";color:var(--signal);font-weight:700}
.no::before{content:"✕";color:var(--text-3)}
.mid::before{content:"~";color:var(--warning);font-weight:700}
.slow{color:var(--ember)}

/* Garantie */
.guarantee{position:relative;border:1px solid var(--signal);border-radius:var(--r-xl);padding:clamp(28px,1rem + 4vw,80px);overflow:hidden;background:var(--surface-1)}
.zellige{position:absolute;inset:0;opacity:.5;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%232A2E2A' stroke-width='1'%3E%3Crect x='28' y='28' width='40' height='40'/%3E%3Crect x='28' y='28' width='40' height='40' transform='rotate(45 48 48)'/%3E%3C/g%3E%3C/svg%3E")}
.guarantee__wm{position:absolute;inset-inline-end:-2%;bottom:-6%;font-family:var(--f-mono);font-size:var(--fs-mega);color:var(--line);line-height:1;pointer-events:none;letter-spacing:-.05em;direction:ltr}
.guarantee>*{position:relative}
.g-list{display:grid;gap:var(--gutter);margin-top:40px}
@media (min-width:900px){.g-list{grid-template-columns:repeat(3,1fr)}}
.g-item{background:rgba(11,12,11,.75);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;display:grid;gap:8px}
.g-item b{font-family:var(--f-display);font-size:1.375rem;font-weight:600;letter-spacing:-.02em}
.g-item p{color:var(--text-2);font-size:1rem}

/* FAQ */
.faq{display:grid;gap:40px}
@media (min-width:900px){.faq{grid-template-columns:4fr 8fr;gap:64px}.faq__aside{position:sticky;top:120px;align-self:start}}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;padding:22px 0;font-size:var(--fs-h4);font-weight:600;line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:28px;height:28px;border:1px solid var(--line-strong);border-radius:50%;display:grid;place-items:center;font-style:normal;transition:transform .36s var(--ease-io),border-color .2s}
.faq details[open] summary i{transform:rotate(45deg);border-color:var(--signal);color:var(--signal)}
.faq details p{padding:0 0 24px;color:var(--text-2);max-width:42rem}
@supports (interpolate-size:allow-keywords){
  :root{interpolate-size:allow-keywords}
  .faq details::details-content{height:0;overflow:hidden;transition:height .36s var(--ease-io),content-visibility .36s allow-discrete}
  .faq details[open]::details-content{height:auto}
}

/* CTA final + brief */
.final{position:relative;overflow:hidden}
.final::before{content:"";position:absolute;left:20%;top:10%;width:700px;height:700px;background:radial-gradient(circle,rgba(92,255,157,.09),transparent 62%);pointer-events:none}
.final h2{font-size:clamp(3rem,1.2rem + 7vw,9rem);font-weight:800;font-variation-settings:"wdth" 75,"opsz" 96;line-height:.88;letter-spacing:-.045em;position:relative}
.final h2 .mono{font-family:var(--f-mono);font-weight:500;color:var(--signal);letter-spacing:-.06em}
.final__grid{display:grid;gap:40px;margin-top:56px;position:relative}
@media (min-width:1000px){.final__grid{grid-template-columns:5fr 7fr;gap:64px;align-items:start}}
.final__wa{display:grid;gap:18px;align-content:start}
.final__wa .btn{width:100%}
.final__wa p{color:var(--text-2)}
.brief{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(20px,1rem + 2vw,40px)}
.brief__prog{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:24px}
.brief__prog i{height:3px;background:var(--line);border-radius:2px;transition:background .36s}
.brief__prog i.on{background:var(--signal)}
.brief__step{display:none;border:0;padding:0;margin:0;min-width:0}
.brief__step.is-cur{display:grid;gap:22px;animation:stepIn .36s var(--ease-out)}
@keyframes stepIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
[dir=rtl] .brief__step.is-cur{animation-name:stepInR}
@keyframes stepInR{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:none}}
.brief legend{font-family:var(--f-mono);font-size:var(--fs-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);padding:0;margin-bottom:4px}
.q{display:grid;gap:10px}
.q>span,.q>label.qt{font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.chip span{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid var(--line-strong);border-radius:var(--r-sm);font-size:.9375rem;
  transition:border-color .2s,background .2s,color .2s;background:var(--bg)}
.chip input:checked+span{border-color:var(--signal);background:rgba(92,255,157,.08);color:var(--text)}
.chip input:checked+span::before{content:"✓";color:var(--signal);font-weight:700}
.chip input:focus-visible+span{outline:2px solid var(--focus);outline-offset:3px}
.field{display:grid;gap:8px}
.field label{font-weight:600;font-size:.9375rem}
.field label small{font-weight:400;color:var(--text-3)}
.field input,.field textarea{width:100%;font:inherit;font-size:16px;color:var(--text);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:13px 14px;min-height:50px}
.field textarea{min-height:88px;resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--signal);outline:2px solid var(--focus);outline-offset:2px}
.field input::placeholder,.field textarea::placeholder{color:var(--text-3)}
.row2{display:grid;gap:16px}
@media (min-width:600px){.row2{grid-template-columns:1fr 1fr}}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:.9375rem;color:var(--text-2)}
.consent input{width:20px;height:20px;margin-top:3px;accent-color:#5CFF9D;flex:none}
.brief__nav{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;margin-top:6px}
.brief__nav .btn{flex:1 1 200px}
.err{color:var(--error);font-size:.9375rem;display:none;gap:8px;align-items:center}
.err.on{display:flex}
.err::before{content:"!";width:18px;height:18px;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}
.brief__done{display:none;text-align:center;padding:32px 8px;gap:16px}
.brief__done.on{display:grid}
.brief__done b{font-family:var(--f-display);font-size:var(--fs-h3);letter-spacing:-.02em;line-height:1.1}
.brief__done p{color:var(--text-2)}

/* Footer */
.footer{border-top:1px solid var(--line);padding-top:72px;padding-bottom:calc(40px + 72px);position:relative;overflow:hidden}
@media (min-width:900px){.footer{padding-bottom:40px}}
.footer .zellige{opacity:.35}
.footer__cols{display:grid;gap:32px;grid-template-columns:repeat(2,1fr);position:relative}
@media (min-width:900px){.footer__cols{grid-template-columns:2fr repeat(3,1fr)}}
.footer h4{margin:0 0 14px;font-family:var(--f-mono);font-size:var(--fs-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);font-weight:500}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.footer a{text-decoration:none;color:var(--text-2)}
.footer a:hover{color:var(--text)}
.footer__brand p{color:var(--text-2);max-width:30ch;margin-top:16px}
.footer__mega{font-family:var(--f-display);font-weight:800;font-variation-settings:"wdth" 75,"opsz" 96;font-size:clamp(5rem,2rem + 18vw,22rem);letter-spacing:-.05em;line-height:.8;
  color:var(--surface-2);margin-top:64px;display:flex;align-items:baseline;transition:color .6s var(--ease-out);user-select:none;position:relative}
.footer__mega:hover{color:var(--text)}
.footer__mega .px{width:.3em;height:.3em}
.footer__base{display:flex;flex-wrap:wrap;gap:16px 28px;justify-content:space-between;align-items:center;margin-top:32px;padding-top:24px;border-top:1px solid var(--line);
  font-size:var(--fs-small);color:var(--text-3);position:relative}
.footer__base button{background:none;border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:6px 14px;font-family:var(--f-mono);font-size:12px;color:var(--text-2)}

/* WhatsApp flottant + barre mobile */
.wa-float{position:fixed;inset-inline-end:24px;bottom:24px;z-index:90;display:none;align-items:center;gap:10px;height:56px;padding-inline:22px;border-radius:var(--r-pill);
  background:var(--signal);color:#0B0C0B;font-weight:600;text-decoration:none;box-shadow:var(--glow-signal);
  opacity:0;transform:translateY(16px) scale(.9);pointer-events:none;transition:opacity .6s var(--ease-snap),transform .6s var(--ease-snap)}
.wa-float svg{width:22px;height:22px}
.wa-float.on{opacity:1;transform:none;pointer-events:auto}
.wa-float.nudge{animation:nudge .4s var(--ease-snap)}
@keyframes nudge{50%{transform:scale(1.06)}}
.mbar{position:fixed;inset-inline:0;bottom:0;z-index:90;display:flex;gap:8px;padding:10px var(--margin) calc(10px + env(safe-area-inset-bottom));
  background:rgba(20,22,20,.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);
  transform:translateY(110%);transition:transform .36s var(--ease-io)}
.mbar.on{transform:none}
.mbar .btn{height:48px}
.mbar .btn--signal{flex:3}.mbar .btn--ghost{flex:2}
@media (min-width:900px){.wa-float{display:inline-flex}.mbar{display:none}}

/* Curseur pixel */
.cursor-px{position:fixed;left:0;top:0;width:10px;height:10px;background:var(--signal);pointer-events:none;z-index:250;mix-blend-mode:difference;
  transition:width .2s var(--ease-snap),height .2s var(--ease-snap),background .2s,border-color .2s;display:none;transform:translate3d(-100px,-100px,0)}
.cursor-px.big{width:44px;height:44px;background:transparent;border:1px solid var(--signal);mix-blend-mode:normal}
@media (hover:hover) and (pointer:fine){.js.anim .cursor-px{display:block}}

/* Motion off */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .js [data-reveal],.js [data-stagger]>*{opacity:1!important;transform:none!important}
  .marquee__track{animation:none!important}
  .cursor-px{display:none!important}
  .px{animation:none}
}
html[data-motion=off] *,html[data-motion=off] *::before,html[data-motion=off] *::after{animation:none!important;transition:none!important}
html[data-motion=off] [data-reveal],html[data-motion=off] [data-stagger]>*{opacity:1!important;transform:none!important}
html[data-motion=off] .cursor-px{display:none!important}
