body {
  box-sizing: border-box;
}
* {
  font-family: 'Plus Jakarta Sans', sans-serif;
}
html, body {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
}
.app-wrapper {
  height: 100%;
  width: 100%;
  overflow-y: auto;
  overflow-x: hidden;
}
.gradient-bg {
  background: linear-gradient(135deg, #1E3442 0%, #2A4A5E 50%, #1E3442 100%);
}
.hero-gradient {
  background: linear-gradient(160deg, #8CC6A6 0%, #76A5D2 50%, #A8D4E6 100%);
}
.card-hover {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.card-hover:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(30, 52, 66, 0.15);
}
.btn-primary {
  background: linear-gradient(135deg, #1E3442 0%, #2A4A5E 100%);
  transition: all 0.3s ease;
}
.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(30, 52, 66, 0.3);
}
.nav-link {
  position: relative;
  transition: color 0.3s ease;
}
.nav-link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background: white;
  transition: width 0.3s ease;
}
.nav-link:hover::after {
  width: 100%;
}
.floating {
  animation: float 3s ease-in-out infinite;
}
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}
.pulse-soft {
  animation: pulse-soft 2s ease-in-out infinite;
}
@keyframes pulse-soft {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.8; }
}
.mobile-menu {
  transform: translateX(-100%);
  transition: transform 0.3s ease;
}
.mobile-menu.open {
  transform: translateX(0);
}
.slider-container {
  position: relative;
  min-height: 400px;
}
.slider-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  transition: opacity 0.8s ease-in-out;
  pointer-events: none;
}
.slider-slide.active {
  position: relative;
  opacity: 1;
  pointer-events: auto;
}
.slider-dot {
  cursor: pointer;
}
.slider-dot.active {
  width: 32px;
  background: #1E3442;
}