@font-face {
      font-family: 'Roboto';
      src: url('assets/fonts/Roboto-VariableFont_wdth,wght.ttf') format('truetype');
      font-weight: normal;
      font-style: normal;
    }

    @font-face {
      font-family: 'JetBrains Mono';
      src: url('assets/fonts/JetBrainsMono-VariableFont_wght.ttf') format('truetype');
      font-style: normal;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      font-family: 'Roboto', sans-serif;
      font-weight: 400;
    }

    .JetBrains {
      font-family: 'JetBrains Mono', sans-serif;
      font-weight: 400;
      font-size: .8em;
    }

    .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: rgba(0, 0, 0, .1);
      border: solid rgba(0, 0, 0, .15);
      border-width: 1px 0;
      box-shadow: inset 0 .5em 1.5em rgba(0, 0, 0, .1), inset 0 .125em .5em rgba(0, 0, 0, .15);
    }

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

    .bi {
      vertical-align: -.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;
    }

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

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

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

    .heart-beat {
      display: inline-block;
      animation: realistic-heartbeat 1.5s infinite ease-in-out;
      transform-origin: center;
    }

    @keyframes realistic-heartbeat {
      0% {
        transform: scale(1);
      }

      10% {
        transform: scale(1.3);
      }

      20% {
        transform: scale(1);
      }

      30% {
        transform: scale(1.2);
      }

      40% {
        transform: scale(1);
      }

      100% {
        transform: scale(1);
      }
    }

    .heart {
      position: absolute;
      width: 24px;
      height: 24px;
      pointer-events: none;
      z-index: 9999;
      transition: transform 0.5s ease-out, opacity 0.5s ease-out;
    }

    svg.heart {
      position: absolute;
      pointer-events: none;
      z-index: 9999;
      transform: translate(-50%, -50%);
    }

    .heart-firework {
      position: relative;
      display: inline-block;
      text-decoration: none;
      color: #c00;
      font-weight: bold;
    }

    .heart-firework svg.heart {
      position: absolute;
      width: 16px;
      height: 16px;
      pointer-events: none;
      z-index: 999;
      opacity: 0;
      transform: translate(-50%, -50%);
      transition: opacity 0.3s;
    }