:root {
  --bm-public-primary: #2563eb;
  --bm-public-navy: #0f1f3d;
  --bm-public-muted: #64748b;
  --bm-public-border: #e2e8f0;
}

body {
  color: #172033;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", sans-serif;
  letter-spacing: -0.015em;
}

#mainNav,
.navbar.bg-secondary {
  background: rgba(15, 31, 61, 0.94) !important;
  box-shadow: 0 10px 30px rgba(15, 31, 61, 0.16);
  backdrop-filter: blur(14px);
}

#mainNav .navbar-brand {
  font-weight: 800;
  letter-spacing: -0.035em;
}

.masthead {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 15% 20%, rgba(96, 165, 250, 0.2), transparent 35%),
    radial-gradient(circle at 85% 10%, rgba(45, 212, 191, 0.16), transparent 30%),
    linear-gradient(145deg, #f8fbff 0%, #eef4ff 100%);
}

.masthead::after {
  position: absolute;
  right: -8rem;
  bottom: -12rem;
  width: 30rem;
  height: 30rem;
  border: 1px solid rgba(37, 99, 235, 0.12);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.page-section-heading,
.masthead-heading {
  color: var(--bm-public-navy) !important;
  font-weight: 850 !important;
  letter-spacing: -0.05em;
}

.portfolio .portfolio-item,
.pricing-card,
.card {
  border: 1px solid var(--bm-public-border);
  border-radius: 18px;
  box-shadow: 0 14px 38px rgba(15, 31, 61, 0.08);
}

.btn {
  border-radius: 12px;
  font-weight: 750;
  box-shadow: 0 8px 18px rgba(15, 31, 61, 0.1);
}

.btn-primary,
.bg-primary {
  border-color: var(--bm-public-primary) !important;
  background-color: var(--bm-public-primary) !important;
}

.form-signin {
  max-width: 480px;
  padding: 1.25rem;
}

body.text-center {
  position: relative;
  background:
    radial-gradient(circle at 15% 15%, rgba(96, 165, 250, 0.28), transparent 30%),
    radial-gradient(circle at 90% 85%, rgba(45, 212, 191, 0.2), transparent 32%),
    #f4f7fb;
}

.form-box-blur {
  padding: 2rem !important;
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 22px !important;
  background: rgba(255, 255, 255, 0.92) !important;
  box-shadow: 0 24px 70px rgba(15, 31, 61, 0.16);
  backdrop-filter: blur(18px);
}

.form-box-blur img {
  filter: drop-shadow(0 8px 18px rgba(15, 31, 61, 0.14));
}

.form-floating {
  margin-bottom: 0.75rem;
}

.form-floating > .form-control {
  min-height: 58px;
  border: 1px solid #d8e1ed;
  border-radius: 12px !important;
}

.form-floating > .form-control:focus {
  border-color: #8eb0ff;
  box-shadow: 0 0 0 0.24rem rgba(37, 99, 235, 0.12);
}

.form-box-blur .btn {
  min-height: 50px;
}

.footer {
  background: var(--bm-public-navy) !important;
}

@media (max-width: 575.98px) {
  .form-signin {
    padding: 0.8rem;
  }

  .form-box-blur {
    padding: 1.4rem !important;
  }
}
