/* Define custom fonts with a wide range of weights */
@font-face {
    font-family: 'Lexend';
    src: url('./static/Lexend-VariableFont.ttf') format('truetype');
    font-weight: 1 999;
}

/* CSS Variables for consistent theming */
:root {
    --underline-green: green;
    --underline-blue: blue;
    --underline-red: red;
    --underline-yellow: yellow;
    --underline-orange: orange;
    --underline-purple: purple;
    --underline-pink: pink;
    --underline-lime: lime;
    --underline-cyan: cyan;
    --underline-magenta: magenta;
	--background-color: #111;
    --text-color: #DFDFDF;
    --font-family-main: 'Lexend';
	--transition-speed: 0.5s;
}

.underline {
    text-decoration: underline;
}

[data-key='a'] { text-decoration-color: var(--underline-green); }
[data-key='b'] { text-decoration-color: var(--underline-blue); }
[data-key='c'] { text-decoration-color: var(--underline-red); }
[data-key='d'] { text-decoration-color: var(--underline-yellow); }
[data-key='e'] { text-decoration-color: var(--underline-orange); }
[data-key='f'] { text-decoration-color: var(--underline-purple); }
[data-key='g'] { text-decoration-color: var(--underline-pink); }
[data-key='h'] { text-decoration-color: var(--underline-lime); }
[data-key='i'] { text-decoration-color: var(--underline-cyan); }
[data-key='j'] { text-decoration-color: var(--underline-magenta); }


/* Base body styling */
body {
    background-color: var(--background-color);
    color: var(--text-color);
    font-family: var(--font-family-main);
    margin: 0;
    padding: 10vh;
    height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1.6;
}

/* Responsive font sizes with corrected breakpoints */
@media screen and (max-width: 600px) {
    body { font-size: 1.8rem; }
}
@media screen and (min-width: 601px) and (max-width: 1024px) {
    body { font-size: 1.7rem; }
}
@media screen and (min-width: 1025px) {
    body { font-size: 3.6rem; }
}

/* Container styling optimized for readability and maintenance */
.container {
    width: 80%;
    display: grid;
    grid-template-columns: 1fr;
    max-width: 60ch;
    margin: 0 auto;
    padding: 15px;
}

/* Sentence container and replaceable elements styling for better interaction */
#sentence-container {
    grid-column: 2 / 3;
    text-align: center;
    font-weight: 300;
}
.replaceable, .replaceable2 {
    cursor: pointer;
    color: white;
    transition: opacity var(--transition-speed), color var(--transition-speed);
    opacity: 1; /* Ensure full opacity by default */
}
.replaceable { font-weight: 600; text-decoration-thickness: 0.5vh; }
.replaceable2 { font-weight: 500; }
.replaceable:hover { opacity: 0.6; }

/* Adjustments for smaller screens */
@media screen and (max-width: 768px) {
    .container { max-width: 100%; }
}
