/* ============================================================
   INTRO : écran de chargement animé avec le logo KGN Services
   Affiché une seule fois par session visiteur (sessionStorage).
   ============================================================ */

.kgn-intro{
  position:fixed; inset:0; z-index:999999;
  background:radial-gradient(circle at 50% 38%, #0B5640 0%, #08402F 45%, #062B22 100%);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  transition:opacity .7s cubic-bezier(.4,0,.2,1), visibility .7s;
}
.kgn-intro.kgn-intro-hide{ opacity:0; visibility:hidden; pointer-events:none; }

.kgn-intro-glow{
  position:absolute; width:520px; height:520px; border-radius:50%;
  background:radial-gradient(circle, rgba(232,186,59,.22) 0%, transparent 70%);
  animation:kgn-glow-pulse 3.5s ease-in-out infinite;
}
@keyframes kgn-glow-pulse{ 0%,100%{opacity:.5; transform:scale(1);} 50%{opacity:1; transform:scale(1.15);} }

.kgn-intro-mark{
  position:relative; z-index:1;
  opacity:0; transform:scale(.5) rotate(-18deg);
  filter:drop-shadow(0 0 22px rgba(232,186,59,.45));
  animation:kgn-mark-in 1s cubic-bezier(.22,1,.36,1) .15s forwards;
}
.kgn-intro-mark img{ display:block; width:84px; height:auto; }
@keyframes kgn-mark-in{
  0%{opacity:0; transform:scale(.5) rotate(-18deg);}
  60%{opacity:1; transform:scale(1.08) rotate(3deg);}
  100%{opacity:1; transform:scale(1) rotate(0);}
}

.kgn-intro-word{
  position:relative; z-index:1; text-align:center; margin-top:20px;
  opacity:0; transform:translateY(14px);
  animation:kgn-word-in .8s ease .7s forwards;
}
@keyframes kgn-word-in{ to{ opacity:1; transform:translateY(0);} }
.kgn-intro-title{
  display:block; font-family:'Fraunces', serif; font-weight:600;
  font-size:26px; letter-spacing:.04em; color:#fff;
}
.kgn-intro-subtitle{
  display:block; font-family:'Manrope', sans-serif; font-weight:600;
  font-size:11px; letter-spacing:.28em; color:#E8BA3B; margin-top:8px; text-transform:uppercase;
}

.kgn-intro-bar{
  position:relative; z-index:1; width:130px; height:2px; margin-top:28px;
  background:rgba(232,186,59,.18); border-radius:2px; overflow:hidden;
  opacity:0; animation:kgn-bar-fade .4s ease 1.05s forwards;
}
.kgn-intro-bar span{
  display:block; height:100%; width:0;
  background:linear-gradient(90deg, #D4A017, #E8BA3B);
  animation:kgn-bar-fill 1s cubic-bezier(.4,0,.2,1) 1.1s forwards;
}
@keyframes kgn-bar-fade{ to{ opacity:1; } }
@keyframes kgn-bar-fill{ to{ width:100%; } }

@media (prefers-reduced-motion: reduce){
  .kgn-intro-mark, .kgn-intro-word, .kgn-intro-bar, .kgn-intro-bar span, .kgn-intro-glow{
    animation-duration:.3s !important;
  }
}
