/* Background */
.hero-bg {
  position: relative;
  background-color: black; /* base black background */
  background-size: cover;
  background-position: center;
  height: 600px; /* Increase the height of the first container */
  animation: background-switch 10s infinite; /* Change the timing as needed */
}

@keyframes background-switch {
  0% {background-image: url('/static/fiction/img/background1.png');}
  50% {background-image: url('/static/fiction/img/background1.png');}
  51% {background-image: url('/static/fiction/img/background2.png');} /* Change to your second image path */
  100% {background-image: url('/static/fiction/img/background2.png');}
}

.hero-bg::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.4) 60%, rgba(0, 0, 0, 1) 100%);
}

.hero-bg .text-center {
  position: relative;
  z-index: 1;
  color: white;
}

@media screen and (min-width: 800px) { /* Large screen*/
    .hero-bg h1 {
      font-size: 60px;
    }
}

/* Navbar button */
.navbar-btn {
  color: #444444; /* Change to desired color */
  text-decoration: none;
  display: inline-block;
  padding: 5px 15px; /* Adjust padding as needed */
  color: black;
  font-size: 0.8em;
  background-color: white;
  border: 1px solid black;
  border-radius: 20px; /* Adjust for roundness of corners */
  transition: all 0.3s;
  margin: 0 5px; /* Adds 5px of space to the left and right of each button */
}

.navbar-btn.active {
  color: white;
  background-color: black;
  border-color: black;
}

.navbar-btn:hover {
  color: white;
  background-color: rgba(255, 255, 255, 0.2);
  border-color: white;
}

.navbar-btn:active, 
.navbar-btn:focus {
  transform: none;  /* Removes enlargement */
  outline: none; /* Removes outline */
}

@media screen and (max-width: 800px) { /* Small screen */
  .navbar-btn {
    margin-top: 0px;
    padding: 3px 8px; /* Decrease padding */
    font-size: 0.6em; /* Decrease font size */
    border-radius: 15px; /* Decrease radius */
    margin-bottom: 0px;
  }
}

/* Nav small screen */
@media screen and (max-width: 800px) {
  .nav-label {
    margin-top: 5px;
    font-size: 14px;
  }

  .nav-label h4 {
      font-size: 14px;
      line-height: 1.2;
      margin: 0 0 5px;
  }

  .nav-labl h3 {
      font-size: 20px;
  }
}

/* Nav link */
.nav-link {
  color: #444444; /* Change to desired color */
  text-decoration: none;
}

.nav-link.active {
  text-decoration: none;
  font-weight: bold;
}

.nav-link:hover {
  color: black;
}

/* Gallery */
.gallery-container {
  position: relative;
  background-color: black;
}

.gallery-container::before {
  content: '';
  display: inline-block;
  padding-top: 100%;  /* This percentage needs to be adjusted based on your image aspect ratio */
}

.gallery-container img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: opacity 1s ease-in-out;
  object-fit: cover;
  border-radius: 20px;  /* This will make the corners rounded */
}

.gallery-container .image1, .gallery-container .image2 {
  animation-name: fade;
  animation-timing-function: ease-in-out;
  animation-fill-mode: forwards;
  animation-iteration-count: infinite;
}

.gallery-container .image1 {
  animation-duration: 4s; /* Adjust as needed */
}

.gallery-container .image2 {
  animation-duration: 8s; /* This should be twice the duration of image1's animation for proper transitioning */
}

@keyframes fade {
  0%   {opacity: 1;}
  50%  {opacity: 0;}
  100% {opacity: 1;}
}

/* Black button */
.btn-black {
  background-color: black;
  color: white;
}

.btn-black:hover {
  background-color: #444; /* Lighter shade of black (dark gray) */
  color: white;
}

.btn-black:active {
  background-color: #666; /* Even lighter shade of black (gray) */
  color: white;
}

.btn-black:focus {
  outline: none;
  box-shadow: 0 0 0 0.1rem rgba(0, 0, 0, 0.3); /* This is a semi-transparent black */
}

/* Joined button */
.btn-joined {
  background-color: lightgrey;
  color: white;
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
}

.btn-joined:hover,
.btn-joined:focus,
.btn-joined:active {
  background-color: darkgrey;
  color: white;
}

/* Not Joined button */
.btn-not-joined {
  background-color: white;
  color: black;
  border: 1px solid black;
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
}

.btn-not-joined:hover,
.btn-not-joined:focus,
.btn-not-joined:active {
  background-color: black;
  color: white;
}

/* Responsive version for mobile screens */
@media screen and (max-width: 800px) {
  .btn-joined,
  .btn-not-joined {
    font-size: 0.65rem;
    padding: 0.2rem 0.4rem;
  }
}

/* Select button */
.btn-select {
  background-color: white;
  color: black;
  border: 1px solid black;
}

.btn-select:hover,
.btn-select:focus,
.btn-select:active {
  background-color: white;
  color: black;
  border: 1px solid black;
}

/* Rounded button */
.rounded-button {
  border-radius: 25px;
}

/* Custom text */
.normal-text {
  font-size: 1rem;  /* Adjust according to your needs */
  font-weight: normal;
}

/* Custom select */
.custom-select {
  height: calc(1.5em + .5rem + 2px);
  padding: 5px 25px 5px 15px;
  font-size: .875rem;
  line-height: 1.5;
  border-radius: 25px;;
  content: "\25BC";
}

.dropdown-menu {
  border-radius: 25px;
}

/* Speech bubble */
.speech-bubble {
  position: absolute;
  bottom: 5%; /* Adjusted */
  left: 5%; /* Adjusted */
  max-width: 90%;
  background-color: white;
  border: 2px solid black;
  border-radius: 10px;
  padding: 10px;
  text-align: center;
}

.speech-bubble::before {
  position: absolute;
  width: 0;
  height: 0;
  bottom: -10px;
  left: 50%;
  margin-left: -10px;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid white;
}

.speech-bubble-home {
  bottom: 12%;
}

.bubble-text {
  margin: 0;
  font-family: 'Comic Sans MS', sans-serif;
  font-size: 14px;
}

@media screen and (max-width: 800px) { /* Small screen */

  .speech-bubble {
      bottom: 5%; /* Adjusted */
      left: 5%; /* Adjusted */
      max-width: 90%;
      padding: 5px;
  }

  .speech-bubble::before {
    bottom: -8px;
    margin-left: -8px;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 8px solid white;
  } 

  .speech-bubble-home {
    bottom: 15%;
  }

  .bubble-text {
    font-size: 10px;
  }
}

/* Tag & Button common styles */
.tags-wrapper {
  position: absolute;
  display: flex;
  flex-direction: row;
  gap: 10px;
}

.tags-wrapper.bottom-right {
  right: 5%; bottom: 5%;
}

.tags-wrapper.top-left {
  left: 5%; top: 5%;
}

.tags-wrapper.bottom-left {
  left: 5%; bottom: 5%;
}

.tag {
  background-color: rgba(0, 0, 0, 1);
  color: white;
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 25px;
  opacity: 1;
  white-space: nowrap; /* Added to prevent text wrap */
  display: inline-block; /* Added to fit button width to text */
  border: none; /* Added to remove border */
}

.tag i {
  font-size: 12px;
}

.tag.tag-processing {
  opacity: 0.5; /* Applied when image is not ready yet */
}

.tag.tag-label {
  opacity: 0.75; /* Applied when label */
}

.tag.tag-action {
  opacity: 1; /* Applied when label */
}

@media screen and (max-width: 800px) { /* Small screen */

  /* Tag & Button common styles */
  .tags-wrapper.bottom-right {
    right: 5%; bottom: 5%;
  }

  .tags-wrapper.top-left {
    left: 5%; top: 5%;
  }

  .tags-wrapper.bottom-left {
    left: 5%; bottom: 5%;
  }
  .tag {
    font-size: 10px;
    padding: 3px 7px;
  }

  .tag i {
    font-size: 10px;
    padding: 3px 7px;
  }

  .tag.tag-processing {
    opacity: 0.5; /* Applied when image is not ready yet */
  }

  .tag.tag-label {
    opacity: 0.75; /* Applied when label */
  }

  .tag.tag-action {
    opacity: 1; /* Applied when ready */
  }
}

/* Input tag */
.input-tag-input-no-border {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;  /* For Safari */
  -moz-appearance: none !important;  /* For Firefox */
  appearance: none !important;
  border-color: transparent !important; /* just in case the color is causing an issue */
}

.input-tag-input-no-border:focus {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;  /* For Safari */
  -moz-appearance: none !important;  /* For Firefox */
  appearance: none !important;
  border-color: transparent !important; /* just in case the color is causing an issue */
  -webkit-box-shadow: none !important;  /* For Safari */
  -moz-box-shadow: none !important;  /* For Firefox */
  box-shadow: none !important;
}

.input-tag-container {
  display: flex;
  flex-wrap: wrap;
  padding: 10px 5px 5px 0;
  border: none !important; /* No border */
  box-shadow: none !important; /* No box-shadow */
}

.input-tag {
  display: inline-block;
  background: #ddd;
  padding: 5px 5px 5px 10px;
  border-radius: 25px;
  margin: 2px 2px 2px 10px;
}

.remove-button {
  margin-left: 5px;
  margin-right: 5px;
  cursor: pointer;
}

/* Tooltip */
.tooltip {
  position: relative;
  display: inline-block;
}

.tooltip .tooltiptext {
  visibility: hidden;
  width: 140px;
  background-color: #555;
  color: #fff;
  text-align: center;
  border-radius: 6px;
  padding: 5px;
  position: absolute;
  z-index: 1;
  bottom: 150%;
  left: 50%;
  margin-left: -75px;
  opacity: 0;
  transition: opacity 0.3s;
  }

.tooltip .tooltiptext::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #555 transparent transparent transparent;
}

.tooltip:hover .tooltiptext {
  visibility: visible;
  opacity: 1;
}

/* Image overlay */
.overlay {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
}

.loading-text {
  color: #fff;
  font-size: 12px;
  font-weight: regular;
  text-align: center;
}

/* Image */
.image-wrapper {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding-bottom: 100%; /* This ensures the aspect ratio is 1:1 (square) */
}

.image-responsive {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 25px;
}

.square-responsive {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Follow button */
.following {
  background-color: red;
  color: white;
}

/* Filter button */
.feed-link {
  color: #444444; /* Change to desired color */
  text-decoration: none;
}

.feed-btn {
  display: inline-block;
  padding: 5px 10px; /* Adjust padding as needed */
  color: black;
  background-color: white;
  border: 1px solid black;
  border-radius: 15px; /* Adjust for roundness of corners */
  text-decoration: none;
  transition: all 0.3s;
  margin: 0 5px; /* Adds 5px of space to the left and right of each button */
}

.feed-btn.active {
  color: white;
  background-color: black;
  border-color: black;
}

.feed-link:hover,
.feed-btn:hover {
  color: white;
  background-color: black;
  border-color: black;
  text-decoration: none;
}

.feed-btn:active, 
.feed-btn:focus {
    transform: none;  /* Removes enlargement */
    outline: none; /* Removes outline */
}

@media screen and (max-width: 800px) { /* Small screen*/
  .feed-btn {
    padding: 3px 8px; /* Decrease padding */
    font-size: 0.8em; /* Decrease font size */
    border-radius: 15px; /* Decrease radius */
    margin-bottom: 0px;
  }
  
  .feed-link {
    font-size: 0.8em; /* Decrease font size */
  }
}

/* Timer */
#timer {
  font-size: 14px;
  font-weight: bold;
  padding-bottom: 1px;
  margin-bottom: 0px;
  line-height: 1;
}

#timer-title {
  font-size: 8px;
  padding-top: 0px;
  margin-top: 0px;
  font-weight: bold;
  text-align: right;
  line-height: 1;
}

/* Post */
@media screen and (min-width: 800px) { /* Large screen*/
  .post-profile img {
    max-width: 15%;
    height: auto;
    padding: 3%;
    border-radius: 50%;
  }
  .post-profile h6 {
    display: inline;
    padding-top: 3.1%;
    position: absolute;
  }
  .post-profile p {
    display: inline-block;
    padding-top: 6.5%;
    position: absolute;
  }
  .post-description p {
    padding: 5% ;
  }
  .post-date {
    font-size: 12px;
  }
}

@media screen and (max-width: 800px) { /* Small screen*/
  .post-profile img {
    border-radius: 50%;
    max-width: 20%;
    height: auto;
    padding: 4%;
  }
  .post-profile h6 {
    display: inline;
    padding-top: 5%;
    position: absolute;
    font-size: 14px;;
  }
  .post-profile p {
    display: inline-block;
    padding-top: 9.75%;
    position: absolute;
  }
  .post-description p {
    padding: 5%;
  }
  .post-date {
    font-size: 10px;
  }
  .profile img {
    border-radius: 50%;
    max-width: 30%;
  }
}

/* Profile */
@media screen and (min-width: 800px) { /* Large screen*/
  .profile img {
    max-width: 50%;
    border-radius: 50%;
  }
}

/* Like */
@media screen and (max-width: 800px) { /* Small screen*/
  /* Like icon */
  .like-icon {
      font-size: 16px !important; /* Or any other size you wish */
  }
  .like-icon .fa-heart {
      font-size: 16px !important; /* Or any other size you wish */
  }
}

/* Theme */
.rounded-square {
  border-radius: 10%;  /* Adjust as necessary to get the desired roundness */
  max-height: 100px; /* Adjust size as per your requirement */
  max-width: 100px; /* Ensure it's a square */
}

.card-body-content {
  display: flex;
  align-items: center; /* Center content vertically */
  gap: 10px;
}

.theme-content {
  display: flex;
  flex-direction: column;
  justify-content: center; /* Center tag and label vertically */
}

.theme-link {
  color: black; /* Initial color */
  opacity: 1; /* Initial opacity */
  text-decoration: none;
}

.theme-link:hover, .theme-link:active {
  color: black; /* Color on hover and active (clicked) state */
  opacity: 1; /* Opacity on hover and active (clicked) state */
}

.theme-join .icon-container {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background-color: #f0f0f0;
	margin: 0 auto;
	overflow: hidden;
}

.theme-join .image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.theme-join .title, .theme-join .description {
	margin-top: 20px;
  color: white;
}

.modal-body .theme-join .title, .modal-body .theme-join .description, .modal-body .theme-profile h6, .modal-body .theme-profile p {
  color: black;
}

.theme-profile {
  margin-left: 20%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.theme-profile img {
  max-width: 20%;
  height: auto;
  padding: 2.9%;
  border-radius: 50%;
}

.theme-profile h6, .theme-profile p {
  color: white;
}

.theme-profile h6 {
  display: inline;
  padding-top: 3%;
  position: absolute;
}

.theme-profile p {
  display: inline-block;
  padding-top: 1.5%;
  position: absolute;
  font-size: 12px;
}

.theme-text {
  font-size: 0.75rem;
  padding-right: 15px;
  color: black; /* or whatever color you prefer for the text */
  background-color: transparent; /* assuming you don't want a background color */
}

/* Responsive version for mobile screens */
@media screen and (max-width: 800px) {

  .theme-title h4 {
    font-size: 14px;
  }

  .theme-text {
    font-size: 0.65rem;
    padding-right: 15px;
  }

  .theme-join .icon-container {
		width: 80px;
		height: 80px;
	}

	.theme-join .title {
		font-size: 16px;
		margin-top: 15px;
	}

  .theme-join .description {
		font-size: 0.9em;
		margin-top: 15px;
	}

  .theme-profile {
    margin-left: 33%;
  }

  .theme-profile img {
    border-radius: 50%;
    max-width: 24%;
    height: auto;
    padding: 4%;
  }
  
  .theme-profile h6 {
    display: inline;
    padding-top: 7%;
    position: absolute;
    font-size: 14px;
  }

  .theme-profile p {
    display: inline-block;
    padding-top: 3%;
    position: absolute;
    font-size: 10px;
  }
}

.universe-item {
  display: inline-block; 
  text-align: center;
}

.universe-link {
  text-decoration: none; 
  color: inherit;
}

.universe-icon {
  max-width: 50px; 
  max-height: 50px; 
  border-radius: 10%; 
  margin: auto;
}

.universe-image {
  width: 100%; 
  height: 100%; 
  object-fit: cover; 
  border-radius: 10%;
}

.universe-label {
  width: 100%;
  text-align: center;
  padding: 10px 0;
  font-size: 14px;
  font-weight: bold;
  color: #333;
}

.universe-container::-webkit-scrollbar {
  display: none;
}

.universe-container {
  -ms-overflow-style: none;  /* Internet Explorer and Edge */
  scrollbar-width: none;  /* Firefox */
}

.universe-item.active {
  opacity: 1.0;
}

.universe-item.inactive {
  opacity: 0.5;
}

.universe-responsive {
  max-height: 70px;  /* adjust as needed */
}

.universe-responsive {
  max-height: 70px;
}

@media screen and (max-width: 800px) {
  .universe-responsive {
      max-height: 50px;  /* adjust as needed */
  }

  .universe-label {
    padding: 5px 0; /* Decrease padding */
    font-size: 10px; /* Decrease font size */
  }
  
  .universe-item.active,
  .universe-item.inactive {
    font-size: 12px; /* Decrease font size */
  }

  .universe-icon {
    max-width: 40px; /* Decrease width */
    max-height: 40px; /* Decrease height */
  }
  
  .universe-image {
    border-radius: 5%; /* Decrease border radius */
  }
}

@media screen and (max-width: 800px) { /* Small screen*/  
    .theme-name {
        font-size: 14px;
    }
}

/* Custom checkbox */
.custom-checkbox {
  display: inline-block;
  position: relative;
  padding-right: 0px;
  padding-left: 25px;
  cursor: pointer;
  font-size: 22px;
  user-select: none;
  height: 25px;
  line-height: 25px;
  margin-bottom: 12px;
}

.custom-checkbox input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

.custom-checkbox .checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: #eee;
  border-radius: 4px;
}

.custom-checkbox .checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

.custom-checkbox input[type="checkbox"]:checked + .checkmark {
  background-color: #90EE90;
}

.custom-checkbox input[type="checkbox"]:checked + .checkmark:after {
  display: block;
}

.custom-checkbox .checkmark:after {
  left: 10px;
  top: 5px;
  width: 7px;
  height: 13px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

@media screen and (max-width: 800px) {

  .checkbox-responsive {
      font-size: 16px;  /* adjust as needed */
      height: 20px;  /* adjust as needed */
      line-height: 20px;  /* adjust as needed */
  }
  .checkbox-responsive .checkmark {
      height: 20px;  /* adjust as needed */
      width: 20px;  /* adjust as needed */
  }
  .checkbox-responsive .checkmark:after {
      top: 4px;  /* adjust as needed */
      left: 8px;  /* adjust as needed */
      width: 5px;  /* adjust as needed */
      height: 10px;  /* adjust as needed */
  }
}

/* Card title and text mobile */
@media screen and (max-width: 800px) {
  .card-title-responsive {
      font-size: 0.8em;  /* You can adjust this value to fit your design needs */
  }
  .card-text-responsive {
      font-size: 0.7em;  /* You can adjust this value to fit your design needs */
  }
}