/* ==========================================================================
   Intelligami Systems : shared stylesheet
   ========================================================================== */
:root{
  --navy:#0B1120;
  --navy-2:#0F1830;
  --navy-3:#141F3B;
  --blue:#0075FF;
  --blue-light:#4FA3FF;
  --blue-dim:rgba(0,117,255,.12);
  --ice:#C2CEDB;
  --white:#FFFFFF;
  --ui-gray:#F5F7FA;
  --ink:#0E1420;
  --muted:#5B6B7C;
  --muted-dark:#98A7BD;
  --line-dark:rgba(194,206,219,.14);
  --line-light:rgba(14,20,32,.09);
  --maxw:1180px;
  --ease:cubic-bezier(.16,.8,.24,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
h1,h2,h3{font-weight:800;line-height:1.1;margin:0;letter-spacing:-.02em;}
h1{font-size:clamp(38px,5vw,60px);}
h2{font-size:clamp(30px,4vw,44px);}
h3{font-size:19px;font-weight:700;letter-spacing:-.01em;}
p{line-height:1.65;margin:0;}
.lede{font-size:18px;color:var(--muted);max-width:620px;}
.lede-dark{font-size:18px;color:var(--muted-dark);max-width:620px;}
.kicker{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--blue);background:var(--blue-dim);padding:7px 16px;border-radius:100px;margin-bottom:20px;}
.kicker.on-dark{background:rgba(79,163,255,.14);}

.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 28px;font-size:14.5px;font-weight:600;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:transform .35s var(--ease), box-shadow .35s var(--ease), opacity .2s ease;will-change:transform;}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 8px 24px -8px rgba(0,117,255,.55);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 32px -8px rgba(0,117,255,.65);}
.btn-ghost-dark{border-color:rgba(255,255,255,.24);color:#fff;}
.btn-ghost-dark:hover{background:rgba(255,255,255,.06);transform:translateY(-2px);}
.btn-ghost-light{border-color:var(--line-light);color:var(--ink);}
.btn-ghost-light:hover{background:var(--ui-gray);transform:translateY(-2px);}
.btn-arrow svg{transition:transform .3s var(--ease);}
.btn-arrow:hover svg{transform:translateX(4px);}
.btn-block{width:100%;justify-content:center;}

#progress{position:fixed;top:0;left:0;height:3px;background:var(--blue);z-index:200;width:0%;transition:width .1s linear;}

header{position:sticky;top:0;z-index:100;background:rgba(11,17,32,.78);backdrop-filter:blur(14px) saturate(160%);border-bottom:1px solid var(--line-dark);}
.nav{display:flex;align-items:center;justify-content:space-between;height:78px;}
.logo{display:flex;flex-direction:column;line-height:1;}
.logo .word{font-size:20px;font-weight:800;}
.logo .word .a{color:var(--ice);}
.logo .word .b{color:var(--blue);}
.logo .sub{font-size:9px;letter-spacing:.34em;color:var(--muted-dark);margin-top:5px;font-weight:600;}
nav.links ul{display:flex;gap:30px;}
nav.links a{font-size:14px;font-weight:500;color:var(--muted-dark);transition:color .2s ease;position:relative;}
nav.links a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1.5px;background:var(--blue);transition:width .25s var(--ease);}
nav.links a:hover,nav.links a.active{color:#fff;}
nav.links a:hover::after,nav.links a.active::after{width:100%;}
.nav-actions{display:flex;align-items:center;gap:14px;}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;}
.burger span{display:block;width:22px;height:2px;background:#fff;margin:5px 0;transition:transform .25s ease, opacity .25s ease;}
.mobile-menu{display:none;flex-direction:column;padding:10px 32px 26px;gap:16px;border-top:1px solid var(--line-dark);}
.mobile-menu a{color:var(--muted-dark);font-size:15px;font-weight:500;}
header.open .mobile-menu{display:flex;}

section{padding:110px 0;position:relative;}
.light{background:var(--white);}
.tint{background:var(--ui-gray);}
.dark{background:var(--navy);color:#fff;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:58px;flex-wrap:wrap;}
.page-hero{padding:64px 0 20px;}
.page-hero h1{margin-top:8px;}
.crumb{font-size:13px;color:var(--muted-dark);margin-bottom:18px;}
.crumb a:hover{color:#fff;}

/* hero (home) */
.hero{background:var(--navy);color:#fff;position:relative;overflow:hidden;padding:110px 0 120px;min-height:88vh;display:flex;align-items:center;}
.glow{position:absolute;width:640px;height:640px;border-radius:50%;background:radial-gradient(circle,rgba(0,117,255,.30),transparent 70%);filter:blur(10px);pointer-events:none;top:-120px;right:-160px;transition:transform .6s ease-out;}
.hero .wrap{position:relative;z-index:3;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;width:100%;}
.hero h1{color:#fff;margin:6px 0 26px;}
.hero-actions{display:flex;gap:14px;margin-top:38px;flex-wrap:wrap;}
.trust-row{display:flex;gap:40px;margin-top:64px;flex-wrap:wrap;opacity:.85;}
.trust-row div{font-size:13px;color:var(--muted-dark);font-weight:500;}

/* ---- hero motif shared stage ---- */
.origami-stage{position:relative;height:420px;display:flex;align-items:center;justify-content:center;perspective:1400px;}
.dot{position:absolute;border-radius:50%;background:var(--blue-light);opacity:0;animation:float 7s ease-in-out infinite;}
@keyframes float{0%{opacity:0;transform:translateY(0);}12%{opacity:.85;}88%{opacity:.5;}100%{opacity:0;transform:translateY(-160px);}}

/* ---- index.html : rotating faceted core (continuous parent spin, fixed child facets = always renders) ---- */
.core-wrap{transform-style:preserve-3d;}
.origami-core{position:relative;width:230px;height:230px;transform-style:preserve-3d;animation:coreSpin 20s linear infinite;}
.core-face{position:absolute;inset:0;margin:auto;width:230px;height:230px;border:1px solid rgba(79,163,255,.5);background:linear-gradient(145deg,rgba(0,117,255,.18),rgba(79,163,255,.02));backface-visibility:visible;}
.core-face.f1{transform:rotateY(0deg) translateZ(115px);}
.core-face.f2{transform:rotateY(60deg) translateZ(115px);}
.core-face.f3{transform:rotateY(120deg) translateZ(115px);}
.core-face.f4{transform:rotateY(180deg) translateZ(115px);}
.core-face.f5{transform:rotateY(240deg) translateZ(115px);}
.core-face.f6{transform:rotateY(300deg) translateZ(115px);}
.core-face.top{transform:rotateX(90deg) translateZ(115px);}
.core-face.bottom{transform:rotateX(-90deg) translateZ(115px);}
@keyframes coreSpin{from{transform:rotateX(-16deg) rotateY(0deg);}to{transform:rotateX(-16deg) rotateY(360deg);}}
@media (prefers-reduced-motion: reduce){.origami-core{animation:none;transform:rotateX(-16deg) rotateY(28deg);}.dot{animation:none;opacity:0;}}

/* ---- approche.html : breathing fold (clip-path morph, same point count both keyframes = safe) ---- */
.fold-morph-wrap{display:flex;align-items:center;justify-content:center;height:260px;}
.fold-morph{width:210px;height:210px;background:linear-gradient(150deg,var(--blue),#0047B3);animation:morph 6s ease-in-out infinite;}
@keyframes morph{
  0%,100%{clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);}
  50%{clip-path:polygon(50% 16%,84% 34%,84% 66%,50% 84%,16% 66%,16% 34%);}
}

/* ---- systemes.html : node grid, staggered pulse per cell (opacity/scale only = safe) ---- */
.node-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;width:250px;margin:0 auto;}
.node-grid span{display:block;aspect-ratio:1;border-radius:5px;background:rgba(79,163,255,.14);border:1px solid rgba(79,163,255,.4);animation:nodePulse 3.2s ease-in-out infinite;}
@keyframes nodePulse{0%,100%{opacity:.3;transform:scale(.82);}50%{opacity:1;transform:scale(1);background:rgba(79,163,255,.55);}}

/* ---- equipe.html : orbiting nodes around a fixed core ---- */
.orbit-wrap{position:relative;width:220px;height:220px;margin:0 auto;}
.orbit-core{position:absolute;inset:0;margin:auto;width:56px;height:56px;border-radius:50%;background:linear-gradient(145deg,var(--blue),#0047B3);box-shadow:0 0 40px 6px rgba(0,117,255,.4);}
.orbit-ring{position:absolute;inset:0;margin:auto;border:1px dashed rgba(79,163,255,.35);border-radius:50%;animation:orbitSpin linear infinite;}
.orbit-ring.o1{width:150px;height:150px;animation-duration:14s;}
.orbit-ring.o2{width:220px;height:220px;animation-duration:22s;animation-direction:reverse;}
.orbit-ring .node{position:absolute;top:-5px;left:50%;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--blue-light);box-shadow:0 0 10px 2px rgba(79,163,255,.7);}
@keyframes orbitSpin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
@media (prefers-reduced-motion: reduce){.orbit-ring{animation:none;}}

/* ---- carrieres.html : ascending path draw-in ---- */
.path-wrap{display:flex;align-items:center;justify-content:center;height:260px;}
.path-line{fill:none;stroke:var(--blue-light);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:400;stroke-dashoffset:400;animation:drawPath 3.5s ease-out infinite;}
.path-dot{fill:var(--blue-light);}
@keyframes drawPath{0%{stroke-dashoffset:400;}60%,100%{stroke-dashoffset:0;}}
@media (prefers-reduced-motion: reduce){.path-line{stroke-dashoffset:0;animation:none;}}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease), transform .7s var(--ease);transition-delay:var(--d,0s);}
.reveal.in{opacity:1;transform:none;}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.pillar{background:#fff;border:1px solid var(--line-light);border-radius:14px;padding:30px 26px;transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s ease;}
.pillar:hover{transform:translateY(-6px);box-shadow:0 20px 40px -20px rgba(14,20,32,.18);border-color:transparent;}
.pillar .ic{width:38px;height:38px;color:var(--blue);margin-bottom:18px;}
.pillar h3{margin-bottom:9px;}
.pillar p{color:var(--muted);font-size:14.5px;}
.values-strip{margin-top:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-light);border-radius:14px;overflow:hidden;border:1px solid var(--line-light);}
.values-strip div{background:var(--navy);color:#fff;padding:28px 30px;}
.values-strip b{display:block;font-size:14.5px;margin-bottom:7px;}
.values-strip span{font-size:13.5px;color:var(--muted-dark);}

/* fold philosophy */
.fold-diagram{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:36px;flex-wrap:wrap;}
.fold-step{flex:1;min-width:150px;text-align:center;padding:26px 18px;border:1px solid var(--line-dark);border-radius:14px;background:var(--navy-2);}
.fold-step .n{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-light);font-weight:700;margin-bottom:10px;}
.fold-step p{font-size:14px;color:var(--muted-dark);}
.fold-arrow{color:var(--blue-light);font-size:22px;flex-shrink:0;}
.lineage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px;}
.lineage-card{border:1px solid var(--line-light);border-radius:14px;padding:26px;background:#fff;transition:transform .4s var(--ease), box-shadow .4s var(--ease);}
.lineage-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px -20px rgba(14,20,32,.18);}
.lineage-card h3{font-size:16px;margin-bottom:10px;}
.lineage-card p{font-size:14px;color:var(--muted);}

/* sovereignty */
.sov-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
.sov-copy p{color:var(--muted-dark);margin-top:18px;font-size:16.5px;}
.shield-wrap{position:relative;height:340px;display:flex;align-items:center;justify-content:center;}
.shield-ring{position:absolute;border:1px solid rgba(79,163,255,.35);border-radius:50%;animation:pulse 4.5s ease-in-out infinite;}
.shield-ring.r1{width:180px;height:180px;}
.shield-ring.r2{width:260px;height:260px;animation-delay:.6s;}
.shield-ring.r3{width:340px;height:340px;animation-delay:1.2s;}
@keyframes pulse{0%,100%{opacity:.25;transform:scale(1);}50%{opacity:.7;transform:scale(1.04);}}
.shield-core{position:relative;z-index:2;width:104px;height:104px;border-radius:26px;background:linear-gradient(145deg,var(--blue),#0047B3);display:flex;align-items:center;justify-content:center;box-shadow:0 20px 50px -12px rgba(0,117,255,.6);}
.shield-core svg{width:46px;height:46px;color:#fff;}
@media (prefers-reduced-motion: reduce){.shield-ring{animation:none;opacity:.4;}}

/* systems */
.domain-label{font-weight:700;font-size:16px;margin:50px 0 22px;padding-bottom:14px;border-bottom:1px solid var(--line-light);display:flex;justify-content:space-between;color:var(--ink);}
.domain-label span{font-weight:500;font-size:13px;color:var(--muted);}
.sys-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.sys-card{background:#fff;border:1px solid var(--line-light);border-radius:14px;padding:26px;min-height:150px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .4s var(--ease), box-shadow .4s var(--ease);}
.sys-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px -20px rgba(14,20,32,.18);}
.sys-card h3{font-size:16.5px;}
.sys-card .mods{margin-top:14px;font-size:13px;color:var(--muted);}
.sys-card .mods span{display:block;padding:3px 0;padding-left:14px;position:relative;}
.sys-card .mods span::before{content:"";position:absolute;left:0;top:9px;width:6px;height:1.5px;background:var(--blue);}

/* devis band */
.devis{background:linear-gradient(120deg,var(--navy) 0%,#0C1A38 100%);color:#fff;text-align:center;position:relative;overflow:hidden;}
.devis .wrap{position:relative;z-index:2;max-width:760px;}
.devis h2{color:#fff;}
.devis p{margin:18px auto 34px;}
.devis-orb{position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(0,117,255,.25),transparent 70%);top:-200px;left:50%;transform:translateX(-50%);}

/* team */
.team-grid{display:grid;gap:26px;}
.team-grid-2{grid-template-columns:repeat(2,1fr);max-width:760px;margin:0 auto;}
.team-grid-4{grid-template-columns:repeat(4,1fr);margin-top:26px;}
.dept-label{font-weight:700;font-size:14px;color:var(--muted);margin:64px 0 4px;text-transform:uppercase;letter-spacing:.06em;text-align:center;}
.team-card{text-align:left;}
.team-photo{width:100%;aspect-ratio:1/1;border-radius:16px;overflow:hidden;background:linear-gradient(145deg,var(--navy-2),var(--navy));position:relative;margin-bottom:18px;}
.team-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.team-card:hover .team-photo img{transform:scale(1.05);}
.team-card h3{font-size:19px;}
.team-card .role{color:var(--blue);font-size:13.5px;font-weight:600;margin:4px 0 12px;}
.team-card .quote{color:var(--muted);font-size:14.5px;font-style:italic;line-height:1.6;}
.team-card.sm h3{font-size:16.5px;}
.team-card.sm .role{font-size:12.5px;margin-bottom:0;}
.team-card.sm .team-photo{margin-bottom:14px;}
.team-cta{margin-top:64px;text-align:center;}

/* careers */
.role-card{background:var(--navy-2);border:1px solid var(--line-dark);border-radius:16px;padding:32px;transition:transform .4s var(--ease), border-color .4s ease;margin-bottom:20px;}
.role-card:hover{transform:translateY(-4px);border-color:rgba(79,163,255,.4);}
.role-card .top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:6px;}
.role-card h3{color:#fff;font-size:20px;}
.role-card .field{color:var(--blue-light);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;}
.role-card p.desc{color:var(--muted-dark);font-size:14.5px;margin-top:10px;}
.role-card ul{margin-top:16px;padding-top:16px;border-top:1px solid var(--line-dark);}
.role-card li{font-size:14px;color:var(--muted-dark);padding:7px 0;display:flex;gap:10px;}
.role-card li svg{flex-shrink:0;width:15px;height:15px;color:var(--blue-light);margin-top:3px;}
.criteria-note{background:var(--blue-dim);border:1px solid rgba(0,117,255,.25);border-radius:12px;padding:20px 24px;font-size:14px;color:var(--muted);margin:36px 0 44px;}
.criteria-note b{color:var(--ink);}
.intern-card{background:#fff;border:1px solid var(--line-light);border-radius:14px;padding:28px;transition:transform .4s var(--ease), box-shadow .4s var(--ease);}
.intern-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px -20px rgba(14,20,32,.18);}
.intern-card .field{color:var(--blue);font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
.intern-card h3{margin:8px 0 14px;font-size:17.5px;}
.intern-row{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:13.5px;}
.intern-row dt{color:var(--muted);font-weight:600;}
.intern-row dd{margin:0;color:var(--ink);}
.intern-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}

/* footer */
footer{background:var(--navy);color:var(--muted-dark);padding:72px 0 32px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:44px;border-bottom:1px solid var(--line-dark);}
.foot-grid h4{color:#fff;font-size:13px;letter-spacing:.05em;text-transform:uppercase;margin-bottom:18px;font-weight:600;}
.foot-grid li{padding:6px 0;font-size:14px;}
.foot-grid li a:hover{color:#fff;}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;font-size:12.5px;flex-wrap:wrap;gap:12px;}
.foot-bottom .social a{margin-left:18px;font-size:12.5px;}

@media (max-width: 980px){
  nav.links{display:none;}
  .burger{display:block;}
  .hero .wrap{grid-template-columns:1fr;}
  .origami-stage{height:280px;order:-1;transform:scale(.82);}
  .page-hero .wrap{grid-template-columns:1fr !important;}
  .page-hero .wrap > div:last-child{order:-1;}
  .fold-morph-wrap,.orbit-wrap,.path-wrap{height:auto !important;margin-bottom:8px;}
  .sov-grid{grid-template-columns:1fr;gap:40px;}
  .pillars{grid-template-columns:1fr 1fr;}
  .values-strip{grid-template-columns:1fr;}
  .sys-grid{grid-template-columns:1fr 1fr;}
  .lineage-grid{grid-template-columns:1fr;}
  .fold-diagram{flex-direction:column;}
  .fold-arrow{transform:rotate(90deg);}
  .team-grid-2{grid-template-columns:1fr;max-width:360px;margin:0 auto;}
  .team-grid-4{grid-template-columns:1fr 1fr;max-width:520px;margin:26px auto 0;}
  .intern-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 560px){
  .wrap{padding:0 20px;}
  .pillars{grid-template-columns:1fr;}
  .sys-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;gap:26px;}
  section{padding:80px 0;}
}
