:root {
    --letter-color: #ffffff;
    --number-color: #FF8D1E;
    --symbol-color: #1E90FF;
}

.light-theme {
    --letter-color: #000000;
    --number-color: #FF8D1E;
    --symbol-color: #1E90FF;
}

html,
body {
    height: 100%;
    margin: 0;
    min-width: 800px;
}

body {
    background-color: #171717;
    font-family: 'Share Tech Mono', monospace;
    font-size: 1.1em;
    line-height: 1.5em;
    color: grey;
    display: flex;
    flex-direction: column;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

body::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-image: url('./noise.svg'),
        linear-gradient(to top, rgba(22, 22, 22, 0.806), transparent 80%),
        linear-gradient(to bottom, rgba(22, 22, 22, 0.854), transparent 80%),
        linear-gradient(to left, rgba(22, 22, 22, 0.6), transparent 80%),
        linear-gradient(to right, rgba(22, 22, 22, 0.6), transparent 80%);
    background-blend-mode: exclusion;
    filter: saturate(0.2) contrast(2.5);
    pointer-events: none;
    z-index: -1;
    opacity: 0.1;
}

header {
    margin-top: 2em;
}

h1,
h2,
h3,
.menu,
.footer {
    font-family: 'Share Tech Mono', monospace;
    text-align: center;
    color: #c3c3c3;
    margin-top: 0;
    position: relative;
    z-index: 2;
}

h1 {
    font-family: 'Major Mono Display', monospace;
    color: #dbdbdb;
    font-size: 6em;
    margin-top: 0.55em;
    display: inline-block;
    vertical-align: middle;
}

h2 {
    font-family: "Kode Mono", monospace;
    font-size: 2.5em;
}

h3 {
    font-family: "Kode Mono", monospace;
    font-size: 1.5em;
    z-index: 6;
}

p {
    text-align: justify;
    margin: 0 auto;
    max-width: 600px;
    z-index: 5;
}

.highlight,
.highlight a {
    color: #FF8D1E;
    text-decoration: none;
}

.menu,
.footer {
    font-size: 0.8em;
    width: 100%;
    padding: 1em 0;
    background-color: #181818;
}

.menu-container,
.menu-links,
.menu-buttons {
    display: flex;
    justify-content: center;
    align-items: center;
}

.menu-container {
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
}

.theme-toggle {
    background: none;
    border: none;
    color: grey;
    font-size: 1.2em;
    padding: 0 10px;
    cursor: pointer;
    margin-left: auto;
}

.theme-toggle:focus,
.theme-toggle:hover {
    outline: none;
    color: #FF8D1E;
}

.menu a,
.footer a {
    color: grey;
    text-decoration: none;
    padding: 0 10px;
}

.menu a:hover,
.footer a:hover {
    color: #FF8D1E;
}

.char-wrapper {
    display: inline-block;
    position: relative;
}

.fade-blur {
    position: absolute;
    top: 0;
    left: 0;
    animation: fadeOutBlur 1s forwards;
}

@keyframes fadeOutBlur {
    0% {
        opacity: 0.5;
        filter: blur(0);
    }
    100% {
        opacity: 0;
        filter: blur(50px);
    }
}

strong {
    font-weight: bold;
}

main {
    flex-grow: 1;
    padding: 5%;
}

.original-char {
    font-weight: initial;
}

.logo {
    width: 5em;
    height: auto;
    display: inline-block;
    vertical-align: middle;
    margin-top: 2em;
}

.logo-title-container {
    display: flex;
    align-items: center;
    justify-content: center;
}

.word-wrapper {
    white-space: nowrap;
}

.light-theme {
    background-color: #f0f0f0;
    color: #333;
}

.light-theme h1,
.light-theme h2,
.light-theme h3,
.light-theme p,
.light-theme .menu,
.light-theme .footer {
    color: #333;
}

.light-theme .menu a,
.light-theme .footer a {
    color: #555;
}

.light-theme .menu a:hover,
.light-theme .footer a:hover {
    color: #1E90FF;
}

.light-theme .highlight {
    color: #1E90FF;
}

.bold-part {
    color: #1E90FF;
}

.light-theme .bold-part {
    color: #FF8D1E;
}

.selectable-text {
    position: absolute;
    top: 0;
    left: 0;
    color: transparent;
    pointer-events: none;
    user-select: text;
    z-index: 2;
}

.image-stack {
    position: relative;
    width: 100%;
    max-width: 40em;
    margin-bottom: -19em;
    margin-top: -10em;
}

.profile-pic {
    width: 100%;
    display: block;
    mix-blend-mode: lighten;
    filter: url(#sticker-effect);
}

.profile-pic.masked {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 99;
}

.profile-pic.base {
    z-index: 1;
}

.light-theme .profile-pic {
    filter: url(#sticker-effect-light);
    filter: drop-shadow(0 0 5.75rem #898989) saturate(0.5);
    mix-blend-mode: normal;
}
.light-theme .profile-pic.masked {
    filter: url(#sticker-effect-light);
    filter: drop-shadow(0 0 10px #353535) saturate(.8);
    mix-blend-mode: normal;
}

.text-overlay {
    background: rgba(14, 14, 14, 0.6); /* Semi-transparent background */
    backdrop-filter: blur(2px); /* Blur effect */
    padding-bottom: 7.5em;
    margin-bottom: -10em;
    border-radius: 10px;
    padding-right: 2em;
    padding-left: 2em;
    text-align: center;
    margin-top: -1em;
    position: relative;
    z-index: 3;
}

.light-theme .text-overlay {
    backdrop-filter: blur(15px); /* Blur effect */
    background: rgba(222, 222, 222, 0.783); /* Semi-transparent background for light theme */
}

.text-solid {
    background: rgb(39, 39, 39); /* Semi-transparent background */
    width: 800px;
    margin: 0 auto;
    padding-top: 2em;
    padding-bottom: 2em;
    position: relative;
    z-index: 3;
}

.light-theme .text-solid {
    background: rgb(199, 199, 199); /* Semi-transparent background for light theme */
}
