:root{
  --forest:#0B3D2E;
  --forest-2:#0E4A38;
  --terracotta:#C2410C;
  --cream:#F5F1E8;
  --cream-2:#EDE7D7;
  --surface:#FFFFFF;
  --ink:#1A1A1A;
  --ink-2:#3A3A38;
  --ink-3:#6B6B66;
  --rule:#E4DFCF;
  --rule-dark:rgba(245,241,232,.18);
  --near-black:#111210;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Inter',system-ui,sans-serif;
  font-size:16px;
  line-height:1.6;
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

.serif{font-family:'Instrument Serif',Georgia,serif;font-weight:400;letter-spacing:-0.005em}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace}
.eyebrow{
  font-family:'Inter',sans-serif;
  font-size:11px;
  font-weight:500;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--terracotta);
}

/* ============ DESKTOP ============ */
.d a{color:inherit;text-decoration:none}
.d .container{max-width:1280px;margin:0 auto;padding:0 64px}

.d .nav{
  position:sticky;top:0;z-index:50;
  background:var(--cream);
  border-bottom:1px solid var(--rule);
}
.d .nav-inner{
  max-width:1280px;margin:0 auto;padding:18px 64px;
  display:flex;align-items:center;justify-content:space-between;
}
.d .brand{display:flex;align-items:center;gap:10px}
.d .brand-mark{
  width:22px;height:22px;border-radius:999px;
  background:var(--forest);position:relative;
}
.d .brand-mark::after{
  content:"";position:absolute;inset:6px;border-radius:999px;
  background:var(--cream);
}
.d .brand-mark::before{
  content:"";position:absolute;left:10px;top:10px;width:2px;height:2px;border-radius:50%;
  background:var(--terracotta);z-index:2;
}
.d .brand-name{font-family:'Instrument Serif',serif;font-size:22px}
.d .brand-name sup{font-size:11px;letter-spacing:.05em;margin-left:1px;color:var(--terracotta)}

.d .nav-links{display:flex;gap:32px;font-size:14px;color:var(--ink-2)}
.d .nav-links a:hover{color:var(--forest)}
.d .nav-right{display:flex;align-items:center;gap:20px}
.d .lang{font-size:12px;color:var(--ink-3);letter-spacing:.04em}
.d .lang b{color:var(--ink)}
.d .lang a{color:var(--ink-3)}
.d .lang a:hover{color:var(--ink)}
.d .cta{
  background:var(--terracotta);color:var(--cream);
  padding:9px 16px;font-size:13px;font-weight:500;
  border:0;cursor:pointer;border-radius:2px;
  font-family:inherit;
}
.d .cta.outline{
  background:transparent;color:var(--ink);
  border:1px solid var(--ink);
}

.d .hero{padding:80px 0 96px;position:relative}
.d .hero-grid{display:grid;grid-template-columns:55% 45%;gap:48px;align-items:center}
.d .hero h1{
  font-family:'Instrument Serif',serif;
  font-size:68px;line-height:1.05;letter-spacing:-0.015em;
  margin:22px 0 24px;font-weight:400;
  max-width:620px;
}
.d .hero p.lede{
  font-size:17px;line-height:1.65;color:var(--ink-2);
  max-width:540px;margin:0 0 36px;
}
.d .hero-ctas{display:flex;gap:12px}
.d .hero-meta{
  margin-top:56px;display:flex;gap:40px;
  padding-top:28px;border-top:1px solid var(--rule);max-width:560px;
}
.d .hero-meta .m{font-size:12px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase}
.d .hero-meta .v{font-family:'Instrument Serif',serif;font-size:22px;margin-top:4px;color:var(--ink)}

.d .diagram-wrap{
  position:relative;aspect-ratio:1/1;
  background-image:radial-gradient(rgba(11,61,46,.12) 1px, transparent 1px);
  background-size:14px 14px;
  border:1px solid var(--rule);
  padding:8px;
}
.d .diagram-wrap::before{
  content:"FIG.01  —  VALUE CHAIN TOPOLOGY";
  position:absolute;top:14px;left:16px;
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;
  color:var(--ink-3);background:var(--cream);padding:2px 6px;
}
html[lang="fr"] .d .diagram-wrap::before{
  content:"FIG.01  —  TOPOLOGIE DE LA CHAÎNE DE VALEUR";
}

.d section{padding:120px 0}
.d .section-head{text-align:center;margin-bottom:72px}
.d .section-head h2{
  font-family:'Instrument Serif',serif;
  font-size:52px;line-height:1.1;letter-spacing:-0.01em;
  font-weight:400;margin:14px 0 18px;
}
.d .section-head p{
  font-size:16px;color:var(--ink-2);max-width:560px;margin:0 auto;
}
.d .section-num{
  font-family:'JetBrains Mono',monospace;font-size:11px;
  letter-spacing:.14em;color:var(--terracotta);text-transform:uppercase;
}

.d .how{background:var(--surface);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.d .cards-5{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.d .card{
  background:var(--cream);
  border:1px solid var(--rule);
  padding:28px 24px 32px;
  min-height:280px;
  display:flex;flex-direction:column;
}
.d .card .icon{width:28px;height:28px;color:var(--terracotta);margin-bottom:24px}
.d .card h3{
  font-family:'Instrument Serif',serif;font-weight:400;
  font-size:26px;line-height:1.15;margin:0 0 12px;
}
.d .card p{font-size:14px;line-height:1.6;color:var(--ink-2);margin:0}
.d .card .tag{
  margin-top:auto;padding-top:20px;
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;
  color:var(--ink-3);text-transform:uppercase;
}

.d .gov{background:var(--forest);color:var(--cream)}
.d .gov .section-head h2{color:var(--cream)}
.d .gov .section-head p{color:rgba(245,241,232,.75)}
.d .gov .section-num{color:var(--terracotta)}
.d .gov-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule-dark);border:1px solid var(--rule-dark)}
.d .gov-item{background:var(--forest);padding:44px 44px 48px;display:flex;gap:28px}
.d .gov-item .n{
  font-family:'Instrument Serif',serif;font-size:32px;color:var(--terracotta);
  line-height:1;min-width:56px;
}
.d .gov-item h4{
  font-family:'Instrument Serif',serif;font-weight:400;
  font-size:26px;line-height:1.2;margin:0 0 12px;color:var(--cream);
}
.d .gov-item p{margin:0;font-size:15px;line-height:1.6;color:rgba(245,241,232,.75)}

.d .interop .section-head h2{margin-bottom:8px}
.d .interop .sub{
  font-family:'Instrument Serif',serif;font-size:24px;color:var(--ink-2);font-style:italic;
  display:block;margin-bottom:20px;
}
.d .interop-para{max-width:640px;margin:0 auto;font-size:16px;color:var(--ink-2);text-align:center}

.d .interop-diagram{
  margin:72px auto 0;max-width:1080px;
  background:var(--surface);border:1px solid var(--rule);
  padding:48px 56px;
}
.d .interop-points{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  max-width:880px;margin:48px auto 0;
}
.d .interop-points .pt{
  display:flex;align-items:center;gap:12px;
  font-family:'Instrument Serif',serif;font-size:22px;
  padding:18px 22px;border-top:1px solid var(--rule);
}
.d .interop-points .pt::before{
  content:"";width:8px;height:8px;background:var(--terracotta);border-radius:50%;flex:none;
}

.d .deliver{background:var(--surface);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.d .cards-2x2{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--rule)}
.d .cards-2x2 .card{
  background:var(--cream);border:0;
  border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);
  padding:44px 44px 48px;min-height:220px;
}
.d .cards-2x2 .card:nth-child(2n){border-right:0}
.d .cards-2x2 .card:nth-last-child(-n+2){border-bottom:0}
.d .cards-2x2 .card h3{font-size:30px}
.d .cards-2x2 .card p{font-size:15px}
.d .cards-2x2 .card .row{display:flex;align-items:flex-start;gap:18px;margin-bottom:18px}
.d .cards-2x2 .card .num{
  font-family:'JetBrains Mono',monospace;font-size:11px;
  color:var(--terracotta);letter-spacing:.14em;padding-top:6px;
}

.d .why{background:var(--cream)}
.d .why-grid{display:grid;grid-template-columns:40% 60%;gap:80px;align-items:start}
.d .why h2{
  font-family:'Instrument Serif',serif;font-size:54px;line-height:1.1;
  letter-spacing:-0.01em;font-weight:400;margin:14px 0 0;
}
.d .why h2 em{color:var(--terracotta);font-style:italic}
.d .why .block{border-top:1px solid var(--rule);padding:32px 0}
.d .why .block:first-child{border-top:0;padding-top:0}
.d .why .block h5{
  font-family:'Instrument Serif',serif;font-weight:400;
  font-size:24px;margin:0 0 10px;
}
.d .why .block p{margin:0;font-size:15.5px;line-height:1.65;color:var(--ink-2);max-width:560px}

.d .who{background:var(--surface)}
.d .who-row{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.d .who-row > div{
  padding:40px 32px 48px;border-right:1px solid var(--rule);min-height:220px;
  display:flex;flex-direction:column;
}
.d .who-row > div:last-child{border-right:0}
.d .who-row h4{
  font-family:'Instrument Serif',serif;font-weight:400;font-size:28px;
  margin:0 0 14px;
}
.d .who-row p{font-size:14.5px;color:var(--ink-2);margin:0}
.d .who-row .idx{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;
  color:var(--ink-3);margin-bottom:24px;
}

.d .contact{background:var(--forest);color:var(--cream);text-align:center;padding:140px 0}
.d .contact h2{
  font-family:'Instrument Serif',serif;font-size:72px;line-height:1;
  margin:0 0 24px;font-weight:400;letter-spacing:-0.015em;
}
.d .contact p{max-width:560px;margin:0 auto 40px;color:rgba(245,241,232,.8);font-size:17px}
.d .contact .cta{font-size:14px;padding:12px 20px}
.d .contact .email{display:block;margin-top:24px;font-size:13px;color:rgba(245,241,232,.7)}

.d .footer{background:var(--near-black);color:rgba(245,241,232,.7);padding:72px 0 32px}
.d .footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid rgba(245,241,232,.12)}
.d .footer .brand-name{color:var(--cream)}
.d .footer .tagline{
  font-family:'Instrument Serif',serif;font-size:22px;color:var(--cream);
  margin:20px 0 18px;max-width:380px;line-height:1.3;
}
.d .footer .about{font-size:13px;line-height:1.65;max-width:380px}
.d .footer h6{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;
  color:rgba(245,241,232,.5);text-transform:uppercase;font-weight:400;
  margin:0 0 18px;
}
.d .footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;font-size:13.5px}
.d .footer ul a:hover{color:var(--cream)}
.d .footer-bottom{
  padding-top:24px;display:flex;justify-content:space-between;
  font-size:12px;color:rgba(245,241,232,.5);
}
.d .footer-bottom a{color:rgba(245,241,232,.5)}
.d .footer-bottom a:hover{color:var(--cream)}

.reveal{opacity:0;transform:translateY(16px);transition:opacity .8s ease, transform .8s ease}
.reveal.in{opacity:1;transform:none}

/* ============ MOBILE ============ */
.m { font-size:15px; background:var(--cream); }
.m a{color:inherit;text-decoration:none}
.m .container{padding:0 22px}
.m .nav{
  position:sticky;top:0;z-index:50;background:var(--cream);
  border-bottom:1px solid var(--rule);
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 22px;
}
.m .brand{display:flex;align-items:center;gap:8px}
.m .brand-mark{width:18px;height:18px;border-radius:999px;background:var(--forest);position:relative}
.m .brand-mark::after{content:"";position:absolute;inset:5px;border-radius:999px;background:var(--cream)}
.m .brand-name{font-family:'Instrument Serif',serif;font-size:18px}
.m .brand-name sup{font-size:10px;color:var(--terracotta)}
.m .lang-m{font-size:12px;color:var(--ink-3);letter-spacing:.04em}
.m .lang-m b{color:var(--ink)}
.m .lang-m a{color:var(--ink-3);text-decoration:none}
.m .lang-m a:hover{color:var(--ink)}

.m section{padding:56px 0}
.m .section-head{margin-bottom:36px}
.m .section-head h2{font-family:'Instrument Serif',serif;font-weight:400;font-size:34px;line-height:1.1;margin:12px 0 14px}
.m .section-head p{font-size:14.5px;color:var(--ink-2);margin:0}
.m .section-num{
  font-family:'JetBrains Mono',monospace;font-size:11px;
  letter-spacing:.14em;color:var(--terracotta);text-transform:uppercase;
}

.m .hero{padding:36px 0 48px}
.m .hero h1{font-family:'Instrument Serif',serif;font-weight:400;font-size:40px;line-height:1.08;letter-spacing:-0.01em;margin:14px 0 16px}
.m .hero p.lede{font-size:15px;line-height:1.6;color:var(--ink-2);margin:0 0 24px}
.m .hero-ctas{display:flex;flex-direction:column;gap:10px}
.m .hero-ctas .cta{width:100%;padding:12px;font-size:13px;text-align:center;border:0;background:var(--terracotta);color:var(--cream);font-family:inherit;cursor:pointer;border-radius:2px}
.m .hero-ctas .cta.outline{background:transparent;color:var(--ink);border:1px solid var(--ink)}

.m .mob-diagram-wrap{
  margin-top:36px;aspect-ratio:1/1;border:1px solid var(--rule);
  background-image:radial-gradient(rgba(11,61,46,.12) 1px, transparent 1px);
  background-size:12px 12px;position:relative;
}
.m .mob-diagram-wrap::before{
  content:"FIG.01";position:absolute;top:10px;left:12px;
  font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.12em;
  color:var(--ink-3);background:var(--cream);padding:2px 5px;
}

.m .cards-stack{display:flex;flex-direction:column;gap:10px}
.m .card{background:var(--cream);border:1px solid var(--rule);padding:22px}
.m .card .icon{width:24px;height:24px;color:var(--terracotta);margin-bottom:14px}
.m .card h3{font-family:'Instrument Serif',serif;font-weight:400;font-size:22px;margin:0 0 8px}
.m .card p{font-size:13.5px;color:var(--ink-2);margin:0;line-height:1.6}
.m .card .tag{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;color:var(--ink-3);margin-top:14px;text-transform:uppercase}

.m .how{background:var(--surface)}

.m .gov{background:var(--forest);color:var(--cream)}
.m .gov .section-head h2{color:var(--cream)}
.m .gov .section-head p{color:rgba(245,241,232,.75)}
.m .gov-item{padding:22px 0;border-top:1px solid rgba(245,241,232,.18)}
.m .gov-item:first-of-type{border-top:1px solid rgba(245,241,232,.3)}
.m .gov-item .n{font-family:'Instrument Serif',serif;color:var(--terracotta);font-size:22px;margin-bottom:6px;display:block}
.m .gov-item h4{font-family:'Instrument Serif',serif;font-weight:400;font-size:22px;margin:0 0 8px;color:var(--cream)}
.m .gov-item p{margin:0;font-size:13.5px;color:rgba(245,241,232,.75)}

.m .interop .sub{font-family:'Instrument Serif',serif;font-style:italic;font-size:20px;color:var(--ink-2);display:block;margin:-8px 0 14px}
.m .interop-diagram{background:var(--surface);border:1px solid var(--rule);padding:20px;margin-top:24px}
.m .interop-points{margin-top:22px;display:flex;flex-direction:column;gap:0}
.m .interop-points .pt{border-top:1px solid var(--rule);padding:14px 0;font-family:'Instrument Serif',serif;font-size:18px;display:flex;gap:10px;align-items:center}
.m .interop-points .pt::before{content:"";width:6px;height:6px;background:var(--terracotta);border-radius:50%;flex:none}

.m .deliver{background:var(--surface)}
.m .why h2{font-family:'Instrument Serif',serif;font-weight:400;font-size:34px;line-height:1.1;margin:0 0 28px}
.m .why h2 em{color:var(--terracotta);font-style:italic}
.m .why .block{border-top:1px solid var(--rule);padding:22px 0}
.m .why .block h5{font-family:'Instrument Serif',serif;font-weight:400;font-size:20px;margin:0 0 8px}
.m .why .block p{margin:0;font-size:13.5px;color:var(--ink-2)}

.m .who{background:var(--surface)}
.m .who-row{display:flex;flex-direction:column}
.m .who-row > div{padding:22px 0;border-top:1px solid var(--rule)}
.m .who-row > div:first-child{border-top:0}
.m .who-row h4{font-family:'Instrument Serif',serif;font-weight:400;font-size:22px;margin:0 0 8px}
.m .who-row p{margin:0;font-size:13.5px;color:var(--ink-2)}
.m .who-row .idx{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;color:var(--ink-3);margin-bottom:10px;display:block}

.m .contact{background:var(--forest);color:var(--cream);text-align:center;padding:72px 22px}
.m .contact h2{font-family:'Instrument Serif',serif;font-weight:400;font-size:44px;margin:0 0 14px}
.m .contact p{color:rgba(245,241,232,.8);font-size:14.5px;margin:0 auto 24px}
.m .contact .cta{background:var(--terracotta);color:var(--cream);padding:12px 20px;border:0;font-size:13px;display:inline-block;font-family:inherit;cursor:pointer;border-radius:2px}
.m .contact .email{display:block;margin-top:18px;font-size:12px;color:rgba(245,241,232,.7)}

.m .footer{background:var(--near-black);color:rgba(245,241,232,.7);padding:48px 22px 24px}
.m .footer .brand-name{color:var(--cream)}
.m .footer .tagline{font-family:'Instrument Serif',serif;font-size:18px;color:var(--cream);margin:14px 0;line-height:1.3}
.m .footer .about{font-size:12.5px;line-height:1.6}
.m .footer h6{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;color:rgba(245,241,232,.5);text-transform:uppercase;font-weight:400;margin:28px 0 12px}
.m .footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;font-size:13px}
.m .footer-bottom{margin-top:28px;padding-top:20px;border-top:1px solid rgba(245,241,232,.12);font-size:11.5px;color:rgba(245,241,232,.5)}

/* ============ LEGAL PAGES ============ */
.legal{background:var(--cream);min-height:100vh}
.legal .legal-wrap{max-width:780px;margin:0 auto;padding:80px 32px 120px}
.legal .section-num{
  font-family:'JetBrains Mono',monospace;font-size:11px;
  letter-spacing:.14em;color:var(--terracotta);text-transform:uppercase;
}
.legal h1{
  font-family:'Instrument Serif',serif;font-weight:400;
  font-size:56px;line-height:1.05;letter-spacing:-0.015em;
  margin:14px 0 40px;
}
.legal h2{
  font-family:'Instrument Serif',serif;font-weight:400;
  font-size:28px;line-height:1.2;letter-spacing:-0.005em;
  margin:48px 0 12px;
}
.legal p{font-size:16px;line-height:1.7;color:var(--ink-2);margin:0 0 16px}
.legal ul{margin:0 0 20px;padding:0 0 0 22px;color:var(--ink-2);font-size:16px;line-height:1.7}
.legal ul li{margin-bottom:8px}
.legal a{color:var(--terracotta);text-decoration:underline;text-underline-offset:3px}
.legal a:hover{color:#9e350a}
.legal .updated{
  font-family:'JetBrains Mono',monospace;font-size:12px;
  color:var(--ink-3);letter-spacing:.08em;margin-bottom:56px;
}
.legal .back{
  display:inline-block;margin-top:56px;
  font-family:'JetBrains Mono',monospace;font-size:12px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
  text-decoration:none;
}
.legal .back:hover{color:var(--ink)}
@media (max-width:760px){
  .legal .legal-wrap{padding:56px 22px 80px}
  .legal h1{font-size:36px}
  .legal h2{font-size:22px}
  .legal p,.legal ul{font-size:15px}
}

/* ============ Responsive swap ============ */
.d{display:block}
.m{display:none}
@media (max-width:760px){
  .d{display:none}
  .m{display:block}
}
