:root{
    --background-col: #1a1a1a;
    --dead-cell-col: #252525;
    --alive-cell-col: #1de297;
    --border-col: #3a3a3a;
}

body {
    background: var(--background-col);
    color:  white;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    font-family: "Space Mono", monospace;
}

#grid, #spaceships {
    line-height: 0;
    margin-top: 0;
    white-space: nowrap;
    user-select: none;
    font-size: 0;
    display: inline-block;
    max-height: 80vh;
    max-width: 80vw;
}
#spaceships {
    margin-bottom: 20px;
}

.cell {
    width: 10px;
    height: 10px;
    display: inline-block;
    background: var(--dead-cell-col);
    border: 1px solid var(--border-col);
    margin: 0;
    padding: 0;
    line-height: 0px;
}

.cell:hover{
    background-color: var(--border-col);
    cursor: pointer;

}

.alive {
    background: var(--alive-cell-col);
}

.alive:hover {
    background: var(--alive-cell-col);
}

h1 {
    font-size: 48px;
    font-weight: 700;
    margin-bottom: 0px;
    margin-top: 10px;
}

#buttons {
    display: flex;
    flex-direction: column;
    align-items: center;
}

button {
    padding: 8px 18px;
    font-size: 20px;
    cursor: pointer;
    background: var(--dead-cell-col);
    color: white;
    border: 1px solid var(--border-col);
    transition: 0.2s ease-in-out;
}

button:hover {
    background: var(--alive-cell-col);
    color: var(--background-col);
    padding: 8px 24px;
}

#grid-size, #speed-size, #zoom-size {
    cursor: pointer;
    -webkit-appearance: none;
    background-color: var(--dead-cell-col);
    height:16px;
    border: 1px solid var(--border-col);
}

#grid-size:hover::-webkit-slider-thumb, #grid-size:hover::-moz-range-thumb,
#zoom-size:hover::-webkit-slider-thumb, #zoom-size:hover::-moz-range-thumb,
#speed-size:hover::-webkit-slider-thumb, #speed-size:hover::-moz-range-thumb{
    background-color: var(--alive-cell-col);
    transition: 0.2s;
    height: 20px;
    width: 20px;
}

.slider {
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 18px;
}

#description {
    width: 600px;
}

a {
    color: white;
    margin-bottom: 30px;
}

a:hover{
    color: white;
    transition: 0.3s;
    letter-spacing: 4px;
}

a:visited{
    color: white;
}

.line {
    border-bottom: 2px dotted var(--border-col);
    margin-top: 30px;
    margin-bottom: 30px;
    width: 650px;
}

#hint {
    margin-top: 20px;
    margin-bottom: 0;
    color: var(--border-col);
    font-size: 14px;
}

#grid-container {
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: auto;
    width: 70vw;
    height: 70vh;
    overflow: auto;
    border: 2px dotted var(--border-col);
    margin: 20px;
    margin-top: 0px;
}

#more-patterns {
    margin-top: 40px;
    margin-bottom: 80px;
}