html,
body {
  height: 100%;
}

body {
  /* Font */
  font-family: var(--font-main);
  font-optical-sizing: var(--font-optical-sizing);
  font-weight: var(--font-weight-normal);
  font-style: var(--font-style-normal);

  /* Color palette */
  background-color: var(--bg-color);
  color: var(--text-main);

  /* Parts */
  min-height: 100dvh;
  display: flex;
  flex-direction: column;

  /* Disable text selection */
  -webkit-user-select: none;
  user-select: none;

  /* Disable mobile long-press menu */
  -webkit-touch-callout: none;
}

/* Prevent image dragging and saving */
img {
  -webkit-user-drag: none;
  pointer-events: none;
}

/* Center container */
.container {
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
  text-align: center;
  padding: 16px 16px 32px;

  flex: 1;
}

/* Profile */
.profile-card {
  background-color: var(--bg-color);
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 24px;
}

/* Card header */
.card-header {
  position: relative;
  height: 132px;
}

.header-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Avatar image */
.avatar {
  position: absolute;
  left: 20px;
  bottom: 0;
  transform: translateY(50%);

  width: 100px;
  height: 100px;
  border-radius: 50%;
  object-fit: cover;
  border: 4px solid var(--bg-color);
  z-index: 10;
}

/* Card body */
.card-body {
  padding: 56px 20px 24px;
  text-align: left;
}

/* Name */
.name {
  font-size: 21px;
  font-weight: var(--font-weight-bold);
  margin-bottom: 4px;
}

/* Location */
.location {
  font-size: 12px;
  color: var(--text-sub);
  margin-bottom: 12px;
}

/* Biography */
.bio {
  font-size: 16px;
  color: var(--text-main);
}

/* Heart icon */
.heart-icon {
  display: inline-block;
  width: 18px;
  height: 18px;
  vertical-align: -4px;
  margin: 0 2px;
}

/* Footer */
.footer {
  background-color: var(--footer-bg);
  font-size: 14px;
  font-family: "Outfit";
  text-align: center;
  color: var(--footer-text);
  margin-top: auto;
  padding-top: 20px;
  padding-bottom: 20px;
}
