:root {
  --ice-bg-1: rgba(235,252,255,.94);
  --ice-bg-2: rgba(158,232,249,.84);
  --ice-bg-3: rgba(65,190,226,.62);

  --ice-border: rgba(255,255,255,.76);
  --ice-text: #07364d;
  --ice-muted: rgba(7,54,77,.65);
  --ice-glow: rgba(74,220,255,.42);
  --ice-shadow: rgba(7,54,77,.18);

  --success: #28a745;
  --danger: #dc3545;
  --warning: #ffc107;

  --banner-height: 205px;
  --banner-height-mobile: 124px;
}

body.dark-mode {
  --ice-bg-1: rgba(8,24,42,.96);
  --ice-bg-2: rgba(10,61,91,.92);
  --ice-bg-3: rgba(28,152,195,.70);

  --ice-border: rgba(155,237,255,.50);
  --ice-text: #effcff;
  --ice-muted: rgba(239,252,255,.68);
  --ice-glow: rgba(74,220,255,.48);
  --ice-shadow: rgba(0,0,0,.42);
}

body {
  min-height: 100vh;
  color: var(--ice-text);

  background:
    radial-gradient(circle at 8% 0%, rgba(255,255,255,.86), transparent 26%),
    radial-gradient(circle at 92% 8%, rgba(74,220,255,.32), transparent 34%),
    radial-gradient(circle at 10% 92%, rgba(186,245,255,.34), transparent 32%),
    linear-gradient(135deg, #ffffff, #eaffff 48%, #c9f6ff);
}

body.dark-mode {
  color: var(--ice-text);

  background:
    radial-gradient(circle at 10% 0%, rgba(239,255,255,.14), transparent 28%),
    radial-gradient(circle at 92% 8%, rgba(74,220,255,.24), transparent 34%),
    radial-gradient(circle at 8% 92%, rgba(186,245,255,.12), transparent 32%),
    linear-gradient(135deg, #071b2f, #0d456c 54%, #167fa3);
}



* {
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* Banner */
.banner-wrapper {
  padding: 0 13px;
  margin: 14px 0 24px;
  overflow: visible;
  box-sizing: border-box;
  position: relative;
}

.banner-swiper {
  width: 100%;
  height: var(--banner-height);
  aspect-ratio: auto;
  position: relative;
  overflow: hidden;
  transition: height .3s ease;

  border-radius: 30px;
  border: 1px solid var(--ice-border);

  background:
    radial-gradient(circle at 15% 0%, rgba(255,255,255,.78), transparent 32%),
    radial-gradient(circle at 85% 100%, var(--ice-glow), transparent 35%),
    linear-gradient(135deg, var(--ice-bg-1), var(--ice-bg-2));

  box-shadow:
    0 20px 42px var(--ice-shadow),
    0 0 24px rgba(74,220,255,.20),
    inset 0 1px 0 rgba(255,255,255,.70),
    inset 0 -18px 32px rgba(255,255,255,.12);

  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.banner-swiper::before {
  content: "";
  position: absolute;
  inset: 7px;
  z-index: 5;
  pointer-events: none;

  border-radius: 24px;
  border: 1px solid rgba(255,255,255,.26);

  background:
    linear-gradient(115deg, transparent 0 20%, rgba(255,255,255,.34) 26%, transparent 33% 58%, rgba(255,255,255,.20) 64%, transparent 72%);
  opacity: .78;
}

.banner-swiper::after {
  content: "";
  position: absolute;
  top: -40%;
  left: -35%;
  width: 28%;
  height: 180%;
  z-index: 6;
  transform: rotate(24deg);
  pointer-events: none;

  background: linear-gradient(90deg, transparent, rgba(255,255,255,.42), transparent);
  animation: bannerShine 9s ease-in-out infinite;
}

@keyframes bannerShine {
  0%, 48% {
    left: -42%;
    opacity: 0;
  }
  58% {
    opacity: .75;
  }
  100% {
    left: 115%;
    opacity: 0;
  }
}

.banner-swiper .swiper-slide {
  overflow: hidden;
  border-radius: 30px;
}

.banner-swiper .swiper-slide img {
  width: 100%;
  height: var(--banner-height);
  object-fit: cover;
  display: block;
  border-radius: 30px;
  transition: transform .35s ease, filter .35s ease;
}

.banner-swiper .swiper-slide img:hover {
  transform: scale(1.025);
}

body.dark-mode .banner-swiper .swiper-slide img {
  filter: brightness(.96) contrast(1.06) saturate(1.04);
}

/* Pagination */
.swiper-pagination-bullet {
  width: 18px !important;
  height: 7px !important;
  border-radius: 999px !important;
  background: rgba(239,255,255,.78) !important;
  opacity: 1 !important;
  box-shadow: 0 0 8px rgba(74,220,255,.28);
}

.swiper-pagination-bullet-active {
  width: 30px !important;
  background: #42dfff !important;
  box-shadow: 0 0 14px rgba(74,220,255,.65);
}

/* Animations */
@keyframes k1Float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

@keyframes k1Glow {
  0%, 100% { box-shadow: 0 0 14px rgba(74,220,255,.20); }
  50% { box-shadow: 0 0 28px rgba(74,220,255,.38); }
}

/* Scrollbar */
::-webkit-scrollbar {
  width: 9px;
}

::-webkit-scrollbar-track {
  background: rgba(186,245,255,.18);
}

::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #efffff, #42dfff, #0a7fa8);
  border-radius: 999px;
}

body.dark-mode::-webkit-scrollbar-track {
  background: rgba(255,255,255,.08);
}



/* Responsive */
@media (max-width: 768px) {
  .banner-wrapper {
    padding: 0 10px;
    margin-top: 12px;
    margin-bottom: 22px;
  }

  .banner-swiper {
    height: var(--banner-height-mobile);
    border-radius: 24px;
  }

  .banner-swiper::before {
    border-radius: 18px;
  }

  .banner-swiper .swiper-slide,
  .banner-swiper .swiper-slide img {
    height: var(--banner-height-mobile);
    border-radius: 24px;
  }
}

@media (max-width: 420px) {
  .banner-wrapper {
    padding: 0 8px;
  }
}