/* NexLab / Optical future. Shared palette, cinema aperture, restrained motion. */
:root{--bg:#04070d;--bg-2:#0a111c;--bg-3:#101b29;--text:#f0f5fc;--muted:#a8b7ca;--muted-2:#8496ac;--accent:#9cdcff;--accent-2:#80a5ff;--on-accent:#071323;--grad:linear-gradient(115deg,#e3f4ff,#9ac4ff);--r:10px;--r-lg:16px;--line:rgba(173,209,255,.16);--wrap:1440px;--gutter:clamp(22px,5vw,80px)}
body.nx-future{background:#04070d!important;background-image:none!important}
.nx-future :focus-visible{outline:2px solid #b6e4ff;outline-offset:5px}
.nx-home .grain{opacity:.025}.nx-home .halo{display:none}
.nx-home .nav{top:18px;left:24px;right:24px;height:68px;padding:0 24px;border:1px solid rgba(193,218,255,.18);border-radius:12px;background:rgba(9,16,27,.8);backdrop-filter:blur(24px);box-shadow:0 12px 50px #0004}
.nx-home .nav.is-solid{background:rgba(6,12,22,.94)}
.nx-home .brand b{letter-spacing:.08em}.nx-home .brand small{color:#b0bfd2}
.nx-home .nav-links{gap:24px}.nx-home .nav-links a{font-size:12px}
.nx-home .btn{border-radius:6px;min-height:48px;letter-spacing:0;box-shadow:none;transform:none!important}
.nx-home .btn-solid{background:#d2eaff;color:#071323;border:1px solid #eff8ff}
.nx-home .btn-solid:hover{background:#fff;box-shadow:0 0 26px #8bc8ff30}
.nx-home .btn-ghost{background:#ffffff05;border-color:#bfd9ff40}
.nx-home .hero{min-height:900px;height:100svh;max-height:1200px;padding-top:150px;padding-bottom:54px;justify-content:center;isolation:isolate;background:radial-gradient(ellipse at 80% 50%,#17345a66,transparent 55%),#04070d}
.nx-home .hero-fond{inset:145px 5vw 145px 48%;border-radius:48% 48% 16px 16px;border:1px solid #bfdfff55;box-shadow:0 0 0 10px #629bff05,0 0 0 11px #93bbff18,0 0 100px #2165dd28;transform:none!important;background:#101925}
.nx-home .hero-fond video{opacity:.85;filter:saturate(.7);object-position:center}
.nx-home .hero-fond::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#04070d88,transparent 45%),linear-gradient(0deg,#04070ddd,transparent 55%);pointer-events:none}
.nx-home .hero-voile{background:linear-gradient(90deg,#04070d 10%,#04070d55 48%,transparent 75%);pointer-events:none}
.nx-home .hero-hud{display:none}
.nx-home .hero-contenu{transform:none!important}
.nx-home .hero-sur{font-size:13px;letter-spacing:.015em;text-transform:none;margin-bottom:30px;color:#b0c5df}
.nx-home .hero-sur::before{width:6px;height:6px;border-radius:50%;background:#9cdcff;box-shadow:0 0 12px #9cdcff}
.nx-home .hero h1{font-size:clamp(76px,8.8vw,142px);line-height:.97;letter-spacing:-.065em;text-transform:none;max-width:10ch;font-weight:800;text-shadow:none}
.nx-home .hero h1 .l{overflow:visible}
.nx-home .hero h1 .l>span,.nx-home .hero h1 .l:nth-child(2)>span{background:linear-gradient(170deg,#fff 18%,#d4e5f9 55%,#7c99bd);background-clip:text;-webkit-background-clip:text;color:transparent;animation:none;padding-bottom:.08em}
.nx-home .hero-bas{display:block;margin-top:24px}.nx-home .hero-sub{font-size:16px;max-width:40ch;color:#b8c6d8;line-height:1.75}
.nx-home .hero-actions{margin-top:30px;gap:12px}
.nx-home .hero-preuves{justify-content:flex-start;gap:38px;margin-top:50px}
.nx-home .hero-preuves li{display:block;padding:0;border:0;border-radius:0;background:none;backdrop-filter:none}
.nx-home .hero-preuves b{display:block;font-size:30px;color:#e8f3ff;background:none;letter-spacing:-.04em}
.nx-home .hero-preuves span{font-size:11px;color:#a8b7ca}
.nx-home .hero-scroll{display:none}
.aperture-caption{position:absolute;z-index:3;right:8vw;bottom:180px;color:#d8e9ff;display:flex;align-items:center;gap:16px;font-size:12px}
.aperture-caption i{display:grid;place-items:center;width:48px;height:48px;border:1px solid #ffffff60;border-radius:50%;font-style:normal;background:#07132366;backdrop-filter:blur(10px)}
.aperture-caption span{display:grid;gap:4px}.aperture-caption small{color:#a8b7ca}
.nx-home .defile{background:#08101b;border-block:1px solid #b4d8ff18;padding:22px 0}.nx-home .defile-piste{animation-duration:65s}
.nx-home .section{padding-top:110px;padding-bottom:110px}.nx-home .section-head{grid-template-columns:1.25fr 1fr;gap:28px;align-items:end;margin-bottom:44px}
.nx-home .section-num{display:none}.nx-home .section-head h2{font-size:clamp(36px,4.2vw,64px);max-width:19ch;font-weight:700;letter-spacing:-.05em;line-height:1.08}
.nx-home .section-head h2 em{color:inherit;background:none}.nx-home .section-head p{justify-self:end;font-size:14px;max-width:34ch}
.nx-home .reel{border-radius:14px;border:1px solid #b9d9ff30;box-shadow:0 30px 100px #0008}
.nx-home #productions{border-top:1px solid #b4d8ff18}.nx-home .grille{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}
.nx-home .prod,.nx-home .prod:nth-child(7n+1){grid-column:auto;aspect-ratio:16/11;border:0;border-radius:8px;box-shadow:none}
.nx-home .prod:first-child{grid-column:1/-1;aspect-ratio:21/9}.nx-home .prod:hover{transform:none;box-shadow:none}
.nx-home .prod img{filter:saturate(.9);transition:transform .7s ease}
.nx-home .prod-info{left:26px;bottom:25px}.nx-home .prod-info h3{font-size:clamp(21px,2.5vw,36px);font-weight:600;letter-spacing:-.04em}
.nx-home .prod-info p{letter-spacing:0;text-transform:none;font-size:12px}.nx-home .prod-num{display:none}
.nx-home .prod-tag{text-transform:none;letter-spacing:0;border:1px solid #ffffff30;border-radius:4px}
.nx-home .puce{border-radius:5px;height:40px}.nx-home .puce.is-on{background:#b7dcff;color:#071323;border-color:#b7dcff}
.nx-home .carte{border-color:#c3ddff20;background:#0b1420;border-radius:10px;box-shadow:none}
.nx-home .bento{gap:20px}.nx-home .svc,.nx-home .svc:nth-child(n){grid-column:span 6;min-height:360px;padding:34px}
.nx-home .svc img{opacity:.35}.nx-home .svc h3{font-size:32px;font-weight:600;letter-spacing:-.04em}.nx-home .svc-num{display:none}
.nx-home .svc-ico{border-radius:50%;background:#a5d5ff0a;border-color:#bedfff30}.nx-home .svc p{color:#bdc9d8}
.nx-home .methode{background:#09111c}.nx-home .etape{border-radius:10px}.nx-home .chiffre b{font-weight:600;color:#d9eaff;background:none}
.nx-home .membre{background:transparent}.nx-home .membre-av{background:#102337;color:#badeff;box-shadow:none;border:1px solid #bddfff40}
.nx-home .appel{background:linear-gradient(115deg,#152b49,#0b1422 70%);border:1px solid #b4d8ff38}.nx-home .appel::before{animation:none;background:none}
.nx-home .form{padding:32px}.nx-home .champ label{text-transform:none;letter-spacing:0;font-size:13px;color:#c4d0df}
.nx-home .champ input,.nx-home .champ select,.nx-home .champ textarea{border-radius:5px;min-height:48px;background-color:#040b14}
.nx-home .pied{background:#08111d}.nx-home .pied-grand a.mot{color:#c5ddf5;-webkit-text-stroke:0;font-weight:700;text-transform:none;letter-spacing:-.07em}
.nx-home .cookies{left:auto;right:24px;bottom:24px;width:min(390px,calc(100vw - 32px));border-radius:10px;background:#0a1422f5;transform:translateY(140%)}
.nx-home .cookies.is-on{transform:translateY(0)}
.nx-future:not(.nx-home) .topnav{background:#08111eee!important;border-color:#bedfff30}
.nx-future:not(.nx-home) .hero{background:radial-gradient(ellipse at 80% 35%,#23456888,transparent 60%),#04070d;border-bottom:1px solid #bddfff20}
.nx-future:not(.nx-home) .btn-primary,.nx-future:not(.nx-home) .navcta{background:#cce8ff!important;border-radius:6px!important;box-shadow:none!important}
.nx-future:not(.nx-home) .btn-ghost{border-radius:6px!important}
@media(min-width:1600px){.nx-home .hero-fond{right:calc((100vw - 1440px)/2);left:50%}}
@media(max-width:1150px){.nx-home .nav-links{gap:13px}.nx-home .brand small{display:none}.nx-home .hero{min-height:850px}.nx-home .hero h1{font-size:clamp(76px,9vw,110px)}.nx-home .hero-preuves{gap:24px}}
@media(max-width:860px){.nx-home .nav{top:12px;left:12px;right:12px;padding:0 16px;height:62px}.nx-home .hero{height:auto;min-height:940px;padding-top:140px;padding-bottom:42px;justify-content:flex-start}.nx-home .hero-fond{inset:115px 22px auto 38%;height:420px;opacity:.7}.nx-home .hero-voile{background:linear-gradient(90deg,#04070df5,#04070d20),linear-gradient(0deg,#04070d 32%,transparent 75%)}.nx-home .hero h1{font-size:clamp(66px,12vw,100px)}.nx-home .hero-sub{max-width:35ch}.nx-home .hero-preuves{margin-top:42px;gap:28px}.aperture-caption{display:none}.nx-home .section{padding-top:72px;padding-bottom:72px}.nx-home .section-head{grid-template-columns:1fr;gap:18px}.nx-home .section-head p{justify-self:start;max-width:45ch}.nx-home .svc,.nx-home .svc:nth-child(n){grid-column:1/-1;min-height:300px}}
@media(max-width:600px){.nx-home .hero{min-height:800px;padding-top:134px}.nx-home .hero h1{font-size:clamp(61px,13.5vw,81px)}.nx-home .hero-sur{font-size:11px;margin-bottom:30px}.nx-home .hero-fond{left:30%;height:360px;right:-36px}.nx-home .hero-bas{margin-top:28px}.nx-home .hero-sub{font-size:14px;max-width:31ch}.nx-home .hero-actions{flex-direction:column;align-items:flex-start}.nx-home .hero-actions .btn{flex:none;width:210px}.nx-home .hero-preuves{gap:22px}.nx-home .hero-preuves b{font-size:26px}.nx-home .hero-preuves span{font-size:10px}.nx-home .grille{grid-template-columns:1fr;gap:20px}.nx-home .prod:first-child,.nx-home .prod,.nx-home .prod:nth-child(7n+1){grid-column:1;aspect-ratio:4/3}.nx-home .prod-info{left:20px;bottom:20px}.nx-home .form{padding:20px}.nx-home .cookies{right:16px;bottom:16px}.nx-home .section-head h2{font-size:38px}.nx-home .svc{padding:26px}.nx-home .pied-grand a.mot{font-size:16vw}}
@media(prefers-reduced-motion:reduce){.nx-future *,.nx-future *::before,.nx-future *::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}.nx-home .hero-fond video{visibility:hidden}.nx-home .hero-fond{background:center/cover url('/showreel-poster-v3.jpg')}}
