/* =========================================================
   Next-level Conseil — système visuel « Midnight terminal »
   Tokens issus de DESIGN.md (dope.security style reference)
   ========================================================= */
:root{
  /* Palette next-lc.com — thème clair (ivoire / bleu nuit / champagne) */
  --navy:#1B2A4A; --ivory:#FAF8F5; --ivory-dark:#F0ECE6; --body-text:#3D3D3D;
  --near-black:#FAF8F5;      /* fond */
  --almost-white:#1B2A4A;    /* encre principale */
  --fg-rgb:27,42,74;
  --soft-white:#1B2A4A;
  --steel:#6B6560;
  --graphite:#6B6560;
  --iron:#2C3E6B;
  --ash:#E5E1DA;
  --violet:#C9A96E;
  --lavender:#98713C;

  --line:rgba(27,42,74,.14);
  --line-soft:rgba(27,42,74,.07);
  --wash:rgba(201,169,110,.08);
  --nav-bg:rgba(250,248,245,.9);
  --card:#FFFFFF;

  --f-sans:'Inter',ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --f-serif:'Cormorant Garamond','Tiempos Headline',Georgia,serif;

  --r-card:19.2px; --r-pill:1584px; --r-btn:8px; --r-sm:6px;
  --max:1200px; --gutter:clamp(16px,4vw,48px); --section:clamp(80px,12vw,160px);
  --ease:cubic-bezier(.22,.8,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--near-black);color:var(--almost-white);font-family:var(--f-sans);font-weight:300;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color .8s var(--ease),color .8s var(--ease)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--violet);color:var(--navy)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.section{padding:var(--section) 0;position:relative}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- Typo ---------- */
.serif{font-family:var(--f-serif);font-style:italic;font-weight:500;letter-spacing:-.01em}
.label{font-family:var(--f-sans);font-size:12px;font-weight:400;text-transform:uppercase;letter-spacing:.07em;color:var(--steel)}
.label-xs{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--steel)}
.mono{font-family:var(--f-mono)}
.h-display{font-size:clamp(44px,8vw,96px);line-height:.95;font-weight:400;letter-spacing:-.04em;margin:0}
.h-display .serif{font-weight:400;letter-spacing:-.03em}
.h1{font-size:clamp(36px,5.4vw,64px);line-height:1.05;font-weight:300;letter-spacing:-.04em;margin:0}
.h2{font-size:clamp(28px,3.6vw,48px);line-height:1.1;font-weight:300;letter-spacing:-.03em;margin:0}
.h3{font-size:clamp(22px,2.2vw,32px);line-height:1.2;font-weight:300;letter-spacing:-.01em;margin:0}
.lead{font-size:clamp(17px,1.6vw,20px);font-weight:300;color:rgba(var(--fg-rgb),.78);max-width:620px}
.muted{color:var(--steel)}
p{margin:0 0 1em}

/* Stamp (Whyte Inktrap Mono substitute) — split-flap target */
.stamp{font-family:var(--f-mono);font-weight:400;text-transform:uppercase;letter-spacing:.2em;color:var(--soft-white);font-size:clamp(26px,6.2vw,74px);line-height:.95;margin:0 0 clamp(32px,5vw,64px);white-space:nowrap;overflow:hidden}
.stamp.sm{font-size:clamp(18px,3vw,36px)}
.stamp .char{display:inline-block;min-width:.6em;text-align:center}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;font:400 16px/1 var(--f-sans);padding:16px 20px;border-radius:var(--r-btn);border:1px solid var(--almost-white);background:var(--near-black);color:var(--almost-white);cursor:pointer;transition:background .3s,color .3s}
.btn:hover{background:var(--almost-white);color:var(--near-black)}
.btn-violet{background:var(--violet);border-color:var(--violet);color:var(--navy);font-weight:500}
.btn-violet:hover{background:var(--lavender);border-color:var(--lavender)}
.pill{display:inline-flex;align-items:center;gap:10px;padding:18px 30px;border-radius:var(--r-pill);background:rgba(201,169,110,.08);color:var(--almost-white);font-size:15px;transition:background .3s}
.pill:hover{background:rgba(201,169,110,.18)}
.btn-sm{padding:9px 15px;border-radius:var(--r-sm);background:rgba(var(--fg-rgb),.08);border:1px solid var(--almost-white);font-size:14px}
.arrow{display:inline-block;transition:transform .45s var(--ease);transform:rotate(-45deg)}
a:hover .arrow,button:hover .arrow{transform:rotate(0)}
.learn{display:inline-flex;align-items:center;gap:10px;font-size:18px;border-bottom:1px solid var(--line);padding-bottom:6px}

/* ---------- Nav (frosted, hide on scroll down) ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;transition:transform .5s var(--ease)}
.nav::before{content:"";position:absolute;inset:0;background:var(--nav-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--ash);opacity:0;transition:opacity .4s}
.nav.is-scrolled::before{opacity:1}
.nav.is-hidden{transform:translateY(-100%)}
.nav-in{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px}
.brand{font-weight:500;letter-spacing:.02em;font-size:17px;display:flex;align-items:baseline;gap:2px;white-space:nowrap}
.brand b{font-weight:600;letter-spacing:.04em}
.brand i{font-family:var(--f-serif);font-weight:400;font-size:19px;color:var(--lavender)}
.nav-links{display:flex;gap:22px;list-style:none;margin:0;padding:0}
.nav-links a{position:relative;font-size:12px;text-transform:uppercase;letter-spacing:.07em;padding:10px 0;color:rgba(var(--fg-rgb),.75);overflow:hidden;display:inline-block}
.nav-links a::after{content:"";position:absolute;left:0;bottom:4px;width:100%;height:1px;background:var(--almost-white);transform:translateX(-101%);transition:transform .45s var(--ease)}
.nav-links a:hover{color:var(--almost-white)}
.nav-links a:hover::after,.nav-links a[aria-current]::after{transform:translateX(0)}
.nav-links a[aria-current]{color:var(--almost-white)}
.nav-cta{display:flex;gap:10px;align-items:center}
.nav-cta .btn{padding:11px 16px;font-size:14px}
.menu-btn{display:none;background:none;border:0;color:var(--almost-white);font:400 13px var(--f-mono);letter-spacing:.2em;cursor:pointer;padding:10px 0}
.mobile-menu{position:fixed;inset:0;z-index:49;background:rgba(20,33,58,.96);backdrop-filter:blur(14px);display:flex;flex-direction:column;justify-content:center;padding:96px var(--gutter) 40px;opacity:0;pointer-events:none;transition:opacity .4s}
.mobile-menu.open{opacity:1;pointer-events:auto}
.mobile-menu a{font-size:clamp(30px,8vw,44px);font-weight:300;letter-spacing:-.03em;padding:6px 0;border-bottom:1px solid var(--line-soft);opacity:0;transform:translateY(16px);transition:opacity .5s,transform .5s var(--ease)}
.mobile-menu.open a{opacity:1;transform:none}
.mobile-menu a:nth-child(n){transition-delay:calc(var(--i) * 60ms)}
@media (max-width:1080px){.nav-links,.nav-cta .btn-outline{display:none}.menu-btn{display:block}}
@media (max-width:560px){.nav-cta .btn{display:none}}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;padding:120px 0 72px}
.hero-media{position:absolute;inset:0;z-index:0;animation:heroZoom 22s var(--ease) both}
.hero-media img{width:100%;height:115%;object-fit:cover;margin-top:-6%}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,33,58,.35) 0%,rgba(20,33,58,.05) 35%,rgba(20,33,58,.62) 75%,rgba(20,33,58,.85) 100%),radial-gradient(80% 60% at 15% 40%,rgba(20,33,58,.45),transparent)}
@keyframes heroZoom{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:end;width:100%}
.hero h1{font-size:clamp(42px,5.6vw,80px);line-height:.92;letter-spacing:-.045em;font-weight:400;margin:0 0 28px}
.hero h1 .serif{font-size:1.18em;line-height:.8;font-weight:400;color:var(--almost-white)}
.hero h1 .ghost{color:transparent;-webkit-text-stroke:1px rgba(var(--fg-rgb),.75)}
.hero .line{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.1em}
.hero .line>span{display:inline-block;transform:translateY(105%);animation:lineUp 1.2s var(--ease) forwards}
.hero .line:nth-child(2)>span{animation-delay:.12s}.hero .line:nth-child(3)>span{animation-delay:.24s}.hero .line:nth-child(4)>span{animation-delay:.36s}
@keyframes lineUp{to{transform:none}}
.hero .lead{opacity:0;animation:fadeUp 1s .6s var(--ease) forwards}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:28px;opacity:0;animation:fadeUp 1s .8s var(--ease) forwards}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.play{width:56px;height:56px;border-radius:50%;border:1px solid var(--almost-white);display:grid;place-items:center;transition:background .3s}
.play svg{fill:var(--violet)}
a:hover .play{background:rgba(var(--fg-rgb),.12)}

/* Airplane streak */
.plane{position:absolute;z-index:1;top:52%;left:-20%;width:46%;height:2px;pointer-events:none;animation:fly 14s linear infinite}
.plane::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(225,189,255,.0) 10%,rgba(var(--fg-rgb),.75));border-radius:2px}
.plane::after{content:"✈";position:absolute;right:-22px;top:-13px;font-size:22px;color:var(--almost-white);text-shadow:0 0 18px var(--lavender)}
@keyframes fly{0%{transform:translate(0,40px) rotate(-6deg);opacity:0}8%{opacity:1}70%{opacity:1}100%{transform:translate(260%,-120px) rotate(-6deg);opacity:0}}

/* Boarding pass card */
.pass{position:relative;border-radius:var(--r-card);background:rgba(201,169,110,.05);border:1px solid rgba(var(--fg-rgb),.22);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:28px;opacity:0;animation:fadeUp 1.1s 1s var(--ease) forwards}
.pass-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.pass-route{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:18px 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line)}
.pass-route .code{font:400 clamp(26px,3vw,36px)/1 var(--f-mono);letter-spacing:.06em}
.pass-route .to{text-align:right}
.pass-route .dash{width:64px;height:1px;background:var(--line);position:relative}
.pass-route .dash::after{content:"";position:absolute;top:-3px;left:0;width:7px;height:7px;border-radius:50%;background:var(--violet);box-shadow:0 0 14px var(--violet);animation:travel 3.2s var(--ease) infinite}
@keyframes travel{from{left:0}to{left:calc(100% - 7px)}}
.pass-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0 24px}
.pass-meta div span{display:block}
.pass-meta .v{font-size:14px;color:var(--almost-white);margin-top:4px}
.pass .pill{width:100%;justify-content:center;margin-top:10px}
.barcode{height:34px;margin-top:20px;background:repeating-linear-gradient(90deg,rgba(var(--fg-rgb),.7) 0 2px,transparent 2px 4px,rgba(var(--fg-rgb),.7) 4px 5px,transparent 5px 9px,rgba(var(--fg-rgb),.7) 9px 12px,transparent 12px 14px);opacity:.55;border-radius:2px}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr}.pass{max-width:460px}}

/* Page hero (inner) */
.phero{position:relative;padding:clamp(150px,20vw,220px) 0 clamp(60px,8vw,100px);overflow:hidden}
.phero .glow{position:absolute;width:70vw;height:70vw;max-width:900px;max-height:900px;right:-20vw;top:-30vw;background:radial-gradient(closest-side,rgba(201,169,110,.32),rgba(201,169,110,.08) 55%,transparent 70%);filter:blur(10px);pointer-events:none}
.phero h1{font-size:clamp(42px,7vw,96px);line-height:.95;letter-spacing:-.045em;font-weight:400;margin:18px 0 26px;max-width:14ch}
.phero h1 .serif{font-size:1.1em}
.crumb{display:flex;gap:10px;align-items:center}
.crumb::before{content:"+";color:var(--violet);font-family:var(--f-mono)}

/* ---------- Marquee ---------- */
.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:22px 0;position:relative}
.marquee-track{display:flex;width:max-content;animation:marq 40s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{font:400 clamp(16px,1.6vw,20px)/1 var(--f-mono);text-transform:uppercase;letter-spacing:.2em;padding:0 28px;white-space:nowrap;display:flex;align-items:center;gap:56px;color:rgba(var(--fg-rgb),.8)}
.marquee-track span::after{content:"✦";color:var(--violet);font-size:12px}
.marquee.big .marquee-track span{font:300 clamp(40px,7vw,96px)/1 var(--f-sans);letter-spacing:-.03em;text-transform:none;color:var(--almost-white)}
.marquee.big .marquee-track span em{font-family:var(--f-serif);font-weight:400}
.marquee.reverse .marquee-track{animation-direction:reverse}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- Text fill on scroll ---------- */
.fill{position:relative;font-size:clamp(26px,3.6vw,48px);line-height:1.18;font-weight:300;letter-spacing:-.03em;max-width:24ch}
.fill-wide{max-width:none}
.fill .w{color:rgba(var(--fg-rgb),.16);transition:color .25s}
.fill .w.on{color:var(--almost-white)}
.fill .w.on.v{color:var(--lavender)}

/* ---------- Grid helpers ---------- */
.split{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,96px);align-items:start}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.sticky{position:sticky;top:110px}

/* ---------- Route cards (comparison) ---------- */
.route{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.route.four{grid-template-columns:repeat(4,1fr)}
.route::before{content:"";position:absolute;left:0;right:0;top:36px;height:1px;background:var(--line);z-index:0}
.rcard{position:relative;z-index:1;border-radius:var(--r-card);padding:40px 32px 32px;min-height:420px;display:flex;flex-direction:column;overflow:hidden;isolation:isolate;background:var(--card);border:1px solid var(--line)}
.rcard::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.9;transition:transform 1.2s var(--ease)}
.rcard:hover::before{transform:scale(1.08)}
.rcard.b1::before{background:radial-gradient(90% 70% at 20% 0%,rgba(44,62,107,.12),transparent 65%),radial-gradient(70% 60% at 100% 100%,rgba(201,169,110,.25),transparent 70%)}
.rcard.b2::before{background:radial-gradient(90% 70% at 80% 0%,rgba(138,154,123,.22),transparent 65%),radial-gradient(70% 60% at 0% 100%,rgba(201,169,110,.25),transparent 70%)}
.rcard.b3{background:var(--navy);border-color:var(--navy)}.rcard.b3::before{background:radial-gradient(90% 80% at 50% 0%,rgba(201,169,110,.55),rgba(201,169,110,.12) 55%,transparent 80%)}
.rcard.b4::before{background:radial-gradient(90% 70% at 30% 0%,rgba(163,179,150,.25),transparent 65%),radial-gradient(70% 60% at 100% 100%,rgba(201,169,110,.2),transparent 70%)}
.rcard .node{position:absolute;top:30px;right:30px;width:13px;height:13px;border-radius:50%;border:1px solid var(--almost-white);background:var(--near-black)}
.rcard .num{position:absolute;right:18px;bottom:-30px;font:300 clamp(120px,14vw,200px)/1 var(--f-sans);letter-spacing:-.06em;color:rgba(var(--fg-rgb),.07);z-index:-1}
.rcard .label{color:rgba(var(--fg-rgb),.75);margin-bottom:18px}
.rcard h3{margin-bottom:20px}
.rcard ul{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:10px;font-size:15px;color:rgba(var(--fg-rgb),.82)}
.rcard ul li{padding-left:18px;position:relative}
.rcard ul li::before{content:"";position:absolute;left:0;top:.65em;width:8px;height:1px;background:var(--almost-white)}
.rcard .learn{margin-top:auto;font-size:16px;align-self:flex-start}
@media (max-width:960px){.route,.route.four{grid-template-columns:1fr 1fr}.route::before{display:none}}
@media (max-width:620px){.route,.route.four{grid-template-columns:1fr}.rcard{min-height:0}}

/* Fly-in (convert-cards-fly-in) */
[data-fly]{opacity:0;transform:translateY(80px) rotate(2deg);transition:opacity 1s var(--ease),transform 1.2s var(--ease)}
[data-fly].in{opacity:1;transform:none}
[data-reveal]{opacity:0;transform:translateY(32px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
[data-reveal].in{opacity:1;transform:none}

/* ---------- Feature rows ---------- */
.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:72px 1.1fr 1.4fr;gap:clamp(16px,3vw,40px);padding:36px 0;border-bottom:1px solid var(--line);align-items:start;position:relative}
.row .idx{font:400 14px var(--f-mono);letter-spacing:.2em;color:var(--steel);padding-top:8px}
.row h3{font-size:clamp(22px,2.2vw,30px)}
.row p{font-size:17px;color:rgba(var(--fg-rgb),.78);margin:0 0 14px}
.row .grow{position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--violet);transition:width .9s var(--ease)}
.row:hover .grow{width:100%}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.tag{font-size:13px;padding:6px 12px;border:1px solid var(--line);border-radius:var(--r-pill);color:rgba(var(--fg-rgb),.8)}
@media (max-width:760px){.row{grid-template-columns:1fr;gap:10px}}

/* ---------- Buzzwords blur ---------- */
.buzz{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:clamp(30px,5.4vw,72px);line-height:1.05;letter-spacing:-.04em;font-weight:300}
.buzz span{filter:blur(10px);opacity:.25;transition:filter .9s var(--ease),opacity .9s var(--ease)}
.buzz span.on{filter:none;opacity:1}
.buzz span.serif{color:var(--lavender)}

/* ---------- Stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.stat{padding:36px 24px 36px 0;border-right:1px solid var(--line)}
.stat+.stat{padding-left:24px}
.stat:last-child{border-right:0}
.stat .n{font:300 clamp(44px,5.4vw,72px)/1 var(--f-sans);letter-spacing:-.05em;display:block;margin-bottom:14px}
.stat .n small{font-size:.45em;letter-spacing:-.02em;margin-left:4px;color:var(--lavender)}
@media (max-width:860px){.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(3){padding-left:0}.stat{border-bottom:1px solid var(--line)}}

/* ---------- Steps / method ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);counter-reset:s}
.steps.five{grid-template-columns:repeat(5,1fr)}
.step{padding:32px 24px 40px 0;position:relative}
.step+.step{padding-left:24px;border-left:1px solid var(--line)}
.step .k{font:400 13px var(--f-mono);letter-spacing:.2em;color:var(--steel);display:block;margin-bottom:56px}
.step h3{font-size:26px;margin-bottom:12px}
.step h3 .serif{font-size:1.15em}
.step p{font-size:15px;color:rgba(var(--fg-rgb),.75)}
.step::before{content:"";position:absolute;top:-4px;left:0;width:7px;height:7px;border-radius:50%;background:var(--almost-white)}
.step+.step::before{left:-4px}
@media (max-width:960px){.steps,.steps.five{grid-template-columns:1fr 1fr}.step:nth-child(odd){border-left:0;padding-left:0}.step:nth-child(odd)::before{left:0}.step{border-bottom:1px solid var(--line)}}
@media (max-width:560px){.steps,.steps.five{grid-template-columns:1fr}.step,.step+.step{border-left:0;padding-left:0}.step::before,.step+.step::before{left:0}.step .k{margin-bottom:24px}}

/* ---------- Rotating ring ---------- */
.ring{width:clamp(150px,18vw,220px);aspect-ratio:1;position:relative;flex:none}
.ring svg{width:100%;height:100%;animation:spin 22s linear infinite}
.ring text{font:400 10.5px var(--f-mono);letter-spacing:3.4px;text-transform:uppercase;fill:var(--almost-white)}
.ring .core{position:absolute;inset:32%;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--lavender),var(--violet) 55%,#98713C);box-shadow:0 0 60px rgba(201,169,110,.55)}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Violet bloom card ---------- */
.bloom{border-radius:var(--r-card);padding:clamp(32px,5vw,64px);background:radial-gradient(70% 90% at 100% 50%,rgba(201,169,110,.35),transparent 60%),radial-gradient(60% 80% at 0% 0%,#2C3E6B,transparent 70%),var(--navy);color:var(--almost-white);position:relative;overflow:hidden}
.bloom p{color:rgba(var(--fg-rgb),.8)}
.bloom .btn{background:var(--violet);color:var(--navy);border-color:var(--violet);font-weight:500}
.bloom .btn:hover{background:var(--ivory);border-color:var(--ivory)}

/* ---------- Light section transition ---------- */
body.is-light{background:var(--ivory-dark)}

/* ---------- Values / cards ---------- */
.vgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.vcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:32px 28px;min-height:240px;display:flex;flex-direction:column;justify-content:space-between;transition:border-color .4s,transform .6s var(--ease)}
.vcard:hover{transform:translateY(-6px);border-color:rgba(201,169,110,.6)}
.vcard h3{font-size:28px}
.vcard p{font-size:15px;margin:0}
@media (max-width:960px){.vgrid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.vgrid{grid-template-columns:1fr}}

/* ---------- Founders ---------- */
.founders{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.founder{background:var(--card);border-radius:var(--r-card);border:1px solid var(--line);padding:40px;position:relative;overflow:hidden}
.founder .ini{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font:400 18px var(--f-mono);letter-spacing:.1em;border:1px solid var(--almost-white);margin-bottom:32px}
.founder h3{font-size:32px;margin-bottom:6px}
.founder ul{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:12px;font-size:15px;color:rgba(var(--fg-rgb),.8)}
.founder ul li{display:grid;grid-template-columns:18px 1fr}
.founder ul li::before{content:"→";color:var(--steel)}
@media (max-width:860px){.founders{grid-template-columns:1fr}.founder{padding:28px}}

/* ---------- Image gallery (formation) ---------- */
.venues{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.venue{position:relative;border-radius:var(--r-card);overflow:hidden;min-height:420px;grid-column:span 6;isolation:isolate;cursor:default}
.venue.w7{grid-column:span 7}.venue.w5{grid-column:span 5}.venue.w4{grid-column:span 4}.venue.w8{grid-column:span 8}.venue.w12{grid-column:span 12;min-height:560px}
.venue img{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover;transition:transform 1.4s var(--ease);z-index:-2}
.venue{transition:transform .8s var(--ease)}.venue:hover{transform:scale(.985)}
.venue::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(20,33,58,0) 35%,rgba(20,33,58,.85) 100%)}
.venue .cap{position:absolute;left:28px;right:28px;bottom:26px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.venue .cap h3{font-size:clamp(22px,2.4vw,30px)}
.venue .cap .label{color:rgba(var(--fg-rgb),.75)}
.venue .coord{font:400 12px var(--f-mono);letter-spacing:.12em;color:rgba(var(--fg-rgb),.75);white-space:nowrap;text-align:right}
.venue .chip{position:absolute;top:22px;left:22px;font:400 11px var(--f-mono);letter-spacing:.18em;text-transform:uppercase;padding:8px 12px;border-radius:var(--r-pill);background:rgba(20,33,58,.45);backdrop-filter:blur(8px);border:1px solid var(--line)}
@media (max-width:860px){.venue,.venue.w7,.venue.w5,.venue.w4,.venue.w8{grid-column:span 12;min-height:340px}.venue.w12{min-height:400px}}

/* Program table */
.prog{border-top:1px solid var(--line)}
.prog details{border-bottom:1px solid var(--line)}
.prog summary{list-style:none;display:grid;grid-template-columns:72px 1fr auto;gap:20px;align-items:center;padding:28px 0;cursor:pointer}
.prog summary::-webkit-details-marker{display:none}
.prog summary .idx{font:400 14px var(--f-mono);letter-spacing:.2em;color:var(--steel)}
.prog summary h3{font-size:clamp(20px,2.2vw,30px)}
.prog summary .pm{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:transform .5s var(--ease),background .3s}
.prog details[open] summary .pm{transform:rotate(45deg);background:var(--violet);border-color:var(--violet);color:var(--navy)}
.prog .body{display:grid;grid-template-columns:72px 1fr 1fr;gap:20px;padding:0 0 32px}
.prog .body>div:first-child{grid-column:2}
.prog .body p{font-size:16px;color:rgba(var(--fg-rgb),.78)}
@media (max-width:760px){.prog summary{grid-template-columns:44px 1fr auto}.prog .body{grid-template-columns:1fr}.prog .body>div:first-child{grid-column:auto}}

/* Format cards */
.formats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.fcard{border-radius:var(--r-card);background:var(--card);border:1px solid var(--line);padding:36px 30px;min-height:260px;display:flex;flex-direction:column;gap:14px}
.fcard .label{color:var(--lavender)}
@media (max-width:860px){.formats{grid-template-columns:1fr}}

/* ---------- Parallax ---------- */
[data-parallax]{will-change:transform}

/* ---------- Experience rows ---------- */
.xp{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.xp>div{padding:32px 28px 32px 0}
.xp>div+div{padding-left:28px;border-left:1px solid var(--line)}
.xp h3{font-size:24px;margin:28px 0 12px}
.xp p{font-size:15px;color:rgba(var(--fg-rgb),.75)}
@media (max-width:860px){.xp{grid-template-columns:1fr}.xp>div+div{border-left:0;padding-left:0;border-top:1px solid var(--line)}}

/* ---------- Contact ---------- */
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form .full{grid-column:1/-1}
.field label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--steel);margin-bottom:8px}
.field input,.field select,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--almost-white);font:300 18px var(--f-sans);padding:12px 0;border-radius:0;outline:none;transition:border-color .3s}
.field select option{background:var(--near-black)}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--violet)}
.check{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--steel)}
.check input{margin-top:4px;accent-color:var(--violet)}
.check a{text-decoration:underline}
.form-note{font-size:14px;color:var(--lavender);min-height:1.5em}
@media (max-width:640px){.form{grid-template-columns:1fr}}
.offices{display:grid;gap:20px}
.office{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:28px;display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.pulse{width:10px;height:10px;border-radius:50%;background:var(--violet);position:relative;flex:none;margin-top:8px}
.pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--violet);animation:pulse 2s ease-out infinite}
@keyframes pulse{to{transform:scale(4);opacity:0}}

/* ---------- Final CTA ---------- */
.cta-final{display:flex;gap:clamp(32px,6vw,80px);align-items:center;justify-content:space-between}
.cta-final h2{font-size:clamp(36px,6vw,80px);line-height:.98;letter-spacing:-.045em;font-weight:300;margin:0 0 28px}
@media (max-width:860px){.cta-final{flex-direction:column;align-items:flex-start}}

/* ---------- Footer ---------- */
.footer{background:var(--navy);padding:72px 0 28px;position:relative;overflow:hidden}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;margin-bottom:72px}
.foot-grid h4{font:400 12px var(--f-sans);text-transform:uppercase;letter-spacing:.07em;color:var(--steel);margin:0 0 18px}
.foot-grid ul{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:15px}
.foot-grid a:hover{color:var(--lavender)}
.foot-tag{font-family:var(--f-serif);font-style:italic;font-size:clamp(28px,3vw,40px);line-height:1.05;margin:16px 0 0}
.foot-big{font:300 clamp(48px,11.5vw,170px)/.85 var(--f-sans);letter-spacing:-.06em;white-space:nowrap;color:rgba(var(--fg-rgb),.06);margin:0 0 32px;user-select:none}
.foot-big i{font-family:var(--f-serif);font-weight:400}
.foot-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;font-size:14px;border-top:1px solid var(--line-soft);padding-top:22px}
.foot-bar .l{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.foot-bar .l .plus{font-family:var(--f-mono);color:var(--violet);font-size:18px}
.foot-bar .r{display:flex;gap:12px;align-items:center;font-variant-numeric:tabular-nums}
.foot-bar .heart{color:var(--almost-white)}
.foot-bar a{color:var(--steel)}.foot-bar a:hover{color:var(--almost-white)}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid>div:first-child{grid-column:1/-1}}

/* Progress line */
.progress{position:fixed;left:0;top:0;height:2px;width:100%;background:var(--violet);transform-origin:0 50%;transform:scaleX(0);z-index:60;box-shadow:0 0 12px var(--violet)}

/* Cursor glow (desktop) */
.cursor{position:fixed;width:420px;height:420px;left:0;top:0;border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(closest-side,rgba(201,169,110,.10),transparent);transform:translate(-50%,-50%);transition:opacity .4s;opacity:0}
@media (hover:none){.cursor{display:none}}
main,footer{position:relative;z-index:1}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important}
  [data-fly],[data-reveal]{opacity:1;transform:none}
  .buzz span{filter:none;opacity:1}
  .fill .w{color:var(--almost-white)}
}
@media (max-width:560px){.stamp{font-size:clamp(18px,5.6vw,26px);letter-spacing:.14em}.stamp.sm{font-size:16px}.pass{padding:22px}.pass-meta .v{font-size:13px}}

h3{font-weight:400}
.vgrid.three{grid-template-columns:repeat(3,1fr)}@media (max-width:960px){.vgrid.three{grid-template-columns:1fr}}

/* ================= NLC brand + aviation animations ================= */
.brand{gap:12px;align-items:center}
.brand img{height:40px;width:auto;display:block}
.brand .bt{display:flex;flex-direction:column;line-height:1;font-family:var(--f-serif);}
.brand .bt b{font:500 16px/1 var(--f-serif);letter-spacing:.22em;color:var(--almost-white)}
.brand .bt i{font:500 10px/1 var(--f-sans);font-style:normal;letter-spacing:.42em;color:var(--violet);margin-top:5px}
@media (max-width:420px){.brand .bt{display:none}}
.foot-logo{width:min(240px,70%);height:auto;margin-bottom:8px}

/* Wandering plane (hero) */
.wander{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:visible}
.wander .trail{fill:none;stroke:var(--almost-white);stroke-width:1.2;stroke-linecap:round;opacity:.75;vector-effect:non-scaling-stroke}
.wander .route-ghost{fill:none;stroke:rgba(var(--fg-rgb),.08);stroke-width:1;stroke-dasharray:2 8;vector-effect:non-scaling-stroke}
.wander .plane-g path{fill:var(--almost-white)}
.wander .plane-g .glow{fill:var(--violet);opacity:.35;filter:blur(6px)}

/* Stopover: plane descending a line */
.stopover{position:relative;height:200vh}
.stopover-in{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.so-track{position:relative;width:40px;height:min(46vh,420px);margin-bottom:40px}
.so-line{position:absolute;left:50%;top:0;width:1px;height:100%;background:rgba(var(--fg-rgb),.12);transform:translateX(-50%)}
.so-fill{position:absolute;left:50%;top:0;width:1px;height:100%;background:var(--almost-white);transform-origin:top;transform:translateX(-50%) scaleY(0)}
.so-plane{position:absolute;left:0;top:0;width:40px;height:40px;transform:translateY(-20px)}
.so-plane svg{width:40px;height:40px;fill:var(--almost-white);filter:drop-shadow(0 0 14px rgba(201,169,110,.6))}
.so-heading{font-size:clamp(30px,4.6vw,64px);line-height:1.05;font-weight:300;letter-spacing:-.04em;max-width:18ch;margin:0 var(--gutter)}
.so-sub{margin-top:18px;color:var(--steel);max-width:52ch;padding:0 var(--gutter)}

/* Hublots (airplane windows) — fly-through */
.hublots{position:relative;height:340vh}
.hublots-in{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center;background:radial-gradient(90% 70% at 50% 40%,#FFFFFF,#ECE6DC 75%)}
.cabin{position:absolute;inset:0;background:repeating-linear-gradient(180deg,rgba(var(--fg-rgb),.025) 0 2px,transparent 2px 9px)}
.hrow{position:relative;display:flex;gap:clamp(60px,12vw,200px);align-items:center;will-change:transform}
.hublot{position:relative;width:clamp(150px,19vw,250px);aspect-ratio:.72;flex:none;border-radius:48%/38%;padding:clamp(12px,1.6vw,20px);background:linear-gradient(160deg,#F3EEE6 0%,#CFC6B8 45%,#A39A8C 100%);box-shadow:inset 0 2px 3px rgba(255,255,255,.7),inset 0 -6px 12px rgba(0,0,0,.25),0 24px 50px rgba(27,42,74,.25);will-change:transform,opacity}
.hublot::before{content:"";position:absolute;inset:clamp(6px,.8vw,10px);border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12),inset 0 6px 14px rgba(0,0,0,.25)}
.glass{position:relative;width:100%;height:100%;border-radius:46%/36%;overflow:hidden;box-shadow:inset 0 0 30px rgba(0,0,0,.6),inset 0 0 0 3px rgba(20,33,58,.7);background:#22335A}
.glass img{position:absolute;inset:-10%;width:120%;height:120%;object-fit:cover;will-change:transform}
.glass::after{content:"";position:absolute;inset:0;background:linear-gradient(125deg,rgba(255,255,255,.28) 0%,rgba(255,255,255,0) 32%),radial-gradient(60% 40% at 50% 100%,rgba(201,169,110,.25),transparent);pointer-events:none}
.shade{position:absolute;left:0;right:0;top:0;height:22%;background:linear-gradient(#EDE7DD,#CFC6B8);border-bottom:2px solid rgba(0,0,0,.15);z-index:2;transition:none}
.hublot.center{z-index:3}
.h-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:5;opacity:0;pointer-events:none;padding:0 var(--gutter)}
.h-copy .stamp{margin-bottom:24px;white-space:normal}
.h-copy h2{font-size:clamp(40px,7vw,104px);line-height:.95;letter-spacing:-.045em;font-weight:300;margin:0;max-width:14ch;text-shadow:0 10px 40px rgba(20,33,58,.6)}
.h-copy p{max-width:52ch;margin-top:22px;color:rgba(var(--fg-rgb),.88);text-shadow:0 2px 20px rgba(20,33,58,.8)}
.h-hint{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);font:400 11px var(--f-mono);letter-spacing:.3em;color:var(--steel);text-transform:uppercase;z-index:6}

/* Plane on route (scroll-driven) */
.route-svg{display:block;width:100%;height:auto;overflow:visible;margin:0 0 8px}
.route-svg .ghost{fill:none;stroke:rgba(var(--fg-rgb),.12);stroke-width:1;stroke-dasharray:3 7;vector-effect:non-scaling-stroke}
.route-svg .drawn{fill:none;stroke:var(--violet);stroke-width:1.5;vector-effect:non-scaling-stroke}
.route-svg .plane-g path{fill:var(--almost-white)}
.route-svg .stop{fill:var(--near-black);stroke:var(--almost-white);stroke-width:1.5;vector-effect:non-scaling-stroke;transition:fill .4s}
.route-svg .stop.on{fill:var(--violet);stroke:var(--violet)}
@media (prefers-reduced-motion:reduce){.stopover,.hublots{height:auto}.stopover-in,.hublots-in{position:relative;height:100vh}.h-copy{opacity:1}}
@media (max-width:960px){.route-svg{display:none}}

.phero .wrap{z-index:2}.phero .wander{opacity:.8}

/* Portraits */
.portrait{position:relative;margin:0 0 28px;border-radius:14px;overflow:hidden;aspect-ratio:4/5;background:#22335A;isolation:isolate}
.founder .portrait{aspect-ratio:1/1;max-width:100%}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;filter:grayscale(1) contrast(1.05);transform:scale(1.04);transition:filter .9s var(--ease),transform 1.2s var(--ease)}
.portrait::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,42,74,0) 45%,rgba(27,42,74,.75)),linear-gradient(135deg,rgba(201,169,110,.35),rgba(27,42,74,.35));mix-blend-mode:multiply;transition:opacity .9s var(--ease)}
.founder:hover .portrait img,.crew-card:hover .portrait img,.portrait.in img{filter:none;transform:scale(1)}
.founder:hover .portrait::after,.crew-card:hover .portrait::after{opacity:.35}
.portrait figcaption{position:absolute;left:18px;bottom:16px;z-index:2;color:var(--almost-white)}
.crew{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:64px}
.crew-card{background:var(--card);display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:28px;align-items:end;border:1px solid var(--line);border-radius:var(--r-card);padding:20px;transition:border-color .4s}
.crew-card:hover{border-color:rgba(201,169,110,.6)}
.crew-card .portrait{margin:0}
.crew-card h3{font:500 clamp(26px,2.6vw,34px)/1.1 var(--f-serif);margin:10px 0}
.crew-card p{font-size:14px;margin:0}
@media (max-width:960px){.crew{grid-template-columns:1fr}}
@media (max-width:520px){.crew-card{grid-template-columns:1fr}.crew-card .portrait{aspect-ratio:1/1}}

/* Blended bar */
.blend-bar{display:flex;gap:6px;height:68px}
.blend-bar span{background:var(--card);flex:0 0 calc(var(--w) - 5px);display:flex;align-items:center;padding:0 18px;border-radius:12px;border:1px solid var(--line);font:400 12px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;background:rgba(var(--fg-rgb),.04);transform-origin:left;transform:scaleX(0);opacity:0;transition:transform 1s var(--ease) var(--d),opacity .6s var(--d);white-space:nowrap;overflow:hidden}
.blend-bar span.hl{background:var(--violet);border-color:var(--violet);color:var(--navy)}
.blend.in .blend-bar span{transform:none;opacity:1}
.blend-legend{display:flex;justify-content:space-between;margin-top:14px;font:400 11px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--steel)}
@media (max-width:640px){.blend-bar{flex-direction:column;height:auto}.blend-bar span{flex:none;height:48px}}
@media (hover:none){.portrait img{filter:none;transform:none}.portrait::after{opacity:.35}}

/* ================= Zones sombres (photos, hero, footer, CTA) ================= */
.dark,.hero,.venue,.bloom,.footer,.rcard.b3,.h-copy,.mobile-menu,body.dark-top .nav:not(.is-scrolled){
  --near-black:#1B2A4A;--almost-white:#FAF8F5;--fg-rgb:250,248,245;--soft-white:#F0ECE6;
  --steel:#B5B0A9;--lavender:#E7C98F;--line:rgba(250,248,245,.18);--line-soft:rgba(250,248,245,.08);
  color:var(--almost-white)}
.brand .logo-dark{display:none}
body.dark-top .nav:not(.is-scrolled) .brand .logo-dark{display:block}
body.dark-top .nav:not(.is-scrolled) .brand .logo-light{display:none}
.nav::before{border-bottom-color:rgba(27,42,74,.08);box-shadow:0 1px 2px rgba(16,24,40,.05)}
.nav-cta .btn{background:transparent}
p,.lead{color:inherit}
.lead{color:rgba(var(--fg-rgb),.78)}
.row p,.step p,.xp p,.prog .body p{color:rgba(var(--fg-rgb),.72)}
.stamp{color:var(--navy)}
.dark .stamp,.h-copy .stamp{color:var(--soft-white)}
.ring text{fill:var(--almost-white)}
.so-plane svg{filter:drop-shadow(0 6px 14px rgba(201,169,110,.55))}
.wander .plane-g .glow{opacity:.5}
.phero .glow{background:radial-gradient(closest-side,rgba(201,169,110,.28),rgba(201,169,110,.06) 55%,transparent 70%)}
.vcard:hover,.crew-card:hover,.founder:hover{box-shadow:0 20px 40px rgba(27,42,74,.08)}
.marquee{background:var(--ivory-dark)}
