@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Sans:wght@300;400;500;600&display=swap');

:root {
  --sky: #EAF4FB;
  --sky-mid: #D0E9F7;
  --blue: #1A6FA8;
  --blue-dark: #0F4C75;
  --blue-deep: #082D4E;
  --accent: #2AABE2;
  --gold: #F0A500;
  --text: #1C2B3A;
  --muted: #5A7A90;
  --white: #FFFFFF;
  --card-bg: #F7FBFF;
  --border: #D5E8F5;
  --radius: 16px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: 'DM Sans', sans-serif;
  color: var(--text);
  background: var(--white);
  overflow-x: hidden;
}

.wrap {
  max-width: 1200px;
  margin: auto;
  padding: 0 24px;
}

section { padding: 96px 0; }

.section-tag {
  display: inline-block;
  background: var(--sky-mid);
  color: var(--blue);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 100px;
  margin-bottom: 14px;
}

.section-title {
  font-family: 'DM Serif Display', serif;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.2;
  color: var(--blue-deep);
  margin-bottom: 16px;
  letter-spacing: -0.3px;
}

.section-sub {
  font-size: 17px;
  color: var(--muted);
  line-height: 1.7;
  max-width: 560px;
}

.section-header { margin-bottom: 56px; }

.fade-up { opacity: 0; transform: translateY(30px); transition: opacity .6s, transform .6s; }
.fade-up.visible { opacity: 1; transform: translateY(0); }
.fade-up:nth-child(2) { transition-delay: .1s; }
.fade-up:nth-child(3) { transition-delay: .2s; }
.fade-up:nth-child(4) { transition-delay: .3s; }
.fade-up:nth-child(5) { transition-delay: .4s; }
.fade-up:nth-child(6) { transition-delay: .5s; }

.preloader {
  position: fixed;
  inset: 0;
  background: linear-gradient(135deg, var(--blue-deep) 0%, var(--blue) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 99999;
  transition: opacity 0.8s ease, visibility 0.8s ease;
}

.preloader.hidden {
  opacity: 0;
  visibility: hidden;
}

.preloader-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
}

.preloader-logo {
  width: 150px;
  height: auto;
  animation: logoPulse 1.5s ease-in-out infinite;
  -webkit-mask-image: radial-gradient(circle at center, rgba(0,0,0,1) 0%, rgba(0,0,0,0.8) 50%, rgba(0,0,0,0.3) 75%, transparent 100%);
  mask-image: radial-gradient(circle at center, rgba(0,0,0,1) 0%, rgba(0,0,0,0.8) 50%, rgba(0,0,0,0.3) 75%, transparent 100%);
  filter: drop-shadow(0 0 40px rgba(255,255,255,0.3));
}

@keyframes logoPulse {
  0%, 100% { transform: scale(1); opacity: 0.95; }
  50% { transform: scale(1.05); opacity: 1; }
}

.preloader-dots {
  display: flex;
  gap: 12px;
}

.preloader-dots .dot {
  width: 12px;
  height: 12px;
  background: white;
  border-radius: 50%;
  animation: preloaderBounce 0.6s infinite alternate;
}

.preloader-dots .dot:nth-child(2) { animation-delay: 0.2s; }
.preloader-dots .dot:nth-child(3) { animation-delay: 0.4s; }

@keyframes preloaderBounce {
  to { transform: translateY(-15px); opacity: 0.5; }
}
