/* Defaults */
:root {
    --red: #aa2222;
    --green: #22aa22;
    --blue: #2222aa;
    --orange: #eeaa11;
    --magenta: #dd22dd;
    --cyan: #288888;
    --white: #eeeeee;
    --grey: #888888;
    --black: #111111;

    --active-color: var(--orange);
    --font-color: var(--black);
    --font-family: monospace;

    --border-2px: 2px solid var(--black);
    --border-4px: 4px solid var(--black);
    --border-8px: 8px solid var(--black);

    --border-r-2px: 2px solid var(--red);
    --border-g-2px: 2px solid var(--green);
    --border-b-2px: 2px solid var(--blue);
    --border-o-2px: 2px solid var(--orange);
    --border-m-2px: 2px solid var(--magenta);

    --border-r-4px: 4px solid var(--red);
    --border-g-4px: 4px solid var(--green);
    --border-b-4px: 4px solid var(--blue);
    --border-o-4px: 4px solid var(--orange);
    --border-m-4px: 4px solid var(--magenta);

    --screen-width-s: 576px;
    --screen-width-m: 768px;
    --screen-width-l: 1024px;
    --screen-width-xl: 1440px;
}

html {
    box-sizing: border-box;
}

*,
*:before,
*:after {
    box-sizing: inherit;
}

body {
    margin: 0;
    font-size: 100%;
    font-family: var(--font-family);
    color: var(--font-color);
}

a {
    text-decoration: none;
    color: var(--font-color);
}

button {
    border: none;
    background: none;
}

a:hover,
button:hover {
    color: var(--active-color);
    cursor: pointer;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
    margin: 0;
}

/* nav {
    height: 3rem;
    font-size: 1.8rem;
    display: flex;
    align-items: center;
} */

label {
    font-size: 1.4rem;
    font-weight: bold;
    width: 16rem;
    margin-left: 0;
    margin-right: auto;
}

input[type="number"] {
    text-align: right;
    font-size: 1.6rem;
    width: 4rem;
    margin-right: 1rem;
    margin-left: auto;
}

input[type="range"] {
    width: 100%;
}

/* Default Classes */

/* Pages */
.page-header {
    font-size: 1rem;
    text-align: center;
    margin-top: 4rem;
}

.page-content {
    margin: auto;
    margin-top: 2rem;
}

/* SVG Related Styles */
.svg-content {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: center;
}

/* depreciated */
.canvas-container {
    border: var(--border-4px);
    height: 40rem;
    width: 40rem;
}

/* replace canvas-container */
.svg-canvas-container {
    border: var(--border-4px);
    height: 40rem;
    width: 40rem;
}

.svg-canvas {
    width: 100%;
    height: 100%;
}

.svg-controls {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    width: 40rem;
}

.svg-control-row {
    display: flex;
}

.svg-control-row > button:first-of-type {
    margin-left: auto;
}

.svg-control-row button {
    margin-right: 1rem;
}

/* todo: change to svg-control-* */
.control-button {
    border: var(--border-2px);
    border-radius: 16%;
    font-size: 1.6rem;
    font-weight: bold;
}

.control-button:hover {
    transform: scale(1.2);
}

.control-button:active {
    transform: scale(1);
}

.control-value {
    border: var(--border-2px);
    font-size: 1.6rem;
    font-weight: bold;
    width: 3rem;
    text-align: center;
}

/* Home Page */
.home-canvas {
    width: 50rem;
    height: 50rem;
    margin: auto;
}

/* Stuff Page */
.stuff-content {
    /* border: var(--border-r-4px); */
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    margin-bottom: 10rem;
}

.stuff-item {
    /* border: var(--border-r-4px); */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.stuff-container {
    border: var(--border-4px);
    width: 30rem;
    height: 30rem;
}

.stuff-canvas {
    width: 100%;
    height: 100%;
}

.stuff-info {
    border: var(--border-4px);
    border-top: none;
    padding: 0.4rem;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.stuff-info p {
    margin-left: 2rem;
    font-size: 1.4rem;
}

.stuff-info a {
    margin-right: 1rem;
    font-size: 1.4rem;
}

/* Media Queries */
/* Mobile */
@media (max-width: 575px) {
    /* Page Wide */
    .page-header {
        margin-top: 3rem;
    }

    .page-content {
        margin-top: 1rem;
    }

    /* SVG Content */
    .svg-content {
        gap: 0.2rem;
    }

    .svg-canvas-container {
        height: 22rem;
        width: 22rem;
    }

    .svg-controls {
        flex-direction: column;
        width: 22rem;
        gap: 0.6rem;
    }

    .svg-control-row {
        width: 100%;
        flex-wrap: wrap;
    }

    .svg-controls button {
        font-size: 2rem;
    }

    /* Home Page */
    .home-canvas {
        width: 100%;
        height: 30rem;
    }

    /* Stuff Page */
    .stuff-content {
        /* flex-direction: column; */
        /* flex-wrap: none; */
        /* align-items: center; */
        /* justify-content: center; */
    }

    .stuff-item {
        width: 24rem;
        height: 26rem;
    }

    .stuff-container {
        width: 22rem;
        height: 22rem;
        /* margin-left: auto; */
        /* margin-right: auto; */
    }

    .stuff-info {
        width: 22rem;
        margin-left: auto;
        margin-right: auto;
    }
}

/* Tablets */
@media screen and (min-width: 576px) and (max-width: 767px) {
    .canvas-container {
        height: 30rem;
        width: 30rem;
    }

    .svg-controls {
        height: 30rem;
    }

    .svg-control-row {
        width: 100%;
        flex-wrap: wrap;
    }

    .svg-controls button {
        font-size: 2rem;
    }

    /* Home Page */
    .home-canvas {
        width: 30rem;
        height: 30rem;
    }
}

/* Monitors */
@media screen and (min-width: 768px) and (max-width: 1199px) {
    .canvas-container {
        height: 40rem;
        width: 40rem;
    }

    .svg-controls {
        height: 40rem;
    }

    /* Home Page */
    .home-canvas {
        width: 40rem;
        height: 40rem;
    }

    .svg-control-row {
        width: 100%;
        flex-wrap: wrap;
    }

    .svg-controls button {
        font-size: 2rem;
    }
}
