/*
 * Globals
 */

@keyframes fade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.bd-placeholder-img {
  font-size: 1.125rem;
  text-anchor: middle;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

@media (min-width: 768px) {
  .bd-placeholder-img-lg {
    font-size: 3.5rem;
  }
}

.b-example-divider {
  width: 100%;
  height: 3rem;
  background-color: #0000001a;
  border: solid rgba(0, 0, 0, 0.15);
  border-width: 1px 0;
  box-shadow:
    inset 0 0.5em 1.5em #0000001a,
    inset 0 0.125em 0.5em #00000026;
}

.b-example-vr {
  flex-shrink: 0;
  width: 1.5rem;
  height: 100vh;
}

.bi {
  vertical-align: -0.125em;
  fill: currentColor;
}

.nav-scroller {
  position: relative;
  z-index: 2;
  height: 2.75rem;
  overflow-y: hidden;
}

.nav-scroller .nav {
  display: flex;
  flex-wrap: nowrap;
  padding-bottom: 1rem;
  margin-top: -1px;
  overflow-x: auto;
  text-align: center;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
}

.btn-bd-primary {
  --bd-violet-bg: #712cf9;
  --bd-violet-rgb: 112.520718, 44.062154, 249.437846;
  --bs-btn-font-weight: 600;
  --bs-btn-color: var(--bs-white);
  --bs-btn-bg: var(--bd-violet-bg);
  --bs-btn-border-color: var(--bd-violet-bg);
  --bs-btn-hover-color: var(--bs-white);
  --bs-btn-hover-bg: #6528e0;
  --bs-btn-hover-border-color: #6528e0;
  --bs-btn-focus-shadow-rgb: var(--bd-violet-rgb);
  --bs-btn-active-color: var(--bs-btn-hover-color);
  --bs-btn-active-bg: #5a23c8;
  --bs-btn-active-border-color: #5a23c8;
}

.bd-mode-toggle {
  z-index: 1500;
}

.bd-mode-toggle .bi {
  width: 1em;
  height: 1em;
}

.bd-mode-toggle .dropdown-menu .active .bi {
  display: block;
}

/* Custom default button */
.btn-light,
.btn-light:hover,
.btn-light:focus {
  color: #333;
  text-shadow: none;
  /* Prevent inheritance from `body` */
}

/*
 * Base structure
 */

body {
  text-shadow: 0 0.05rem 0.1rem rgba(0, 0, 0, 0.5);
  /*box-shadow: inset 0 0 5rem rgba(0, 0, 0, 0.5);*/
  z-index: 1;
  --bg-image: none;
  --animation: fade;
  --animation-direction: normal;
}

body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: var(--bg-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: -1;
}

.cover-container {
  max-width: 42em;
}

/*
 * Header
 */

.nav-masthead .nav-link {
  color: rgba(255, 255, 255, 0.5);
  border-bottom: 0.25rem solid transparent;
}

.nav-masthead .nav-link:hover,
.nav-masthead .nav-link:focus {
  border-bottom-color: rgba(255, 255, 255, 0.25);
}

.nav-masthead .nav-link + .nav-link {
  margin-left: 1rem;
}

.nav-masthead .active {
  color: #fff;
  border-bottom-color: #fff;
}

#profile-picture {
  filter: drop-shadow(black 0px 5px 5px);
}

h1 {
  font-size: 55px;
}

h1,
h2,
h3,
nav,
.lead {
  text-shadow: black 0px 5px 5px;
}

.blur {
  -webkit-backdrop-filter: blur(5px);
  background-color: rgba(0, 90, 90, 0.55);
  backdrop-filter: blur(20px);
  box-shadow: inset 0 0 5rem darkslategrey;
  filter: drop-shadow(5rem 5rem 5rem rgba(47 79 79 0.45));
}

.accordion.themed-accordion {
  /* Container surface — fully transparent because our wrapping section
     already provides the translucent panel. */
  --bs-accordion-bg: transparent;
  --bs-accordion-color: #fff;
  --bs-accordion-border-color: rgba(255, 255, 255, 0.18);
  --bs-accordion-border-width: 1px;
  --bs-accordion-border-radius: 1rem;
  --bs-accordion-inner-border-radius: calc(1rem - 1px);

  /* Buttons — translucent white, light text */
  --bs-accordion-btn-color: #fff;
  --bs-accordion-btn-bg: rgba(255, 255, 255, 0.08);
  --bs-accordion-btn-padding-y: 1rem;
  --bs-accordion-btn-padding-x: 1.25rem;
  --bs-accordion-btn-focus-border-color: rgba(255, 255, 255, 0.6);

  /* Bootstrap multiplies this rgb triple by an alpha for the focus ring.
     White-ish ring fits the theme; the default Bootstrap blue does not. */
  --bs-accordion-btn-focus-shadow-rgb: 255, 255, 255;

  /* Active (expanded) state — slightly brighter so it's clearly the
     current item, but still translucent. */
  --bs-accordion-active-color: #fff;
  --bs-accordion-active-bg: rgba(255, 255, 255, 0.16);

  /* Body padding + color */
  --bs-accordion-body-padding-y: 1.25rem;
  --bs-accordion-body-padding-x: 1.25rem;

  /* Chevron icons — Bootstrap defaults to dark SVGs that disappear on
     a dark background. These are the same paths recoloured white.
     The `active-icon` is the rotated state; Bootstrap rotates it
     itself, so it's fine to use the same artwork. */
  --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

/* Header text styling — match the rest of the site (bold + drop shadow) */
.accordion.themed-accordion .accordion-button {
  font-weight: 700;
  text-shadow: black 0 3px 5px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: background-color 0.25s ease;
}

.accordion.themed-accordion .accordion-button:hover {
  background-color: rgba(255, 255, 255, 0.14);
}

/* Body text — drop the harsh shadow on long paragraphs (looks fuzzy),
   but keep the light color */
.accordion.themed-accordion .accordion-body {
  color: rgba(255, 255, 255, 0.92);
  text-align: left;
}

.accordion.themed-accordion .accordion-body code {
  background-color: rgba(255, 255, 255, 0.15);
  color: #fff;
  padding: 0.1rem 0.35rem;
  border-radius: 0.25rem;
}

/* Item dividers — subtle white rule between items instead of the
   default opaque border that doesn't fit the theme */
.accordion.themed-accordion .accordion-item {
  background: transparent;
  border-left: 0;
  border-right: 0;
}

.accordion.themed-accordion .accordion-item:first-of-type {
  border-top: 0;
}

.accordion.themed-accordion .accordion-item:last-of-type {
  border-bottom: 0;
}

.btn-flash-bg::before {
  background-color: rgba(255, 255, 255, 0.16);
}
