:root {
    --color-bg: #121212;
    --color-surface: #1A1A1A;
    --color-surface-alt: #222222;
    --color-text: #F5F5F5;
    --color-text-muted: #B3B3B3;
    --color-accent: #D97706;
    --color-accent-light: #F4A340;
    --color-cream: #E8D8C3;
}

* {
    font-family: 'IBM Plex Sans', sans-serif;
}

html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

body {
    margin-bottom: 60px;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

/* Navigation */
.navbar {
    background-color: var(--color-bg) !important;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.navbar-brand {
    color: var(--color-text) !important;
    font-weight: 600;
}

.nav-link {
    color: var(--color-text-muted) !important;
    transition: color 0.2s ease;
}

    .nav-link:hover {
        color: var(--color-accent) !important;
    }

.typewriter {
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    border-right: .15em solid orange;
    max-width: 0;
    animation: typing 3.5s steps(40, end) forwards, blink-caret .75s step-end infinite;
}

@keyframes typing {
    from {
        max-width: 0;
    }

    to {
        max-width: 100vw;
    }
}

@keyframes blink-caret {
    from, to {
        border-color: transparent;
    }

    50% {
        border-color: orange;
    }
}