/* Art direction: infrastructure critique → sobre, précis, fiable.
   Palette: neutres ardoise et ivoire, accent bleu pétrole.
   Typography: Cabinet Grotesk + Satoshi — technique sans froideur.
   Density: équilibrée, éditoriale. */
@import url('https://api.fontshare.com/v2/css?f[]=cabinet-grotesk@500,600,700,800&f[]=satoshi@400,500,600,700&display=swap');

:root,[data-theme="light"]{
  --bg:#f3f5f3;--surface:#fafbf9;--surface-2:#fff;--offset:#e9eeeb;--dynamic:#dfe6e2;
  --text:#16201d;--muted:#50605b;--faint:#6b7974;--inverse:#f7fbf9;
  --primary:#006b67;--primary-hover:#005652;--primary-active:#003f3c;--primary-soft:#d9ebe7;
  --border:color-mix(in oklch,var(--text) 14%,transparent);--divider:color-mix(in oklch,var(--text) 10%,transparent);
  --header:color-mix(in oklch,var(--bg) 90%,transparent);--shadow:0 18px 54px rgba(20,43,37,.10);
  --font-display:'Cabinet Grotesk','Helvetica Neue',sans-serif;--font-body:'Satoshi','Helvetica Neue',sans-serif;
  --text-xs:clamp(.75rem,.7rem + .25vw,.875rem);--text-sm:clamp(.875rem,.8rem + .35vw,1rem);
  --text-base:clamp(1rem,.96rem + .2vw,1.125rem);--text-lg:clamp(1.125rem,1rem + .7vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);--text-2xl:clamp(2.1rem,1.35rem + 2.8vw,4rem);
  --text-hero:clamp(3.2rem,1.2rem + 7vw,7.4rem);
  --s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.25rem;--s6:1.5rem;--s8:2rem;
  --s10:2.5rem;--s12:3rem;--s16:4rem;--s20:5rem;--s24:6rem;--s32:8rem;
  --r-sm:.4rem;--r-md:.7rem;--r-lg:1.1rem;--r-xl:1.6rem;--r-full:999px;
  --ease:180ms cubic-bezier(.16,1,.3,1);--wide:1240px;--default:980px;--narrow:720px
}
[data-theme="dark"]{
  --bg:#111714;--surface:#171f1b;--surface-2:#1d2722;--offset:#222e28;--dynamic:#2a3931;
  --text:#e4ece8;--muted:#a9b8b1;--faint:#8a9b93;--inverse:#10201b;
  --primary:#68c8be;--primary-hover:#83d8cf;--primary-active:#a4e5de;--primary-soft:#203d37;
  --border:color-mix(in oklch,var(--text) 16%,transparent);--divider:color-mix(in oklch,var(--text) 11%,transparent);
  --header:color-mix(in oklch,var(--bg) 88%,transparent);--shadow:0 20px 60px rgba(0,0,0,.32)
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:none;text-size-adjust:none;scroll-behavior:smooth;scroll-padding-top:6rem}
body{min-height:100dvh;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.65;-webkit-font-smoothing:antialiased;transition:background var(--ease),color var(--ease)}
img,svg{display:block;max-width:100%;height:auto}a{color:inherit}button{font:inherit;color:inherit}h1,h2,h3{font-family:var(--font-display);line-height:1.02;text-wrap:balance}p,li{max-width:72ch;text-wrap:pretty}.container{width:min(calc(100% - 2rem),var(--wide));margin-inline:auto}.container--narrow{width:min(calc(100% - 2rem),var(--narrow));margin-inline:auto}
.skip-link{position:fixed;left:var(--s4);top:var(--s4);z-index:1000;padding:var(--s3) var(--s4);background:var(--primary);color:var(--inverse);border-radius:var(--r-sm);transform:translateY(-160%)}.skip-link:focus{transform:none}
:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:var(--r-sm)}::selection{background:var(--primary-soft)}
.site-header{position:sticky;top:0;z-index:100;background:var(--header);border-bottom:1px solid var(--divider);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.header-inner{height:4.75rem;display:flex;align-items:center;justify-content:space-between;gap:var(--s6)}.brand{display:inline-flex;align-items:center;gap:var(--s3);text-decoration:none;font-weight:700;letter-spacing:-.02em}.brand svg{width:2.3rem;color:var(--primary)}.brand span span{color:var(--muted);font-weight:500}
.site-nav{display:flex;align-items:center;gap:var(--s6)}.site-nav a{font-size:var(--text-sm);font-weight:600;text-decoration:none;color:var(--muted)}.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--text)}
.header-actions{display:flex;align-items:center;gap:var(--s2)}.icon-button,.menu-button{display:grid;place-items:center;width:2.75rem;height:2.75rem;border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);cursor:pointer}.icon-button:hover,.menu-button:hover{background:var(--offset)}.menu-button{display:none}.icon-button svg,.menu-button svg{width:1.2rem}
.button{min-height:2.9rem;display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);padding:var(--s3) var(--s5);border:1px solid transparent;border-radius:var(--r-full);font-size:var(--text-sm);font-weight:700;text-decoration:none;transition:background var(--ease),color var(--ease),border var(--ease),transform var(--ease)}.button:hover{transform:translateY(-2px)}.button--primary{background:var(--primary);color:var(--inverse)}.button--primary:hover{background:var(--primary-hover)}.button--secondary{background:var(--surface);border-color:var(--border)}.button--secondary:hover{background:var(--offset)}.button svg{width:1.1rem}
.hero{padding:var(--s8) 0 var(--s20)}.hero-shell{position:relative;min-height:min(770px,calc(100svh - 7rem));overflow:hidden;border-radius:var(--r-xl);background:#101917;box-shadow:var(--shadow);isolation:isolate}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.hero-shell::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,15,13,.90) 0%,rgba(6,15,13,.72) 40%,rgba(6,15,13,.18) 75%),linear-gradient(0deg,rgba(6,15,13,.72),transparent 52%);z-index:1}.hero-content{position:relative;z-index:2;min-height:inherit;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:clamp(var(--s6),6vw,var(--s16));color:#f5faf8}.eyebrow{display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.13em}.eyebrow::before{content:"";width:1.7rem;height:1px;background:currentColor;opacity:.65}.hero h1{font-size:var(--text-hero);max-width:8.8ch;letter-spacing:-.065em;margin:var(--s4) 0 var(--s5)}.hero-lead{max-width:55ch;color:#d8e4df;font-size:var(--text-lg);line-height:1.45}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s8)}.hero .button--secondary{background:rgba(255,255,255,.09);color:#fff;border-color:rgba(255,255,255,.28);backdrop-filter:blur(8px)}.status-card{position:absolute;right:clamp(var(--s5),4vw,var(--s12));top:clamp(var(--s5),4vw,var(--s12));z-index:3;display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid rgba(255,255,255,.22);border-radius:var(--r-full);background:rgba(7,20,16,.62);color:#fff;font-size:var(--text-sm);font-weight:600;backdrop-filter:blur(12px)}.status-dot{width:.6rem;height:.6rem;border-radius:50%;background:#67d7a3;box-shadow:0 0 0 .3rem rgba(103,215,163,.15)}
.trust-strip{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--divider);margin-top:var(--s20)}.trust-item{padding:var(--s8);border-right:1px solid var(--divider)}.trust-item:last-child{border:0}.trust-value{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:-.04em}.trust-label{display:block;color:var(--muted);font-size:var(--text-sm);margin-top:var(--s1)}
.section{padding-block:clamp(var(--s16),9vw,var(--s32));content-visibility:auto;contain-intrinsic-size:900px}.section--tight{padding-block:clamp(var(--s12),6vw,var(--s20))}.section--surface{background:var(--surface)}.section-head{display:grid;grid-template-columns:.65fr 1.35fr;gap:var(--s8);align-items:start;margin-bottom:clamp(var(--s10),5vw,var(--s20))}.section-kicker{color:var(--primary);font-size:var(--text-xs);font-weight:800;text-transform:uppercase;letter-spacing:.13em}.section-title{font-size:var(--text-2xl);letter-spacing:-.045em}.section-intro{color:var(--muted);font-size:var(--text-lg);margin-top:var(--s5);max-width:54ch}
.editorial-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--s5)}.feature{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-2);min-height:25rem}.feature--large{grid-row:span 2;min-height:52rem}.feature-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.feature::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,14,12,.86),rgba(5,14,12,.04) 72%)}.feature-content{position:absolute;inset:auto var(--s6) var(--s6);z-index:2;color:#fff}.feature-number{display:block;font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:#c9d9d4;margin-bottom:var(--s3)}.feature h3{font-size:var(--text-xl);margin-bottom:var(--s3)}.feature p{font-size:var(--text-sm);color:#d9e4e0}.feature--text{padding:var(--s8);display:flex;flex-direction:column;justify-content:space-between;background:var(--surface-2)}.feature--text::after{display:none}.feature--text .feature-content{position:static;color:var(--text)}.feature--text .feature-number{color:var(--primary)}.feature--text p{color:var(--muted)}.tech-list{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s8)}.chip{display:inline-flex;align-items:center;min-height:2.25rem;padding:var(--s2) var(--s3);border:1px solid var(--border);border-radius:var(--r-full);font-size:var(--text-xs);font-weight:700;background:var(--bg)}
.timeline{max-width:var(--default);margin-left:auto}.timeline-item{display:grid;grid-template-columns:12rem 1fr;gap:var(--s8);padding:var(--s10) 0;border-top:1px solid var(--divider)}.timeline-date{color:var(--primary);font-size:var(--text-sm);font-weight:700}.timeline-item h3{font-size:var(--text-xl);letter-spacing:-.025em}.timeline-company{color:var(--muted);font-weight:600;margin-top:var(--s1)}.timeline-item p:last-child{color:var(--muted);margin-top:var(--s4)}
.stack-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(var(--s8),6vw,var(--s20));align-items:center}.stack-image{overflow:hidden;border-radius:var(--r-lg);box-shadow:var(--shadow);aspect-ratio:4/3}.stack-image img{width:100%;height:100%;object-fit:cover}.stack-groups{display:grid;gap:var(--s8)}.stack-group{padding-bottom:var(--s8);border-bottom:1px solid var(--divider)}.stack-group:last-child{border:0}.stack-group h3{font-size:var(--text-lg);margin-bottom:var(--s3)}.stack-group p{color:var(--muted)}
.credentials{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s5)}.credential-main,.credential-list{padding:clamp(var(--s6),4vw,var(--s10));border:1px solid var(--border);background:var(--surface-2);border-radius:var(--r-lg)}.credential-main h3{font-size:var(--text-xl);margin:var(--s6) 0 var(--s3)}.credential-main p{color:var(--muted)}.credential-list article{padding-block:var(--s5);border-bottom:1px solid var(--divider)}.credential-list article:first-child{padding-top:0}.credential-list article:last-child{border:0;padding-bottom:0}.credential-list h3{font-size:var(--text-lg)}.credential-list p{color:var(--muted);font-size:var(--text-sm);margin-top:var(--s1)}
.contact-card{position:relative;overflow:hidden;padding:clamp(var(--s8),7vw,var(--s20));border-radius:var(--r-xl);background:var(--primary);color:var(--inverse)}.contact-card::before{content:"AR";position:absolute;right:-.04em;bottom:-.28em;font:800 clamp(10rem,28vw,28rem)/1 var(--font-display);opacity:.075;letter-spacing:-.1em}.contact-card>*{position:relative}.contact-card h2{font-size:var(--text-2xl);max-width:12ch;letter-spacing:-.045em}.contact-card p{margin:var(--s5) 0 var(--s8);max-width:53ch}.contact-card .button--secondary{background:var(--inverse);color:var(--primary);border-color:transparent}.contact-links{display:flex;gap:var(--s3);flex-wrap:wrap}
.site-footer{padding:var(--s12) 0 var(--s8);border-top:1px solid var(--divider)}.footer-top{display:grid;grid-template-columns:1fr auto;gap:var(--s8);align-items:start}.footer-brand{max-width:29rem}.footer-brand p{color:var(--muted);font-size:var(--text-sm);margin-top:var(--s4)}.footer-links{display:flex;gap:var(--s8);flex-wrap:wrap}.footer-links div{display:grid;gap:var(--s2)}.footer-links strong{font-size:var(--text-sm)}.footer-links a{color:var(--muted);font-size:var(--text-sm);text-decoration:none}.footer-links a:hover{color:var(--text)}.footer-bottom{display:flex;justify-content:space-between;gap:var(--s6);padding-top:var(--s8);margin-top:var(--s10);border-top:1px solid var(--divider);color:var(--muted);font-size:var(--text-xs)}
.page-hero{padding:clamp(var(--s16),9vw,var(--s32)) 0 var(--s16);border-bottom:1px solid var(--divider)}.page-hero .eyebrow{color:var(--primary)}.page-hero h1{font-size:var(--text-2xl);letter-spacing:-.045em;margin-top:var(--s5);max-width:14ch}.page-hero p{color:var(--muted);font-size:var(--text-lg);margin-top:var(--s5)}.legal-content{padding-block:var(--s16)}.legal-content article{padding:var(--s8) 0;border-bottom:1px solid var(--divider)}.legal-content h2{font-size:var(--text-xl);margin-bottom:var(--s4)}.legal-content h3{font-size:var(--text-lg);margin:var(--s6) 0 var(--s2)}.legal-content p,.legal-content li{color:var(--muted)}.legal-content ul{padding-left:var(--s6);display:grid;gap:var(--s2)}.legal-content a{color:var(--primary)}.legal-note{padding:var(--s5);border-radius:var(--r-md);background:var(--primary-soft);color:var(--text)!important;margin-top:var(--s5)}
.not-found{min-height:70svh;display:grid;place-items:center;text-align:center;padding:var(--s16) var(--s4)}.not-found-code{font:800 clamp(8rem,28vw,22rem)/.75 var(--font-display);letter-spacing:-.09em;color:var(--offset)}.not-found h1{font-size:var(--text-2xl);margin-top:-1rem}.not-found p{color:var(--muted);margin:var(--s5) auto var(--s8)}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:900px){.site-nav{position:fixed;inset:4.75rem 0 auto;background:var(--surface);border-bottom:1px solid var(--divider);padding:var(--s5) var(--s4);display:grid;gap:0;transform:translateY(-140%);opacity:0;pointer-events:none;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .2s}.site-nav.is-open{transform:none;opacity:1;pointer-events:auto}.site-nav a{min-height:3.25rem;display:flex;align-items:center;border-bottom:1px solid var(--divider)}.site-nav a:last-child{border:0}.menu-button{display:grid}.header-contact{display:none}.section-head,.stack-layout,.credentials{grid-template-columns:1fr}.section-head{gap:var(--s4)}.editorial-grid{grid-template-columns:1fr 1fr}.feature--large{grid-row:auto;grid-column:1/-1;min-height:35rem}.timeline{max-width:none}.trust-strip{grid-template-columns:1fr 1fr}.trust-item:nth-child(2){border-right:0}.trust-item:nth-child(-n+2){border-bottom:1px solid var(--divider)}}
@media(max-width:640px){.container{width:min(calc(100% - 1.25rem),var(--wide))}.header-inner{height:4.25rem}.brand span span{display:none}.site-nav{inset:4.25rem 0 auto}.hero{padding-top:var(--s3);padding-bottom:var(--s12)}.hero-shell{min-height:calc(100svh - 5rem);border-radius:var(--r-lg)}.hero-shell::after{background:linear-gradient(0deg,rgba(6,15,13,.93) 0%,rgba(6,15,13,.66) 62%,rgba(6,15,13,.18) 100%)}.hero-content{padding:var(--s6);justify-content:flex-end}.hero h1{font-size:clamp(3rem,15vw,4.7rem)}.hero-lead{font-size:var(--text-base)}.hero-actions{width:100%}.hero-actions .button{flex:1}.status-card{right:var(--s4);top:var(--s4);font-size:var(--text-xs)}.trust-strip{margin-top:var(--s12)}.trust-item{padding:var(--s5)}.editorial-grid{grid-template-columns:1fr}.feature,.feature--large{min-height:28rem;grid-column:auto}.feature--text{min-height:auto}.timeline-item{grid-template-columns:1fr;gap:var(--s2);padding:var(--s8) 0}.footer-top{grid-template-columns:1fr}.footer-links{display:grid;grid-template-columns:1fr 1fr}.footer-bottom{flex-direction:column}.contact-links{display:grid}.contact-links .button{width:100%}.button{min-height:3rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media print{.site-header,.hero-actions,.status-card,.contact-card,.site-footer,.menu-button{display:none!important}body{background:#fff;color:#111;font-size:10pt}.hero{padding:0}.hero-shell{min-height:auto;box-shadow:none;background:none;color:#111}.hero-image,.hero-shell::after{display:none}.hero-content{color:#111;padding:0;min-height:auto}.hero h1{font-size:36pt}.hero-lead{color:#333}.section{padding:1.2cm 0}.feature-image{display:none}.feature,.feature--large{min-height:auto}.feature::after{display:none}.feature-content{position:static;color:#111;padding:1rem}.feature p,.feature--text p{color:#333}.reveal{opacity:1;transform:none}.trust-strip{margin-top:1cm}}
