@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/fonts/Montserrat/static/Montserrat-Regular.ttf) format("ttf");
}

@font-face {
  font-family: "Montserrat";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url(/fonts/Montserrat/static/Montserrat-Italic.ttf) format("ttf");
}

@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: bold;
  font-display: swap;
  src: url(/fonts/Montserrat/static/Montserrat-Bold.ttf) format("ttf");
}

:root {
  font-size: 1.15rem;
}

* {
  box-sizing: border-box;
}
html {
  min-height: 100%;
  margin: 0;
  width: 100%;
  padding: 0;
  background: #333333;
  font-family: "Montserrat", Verdana, Geneva, Tahoma, sans-serif;
  font-size: 13pt;
  scrollbar-color: rgba(255, 255, 255, 0.5) rgba(0, 0, 0, 0);
}

body {
  min-height: 100%;
  margin: 0;
  padding: 0;
  overflow: auto;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  position: absolute;
}

form {
  width: 100%;
}

.container {
  background: url("bg.jpg") transparent;
  background-size: cover;
  background-attachment: fixed;
  background-position: center center;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: auto;
  max-width: 100%;
  overflow: auto;
  box-sizing: border-box;
  padding: 0;
  background-repeat: no-repeat;
}

.lightbox {
  box-shadow: 0 2rem 6rem rgba(0, 0, 0, 0.7);
  width: auto;
  border-radius: 1rem;
  text-align: center;
  background: rgba(0, 0, 0, 0.5);
  min-height: 12rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 1.5rem;
  max-width: 100%;
  width: 32rem;
  backdrop-filter: blur(27px);
  color: #ccc;
  overflow: auto;
}
@media only screen and (max-width: calc(32rem * 1.15)) {
  .lightbox {
    border-radius: 0;
    min-height: 100vh;
  }
}

img.logo {
  width: 36rem;
  max-width: 100%;
  transition: all 0.5s ease;
  display: block;
  margin: auto;
}

img.logo-small {
  width: 12rem;
  max-width: 100%;
  transition: all 0.5s ease;
}

img.logo:hover {
  transform: scale(1.025);
  transition: all 0.5s ease;
}

.input-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  margin: 0;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: auto;
  justify-content: space-around;
  width: auto;
  width: 20rem;
  max-width: 100%;
}

input,
button,
.infobox {
  line-height: 2rem;
  background: rgba(0, 0, 0, 0.4);
  border-radius: 0.5rem;
  padding: 0.5rem 1rem;
  max-width: 30rem;
  border: 0 none;
  width: 8rem;
  flex: 1 1 0;
  border: 0.0625rem solid #747474;
  transition: all 0.5s ease;
  font-size: 0.85rem;
  vertical-align: middle;
}

input[type="text"],
input[type="tel"] {
  color: rgb(205, 80, 255);
  flex: 2 1 0;
}

input:hover,
input:focus {
  border: 0.0625rem solid #ffc302;
  box-shadow: 0 0 1.5rem rgba(255, 200, 2, 0.4) inset,
    0 0 0 0.1rem #ffc302 inset;
  transition: all 0.5s ease;
}

input:focus {
  outline: none;
}

input::placeholder {
  color: #747474;
  font-style: italic;
}

input:autofill {
  border: 0.0625rem solid rgb(205, 80, 255);
  box-shadow: 0 0 1.5rem rgba(205, 80, 255, 0.4) inset;
  background: inherit;
}

input:-webkit-autofill,
textarea:-webkit-autofill,
select:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #1b1b1b inset !important;
  -webkit-text-fill-color: white !important;
}

/* animate infobox to pop out when shown, using CSS animation */
@keyframes popout {
  0% {
    transform: scale(0.5);
    opacity: 0;
  }
  75% {
    transform: scale(1.1);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

.infobox {
  max-width: 100%;
  flex: 1 1 auto;
  width: auto;
  max-height: 10rem;
  margin: 1rem 0 0;
  box-shadow: 0 0 1rem rgba(90, 90, 90, 0.4) inset;
  border: 0.125rem solid #747474;
  overflow: hidden;
  opacity: 1;
  height: auto;
  transition: all 0.5s ease 0.2s, padding 0.3s ease 0.2s,
    border-width 0.2s ease 0.2s;
  min-height: 2rem;
  height: auto;
  flex: 1 1 auto;
  font-size: 0.85rem;
  animation: popout 0.5s ease-out 0.2s;
  overflow: auto;
  scrollbar-color: rgba(255, 255, 255, 0.5) rgba(0, 0, 0, 0);
  scrollbar-gutter: stable both-edges;
}

.infobox.hidden {
  min-height: 0;
  max-height: 0;
  padding: 0;
  margin: 0;
  opacity: 0;
  overflow: hidden;
  transition: all 0.5s ease 0.2s, padding 0.5s ease 0.5s,
    border-width 0.2s ease 0.3s;
  animation: none;
  border-width: 0;
}

.infobox.info {
  box-shadow: 0 0 1rem rgba(255, 200, 2, 0.4) inset;
  border: 0.125rem solid #ffc302;
  color: #fff372;
}

/* red */
.infobox.error {
  box-shadow: 0 0 1rem rgba(255, 0, 2, 0.4) inset;
  border: 0.125rem solid #dd2002;
  color: #dd4062;
}

/* same purple as input text */
.infobox.success {
  box-shadow: 0 0 1rem rgba(205, 80, 255, 0.4) inset;
  border: 0.125rem solid #ff00ff;
  color: #ff00ff;
}
/* denim */
.infobox.confirmed {
  box-shadow: 0 0 1rem rgba(94, 171, 255, 0.4) inset;
  border: 0.125rem solid #5eabff;
  color: #5eabff;
}

.infobox p {
  text-align: left;
  margin: 0;
  line-height: 1.5rem;
  display: none;
  margin-bottom: 0.5rem;
  color: inherit;
  font-family: monospace;
}

.infobox.details p {
  display: block;
}

button {
  background: #ffc302; /* HF logo main color */
  background: #5eabff; /* angel halo color */
  text-align: center;
  width: auto;
  border: 0 none;
  color: black;
  font-weight: bold;
  cursor: pointer;
}

button:hover {
  box-shadow: 0 0 1rem #aaffff inset;
  transition: all 0.5s ease;
}

button:active {
  box-shadow: 0 0 1rem #224477 inset;
  transition: all 0.1s ease;
}

/* blue card for facebook */

.card {
  box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.5);
  background: rgb(11, 57, 131);
  border: 0.125rem solid transparent;
  border-radius: 0.5rem;
  padding: 0.25rem;
  margin: 0;
  max-width: 100%;
  width: 20rem;
  justify-content: center;
  color: #ccc;
  text-align: left;
  display: flex;
  gap: 0;
  text-decoration: none;
  transition: all 0.1s ease, background 0.4s ease;
  flex-wrap: wrap;
  text-shadow: 0 0.125rem 1.5rem rgba(0, 0, 0, 0.9);
}
/* scale slightly on hover and click */
.card:hover {
}
.card:active {
  background: rgb(31, 97, 181);
  border: 0.125rem solid rgb(31, 97, 181);
}

.card:hover,
button:hover {
  transform: scale(1.05);
  transition: all 0.5s ease, background 0.6s ease;
}

.card:active,
button:active {
  transform: scale(0.975);
  transition: all 0.1s ease, background 0.4s ease;
}
button:focus {
  outline: none;
  box-shadow: 0 0 0 0.125rem #ffc302 inset;
}

.card img {
  max-width: 100%;
  margin: 0;
  border-radius: 0.5rem;
  flex: 0 0 0;
  max-width: 4rem;
  max-height: 4rem;
  width: auto;
}

.card span {
  font-size: 1rem;
  margin: 0;
  padding: 0.25rem;
  text-align: center;
  vertical-align: middle;
  align-self: center;
  flex: 1 1 6;
  display: inline-block;
  line-height: 1.5rem;
  width: auto;
  max-width: 100%;
}

.card a {
  text-decoration: none;
}

span.slogan {
  color: #fff;
  text-align: center;
  margin: 0.5rem;
}

span,
p {
  font-family: "Montserrat", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  color: #fff;
  margin: 1rem 0;
  max-width: 30rem;
  margin: 1rem 1rem;
  text-align: left;
}

hr {
  width: 75%;
  border: 0.125rem solid #666;
  margin: 1rem auto;
  border-radius: 0.5rem 0.5rem;
}

.row {
  padding: 0.5rem 0;
  max-width: 100%;
}

.friends {
  background: #008ad4;
}

.dating {
  background: #ea59e5;
}

.jobs {
  background: #58bd00;
}

.pink-text {
  color: #ff54f8;
}

.yellow-text {
  color: #ffb600;
}

.purple-text {
  color: #8200d9;
}

.green-text {
  color: #68e100;
}

.pink-text:hover {
  color: #ffb600;
}

.politics {
  background: #8200d9;
}

.nowrap {
  white-space: nowrap;
}

article {
  text-align: left;
  font-size: 0.85rem;
  line-height: 1.25rem;
  background: rgba(20, 20, 20, 0.85);
  border-radius: 0.5rem;
  max-width: 100%;
  width: 100%;
  margin-top: 1rem;
}

article img {
  margin: 0.5rem auto;
  display: block;
  max-width: 90%;
}

.rounded-image {
  border-radius: 1rem;
}

li {
  color: #e8e8e8;
  margin: 0.5rem 0;
}

article h1 {
  text-align: center;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 1rem;
  line-height: 1.25em;
}

article ul {
  padding-inline-start: 2rem;
  padding-inline-end: 2rem;
}

a {
  color: #ffb600;
  font-weight: bold;
  text-decoration: none;
}

details > summary {
  list-style-type: none;
  position: sticky;
  top: 0rem;
  left: 0.5rem;
  right: 0.5rem;
  margin: 0;
  padding: 1rem 0.25rem;
  border-radius: 0.333rem;
  background: #222;
  z-index: 2;
  display: block;
  cursor: pointer;
  box-shadow: 0 0 0.1rem rgba(255, 255, 255, 0) inset;
  transition: 0.2s box-shadow border-color ease-in;
  border: 0.125rem solid transparent;
}

details {
  max-height: 10rem;
  overflow: auto;
  position: relative;
  display: block;
  transition: 0.25s max-height ease;
  margin: 0.5rem;
}

details[open] {
  max-height: 40rem;
  max-height: 90vh;
  transition: 0.25s max-height ease;
}
details[open] > summary {
  color: #fff;
  border: 0.125rem solid #555;
}

.subtitle {
  margin: 0;
  padding: 0;
  text-align: center;
}

summary h1 {
  margin: 0 1rem;
}
