:root{
  --bg0:#050b1f;          /* marine */
  --bg1:#061a3a;
  --text:#eaf2ff;
  --muted:#a9c0e8;

  --card: rgba(9, 18, 43, 0.62);
  --stroke: rgba(160, 198, 255, 0.16);

  --accent1:#60a5fa;
  --accent2:#2563eb;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }

body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:
    radial-gradient(1200px 700px at 18% 10%, rgba(96,165,250,.30), transparent 55%),
    radial-gradient(900px 600px at 82% 18%, rgba(37,99,235,.26), transparent 55%),
    radial-gradient(900px 600px at 50% 95%, rgba(56,189,248,.18), transparent 55%),
    radial-gradient(700px 420px at 55% 35%, rgba(14,165,233,.10), transparent 60%),
    linear-gradient(180deg, var(--bg1), var(--bg0));
  overflow-x:hidden;
}

.bg{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
}

.bg__svg{
  width:100%;
  height:100%;
  display:block;
  transform: scale(1.03);
}

.card{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:28px 16px;
  gap:14px;

  margin: 0 auto;
  max-width: 720px;
  text-align:center;

  background: var(--card);
  border: 1px solid var(--stroke);
  border-radius: 18px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow:
    0 20px 70px rgba(0,0,0,.40),
    inset 0 1px 0 rgba(255,255,255,.06);
  padding: 34px 22px;
}

.logo{
  width: 140px;
  height: 140px;
  border-radius: 20px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom: 6px;
  border: 1px solid rgba(160,198,255,.22);
  background: rgba(255,255,255,.04);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

.logo__img{
  max-width: 92%;
  max-height: 92%;
  object-fit:contain;
  filter: drop-shadow(0 10px 22px rgba(37,99,235,.26));
}

h1{
  margin: 6px 0 0;
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  line-height: 1.15;
}

p{
  margin: 0;
  color: var(--muted);
  max-width: 52ch;
}

.loader{
  display:flex;
  gap:10px;
  margin-top: 6px;
}
.loader span{
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: rgba(96,165,250,.95);
  box-shadow: 0 0 18px rgba(96,165,250,.45);
  animation: bounce 1.05s ease-in-out infinite;
}
.loader span:nth-child(2){ background: rgba(56,189,248,.95); animation-delay: .12s; box-shadow: 0 0 18px rgba(56,189,248,.35); }
.loader span:nth-child(3){ background: rgba(37,99,235,.95); animation-delay: .24s; box-shadow: 0 0 18px rgba(37,99,235,.35); }
.loader span:nth-child(4){ background: rgba(14,165,233,.95); animation-delay: .36s; box-shadow: 0 0 18px rgba(14,165,233,.35); }

@keyframes bounce{
  0%,100% { transform: translateY(0); opacity:.75; }
  50%     { transform: translateY(-10px); opacity:1; }
}

.meta{
  margin-top: 6px;
  display:flex;
  flex-direction:column;
  gap:6px;
  color: rgba(160,198,255,.9);
}

/* Animation des courbes (plus “dynamique”) */
.ribbons path{
  animation: ribbonMove 5.8s cubic-bezier(.2,.9,.2,1) infinite;
  transform-origin: 50% 50%;
}
#r2{
  animation-duration: 7.2s;
  animation-delay: -1.4s;
  opacity: .62;
}

@keyframes ribbonMove{
  0%   { stroke-dashoffset: 0; filter: none; opacity: .55; }
  40%  { stroke-dashoffset: -640; filter: none; opacity: .86; }
  70%  { stroke-dashoffset: -920; filter: none; opacity: .75; }
  100% { stroke-dashoffset: 0; filter: none; opacity: .58; }
}

@media (prefers-reduced-motion: reduce){
  .ribbons path, .waves * { animation:none !important; }
  .loader span{ animation:none !important; }
}
