* {
    box-sizing: border-box;
}

body {
    background: #000;
    margin: 0;
    padding: 0;
    font-family: sans-serif;
    overflow: hidden;
}



#loading {
    position: fixed;
    width: 100vw;
    height: 100vh;
    background: #fff;
    z-index: 100;
    text-align: center;
    line-height: 100vh;
    font-size: 10vh;
}



main {
    padding-right: 200px;
    width: 100vw;
    height: 100vh;
}

canvas {
    width: 100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}



aside {
    padding: 20px;
    position: fixed;
    right: -700px;
    top: 0;
    transition: right .3s;

    width: 900px;
    max-width: 90vw;
    height: 100vh;

    background: #fff;
    z-index: 10;

    overflow-y: auto;
}

main:not(:hover) ~ aside {
    right: 0;
}


h1 {
    padding-bottom: 20px;
}

#controls {
    position: relative;
}

label {
    display: block;
    padding-bottom: 20px;
}

input[type=range] {
    width: 80%;
    position: absolute;
    right: 0;
    height: 20px;
}


#code {
    width: 100%;
    height: 640px;
    overflow: auto;
    margin-top: 30px;
    font-family: monospace;
}

pre {
    padding-top: 30px;
    color: darkred;
    white-space: pre-wrap;
}