/* ===== LinkeBim — effets "show" ===== */

/* Préloader (se masque seul au bout de 4 s même sans JS) */
#preloader{position:fixed;inset:0;z-index:9999;background:#030406;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;
  transition:clip-path .9s cubic-bezier(.77,0,.18,1),opacity .4s .6s;clip-path:inset(0 0 0 0);animation:pl-failsafe .1s 4s forwards}
#preloader.done{clip-path:inset(0 0 100% 0);opacity:0}
@keyframes pl-failsafe{to{opacity:0;visibility:hidden}}
.pl-logo{width:84px;height:84px;border-radius:22px;border:2px solid #d4af37;display:grid;place-items:center;font:800 34px 'JetBrains Mono',monospace;color:#d4af37;
  box-shadow:0 0 50px rgba(212,175,55,.35),inset 0 0 25px rgba(212,175,55,.12);animation:pl-pulse 1.4s ease-in-out infinite}
@keyframes pl-pulse{50%{transform:scale(1.07);box-shadow:0 0 80px rgba(212,175,55,.55),inset 0 0 25px rgba(212,175,55,.2)}}
.pl-bar{width:220px;height:2px;background:rgba(255,255,255,.08);overflow:hidden;border-radius:2px}
.pl-bar span{display:block;height:100%;background:linear-gradient(90deg,#c5a059,#fff2b2);transform:scaleX(0);transform-origin:left;box-shadow:0 0 12px #d4af37}
.pl-count{font:500 12px 'JetBrains Mono',monospace;letter-spacing:.35em;color:#94a3b8}

/* Titre hero mot par mot */
.split-ready .word{display:inline-block;opacity:0;transform:translateY(.6em) rotateX(-50deg);filter:blur(10px);transform-origin:0 100%}
.loaded .split-ready .word{animation:word-in .9s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(var(--i)*70ms + .15s)}
@keyframes word-in{to{opacity:1;transform:none;filter:blur(0)}}

/* Curseur */
.has-cursor,.has-cursor *{cursor:none!important}
#cursor-dot,#cursor-ring{position:fixed;top:0;left:0;z-index:9998;pointer-events:none;border-radius:50%;margin:-3px 0 0 -3px}
#cursor-dot{width:6px;height:6px;background:#d4af37;box-shadow:0 0 10px #d4af37}
#cursor-ring{width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(212,175,55,.55);transition:width .3s,height .3s,margin .3s,background .3s,opacity .3s}
#cursor-ring.hot{width:64px;height:64px;margin:-32px 0 0 -32px;background:rgba(212,175,55,.1);border-color:#d4af37}
#cursor-ring.off{opacity:0}

/* Boutons magnétiques & étincelles */
.btn-laser{transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .3s,background .3s,border-color .3s,color .3s}
.spark{position:fixed;z-index:9997;width:5px;height:5px;margin:-2px;border-radius:50%;background:#e6c86e;box-shadow:0 0 8px #d4af37;pointer-events:none;animation:spark .7s ease-out forwards}
@keyframes spark{to{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}

/* Menu actif */
nav a.nav-active{color:#d4af37!important;text-shadow:0 0 14px rgba(212,175,55,.55)}

/* Scan laser sur les visuels au survol */
.glass-card .aspect-video{position:relative}
.glass-card .aspect-video::after{content:'';position:absolute;left:0;right:0;top:-30%;height:30%;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(212,175,55,.22),transparent);opacity:0}
.glass-card:hover .aspect-video::after{opacity:1;animation:scan 1.6s linear infinite}
@keyframes scan{to{top:110%}}

/* Bandeau défilant */
.marquee{overflow:hidden;position:relative;z-index:10;border-block:1px solid rgba(212,175,55,.15);background:rgba(7,9,14,.92);
  mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee-track{display:flex;gap:3rem;width:max-content;padding:14px 0;animation:marquee 38s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{font:600 12px 'JetBrains Mono',monospace;letter-spacing:.18em;color:#94a3b8;white-space:nowrap;display:flex;align-items:center;gap:3rem}
.marquee-track span::after{content:'◆';color:#d4af37;font-size:8px}
@keyframes marquee{to{transform:translateX(-50%)}}

/* Comparateur 2D / 3D */
#cmp-box{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:14px;touch-action:pan-y;user-select:none;cursor:ew-resize}
#cmp-box img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
#cmp-layer{position:absolute;inset:0;clip-path:inset(0 50% 0 0)}
#cmp-handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#d4af37;box-shadow:0 0 18px rgba(212,175,55,.9)}
#cmp-handle b{position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px;border-radius:50%;background:#07090e;border:2px solid #d4af37;display:grid;place-items:center;
  color:#d4af37;font-size:14px;box-shadow:0 0 28px rgba(212,175,55,.6);animation:pl-pulse 2s ease-in-out infinite}
#cmp-box.cmp-anim #cmp-layer{transition:clip-path .6s cubic-bezier(.16,1,.3,1)}
#cmp-box.cmp-anim #cmp-handle{transition:left .6s cubic-bezier(.16,1,.3,1)}
.cmp-tag{position:absolute;top:14px;padding:6px 12px;border-radius:8px;background:rgba(3,4,6,.8);border:1px solid #334155;font:600 11px 'JetBrains Mono',monospace;backdrop-filter:blur(8px)}

/* Accessibilité : coupe les animations si demandé */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
}
