/* ─── RESET & BOX MODEL ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ─── CSS VARIABLES ─── */
:root{
  --navy:#0b2035;
  --navy-deep:#061827;
  --blue:#1f6fa8;
  --blue-light:#3d9ad7;
  --blue-accent:#2d86c5;
  --steel:#234d72;
  --silver:#d8dde0;
  --off-white:#ffffff;
  --white:#ffffff;
  --gold:#d4a853;
  --text-dark:#071a2d;
  --text-muted:#4f6375;
  --gradient-hero:linear-gradient(135deg, #061827 0%, #0b2035 42%, #1f4f77 100%);
  --gradient-blue:linear-gradient(135deg, #1f6fa8 0%, #3d9ad7 100%);
  --gradient-card:linear-gradient(180deg, rgba(7,26,45,0.035) 0%, rgba(31,111,168,0.075) 100%);
  --card-border:rgba(31,111,168,0.2);
  --card-border-strong:rgba(31,111,168,0.3);
  --card-separator:rgba(31,111,168,0.14);
  --shadow-sm:0 2px 8px rgba(7,26,45,0.08);
  --shadow-md:0 8px 32px rgba(7,26,45,0.12);
  --shadow-lg:0 16px 64px rgba(7,26,45,0.18);
  --shadow-glow:0 0 40px rgba(31,111,168,0.16);
  --radius:12px;
  --radius-lg:20px;
  --transition:0.4s cubic-bezier(0.25,0.46,0.45,0.94);
}

/* ─── BASE ─── */
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  font-family:'DM Sans',sans-serif;
  color:var(--text-dark);
  background:var(--off-white);
  overflow-x:hidden;
  line-height:1.7;
}

/* ─── SCROLLBAR ─── */
::-webkit-scrollbar{width:8px}
::-webkit-scrollbar-track{background:var(--navy-deep)}
::-webkit-scrollbar-thumb{background:var(--blue);border-radius:4px}

/* ─── KEYFRAMES ─── */
@keyframes preloader-breathe{
  0%,100%{transform:scale(1);opacity:.85}
  50%{transform:scale(1.05);opacity:1}
}
@keyframes preloader-text-in{
  from{opacity:0;transform:translateY(15px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes blink{
  0%,100%{opacity:.3}
  50%{opacity:1}
}
@keyframes float-particle{
  0%{transform:translateY(22px) scale(.65);opacity:.15}
  20%{opacity:1}
  80%{opacity:.85}
  100%{transform:translateY(-140px) scale(1.08);opacity:0}
}
@keyframes hero-glow-pulse{
  0%,100%{transform:scale(1);opacity:.6}
  50%{transform:scale(1.25);opacity:1}
}
@keyframes ticker{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
@keyframes slideUp{
  from{opacity:0;transform:translateY(40px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes fadePageIn{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}
}


/* ─── SCROLL REVEAL ─── */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.1s}
.reveal-delay-2{transition-delay:.2s}
.reveal-delay-3{transition-delay:.3s}
.reveal-delay-4{transition-delay:.4s}

/* ─── COUNTER ─── */
.count-up{font-family:'Space Mono',monospace;font-weight:700}
