/* =========================================================
   williamsayemou.com · L'Alchimiste du réel · Refonte 2026
   ========================================================= */
:root{
  --bg:#080D18;--bg-2:#0C1120;--bg-3:#0E1525;--card:#111826;--card-2:#161F30;
  --blue:#2B5BFF;--blue-2:#4573FF;--cyan:#00CFFF;--gold:#FFB800;--wa:#25D366;--wa-2:#1EA952;
  --ink:#E8EDF5;--white:#FFFFFF;--muted:rgba(232,237,245,.56);--dim:rgba(232,237,245,.36);
  --line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.14);
  --grad:linear-gradient(135deg,#2B5BFF 0%,#00CFFF 100%);
  --sans:'Sora',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --serif:'Playfair Display',Georgia,'Times New Roman',serif;
  --ease:cubic-bezier(.22,1,.36,1);--ease-io:cubic-bezier(.76,0,.24,1);
  --gut:clamp(16px,4vw,56px);--max:1280px;--nav-h:72px;--r:20px;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body.is-locked{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
img,svg,video,canvas{display:block;max-width:100%}
input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--cyan);color:#04121a}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:linear-gradient(var(--blue),var(--cyan));border-radius:6px}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}
.skip{position:fixed;left:16px;top:-60px;z-index:100001;background:var(--blue);color:#fff;padding:10px 16px;border-radius:10px;font-weight:700;transition:top .2s}
.skip:focus{top:16px}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.sec{position:relative;padding:clamp(80px,12vw,150px) 0}
em,.it{font-family:var(--serif);font-style:italic;font-weight:700}

/* ---------- GRAIN + PROGRESS ---------- */
.grain{position:fixed;inset:-50%;z-index:9990;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-6%,2%)}80%{transform:translate(5%,5%)}100%{transform:translate(0,0)}}
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:100000;transform-origin:0 50%;transform:scaleX(0);background:var(--grad);box-shadow:0 0 12px rgba(0,207,255,.6)}

/* ---------- LOADER ---------- */
#loader{display:none}
.js #loader{display:block;position:fixed;inset:0;z-index:99999;pointer-events:all}
.ld-panel{position:absolute;left:0;right:0;height:50.5%;background:var(--bg);will-change:transform}
.ld-panel.top{top:0}.ld-panel.bot{bottom:0}
.ld-panel::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 50% 100%,rgba(43,91,255,.16),transparent 70%)}
.ld-panel.bot::after{background:radial-gradient(ellipse 60% 80% at 50% 0%,rgba(43,91,255,.16),transparent 70%)}
.ld-seam{position:absolute;left:50%;top:50%;width:min(560px,80vw);height:1px;transform:translate(-50%,-50%) scaleX(0);background:linear-gradient(90deg,transparent,var(--cyan),transparent);box-shadow:0 0 18px var(--cyan);z-index:2}
.ld-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;z-index:3}
.ld-logo{position:relative;width:min(300px,68vw);aspect-ratio:240/59;transform-origin:0 0;will-change:transform}
.ld-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.ld-logo .base{filter:grayscale(1) brightness(.55);opacity:.35}
.ld-logo .fill{clip-path:inset(0 100% 0 0)}
.ld-scan{position:absolute;top:-14%;bottom:-14%;left:0;width:2px;background:linear-gradient(transparent,var(--cyan),transparent);box-shadow:0 0 14px 2px rgba(0,207,255,.7)}
.ld-meta{display:flex;align-items:center;gap:16px;width:min(300px,68vw)}
.ld-bar{flex:1;height:1px;background:var(--line-2);position:relative;overflow:hidden}
.ld-bar i{position:absolute;inset:0;background:var(--grad);transform-origin:0 50%;transform:scaleX(0)}
.ld-big{position:absolute;z-index:3;left:var(--gut);bottom:18px;display:flex;align-items:flex-start;line-height:.8;font-weight:400;letter-spacing:-.05em;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.9)}
.ld-count{font-size:clamp(72px,13vw,190px)}
.ld-big small{font-size:clamp(20px,2.4vw,34px);font-weight:400;color:var(--cyan);margin:.2em 0 0 .2em;letter-spacing:0}
.ld-halo{position:absolute;left:50%;top:50%;width:min(560px,92vw);aspect-ratio:1;margin:calc(min(560px,92vw) / -2) 0 0 calc(min(560px,92vw) / -2);border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(0,207,255,.16),transparent 45%),radial-gradient(circle at 72% 70%,rgba(43,91,255,.2),transparent 50%);animation:spin 8s linear infinite;pointer-events:none;will-change:transform}
.ld-tag{font-family:var(--serif);font-style:italic;font-size:clamp(14px,1.6vw,17px);color:var(--dim);text-align:center;padding:0 24px;overflow:hidden}
.ld-tag span{display:inline-block}
.ld-corner{position:absolute;z-index:3;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);font-weight:600}
.ld-corner.tl{top:28px;left:var(--gut)}.ld-corner.tr{top:28px;right:var(--gut)}.ld-corner.br{bottom:28px;right:var(--gut)}

/* ---------- CURSOR ---------- */
.cursor,.cursor-dot{display:none}
@media (hover:hover) and (pointer:fine){
  .has-cursor .cursor,.has-cursor .cursor-dot{display:block;position:fixed;top:0;left:0;z-index:99995;pointer-events:none;border-radius:50%}
  .has-cursor .cursor{display:flex;width:40px;height:40px;margin:-20px 0 0 -20px;border:1px solid rgba(255,255,255,.35);transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .35s,border-color .35s,opacity .3s;align-items:center;justify-content:center}
  .has-cursor .cursor-dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}
  .cursor span{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;opacity:0;transition:opacity .25s}
  .cursor.is-link{width:64px;height:64px;margin:-32px 0 0 -32px;border-color:rgba(0,207,255,.6);background:rgba(0,207,255,.06)}
  .cursor.is-play{width:92px;height:92px;margin:-46px 0 0 -46px;background:var(--blue);border-color:var(--blue);box-shadow:0 10px 40px rgba(43,91,255,.5)}
  .cursor.is-play span{opacity:1}
  .cursor.is-hidden,.cursor-dot.is-hidden{opacity:0}
}

/* ---------- BUTTONS ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:56px;padding:0 28px;border-radius:999px;font-size:15px;font-weight:700;letter-spacing:.01em;white-space:nowrap;overflow:hidden;isolation:isolate;transition:transform .3s var(--ease),box-shadow .3s,background .3s,border-color .3s}
.btn .btn-t{position:relative;z-index:2;display:inline-flex;align-items:center;gap:10px}
.btn svg{width:18px;height:18px;flex-shrink:0}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 10px 30px rgba(43,91,255,.35),inset 0 1px 0 rgba(255,255,255,.2)}
.btn-primary::before{content:'';position:absolute;inset:0;z-index:1;background:var(--grad);opacity:0;transition:opacity .4s}
.btn-primary::after{content:'';position:absolute;top:0;bottom:0;left:-80%;width:50%;z-index:1;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .7s var(--ease)}
.btn-primary:hover::before{opacity:1}.btn-primary:hover::after{left:130%}
.btn-primary:hover{box-shadow:0 16px 44px rgba(0,207,255,.35)}
.btn-ghost{background:rgba(255,255,255,.04);color:#fff;border:1px solid var(--line-2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.btn-ghost:hover{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.08)}
.btn-wa{background:var(--wa);color:#fff;box-shadow:0 10px 30px rgba(37,211,102,.28)}
.btn-wa:hover{background:var(--wa-2)}
.btn-sm{height:44px;padding:0 20px;font-size:13.5px}
.btn .arr{transition:transform .35s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
[data-magnetic]{will-change:transform}

/* ---------- EYEBROW / TITLES ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#9DB7FF}
.eyebrow::before{content:'';width:28px;height:1px;background:var(--grad)}
.eyebrow.center::after{content:'';width:28px;height:1px;background:var(--grad)}
.h2{font-family:var(--serif);font-weight:700;font-size:clamp(34px,5.6vw,76px);line-height:1.04;letter-spacing:-.025em;color:#fff;margin-top:18px}
.h2 em{color:var(--cyan)}
.lead{font-size:clamp(15px,1.3vw,17px);color:var(--muted);line-height:1.8;max-width:580px;margin-top:20px}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap;margin-bottom:clamp(40px,6vw,72px)}
.sec-head.center{flex-direction:column;align-items:center;text-align:center}
.sec-head.center .lead{margin-left:auto;margin-right:auto}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.w>span{display:inline-block;will-change:transform}

/* Reveal states only once JS confirms animation is available */
.anim [data-reveal]{opacity:0;transform:translateY(40px)}
.anim [data-clip]{clip-path:inset(100% 0 0 0)}

/* ---------- NAV ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:9000;height:var(--nav-h);display:flex;align-items:center;transition:transform .5s var(--ease)}
.nav.is-hidden{transform:translateY(-110%)}
.nav-in{width:100%;max-width:1440px;margin:0 auto;padding:0 var(--gut);display:flex;align-items:center;justify-content:space-between;gap:20px}
.nav::before{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(8,13,24,.9),rgba(8,13,24,0));opacity:0;transition:opacity .4s;pointer-events:none}
.nav.is-scrolled::before{opacity:1}
.nav-logo{position:relative;z-index:2;display:block}
.nav-logo img{height:34px;width:auto}
.nav-links{position:relative;display:flex;align-items:center;gap:2px;list-style:none;padding:5px;border-radius:999px;background:rgba(12,17,32,.55);border:1px solid var(--line);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4)}
.nav-links a{position:relative;z-index:2;display:block;padding:9px 16px;font-size:13px;font-weight:400;color:rgba(255,255,255,.62);border-radius:999px;transition:color .25s}
.nav-links a:hover,.nav-links a.is-active{color:#fff}
.nav-pill{position:absolute;z-index:1;top:5px;bottom:5px;left:0;width:0;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08);opacity:0;transition:transform .45s var(--ease),width .45s var(--ease),opacity .3s}
.nav-cta{display:flex;align-items:center;gap:10px;position:relative;z-index:2}
.nav-wa{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(37,211,102,.12);border:1px solid rgba(37,211,102,.35);color:var(--wa);transition:background .3s,color .3s}
.nav-wa:hover{background:var(--wa);color:#fff}
.nav-wa svg{width:20px;height:20px}
.burger{display:none;position:relative;z-index:2;width:48px;height:48px;border-radius:50%;background:rgba(12,17,32,.6);border:1px solid var(--line-2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.burger span{position:absolute;left:14px;right:14px;height:1.5px;background:#fff;border-radius:2px;transition:transform .5s var(--ease),top .5s var(--ease)}
.burger span:nth-child(1){top:19px}.burger span:nth-child(2){top:27px}
.burger.is-open span:nth-child(1){top:23px;transform:rotate(45deg)}
.burger.is-open span:nth-child(2){top:23px;transform:rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:8999;background:var(--bg);display:flex;flex-direction:column;justify-content:space-between;padding:calc(var(--nav-h) + 28px) var(--gut) 32px;clip-path:circle(0% at calc(100% - 44px) 36px);visibility:hidden;transition:clip-path .8s var(--ease-io),visibility 0s .8s}
.menu.is-open{clip-path:circle(150% at calc(100% - 44px) 36px);visibility:visible;transition:clip-path .9s var(--ease-io),visibility 0s}
.menu::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 50% at 100% 0%,rgba(43,91,255,.25),transparent 60%),radial-gradient(ellipse 60% 40% at 0% 100%,rgba(0,207,255,.12),transparent 60%);pointer-events:none}
.menu-links{position:relative;list-style:none;display:flex;flex-direction:column;gap:2px}
.menu-links li{overflow:hidden}
.menu-links a{display:flex;align-items:baseline;gap:14px;font-family:var(--serif);font-weight:700;font-size:clamp(36px,10vw,64px);line-height:1.12;color:#fff;transform:translateY(105%);transition:transform .7s var(--ease),color .25s}
.menu-links a small{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;color:var(--cyan);transform:translateY(-1.2em)}
.menu.is-open .menu-links a{transform:none}
.menu.is-open .menu-links li:nth-child(1) a{transition-delay:.25s}.menu.is-open .menu-links li:nth-child(2) a{transition-delay:.3s}.menu.is-open .menu-links li:nth-child(3) a{transition-delay:.35s}.menu.is-open .menu-links li:nth-child(4) a{transition-delay:.4s}.menu.is-open .menu-links li:nth-child(5) a{transition-delay:.45s}.menu.is-open .menu-links li:nth-child(6) a{transition-delay:.5s}.menu.is-open .menu-links li:nth-child(7) a{transition-delay:.55s}
.menu-links a:hover{color:var(--cyan)}
.menu-foot{position:relative;display:flex;flex-direction:column;gap:14px;opacity:0;transform:translateY(20px);transition:opacity .5s,transform .5s var(--ease)}
.menu.is-open .menu-foot{opacity:1;transform:none;transition-delay:.6s}
.menu-foot .btn{width:100%}
.menu-foot p{font-size:12.5px;color:var(--dim);text-align:center}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--nav-h) + 40px) 0 110px;overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse 55% 65% at 92% 40%,rgba(43,91,255,.26),transparent 62%),radial-gradient(ellipse 45% 50% at 0% 90%,rgba(0,207,255,.13),transparent 60%),var(--bg)}
.hero-grid{position:absolute;inset:0;z-index:-2;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 70% 70% at 50% 45%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 70% 70% at 50% 45%,#000 20%,transparent 75%)}

.hero-in{position:relative;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(24px,4vw,64px);align-items:center}
.hero-status{display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 12px;border-radius:999px;border:1px solid var(--line-2);background:rgba(12,17,32,.5);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:12px;font-weight:600;color:rgba(255,255,255,.75);letter-spacing:.02em}
.dot-live{position:relative;width:8px;height:8px;border-radius:50%;background:var(--wa)}
.dot-live::after{content:'';position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--wa);animation:ping 2s var(--ease) infinite}
@keyframes ping{0%{transform:scale(.6);opacity:1}100%{transform:scale(2.2);opacity:0}}
.hero-title{font-family:var(--serif);font-weight:700;font-size:clamp(40px,4.7vw,80px);line-height:1.03;letter-spacing:-.035em;color:#fff;margin:26px 0 0}
.hero-title .accent{color:var(--cyan);font-style:italic}
.hero-title .accent .w>span{background:linear-gradient(100deg,#00CFFF 0%,#7FE6FF 50%,#2B5BFF 100%);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.04em}
.hero-txt{font-size:clamp(15px,1.25vw,17px);color:var(--muted);line-height:1.8;max-width:520px;margin-top:28px}
.hero-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.hero-proof{display:flex;align-items:center;gap:14px;margin-top:40px;font-size:12.5px;color:var(--dim)}
.hero-proof b{color:rgba(255,255,255,.82);font-weight:600}
.hero-proof .stars{display:flex;gap:2px;color:var(--gold)}
.hero-proof .stars svg{width:14px;height:14px}
.hero-foot{position:absolute;left:0;right:0;bottom:28px;z-index:2}
.hero-foot .wrap{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.scroll-cue{display:flex;align-items:center;gap:14px}
.scroll-cue i{position:relative;width:1px;height:42px;background:var(--line-2);overflow:hidden}
.scroll-cue i::after{content:'';position:absolute;left:0;top:-50%;width:1px;height:50%;background:var(--cyan);animation:cue 2s var(--ease-io) infinite}
@keyframes cue{0%{top:-50%}100%{top:100%}}

/* Hero reel (tilted columns) */
.reel{position:relative;height:min(720px,80vh);perspective:1400px;margin-right:calc((min(100vw,var(--max)) - 100vw) / 2 - var(--gut));-webkit-mask-image:linear-gradient(to bottom,transparent,#000 14%,#000 86%,transparent),linear-gradient(to right,transparent,#000 14%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to bottom,transparent,#000 14%,#000 86%,transparent),linear-gradient(to right,transparent,#000 14%);mask-composite:intersect}
.reel-tilt{position:absolute;inset:-12% -4% -12% 4%;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;transform:rotateX(14deg) rotateY(-16deg) rotateZ(8deg);transform-style:preserve-3d}
.reel-col{display:flex;flex-direction:column;gap:14px;animation:reelUp 38s linear infinite;will-change:transform}
.reel-col:nth-child(2){animation-name:reelDown;animation-duration:46s}
.reel-col:nth-child(3){animation-duration:42s}
.reel:hover .reel-col{animation-play-state:paused}
@keyframes reelUp{from{transform:translateY(0)}to{transform:translateY(-50%)}}
@keyframes reelDown{from{transform:translateY(-50%)}to{transform:translateY(0)}}
.reel-card{position:relative;display:block;width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:var(--card);border:1px solid var(--line);box-shadow:0 20px 50px rgba(0,0,0,.5);flex-shrink:0;transition:border-color .3s,transform .4s var(--ease)}
.reel-card:hover{border-color:rgba(0,207,255,.55);transform:scale(1.04)}
.reel-card img{width:100%;height:100%;object-fit:cover}
.reel-card span{position:absolute;left:10px;bottom:9px;right:10px;font-size:11px;font-weight:700;color:#fff;letter-spacing:.02em;text-shadow:0 1px 8px rgba(0,0,0,.8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reel-card::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(4,7,15,.75),transparent 55%)}
.reel-card span{z-index:2}

/* ---------- STATS ---------- */
.stats{position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--bg-3),var(--bg))}
.stats-g{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{position:relative;padding:clamp(34px,5vw,56px) clamp(14px,2vw,28px);border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat-n{font-family:var(--serif);font-weight:700;font-size:clamp(44px,6vw,84px);line-height:1;color:#fff;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.stat-n em{font-style:normal;color:var(--cyan);font-family:var(--sans);font-weight:400;font-size:.55em;margin-left:4px;vertical-align:.45em}
.stat-l{margin-top:14px;font-size:13px;color:var(--muted);line-height:1.5;max-width:200px}
.stat::before{content:'';position:absolute;top:-1px;left:clamp(14px,2vw,28px);width:40px;height:2px;background:var(--grad)}

/* ---------- CLIENTS ---------- */
.clients{padding:clamp(48px,6vw,72px) 0;overflow:hidden}
.clients-lbl{text-align:center;font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);margin-bottom:34px}
.marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marq 34s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-set{display:flex;align-items:center;gap:22px;padding-right:22px}
@keyframes marq{to{transform:translateX(-50%)}}
.logo-chip{display:flex;align-items:center;justify-content:center;height:84px;padding:14px 28px;border-radius:16px;background:#fff;filter:grayscale(1);opacity:.78;transition:filter .4s,opacity .4s,transform .4s var(--ease)}
.logo-chip:hover{filter:none;opacity:1;transform:translateY(-3px)}
.logo-chip img{height:56px;width:auto;object-fit:contain}

/* ---------- MANIFESTO ---------- */
.manifesto{position:relative;padding:clamp(100px,16vw,200px) 0;text-align:center;overflow:hidden}
.manifesto::before{content:'';position:absolute;left:50%;top:50%;width:min(900px,120vw);aspect-ratio:1;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(43,91,255,.14),transparent 60%);pointer-events:none}
.mani-txt{position:relative;font-family:var(--serif);font-weight:700;font-size:clamp(30px,4.8vw,68px);line-height:1.16;letter-spacing:-.02em;color:#fff;max-width:1100px;margin:22px auto 0}
.mani-txt em{color:var(--cyan)}
.mani-txt .mw{display:inline-block}
.anim .mani-txt .mw{opacity:.14}
.mani-sign{position:relative;margin-top:44px;display:inline-flex;align-items:center;gap:14px;font-size:13px;color:var(--muted)}
.mani-sign img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:50% 25%;border:1px solid var(--line-2)}
.mani-sign b{display:block;color:#fff;font-weight:700;font-size:14px;text-align:left}
.mani-sign span{font-family:var(--serif);font-style:italic}

/* ---------- SERVICES ---------- */
.services{background:var(--bg-2)}
.svc-list{list-style:none;border-top:1px solid var(--line)}
.svc{position:relative;border-bottom:1px solid var(--line);overflow:hidden}
.svc a{position:relative;z-index:2;display:grid;grid-template-columns:72px minmax(0,1.1fr) minmax(0,1fr) 56px;gap:24px;align-items:center;padding:clamp(24px,3vw,38px) 0}
.svc::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(43,91,255,.16),rgba(0,207,255,.04) 60%,transparent);transform:scaleY(0);transform-origin:50% 100%;transition:transform .55s var(--ease)}
.svc:hover::before{transform:scaleY(1);transform-origin:50% 0}
.svc-n{font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--dim);font-variant-numeric:tabular-nums}
.svc-t{font-family:var(--serif);font-weight:700;font-size:clamp(24px,3.2vw,44px);line-height:1.1;color:#fff;letter-spacing:-.02em;transition:transform .55s var(--ease),color .3s}
.svc:hover .svc-t{transform:translateX(14px);color:var(--cyan)}
.svc-d{font-size:14px;line-height:1.7;color:var(--muted)}
.svc-arr{width:52px;height:52px;border-radius:50%;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;transition:background .35s,border-color .35s,transform .5s var(--ease)}
.svc-arr svg{width:18px;height:18px;transition:transform .5s var(--ease)}
.svc:hover .svc-arr{background:var(--blue);border-color:var(--blue)}
.svc:hover .svc-arr svg{transform:rotate(-45deg)}
.svc-float{position:fixed;top:0;left:0;z-index:50;width:300px;aspect-ratio:16/10;border-radius:16px;overflow:hidden;pointer-events:none;opacity:0;transform:scale(.7);box-shadow:0 30px 70px rgba(0,0,0,.6);border:1px solid var(--line-2);transition:opacity .35s,transform .45s var(--ease)}
.svc-float.is-on{opacity:1;transform:scale(1)}
.svc-float img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s}
.svc-float img.is-on{opacity:1}

/* ---------- PROCESS ---------- */
.process-g{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px)}
.process-line{position:absolute;top:27px;left:28px;right:28px;height:1px;background:var(--line-2)}
.process-line i{position:absolute;inset:0;background:var(--grad);transform-origin:0 50%;transform:scaleX(0);box-shadow:0 0 12px rgba(0,207,255,.5)}
.step{position:relative}
.step-n{position:relative;z-index:1;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg);border:1px solid var(--line-2);font-size:14px;font-weight:700;color:var(--cyan);font-variant-numeric:tabular-nums;transition:border-color .4s,box-shadow .4s}
.step.is-on .step-n{border-color:var(--cyan);box-shadow:0 0 0 6px rgba(0,207,255,.08),0 0 24px rgba(0,207,255,.3)}
.step h3{margin-top:26px;font-size:19px;font-weight:700;color:#fff;line-height:1.3}
.step p{margin-top:10px;font-size:14px;color:var(--muted);line-height:1.7}
.step .tag{display:inline-block;margin-top:14px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(255,184,0,.35);background:rgba(255,184,0,.06);padding:5px 11px;border-radius:999px}

/* ---------- WORK ---------- */
.work{background:var(--bg-3)}
.work-count{font-family:var(--serif);font-style:italic;font-size:clamp(16px,1.6vw,20px);color:var(--muted)}
.work-count b{font-family:var(--sans);font-style:normal;font-weight:700;color:#fff;font-size:1.6em;margin-right:6px;font-variant-numeric:tabular-nums}
.filters{position:relative;display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:6px;border-radius:999px;border:1px solid var(--line);background:rgba(8,13,24,.6);width:max-content;max-width:100%;margin-bottom:40px}
.filters::-webkit-scrollbar{display:none}
.filter{position:relative;z-index:2;flex-shrink:0;height:40px;padding:0 18px;border-radius:999px;font-size:13px;font-weight:600;color:rgba(255,255,255,.6);transition:color .3s;display:inline-flex;align-items:center;gap:8px}
.filter sup{font-size:11px;font-weight:700;color:var(--dim);transition:color .3s}
.filter.is-active{color:#fff}.filter.is-active sup{color:rgba(255,255,255,.75)}
.filter:hover{color:#fff}
.filter-pill{position:absolute;z-index:1;top:6px;bottom:6px;left:0;width:0;border-radius:999px;background:var(--blue);box-shadow:0 8px 24px rgba(43,91,255,.4);transition:transform .5s var(--ease),width .5s var(--ease)}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2vw,28px)}
.card{display:flex;flex-direction:column;gap:16px;min-width:0}
.card.is-feat{grid-column:span 2;grid-row:span 2}
.card.is-out{display:none}
.card-media{position:relative;display:block;width:100%;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:var(--card);border:1px solid var(--line);cursor:pointer;isolation:isolate;transition:border-color .4s,box-shadow .5s var(--ease)}
.card.is-feat .card-media{aspect-ratio:auto;flex:1;min-height:360px}
.card-media:hover{border-color:rgba(0,207,255,.45);box-shadow:0 30px 70px rgba(0,0,0,.5),0 0 0 1px rgba(0,207,255,.15)}
.card-img{position:absolute;inset:0;overflow:hidden;transition:transform 1s var(--ease)}
.card-media:hover .card-img{transform:scale(1.06)}
.card-img img.h{width:100%;height:100%;object-fit:cover}
.card-img img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.4);filter:blur(22px) brightness(.55) saturate(1.3)}
.card-img .vbox{position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);height:100%;aspect-ratio:9/16;overflow:hidden;box-shadow:0 0 50px rgba(0,0,0,.6)}
.card-img .vbox img{position:absolute;top:0;left:50%;height:100%;width:auto;max-width:none;transform:translateX(-50%)}
.card-shade{position:absolute;inset:0;z-index:2;background:linear-gradient(to top,rgba(4,7,15,.92) 0%,rgba(4,7,15,.35) 40%,rgba(4,7,15,0) 65%);pointer-events:none}
.card-badge{position:absolute;z-index:3;top:14px;left:14px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:6px 11px;border-radius:999px;background:rgba(8,13,24,.62);color:#fff;border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.card-badge.gold{background:linear-gradient(135deg,#FFB800,#FF8A00);color:#1a1100;border-color:transparent}
.card-badge.new{background:var(--cyan);color:#03141c;border-color:transparent}
.card-fmt{position:absolute;z-index:3;top:14px;right:14px;height:28px;padding:0 10px;border-radius:999px;display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.08em;color:rgba(255,255,255,.85);background:rgba(8,13,24,.55);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.card-fmt svg{width:12px;height:12px}
.card-foot{text-align:left;position:absolute;z-index:3;left:0;right:0;bottom:0;padding:clamp(16px,2vw,22px);display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.card-cat{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan)}
.card-title{display:block;margin-top:6px;font-size:clamp(16px,1.4vw,19px);font-weight:700;line-height:1.25;color:#fff;letter-spacing:-.01em}
.card.is-feat .card-title{font-family:var(--serif);font-size:clamp(26px,3vw,42px);line-height:1.08;letter-spacing:-.02em}
.card-play{flex-shrink:0;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .35s,transform .5s var(--ease),border-color .35s}
.card-play svg{width:18px;height:18px;margin-left:2px}
.card-media:hover .card-play{background:var(--blue);border-color:var(--blue);transform:scale(1.12)}
.card.is-feat .card-play{width:64px;height:64px}
.card-short{font-size:14px;line-height:1.7;color:var(--muted)}
.card-more{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#fff;align-self:flex-start;padding:4px 0;border-bottom:1px solid var(--line-2);transition:border-color .3s,color .3s}
.card-more svg{width:14px;height:14px;transition:transform .35s var(--ease)}
.card-more:hover{color:var(--cyan);border-color:var(--cyan)}.card-more:hover svg{transform:translateX(4px)}
.work-cta{margin-top:64px;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
.work-cta p{font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.4vw,30px);color:#fff}

/* ---------- LIGHTBOX ---------- */
.lb{position:fixed;inset:0;z-index:9500;display:flex;visibility:hidden;pointer-events:none}
.lb.is-open{visibility:visible;pointer-events:all}
.lb-bg{position:absolute;inset:0;background:rgba(4,7,14,.9);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);opacity:0;transition:opacity .5s}
.lb.is-open .lb-bg{opacity:1}
.lb-in{position:relative;z-index:2;width:100%;height:100%;display:grid;grid-template-columns:minmax(0,1fr) 400px;opacity:0;transform:translateY(30px) scale(.98);transition:opacity .5s .05s,transform .6s .05s var(--ease)}
.lb.is-open .lb-in{opacity:1;transform:none}
.lb-stage{display:flex;align-items:center;justify-content:center;padding:clamp(70px,6vw,90px) clamp(16px,3vw,48px) clamp(24px,4vw,48px);min-width:0}
.lb-player{background-size:cover;background-position:center;position:relative;width:100%;max-width:1100px;aspect-ratio:16/9;max-height:100%;border-radius:18px;overflow:hidden;background:#000;box-shadow:0 0 0 1px rgba(0,207,255,.22),0 40px 100px rgba(0,0,0,.7)}
.lb-player.v{width:auto;height:min(80vh,820px);aspect-ratio:9/16;max-width:100%}
.lb-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lb-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.lb-loading i{width:40px;height:40px;border-radius:50%;border:2px solid rgba(255,255,255,.12);border-top-color:var(--cyan);animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.lb-side{position:relative;border-left:1px solid var(--line);background:rgba(12,17,32,.7);padding:clamp(80px,7vw,96px) 34px 32px;display:flex;flex-direction:column;gap:18px;overflow-y:auto;overscroll-behavior:contain}
.lb-idx{font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--dim);font-variant-numeric:tabular-nums}
.lb-cat{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan)}
.lb-title{font-family:var(--serif);font-weight:700;font-size:clamp(28px,2.6vw,38px);line-height:1.08;letter-spacing:-.02em;color:#fff}
.lb-client{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.lb-client b{color:#fff;font-weight:600}
.lb-desc{font-size:15px;line-height:1.85;color:rgba(232,237,245,.72)}
.lb-actions{margin-top:auto;padding-top:12px;display:flex;flex-direction:column;gap:10px}
.lb-actions .btn{width:100%}
.lb-nav{display:flex;gap:10px}
.lb-nav button{flex:1;height:48px;border-radius:999px;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:600;color:rgba(255,255,255,.8);transition:background .3s,border-color .3s}
.lb-nav button:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.3)}
.lb-nav svg{width:16px;height:16px}
.lb-close{position:absolute;z-index:5;top:18px;right:18px;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);border:1px solid var(--line-2);color:#fff;transition:background .3s,transform .5s var(--ease)}
.lb-close:hover{background:var(--blue);transform:rotate(90deg)}
.lb-close svg{width:20px;height:20px}

/* ---------- FORMATIONS BAND ---------- */
.band{position:relative;overflow:hidden;background:var(--bg)}
.band-marq{padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap}
.band-marq .marquee-track{animation-duration:40s}
.band-marq span{display:inline-flex;align-items:center;gap:40px;padding-right:40px;font-family:var(--serif);font-weight:700;font-size:clamp(40px,7vw,104px);line-height:1;letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.22)}
.band-marq span i{font-style:italic;color:var(--cyan);-webkit-text-stroke:0}
.band-marq span b{width:18px;height:18px;border-radius:50%;background:var(--grad);flex-shrink:0}
.band-box{position:relative;margin:clamp(56px,8vw,96px) auto 0;border-radius:32px;padding:clamp(36px,6vw,80px);overflow:hidden;background:linear-gradient(135deg,#0E1A3D 0%,#0C1120 55%,#071E2A 100%);border:1px solid rgba(43,91,255,.25);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:40px;align-items:center}
.band-box::before{content:'';position:absolute;right:-10%;top:-40%;width:60%;aspect-ratio:1;background:radial-gradient(circle,rgba(0,207,255,.22),transparent 65%);pointer-events:none}
.band-box .h2{font-size:clamp(32px,4.4vw,60px)}
.band-points{list-style:none;display:flex;flex-direction:column;gap:14px;position:relative}
.band-points li{display:flex;gap:14px;align-items:flex-start;font-size:15px;color:rgba(255,255,255,.8);line-height:1.6}
.band-points li span{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:rgba(0,207,255,.12);border:1px solid rgba(0,207,255,.35);display:flex;align-items:center;justify-content:center;color:var(--cyan);font-size:12px;font-weight:700;margin-top:1px}
.band-box .btn{margin-top:30px}

/* ---------- TESTIMONIALS ---------- */
.reviews{background:var(--bg-2)}
.trust{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:24px;overflow:hidden;margin-bottom:40px;background:rgba(17,24,38,.5)}
.trust div{padding:26px 20px;text-align:center;border-right:1px solid var(--line)}
.trust div:last-child{border-right:0}
.trust b{display:block;font-family:var(--serif);font-size:clamp(30px,3.4vw,44px);line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.trust b em{font-style:normal;color:var(--cyan)}
.trust div>span{display:block;margin-top:8px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
#chariow-proof{margin:0 0 40px;width:100%;min-height:50px}
.rv-wrap{position:relative}
.rv-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px var(--gut) 24px;margin:0 calc(var(--gut) * -1);-webkit-overflow-scrolling:touch;cursor:grab}
.rv-track.is-drag{cursor:grabbing;scroll-snap-type:none}
.rv-track::-webkit-scrollbar{display:none}
.rv{flex:0 0 min(440px,84vw);scroll-snap-align:start;position:relative;display:flex;flex-direction:column;gap:20px;padding:32px;border-radius:24px;background:var(--card);border:1px solid var(--line);transition:border-color .4s,transform .5s var(--ease);user-select:none}
.rv:hover{border-color:rgba(43,91,255,.4);transform:translateY(-4px)}
.rv::before{content:'\201C';position:absolute;top:10px;right:24px;font-family:var(--serif);font-size:110px;line-height:1;color:rgba(0,207,255,.1)}
.rv-stars{display:flex;gap:3px;color:var(--gold)}.rv-stars svg{width:15px;height:15px}
.rv p{font-family:var(--serif);font-style:italic;font-size:16px;line-height:1.8;color:rgba(255,255,255,.82);flex:1}
.rv-au{display:flex;align-items:center;gap:12px;padding-top:18px;border-top:1px solid var(--line)}
.rv-av{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;flex-shrink:0}
.rv-au b{display:block;font-size:14px;color:#fff}
.rv-au small{display:block;font-size:11.5px;color:var(--dim);margin-top:2px}
.rv-au .note{margin-left:auto;font-family:var(--serif);font-size:20px;font-weight:700;color:var(--gold)}
.rv-ctrl{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:12px}
.rv-bar{flex:1;max-width:280px;height:2px;background:var(--line-2);border-radius:2px;overflow:hidden}
.rv-bar i{display:block;height:100%;width:30%;background:var(--grad);transform-origin:0 50%;transition:transform .2s}
.rv-btns{display:flex;gap:10px}
.rv-btns button{width:50px;height:50px;border-radius:50%;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;transition:background .3s,border-color .3s}
.rv-btns button:hover{background:var(--blue);border-color:var(--blue)}
.rv-btns svg{width:18px;height:18px}

/* ---------- ABOUT ---------- */
.about-g{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,6vw,96px);align-items:center}
.about-img{position:relative}
.about-frame{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:4/5;background:var(--card);border:1px solid var(--line)}
.about-frame img{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover;object-position:50% 30%}
.about-frame::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(8,13,24,.75),transparent 45%)}
.about-chip{position:absolute;z-index:3;display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:18px;background:rgba(12,17,32,.78);border:1px solid var(--line-2);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 20px 50px rgba(0,0,0,.45)}
.about-chip b{font-family:var(--serif);font-size:28px;line-height:1;color:var(--cyan)}
.about-chip span{font-size:11.5px;line-height:1.35;color:var(--muted)}
.about-chip.a{left:-22px;bottom:16%}.about-chip.b{right:-18px;top:10%}
.about-chip.b b{color:var(--gold)}
.about-sig{position:absolute;z-index:3;left:24px;bottom:22px;right:24px;font-family:var(--serif);font-style:italic;font-size:20px;color:#fff}
.about-txt p{font-size:clamp(15px,1.2vw,16.5px);line-height:1.9;color:var(--muted);margin-top:20px}
.about-txt p strong{color:#fff;font-weight:600}
.about-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}
.about-tags span{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;border:1px solid var(--line-2);font-size:13px;font-weight:600;color:rgba(255,255,255,.8);background:rgba(255,255,255,.03)}
.about-tags span::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}

/* ---------- FAQ ---------- */
.faq{background:var(--bg-3)}
.faq-g{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(36px,6vw,96px);align-items:start}
.faq-side{position:sticky;top:calc(var(--nav-h) + 30px)}
.faq-side .btn{margin-top:30px}
.qa{border-bottom:1px solid var(--line)}
.qa:first-child{border-top:1px solid var(--line)}
.qa-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 0;text-align:left;font-size:clamp(16px,1.4vw,19px);font-weight:600;color:#fff;line-height:1.4;transition:color .3s}
.qa-q:hover{color:var(--cyan)}
.qa-i{position:relative;flex-shrink:0;width:38px;height:38px;border-radius:50%;border:1px solid var(--line-2);transition:background .35s,border-color .35s,transform .5s var(--ease)}
.qa-i::before,.qa-i::after{content:'';position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:#fff;transform:translate(-50%,-50%);transition:transform .45s var(--ease)}
.qa-i::after{transform:translate(-50%,-50%) rotate(90deg)}
.qa.is-open .qa-i{background:var(--blue);border-color:var(--blue);transform:rotate(180deg)}
.qa.is-open .qa-i::after{transform:translate(-50%,-50%) rotate(0)}
.qa-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}
.qa.is-open .qa-a{grid-template-rows:1fr}
.qa-a>div{overflow:hidden}
.qa-a p{padding:0 56px 26px 0;font-size:15px;line-height:1.85;color:var(--muted)}

/* ---------- CONTACT ---------- */
.contact{overflow:hidden}
.contact::before{content:'';position:absolute;left:-20%;top:10%;width:70%;aspect-ratio:1;background:radial-gradient(circle,rgba(43,91,255,.14),transparent 62%);pointer-events:none}
.contact-g{position:relative;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(36px,5vw,80px);align-items:start}
.contact-info{position:sticky;top:calc(var(--nav-h) + 30px)}
.c-list{list-style:none;margin-top:36px;display:flex;flex-direction:column;border-top:1px solid var(--line)}
.c-list li{border-bottom:1px solid var(--line)}
.c-list a,.c-list div{display:flex;align-items:center;gap:16px;padding:18px 0;transition:color .3s}
.c-list a:hover{color:var(--cyan)}
.c-ico{width:44px;height:44px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:rgba(43,91,255,.1);border:1px solid rgba(43,91,255,.25);color:var(--cyan)}
.c-ico svg{width:18px;height:18px}
.c-list small{display:block;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.c-list b{display:block;font-size:15px;font-weight:600;color:#fff;margin-top:2px}
.contact-info .btn{margin-top:28px;width:100%}
.c-note{margin-top:14px;font-size:12.5px;color:var(--dim);text-align:center}

.form{position:relative;padding:clamp(24px,3.4vw,44px);border-radius:28px;background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.015));border:1px solid var(--line-2);box-shadow:0 40px 100px rgba(0,0,0,.4);overflow:hidden}
.form::before{content:'';position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--blue),var(--cyan),transparent)}
.f-steps{display:flex;gap:8px;margin-bottom:30px}
.f-step{flex:1;display:flex;flex-direction:column;gap:10px}
.f-step i{display:block;height:3px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden;position:relative}
.f-step i::after{content:'';position:absolute;inset:0;background:var(--grad);transform:scaleX(0);transform-origin:0 50%;transition:transform .6s var(--ease)}
.f-step.is-done i::after,.f-step.is-cur i::after{transform:scaleX(1)}
.f-step.is-cur i::after{transform:scaleX(.5)}
.f-step span{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);transition:color .3s}
.f-step.is-cur span,.f-step.is-done span{color:#fff}
.f-pane{display:none}
.f-pane.is-cur{display:block;animation:paneIn .6s var(--ease)}
@keyframes paneIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
.f-pane.back{animation-name:paneBack}
@keyframes paneBack{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:none}}
.f-h{font-family:var(--serif);font-weight:700;font-size:clamp(22px,2.2vw,30px);line-height:1.15;color:#fff}
.f-sub{font-size:13.5px;color:var(--muted);margin-top:8px;margin-bottom:24px}
.types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.type{position:relative;display:block;cursor:pointer}
.type input{position:absolute;opacity:0;pointer-events:none}
.type-in{position:relative;display:flex;gap:14px;align-items:flex-start;height:100%;padding:16px 38px 16px 16px;border-radius:16px;border:1px solid var(--line-2);background:rgba(255,255,255,.025);transition:border-color .3s,background .3s,transform .35s var(--ease),box-shadow .3s}
.type:hover .type-in{border-color:rgba(43,91,255,.5);transform:translateY(-2px)}
.type input:checked+.type-in{border-color:var(--blue);background:rgba(43,91,255,.13);box-shadow:0 10px 30px rgba(43,91,255,.2)}
.type input:focus-visible+.type-in{outline:2px solid var(--cyan);outline-offset:2px}
.type-ico{flex-shrink:0;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(0,207,255,.08);color:var(--cyan);transition:background .3s,color .3s}
.type input:checked+.type-in .type-ico{background:var(--blue);color:#fff}
.type-ico svg{width:20px;height:20px}
.type-t{display:block;font-size:14px;font-weight:700;color:#fff;line-height:1.3}
.type-d{display:block;font-size:12px;color:var(--dim);margin-top:4px;line-height:1.45}
.type-in::after{content:'';position:absolute;top:12px;right:12px;width:18px;height:18px;border-radius:50%;border:1px solid var(--line-2);transition:background .3s,border-color .3s}
.type input:checked+.type-in::after{border-color:var(--cyan);background:var(--cyan) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2303141c' stroke-width='3.5' stroke-linecap='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") no-repeat center/10px}
.f-lbl{display:block;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.62);margin:22px 0 12px}
.f-lbl .opt{text-transform:none;letter-spacing:0;font-weight:400;color:var(--dim);margin-left:6px}
.f-lbl .req{color:var(--cyan);margin-left:2px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-flex;align-items:center;height:42px;padding:0 16px;border-radius:999px;border:1px solid var(--line-2);font-size:13px;font-weight:600;color:rgba(255,255,255,.7);transition:all .3s}
.chip:hover span{border-color:rgba(255,255,255,.3);color:#fff}
.chip input:checked+span{background:#fff;border-color:#fff;color:#0A0F1C}
.chip input:focus-visible+span{outline:2px solid var(--cyan);outline-offset:2px}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fields .full{grid-column:1/-1}
.field{position:relative}
.field input,.field textarea{width:100%;padding:24px 16px 10px;border-radius:14px;border:1px solid var(--line-2);background:rgba(255,255,255,.035);color:#fff;font-size:15px;outline:none;transition:border-color .3s,background .3s,box-shadow .3s;-webkit-appearance:none;appearance:none}
.field textarea{min-height:150px;resize:vertical;line-height:1.6;padding-top:30px}
.field label{position:absolute;left:17px;top:17px;font-size:14.5px;color:var(--dim);pointer-events:none;transform-origin:0 0;transition:transform .3s var(--ease),color .3s}
.field label .req{color:var(--cyan)}
.field input:focus,.field textarea:focus{border-color:rgba(43,91,255,.7);background:rgba(43,91,255,.06);box-shadow:0 0 0 4px rgba(43,91,255,.12)}
.field input:focus+label,.field input:not(:placeholder-shown)+label,.field textarea:focus+label,.field textarea:not(:placeholder-shown)+label{transform:translateY(-10px) scale(.76);color:#9DB7FF}
.field input::placeholder,.field textarea::placeholder{color:transparent}
.field.is-err input,.field.is-err textarea{border-color:rgba(255,107,107,.7);background:rgba(255,107,107,.05)}
.f-err{display:block;font-size:12px;font-weight:600;color:#FF8080;margin-top:6px}
.types.is-err{outline:1px solid rgba(255,107,107,.5);outline-offset:6px;border-radius:18px}
.f-count{position:absolute;right:14px;bottom:12px;font-size:11px;color:var(--dim);font-variant-numeric:tabular-nums;pointer-events:none}
.f-count.ok{color:var(--wa)}
.f-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.f-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:30px}
.f-nav .btn{flex:0 0 auto}
.f-nav .btn-primary{margin-left:auto}
.f-alert{display:none;margin-top:18px;padding:12px 16px;border-radius:12px;background:rgba(255,107,107,.09);border:1px solid rgba(255,107,107,.3);color:#FFA3A3;font-size:13.5px;font-weight:600}
.f-alert.is-on{display:block}
.f-foot{margin-top:18px;font-size:12px;color:var(--dim);text-align:center}
.f-ok{display:none;text-align:center;padding:30px 10px}
.f-ok.is-on{display:block;animation:paneIn .6s var(--ease)}
.f-ok svg{width:88px;height:88px;margin:0 auto 22px}
.f-ok circle{stroke:rgba(16,185,129,.3)}
.f-ok path{stroke:#10b981;stroke-dasharray:40;stroke-dashoffset:40;animation:draw .8s .3s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.f-ok h3{font-family:var(--serif);font-size:32px;color:#fff}
.f-ok p{margin-top:12px;color:var(--muted);font-size:15px;line-height:1.7;max-width:420px;margin-left:auto;margin-right:auto}
.f-ok .btn{margin-top:26px}

/* ---------- FOOTER ---------- */
.footer{position:relative;background:#05080F;border-top:1px solid var(--line);padding:clamp(64px,8vw,110px) 0 28px;overflow:hidden}
.ft-top{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:40px}
.ft-logo img{height:38px;width:auto}
.ft-tag{margin-top:18px;font-family:var(--serif);font-style:italic;font-size:15px;line-height:1.7;color:var(--dim);max-width:320px}
.ft-col h4{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-bottom:18px}
.ft-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.ft-col a{font-size:14px;color:rgba(255,255,255,.6);transition:color .3s}
.ft-col a:hover{color:var(--cyan)}
.ft-social{display:flex;gap:10px;margin-top:24px}
.ft-social a{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-2);color:rgba(255,255,255,.6);transition:all .35s var(--ease)}
.ft-social a:hover{background:var(--blue);border-color:var(--blue);color:#fff;transform:translateY(-3px)}
.ft-social svg{width:18px;height:18px}
.ft-big{margin:clamp(56px,8vw,96px) 0 0;font-family:var(--serif);font-style:italic;font-weight:700;font-size:clamp(40px,10.4vw,168px);line-height:1.05;letter-spacing:-.04em;text-align:center;white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.16);background-image:linear-gradient(90deg,#2B5BFF,#00CFFF,#7FE6FF,#2B5BFF);background-size:300% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;transition:-webkit-text-stroke-color .5s;user-select:none;cursor:default}
.ft-big.is-lit{-webkit-text-stroke-color:transparent;-webkit-text-fill-color:transparent;animation:shine 4s linear infinite}
.ft-big:not(.is-lit){background-image:none}
@keyframes shine{from{background-position:100% 0}to{background-position:-200% 0}}
.ft-bot{margin-top:40px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--dim)}
.ft-bot b{color:rgba(0,207,255,.7);font-weight:600}
.to-top{display:inline-flex;align-items:center;gap:10px;font-weight:600;color:rgba(255,255,255,.7);transition:color .3s}
.to-top:hover{color:var(--cyan)}
.to-top i{width:38px;height:38px;border-radius:50%;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center}
.to-top svg{width:16px;height:16px}

/* ---------- FLOATING WA (mobile) ---------- */
.fab{position:fixed;right:16px;bottom:16px;z-index:8800;width:58px;height:58px;border-radius:50%;display:none;align-items:center;justify-content:center;background:var(--wa);color:#fff;box-shadow:0 12px 30px rgba(37,211,102,.4);transform:scale(0);transition:transform .5s var(--ease)}
.fab.is-on{transform:scale(1)}
.fab svg{width:28px;height:28px}

/* ---------- COOKIE ---------- */
.cookie{position:fixed;left:20px;bottom:20px;z-index:9400;width:min(400px,calc(100% - 40px));padding:20px;border-radius:20px;background:rgba(12,17,32,.94);border:1px solid var(--line-2);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 30px 80px rgba(0,0,0,.6);transform:translateY(140%);transition:transform .7s var(--ease)}
.cookie.is-on{transform:none}
.cookie b{display:block;font-size:14px;color:#fff;margin-bottom:6px}
.cookie p{font-size:12.5px;line-height:1.6;color:var(--muted)}
.cookie-btns{display:flex;gap:8px;margin-top:16px}
.cookie-btns button{flex:1;height:42px;border-radius:999px;font-size:13px;font-weight:700;transition:background .3s,border-color .3s}
.cookie-btns .ck-no{border:1px solid var(--line-2);color:rgba(255,255,255,.7)}
.cookie-btns .ck-no:hover{border-color:rgba(255,255,255,.35)}
.cookie-btns .ck-yes{background:var(--blue);color:#fff}
.cookie-btns .ck-yes:hover{background:var(--blue-2)}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1180px){
  .nav-links a{padding:9px 12px}
}
@media (max-width:1080px){
  .nav-links,.nav-cta .btn{display:none}
  .burger{display:block}
  .hero-in{grid-template-columns:1fr}
  .hero{justify-content:center;padding-bottom:60px}
  .hero-title{font-size:clamp(38px,7.4vw,72px)}
  .lb-actions{margin-top:24px}
  .reel{height:auto;perspective:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);margin:16px calc(var(--gut) * -1) 0;overflow:hidden}
  .reel-tilt{position:relative;inset:auto;display:block;transform:none}
  .reel-col{flex-direction:row;width:max-content;animation:marq 50s linear infinite}
  .reel-col:nth-child(n+2){display:none}
  .reel-card{width:260px}
  .hero-foot{display:none}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card.is-feat{grid-row:auto}
  .card.is-feat .card-media{aspect-ratio:16/9;min-height:0;flex:none}
  .svc a{grid-template-columns:56px minmax(0,1fr) 52px}
  .svc-d{grid-column:2;grid-row:2}
  .svc-arr{grid-column:3;grid-row:1}
  .lb-in{grid-template-columns:1fr;grid-template-rows:auto 1fr;overflow-y:auto}
  .lb-stage{padding:80px 16px 16px}
  .lb-player.v{height:min(64vh,640px)}
  .lb-side{border-left:0;border-top:1px solid var(--line);padding:28px var(--gut) 40px;overflow:visible}
  .about-g,.faq-g,.contact-g{grid-template-columns:1fr}
  .faq-side,.contact-info{position:relative;top:auto}
  .about-img{max-width:520px}
  .band-box{grid-template-columns:1fr}
  .ft-top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ft-top>div:first-child{grid-column:1/-1}
}
@media (max-width:760px){
  :root{--nav-h:64px;--r:16px}
  .stats-g{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .grid{grid-template-columns:1fr}
  .card.is-feat{grid-column:auto}
  .process-g{grid-template-columns:1fr;gap:34px;padding-left:76px}
  .process-line{top:28px;bottom:28px;left:28px;right:auto;width:1px;height:auto}
  .process-line i{transform-origin:50% 0;transform:scaleY(0)}
  .step-n{position:absolute;left:-76px;top:0}
  .step h3{margin-top:12px}
  .svc a{grid-template-columns:40px minmax(0,1fr) 44px;gap:14px}
  .svc-arr{width:44px;height:44px}
  .trust{grid-template-columns:repeat(2,1fr)}
  .trust div:nth-child(2){border-right:0}
  .trust div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .types,.fields{grid-template-columns:1fr}
  .fields .full{grid-column:auto}
  .about-chip.a{left:10px}.about-chip.b{right:10px}
  .qa-a p{padding-right:0}
  .hero-btns .btn{flex:1 1 100%}
  .f-nav .btn{flex:1}
  .ft-top{grid-template-columns:1fr 1fr;gap:32px}
  .fab{display:flex}
  .cookie{left:12px;right:12px;bottom:12px;width:auto}
  .logo-chip{height:68px;padding:10px 20px}.logo-chip img{height:44px}
  .clients-lbl{padding:0 var(--gut)}
}
@media (max-width:420px){
  .ft-top{grid-template-columns:1fr}
  .hero-title{font-size:clamp(36px,11vw,48px)}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .grain{display:none}
  .reel-col,.marquee-track{animation:none!important}
}

[hidden]{display:none!important}
.f-hint{margin-top:8px;font-size:12px;line-height:1.55;color:var(--dim)}
.cursor,.cursor-dot{opacity:0}
.has-cursor.cursor-on .cursor,.has-cursor.cursor-on .cursor-dot{opacity:1}
.lb-player::before{content:'';position:absolute;inset:0;background:inherit;filter:blur(20px) brightness(.5);transform:scale(1.2)}
@media (max-width:760px){.ld-corner.tr{display:none}}
@keyframes ldIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.js .ld-center{animation:ldIn .9s cubic-bezier(.22,1,.36,1) both}
.lb-shield{position:absolute;left:0;right:0;top:0;height:64px;z-index:3;background:transparent}
.lb-player.v .lb-shield{height:72px}
.lb-end{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;background:radial-gradient(ellipse at 50% 40%,rgba(43,91,255,.28),transparent 60%),rgba(6,10,20,.94);animation:paneIn .5s var(--ease)}
.lb-end-k{font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--cyan)}
.lb-end b{font-family:var(--serif);font-size:clamp(22px,2.6vw,34px);line-height:1.15;color:#fff;max-width:560px}
.lb-end-btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:8px}
.lb-end-bar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--grad);transform-origin:0 50%;animation:endBar 6s linear forwards}
@keyframes endBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---------- RÉSEAUX SOCIAUX ---------- */
.rail{position:fixed;left:22px;bottom:0;z-index:8500;display:flex;flex-direction:column;align-items:center;gap:6px;opacity:0;transform:translateY(20px);transition:opacity .6s,transform .6s var(--ease)}
.rail.is-on{opacity:1;transform:none}
.rail a{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.55);transition:color .3s,background .3s,transform .4s var(--ease)}
.rail a:hover{color:#fff;background:rgba(43,91,255,.25);transform:translateY(-3px)}
.rail a svg{width:16px;height:16px}
.rail i{display:block;width:1px;height:70px;margin-top:8px;background:linear-gradient(var(--line-2),transparent)}
.rail .rail-mail{position:fixed;right:22px;bottom:110px;width:auto;height:auto;border-radius:0;writing-mode:vertical-rl;font-size:11.5px;font-weight:600;letter-spacing:.14em;color:rgba(255,255,255,.45);background:none}
.rail .rail-mail:hover{color:var(--cyan);background:none;transform:translateY(-3px)}
.rail .rail-mail::after{content:'';position:fixed;right:28px;bottom:0;width:1px;height:90px;background:linear-gradient(var(--line-2),transparent)}
.soc-block{margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}
.soc-lbl{display:block;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-bottom:14px}
.soc-pills{display:flex;flex-wrap:wrap;gap:8px}
.soc-pill{display:inline-flex;align-items:center;gap:9px;height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line-2);font-size:13.5px;font-weight:600;color:rgba(255,255,255,.8);transition:background .3s,border-color .3s,color .3s,transform .4s var(--ease)}
.soc-pill svg{width:16px;height:16px}
.soc-pill:hover{background:var(--blue);border-color:var(--blue);color:#fff;transform:translateY(-2px)}
.menu-soc{display:flex;justify-content:center;gap:10px}
.menu-soc a{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-2);color:rgba(255,255,255,.75)}
.menu-soc a svg{width:18px;height:18px}
.menu-foot p a{color:rgba(255,255,255,.7)}
@media (max-width:1280px){.rail{display:none}}
@media (min-width:1281px){.cookie{left:84px}}

/* ---------- PAGES PROJET / SERVICE ---------- */
.sub .nav{position:sticky}
.sub .nav::before{opacity:1}
.page-hero{padding-top:clamp(40px,6vw,80px)}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12.5px;color:var(--dim);margin-bottom:34px}
.crumbs a{color:rgba(255,255,255,.65);transition:color .3s}.crumbs a:hover{color:var(--cyan)}
.crumbs b{color:#fff;font-weight:600}
.pp-g{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start}
.pp-player{position:relative;width:100%;aspect-ratio:16/9;border-radius:22px;overflow:hidden;background:#000;box-shadow:0 0 0 1px rgba(0,207,255,.2),0 40px 90px rgba(0,0,0,.6)}
.pp-player.v{aspect-ratio:9/16;width:min(100%,calc(78vh * 9 / 16),440px);margin:0 auto}
.pp-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.pp-facade{position:absolute;inset:0;width:100%;height:100%;padding:0;cursor:pointer;display:block}
.pp-facade img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.pp-facade:hover img{transform:scale(1.04)}
.pp-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:84px;height:84px;background:var(--blue);border-color:var(--blue);box-shadow:0 14px 40px rgba(43,91,255,.55)}
.pp-play svg{width:26px;height:26px}
.pp-facade:hover .pp-play{transform:translate(-50%,-50%) scale(1.08)}
.pp-title{margin-top:14px;font-size:clamp(32px,4vw,54px)}
.pp-client{margin-top:16px;font-size:14px;color:var(--muted)}.pp-client b{color:#fff}
.pp-desc{margin-top:20px;font-size:16px;line-height:1.85;color:rgba(232,237,245,.78)}
.pp-note{margin-top:16px;font-size:13px;color:var(--dim);line-height:1.6}
.pp-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.pp-nav{display:flex;justify-content:space-between;gap:16px;margin-top:34px;padding-top:20px;border-top:1px solid var(--line);font-size:13px;font-weight:600}
.pp-nav a{color:rgba(255,255,255,.65);transition:color .3s;max-width:48%}.pp-nav a:hover{color:var(--cyan)}
.pp-nav a:last-child{text-align:right}
.pp-more{background:var(--bg-3)}
.all-grid{margin-top:48px}
.svc-h1{font-size:clamp(36px,5.4vw,72px);max-width:1000px}
.svc-points{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.svc-points li{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;border:1px solid var(--line-2);font-size:13px;font-weight:600;color:rgba(255,255,255,.8)}
.svc-points li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}
.svc-body{background:var(--bg-2)}
.svc-blocks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2vw,28px)}
.svc-block{padding:32px;border-radius:24px;background:var(--card);border:1px solid var(--line);transition:border-color .4s,transform .5s var(--ease)}
.svc-block:hover{border-color:rgba(43,91,255,.4);transform:translateY(-4px)}
.svc-block h2{margin-top:18px;font-size:20px;font-weight:700;color:#fff;line-height:1.3}
.svc-block p{margin-top:12px;font-size:15px;line-height:1.8;color:var(--muted)}
.sub .card-media{display:block}
.lb-page{display:block;text-align:center;font-size:12.5px;color:var(--dim);padding:6px 0;transition:color .3s}
.lb-page:hover{color:var(--cyan)}
@media (max-width:1080px){.pp-g{grid-template-columns:1fr}.svc-blocks{grid-template-columns:1fr}.sub .nav-links{display:none}}
@media (max-width:760px){.sub-cta{height:40px;padding:0 14px;font-size:12.5px}.pp-player.v{width:min(100%,calc(70vh * 9 / 16))}.pp-nav{flex-direction:column}.pp-nav a{max-width:none}.pp-nav a:last-child{text-align:left}}

/* ---------- MOBILE : galerie compacte, façon appli ---------- */
@media (max-width:560px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .card{gap:0}
  .card.is-feat{grid-column:1/-1}
  .card .card-media{aspect-ratio:3/4;border-radius:16px}
  .card.is-feat .card-media{aspect-ratio:16/10}
  .card .card-short,.card .card-more{display:none}
  .card.is-feat .card-short{display:block;margin-top:12px;font-size:13.5px}
  .card-foot{padding:12px}
  .card-title{font-size:13.5px;line-height:1.25;margin-top:4px}
  .card.is-feat .card-title{font-size:22px}
  .card-cat{font-size:10.5px;letter-spacing:.1em}
  .card .card-play{display:none}
  .card.is-feat .card-play{display:flex;width:48px;height:48px}
  .card-fmt{display:none}
  .card-badge{top:10px;left:10px;font-size:10.5px;padding:5px 9px}
}

.sub .nav-cta .btn{display:inline-flex}

/* ---------- NOUVEL ARRIÈRE-PLAN : aurore lumineuse + faisceaux ---------- */
.bg-fx{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:var(--bg)}
.bg-fx::after{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:30px 30px;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 10%,transparent 75%);mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 10%,transparent 75%)}
.bg-fx i{position:absolute;border-radius:50%;will-change:transform}
.bg-fx .b1{width:70vmax;height:70vmax;left:-20vmax;top:-25vmax;background:radial-gradient(circle,rgba(43,91,255,.20),transparent 62%);animation:drift1 38s ease-in-out infinite alternate}
.bg-fx .b2{width:60vmax;height:60vmax;right:-22vmax;top:20vh;background:radial-gradient(circle,rgba(0,207,255,.12),transparent 62%);animation:drift2 46s ease-in-out infinite alternate}
.bg-fx .b3{width:50vmax;height:50vmax;left:20vw;bottom:-30vmax;background:radial-gradient(circle,rgba(255,184,0,.05),transparent 62%);animation:drift3 52s ease-in-out infinite alternate}
@keyframes drift1{to{transform:translate(18vw,22vh) scale(1.15)}}
@keyframes drift2{to{transform:translate(-20vw,18vh) scale(.9)}}
@keyframes drift3{to{transform:translate(14vw,-16vh) scale(1.1)}}
body{background:transparent}
.services,.svc-body{background:rgba(12,17,32,.55)}
.work,.faq,.pp-more{background:rgba(14,21,37,.55)}
.reviews{background:rgba(12,17,32,.55)}
.stats{background:linear-gradient(180deg,rgba(14,21,37,.7),rgba(8,13,24,.4))}
.band{background:transparent}
.hero-bg{background:radial-gradient(ellipse 55% 65% at 92% 40%,rgba(43,91,255,.22),transparent 62%),radial-gradient(ellipse 45% 50% at 0% 90%,rgba(0,207,255,.10),transparent 60%)}
.hero-beams{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.hero-beams i{position:absolute;top:-30%;width:2px;height:160%;transform-origin:50% 0;background:linear-gradient(to bottom,transparent,rgba(0,207,255,.55) 45%,transparent);filter:blur(1px);opacity:.0;animation:beam 9s ease-in-out infinite}
.hero-beams i::after{content:'';position:absolute;left:-60px;right:-60px;top:0;bottom:0;background:linear-gradient(to bottom,transparent,rgba(43,91,255,.10) 45%,transparent)}
.hero-beams i:nth-child(1){left:62%;transform:rotate(24deg);animation-delay:0s}
.hero-beams i:nth-child(2){left:78%;transform:rotate(24deg);animation-delay:3s}
.hero-beams i:nth-child(3){left:46%;transform:rotate(24deg);animation-delay:6s}
@keyframes beam{0%,100%{opacity:0}40%,60%{opacity:.9}}
.hero-spot{--mx:50%;--my:40%;position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(600px circle at var(--mx) var(--my),rgba(0,207,255,.10),transparent 45%)}
@media (max-width:760px){.bg-fx .b1,.bg-fx .b2,.bg-fx .b3{animation-duration:70s}.hero-beams i:nth-child(3){display:none}}

/* ---------- BLOC CONTACT EN BAS DE PAGE ---------- */
.ft-contact{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;align-items:center;padding:clamp(28px,4vw,48px);margin-bottom:clamp(48px,6vw,80px);border-radius:28px;background:linear-gradient(135deg,rgba(43,91,255,.16),rgba(0,207,255,.05) 60%,rgba(255,255,255,.02));border:1px solid rgba(43,91,255,.28);position:relative;overflow:hidden}
.ft-contact::before{content:'';position:absolute;right:-12%;top:-60%;width:50%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(0,207,255,.18),transparent 65%);pointer-events:none}
.ftc-mail{display:inline-block;margin-top:16px;font-family:var(--serif);font-style:italic;font-weight:700;font-size:clamp(24px,3.4vw,46px);line-height:1.1;color:#fff;letter-spacing:-.02em;word-break:break-word;background:linear-gradient(90deg,#fff,#fff) no-repeat 0 100%/0 2px;transition:background-size .6s var(--ease),color .3s;padding-bottom:4px}
.ftc-mail:hover{color:var(--cyan);background-size:100% 2px}
.ftc-sub{margin-top:14px;font-size:14.5px;line-height:1.7;color:var(--muted)}
.ftc-sub a{color:#fff;font-weight:600}
.ftc-r{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ftc-btn{display:flex;align-items:center;gap:12px;height:56px;padding:0 20px;border-radius:16px;border:1px solid var(--line-2);background:rgba(8,13,24,.5);font-size:14.5px;font-weight:600;color:#fff;transition:background .3s,border-color .3s,transform .4s var(--ease)}
.ftc-btn svg{width:20px;height:20px;flex-shrink:0;color:var(--cyan)}
.ftc-btn:hover{background:var(--blue);border-color:var(--blue);transform:translateY(-3px)}
.ftc-btn:hover svg{color:#fff}
.ftc-wa{background:var(--wa);border-color:var(--wa)}.ftc-wa svg{color:#fff}.ftc-wa:hover{background:var(--wa-2);border-color:var(--wa-2)}
@media (max-width:860px){.ft-contact{grid-template-columns:1fr}}
@media (max-width:380px){.ftc-r{grid-template-columns:1fr}}

/* Reflet lumineux sur le logo à la fin du chargement */
.ld-logo::after{content:'';position:absolute;inset:-10% -4%;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.85) 50%,transparent 65%);transform:translateX(-120%);mix-blend-mode:overlay;pointer-events:none;-webkit-mask:url(../img/logo.png) center/contain no-repeat;mask:url(../img/logo.png) center/contain no-repeat}
.ld-logo.sheen::after{animation:sheen .8s cubic-bezier(.4,0,.2,1) forwards}
@keyframes sheen{to{transform:translateX(120%)}}
.ld-logo::before{content:'';position:absolute;left:50%;top:50%;width:140%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(0,207,255,.5);transform:translate(-50%,-50%) scale(.4);opacity:0;pointer-events:none}
.ld-logo.sheen::before{animation:ring .9s ease-out forwards}
@keyframes ring{0%{opacity:.9;transform:translate(-50%,-50%) scale(.4)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.3)}}
