:root{--bg:#050B1A;--ink:#EAF0FF;--muted:#8C9BC2;--muted2:#C4CFEA;--blue:#5B7BFF;--purple:#A06BFF;--accent:#7BA0FF;}
*{box-sizing:border-box;}
body{background:var(--bg);color:var(--ink);font-family:'Archivo',sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;}
a{text-decoration:none;}
.mono{font-family:'JetBrains Mono',monospace;}
.fw-100{font-weight:100!important;}.fw-200{font-weight:200!important;}.fw-300{font-weight:300!important;}.fw-800{font-weight:800!important;}.fw-900{font-weight:900!important;}
.grad-text{background:linear-gradient(90deg,#5B7BFF,#A06BFF 45%,#FF7A4D);-webkit-background-clip:text;background-clip:text;color:transparent;}
.grad-blue{background:linear-gradient(90deg,#5B7BFF,#A06BFF);-webkit-background-clip:text;background-clip:text;color:transparent;}
.eyebrow{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--accent);}
.text-muted2{color:var(--muted2)!important;}.text-mut{color:var(--muted)!important;}
.h-display{line-height:.92;letter-spacing:-.035em;}
.card-glass{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:18px;}
.card-stat{background:linear-gradient(160deg,rgba(91,123,255,.14),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.08);border-radius:18px;}
.stat-num{font-size:clamp(38px,4.6vw,60px);font-weight:900;letter-spacing:-.04em;line-height:1;}
.imp-nav{background:rgba(5,11,26,.8);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.08);}
.imp-nav .nav-link{color:var(--muted2);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;position:relative;padding:.4rem .25rem;}
.imp-nav .nav-link:hover{color:#fff;}
.imp-nav .nav-link.active{color:#fff;}
.imp-nav .nav-link.active::after{content:"";position:absolute;left:.25rem;right:.25rem;bottom:-2px;height:1.5px;background:var(--blue);}
.navbar-toggler{border:0;}
.navbar-toggler:focus{box-shadow:none;}
.btn-impact{background:linear-gradient(90deg,#5B7BFF,#A06BFF);color:#050B1A;font-weight:700;border-radius:999px;padding:11px 22px;border:none;text-transform:uppercase;letter-spacing:.04em;font-size:12px;display:inline-flex;align-items:center;gap:9px;white-space:nowrap;transition:filter .2s;}
.btn-impact:hover{color:#050B1A;filter:brightness(1.07);}
.btn-impact-lg{padding:16px 30px;font-size:15px;text-transform:none;letter-spacing:0;border-radius:999px;}
.btn-ghost{color:var(--muted2);font-size:15px;font-weight:600;padding:6px 2px;position:relative;}
.btn-ghost::after{content:"";position:absolute;left:0;bottom:-3px;height:1.5px;width:0;background:currentColor;transition:width .28s ease;}
.btn-ghost:hover{color:#fff;}.btn-ghost:hover::after{width:100%;}
.hero-video{position:relative;min-height:100vh;overflow:hidden;}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:impZoom 26s ease-in-out infinite alternate;}
.hero-overlay{position:absolute;inset:0;background:radial-gradient(120% 90% at 20% 50%,rgba(5,11,26,.86),rgba(5,11,26,.5) 60%,rgba(5,11,26,.82));}
@keyframes impZoom{from{transform:scale(1.04);}to{transform:scale(1.14);}}
.exp-icon{font-size:46px;color:#fff;margin-bottom:18px;display:block;}
.exp-icon-lg{font-size:54px;color:#fff;margin-bottom:18px;display:block;}
.tag{font-size:12.5px;font-weight:500;color:#9FB0D4;border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:8px 15px;display:inline-block;}
.filter-btn{font-size:13px;font-weight:500;color:var(--muted2);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:10px 18px;background:transparent;cursor:pointer;transition:all .2s;}
.filter-btn.active{color:#050B1A;background:#fff;border-color:#fff;font-weight:600;}
.work-card-inner{border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.09);transition:transform .25s;display:block;height:100%;}
.work-card-inner:hover{transform:translateY(-5px);}
.thumb{aspect-ratio:4/3;background:repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0 11px,transparent 11px 22px),#0B1530;display:flex;align-items:flex-end;padding:16px;}
.thumb-tall{aspect-ratio:3/4;}
.exp-row{border-top:1px solid rgba(255,255,255,.1);}
.marquee{overflow:hidden;padding:0;}
.marquee-track{display:flex;width:max-content;gap:58px;align-items:center;padding-left:58px;animation:impMarquee 80s linear infinite;}
.client-logo{height:72px;width:200px;flex:none;background-repeat:no-repeat;background-position:center;background-size:contain;filter:brightness(0) invert(1);opacity:.5;transition:opacity .25s;}
.client-logo:hover{opacity:1;}
@keyframes impMarquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.cta-box{position:relative;border-radius:28px;overflow:hidden;padding:clamp(48px,7vw,100px);background:linear-gradient(135deg,#0B1530,#101d44);border:1px solid rgba(91,123,255,.25);}
.cta-glow{position:absolute;top:-40%;right:-10%;width:520px;height:520px;background:radial-gradient(circle,rgba(160,107,255,.4),transparent 60%);filter:blur(20px);}
.imp-field{width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:15px 16px;color:var(--ink);font-family:'Archivo',sans-serif;font-size:15px;font-weight:300;outline:none;transition:border-color .2s,background .2s;}
.imp-field::placeholder{color:#6B7796;}
.imp-field:focus{border-color:var(--blue);background:rgba(91,123,255,.07);}
.imp-label{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#9FB0D4;margin-bottom:9px;display:block;}
@media(max-width:991px){.imp-nav .nav-link.active::after{display:none;}.navbar-collapse{padding-top:14px;}}

.photo-tile{display:block;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.09);cursor:pointer;}
.photo-tile .pimg{aspect-ratio:4/3;background-size:cover;background-position:center;transition:transform .45s ease;}
.photo-tile:hover .pimg{transform:scale(1.06);}
.lb-ctrl{color:#fff;cursor:pointer;user-select:none;opacity:.82;line-height:1;}
.lb-ctrl:hover{opacity:1;}


/* === Utilitaires (styles regroupés depuis les pages) === */
.u-fs135{font-size:13.5px;}
.u-cardp{font-size:14px;line-height:1.55;}
.u-faint{color:#6B7796;}
.u-bgsoft{background:rgba(255,255,255,.03);}
.u-tag105{font-size:10.5px;color:var(--accent);}
.u-step{font-size:12px;color:var(--accent);}
.u-note{font-size:13px;letter-spacing:.1em;color:var(--muted);}
.u-bgdeep{background:#0B1530;}
.u-eyebrowsm{font-size:12px;letter-spacing:.22em;color:var(--accent);}
.u-h3{font-size:22px;letter-spacing:-.01em;}
.u-tag13{font-size:13px;color:var(--accent);}
.u-h2sm{font-size:30px;letter-spacing:-.02em;}
.u-lead17{font-size:17px;line-height:1.6;color:var(--muted2);}
.u-fs17{font-size:17px;}
.u-fs13{font-size:13px;line-height:1.5;}
.u-mw32{max-width:32ch;}
.u-addr{font-size:13.5px;line-height:1.6;}
.u-statlbl{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;}
.u-ctasub{font-size:17px;max-width:46ch;}
.u-fs21{font-size:21px;}
