body {
    display: grid;
    height: 98vh;
    place-content: center;
    font-family: sans-serif;
    overflow: hidden;
    background-color: #EBEDE6;
}
svg.arcade-controller {
    width: 85vw;
    height: auto;
    overflow: visible;
    align-self: center;
    margin-top: -15%;
    grid-row: 1 / 2;
    grid-column: 1 / 2;
}
#balltop {
    fill: #25EF10;
}
.dust-cover {
    fill: #3d3d3d;
}
#shaft {
    fill: #e2e2e2;
}
.plunger.top {
    fill: #FD5FD2;
}
.plunger.side {
    fill: #9A2F7A;
}
.front-ring, .back-ring {
    fill: #BE469C;
}
.menu {
    box-sizing: border-box;
    display: grid;
    place-content: center;
    grid-template-columns: 1fr;
    position: absolute;
    right: 5vw;
    top: 4vh;
    width: 3rem;
    height: 3rem;
    overflow: hidden;
    border: 4px solid white;
    border-radius: 4px;
    border-radius: 1rem 1rem 30% 30%;
    background-color: #A3ABAE;
    transition: all 0.2s ease-out;
    color: #A3ABAE;
    cursor: pointer;
    user-select: none;
}
.menu.expanded {
    color: white;
    width: 90vw;
    height: 90vh;
    text-shadow: 1px 1px 0 #7A7A7A;
}
span.power-control {
    text-transform: uppercase;
    position: absolute;
    top: 1rem;
    left: 1rem;
    font-size: 4vmin;
}
.info {
    z-index: 42;
    color: white;
    position: absolute;
    font-size: 2rem;
    width: 2rem;
    height: 2rem;
    right: 0.2rem;
    top: 0.1rem;
    text-align: center;
    transition: all 0.2s ease-out;
}
.menu.expanded>.info {
    top: 1rem;
    right: 1rem;
}
.expanded .key {
    border: 2px solid white;
}
.demo-buttons {
    justify-self: center;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
button.demo {
    margin: 1rem 1rem 0 1rem;
    padding: 4px 8px;
    font-size: 1.5rem;
    border: 2px solid black;
    border-radius: 4px;
    color: white;
    background-color: black;
    width: max-content;
    cursor: pointer;
    box-shadow: 0px 4px 6px 0px rgba(0,0,0,0.25);
}
div.arrow {
    position: absolute;
    margin: 4px 0 0 -1.6rem;
    width: 0; 
    height: 0;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent; 
    border-left: 10px solid transparent;
}
button.demo:hover {
    border-color: #FD5FD2;
}
button.demo:hover>div.arrow {
    border-left-color: #FD5FD2;
}
.key {
    display: inline-block;
    width: 2.0rem;
    height: 2.0rem;
    border: 2px solid #A3ABAE;
    border-radius: 4px;
    font-size: 1rem;
    line-height: 2.0rem;
    text-align: center;
    margin: 0 4px;
}
p.instructions {
    margin: 0;
    padding: 0.5rem 2rem;
    justify-self: center;
    width: 80%;
    max-width: 600px;
    font-size: 1.5rem;
    line-height: 3rem;
    text-align: justify;
}
a.twitter-reply {
    justify-self: center;
    display: inline-block;
    width: max-content;
    padding: 0 7px;
    border-radius: 4px;
    font-size: 1.0rem;
    line-height: 1.6rem;
    text-decoration: none;
    color: #ffffff;
    background-color: #1b95e0;
    text-align: left;
}
i.tweet {
    position: relative;
    top: 2px;
    display: inline-block;
    width: 14px;
    height: 14px;
    background: transparent 0 0 no-repeat;
    background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2072%2072%22%3E%3Cpath%20fill%3D%22none%22%20d%3D%22M0%200h72v72H0z%22%2F%3E%3Cpath%20class%3D%22icon%22%20fill%3D%22%23fff%22%20d%3D%22M68.812%2015.14c-2.348%201.04-4.87%201.744-7.52%202.06%202.704-1.62%204.78-4.186%205.757-7.243-2.53%201.5-5.33%202.592-8.314%203.176C56.35%2010.59%2052.948%209%2049.182%209c-7.23%200-13.092%205.86-13.092%2013.093%200%201.026.118%202.02.338%202.98C25.543%2024.527%2015.9%2019.318%209.44%2011.396c-1.125%201.936-1.77%204.184-1.77%206.58%200%204.543%202.312%208.552%205.824%2010.9-2.146-.07-4.165-.658-5.93-1.64-.002.056-.002.11-.002.163%200%206.345%204.513%2011.638%2010.504%2012.84-1.1.298-2.256.457-3.45.457-.845%200-1.666-.078-2.464-.23%201.667%205.2%206.5%208.985%2012.23%209.09-4.482%203.51-10.13%205.605-16.26%205.605-1.055%200-2.096-.06-3.122-.184%205.794%203.717%2012.676%205.882%2020.067%205.882%2024.083%200%2037.25-19.95%2037.25-37.25%200-.565-.013-1.133-.038-1.693%202.558-1.847%204.778-4.15%206.532-6.774z%22%2F%3E%3C%2Fsvg%3E);
}
div.background {
    grid-row: 1 / 2;
    grid-column: 1 / 2;
    transform: perspective(40vw) rotateX(40deg);
    z-index: -1;
    background-color: rgba(0, 0, 0, 0.9);
    outline: 4px solid black;
    border: 2px solid #ffffff;
    display: grid;
    place-content: center;
    justify-self: center;
    grid-template-columns: 100%;
    padding-bottom: 2%;
    width: 150%;
    margin-top: -10vmin;
    justify-self: center;
}
p.high-res {
    justify-self: start;
    border-left: 0.8rem solid #FD5FD2;
    padding-left: 0.8rem;
    margin: 2.5rem 0 15% 3.5rem;
    font-family: sans-serif;
    text-align: justify;
    text-align-last: justify;
    max-width: 30vw;
    color: white;
    font-size: 2vw;
}
hr.green-line {
    border: 2px solid #25EF10;
    width: 98%;
    margin: 1vmin;
}
