			label,
			input {
			    position: absolute;
			    top: -10vmin;
			    margin: 0;
			    border: 0;
			    padding: 0;
			    width: 30vmin;
			    height: 52.5vmin;
			    cursor: pointer;
			    opacity: 0;
			    pointer-events: none;
			    -webkit-tap-highlight-color: transparent;
			}
			input:nth-child(6n + 2),
			input:checked + input + input + label {
			    left: 0;
			}
			input:nth-child(6n + 3),
			input:checked + input + label {
			    left: 30vmin;
			}
			input:nth-child(6n + 4),
			input:checked + label {
			    left: 60vmin;
			}
			
			label,
			input:hover,
			input[readonly]:focus + input,
			input[readonly]:focus + input + input,
			input[readonly]:focus + input + input + input {
			    pointer-events: initial;
			}
			input[readonly],
			input:nth-child(6n + 2):checked ~ input:nth-child(6n + 2),
			input:nth-child(6n + 3):checked ~ input:nth-child(6n + 3),
			input:nth-child(6n + 4):checked ~ input:nth-child(6n + 4) {
			    pointer-events: none;
			}
			
			#one ~ input,
			#one ~ label {
			    z-index: 6;
			}
			#two ~ input,
			#two ~ label {
			    z-index: 5;
			}
			#three ~ input,
			#three ~ label {
			    z-index: 4;
			}
			#four ~ input,
			#four ~ label {
			    z-index: 3;
			}
			#five ~ input,
			#five ~ label {
			    z-index: 2;
			}
			#six ~ input,
			#six ~ label {
			    z-index: 1;
			}
			
			input#zero {
			    z-index: 7;
			}
			input#zero:focus {
			    pointer-events: none;
			}
			input[readonly]:focus + input:checked ~ #zero {
			    left: 0;
			    pointer-events: initial;
			}
			input[readonly]:focus + input + input:checked ~ #zero {
			    left: 30vmin;
			    pointer-events: initial;
			}
			input[readonly]:focus + input + input + input:checked ~ #zero {
			    left: 60vmin;
			    pointer-events: initial;
			}
			
			/* Discs */
			.discs {
			    position: relative;
			    display: flex;
			    flex-flow: column wrap;
			    justify-content: flex-end;
			    margin: 10vmin auto 0;
			    width: 90vmin;
			    height: 35vmin;
			}
			
			.disc {
			    z-index: 1;
			    border-radius: 1vmin;
			    height: 4vmin;
			    pointer-events: none;
			    transition: order 0.3s step-end;
			}
			input:checked + input + input + label + .disc {
			    order: 3;
			}
			input:checked + input + label + .disc {
			    order: 6;
			}
			input:checked + label + .disc {
			    order: 9;
			}
			
			input:focus + input:checked + input + input + label + .disc {
			    order: 1;
			    transition: order 0s;
			    animation: float 3s ease-in-out infinite alternate;
			}
			input:focus + input + input:checked + input + label + .disc {
			    order: 4;
			    transition: order 0s;
			    animation: float 3s ease-in-out infinite alternate;
			}
			input:focus + input + input + input:checked + label + .disc {
			    order: 7;
			    transition: order 0s;
			    animation: float 3s ease-in-out infinite alternate;
			}
			@keyframes float {
			    50% {
			        transform: translateY(-1vmin);
			    }
			}
			
			input:focus + input:hover + input + input + label + .disc,
			input + input:active + input + input + label + .disc {
			    order: 1;
			}
			input:focus + input + input:hover + input + label + .disc,
			input + input + input:active + input + label + .disc {
			    order: 4;
			}
			input:focus + input + input + input:hover + label + .disc,
			input + input + input + input:active + label + .disc {
			    order: 7;
			}
			
			.one {
			    margin: 0 10vmin;
			    width: 10vmin;
			    background: linear-gradient(to right, #eea668, #ed7e1d, #e67e22);
			}
			.two {
			    margin: 0 8vmin;
			    width: 14vmin;
			    background: linear-gradient(to right, #8ac4ea, #0f9fff, #3498db);
			}
			.three {
			    margin: 0 6vmin;
			    width: 18vmin;
			    background: linear-gradient(to right, #f0d775, #fc0, #e6bd19);
			}
			.four {
			    margin: 0 4vmin;
			    width: 22vmin;
			    background: linear-gradient(to right, #666, #000, #333);
			}
			.five {
			    margin: 0 2vmin;
			    width: 26vmin;
			    background: linear-gradient(to right, #7ee2a8, #09f16a, #2ecc71);
			}
			.six {
			    width: 30vmin;
			    background: linear-gradient(to right, #f2a097, #ff3a24, #e74c3c);
			}
			
			/* Spacers/Separators */
			.spacer {
			    width: 30vmin;
			    height: 1px;
			    flex-grow: 0;
			    pointer-events: none;
			    transition: flex 0.3s;
			}
			.separator {
			    width: 0;
			    height: 100%;
			}
			.a {
			    order: 2;
			}
			.ab {
			    order: 3;
			}
			.b {
			    order: 5;
			}
			.bc {
			    order: 6;
			}
			.c {
			    order: 8;
			}
			
			input[readonly]:focus + input:hover ~ .a,
			input[readonly]:focus + input + input:hover ~ .b,
			input[readonly]:focus + input + input + input:hover ~ .c {
			    transition: flex 0s;
			    flex-grow: 1;
			}
			input[readonly]:focus + input:checked ~ .a,
			input[readonly]:focus + input + input:checked ~ .b,
			input[readonly]:focus + input + input + input:checked ~ .c {
			    flex-grow: 1;
			}
			
			/* Winning */
			.win {
			    z-index: 7;
			    position: absolute;
			    left: 0;
			    right: 0;
			    top: -10vmin;
			    bottom: -7.5vmin;
			    color: #966f33;
			    font-family: Arial, sans-serif;
			    font-size: 6vmin;
			    line-height: 17.5vmin;
			    opacity: 0;
			    pointer-events: none;
			    transition: opacity 0.3s;
			}
			input:nth-child(6n + 4):checked ~ input:nth-child(6n + 4):checked ~ input:nth-child(6n + 4):checked ~ input:nth-child(6n + 4):checked ~ input:nth-child(6n + 4):checked ~ input:nth-child(6n + 4):checked ~ .win {
			    opacity: 1;
			    pointer-events: initial;
			}
			
			/* Everything Else */
			body {
			    margin: 0;
			    background-color: #f8f8f8;
			}
			
			h1 {
			    margin: 0;
			    padding: 5vmin;
			    color: rgba(0, 0, 0, 0.5);
			    font-family: Arial, sans-serif;
			    font-size: 7.5vmin;
			    font-weight: lighter;
			    text-align: center;
			    background: linear-gradient(to right, rgba(150, 111, 51, 0.4), rgba(150, 111, 51, 0.2)),
			    repeating-linear-gradient(to right, #eec487, #eec487 3vmin, #f3cf9a 3vmin, #f3cf9a 6vmin, #f8d8a2 6vmin, #f8d8a2 9vmin, #f1ca88 9vmin, #f1ca88 12vmin, #f4d09e 12vmin, #f4d09e 15vmin, #faddb0 15vmin, #faddb0 18vmin, #eec88a 18vmin, #eec88a 21vmin);
			}
			
			form {
			    text-align: center;
			}
			
			.tower {
			    position: absolute;
			    top: 7.5vmin;
			    border-radius: 1vmin;
			    width: 5vmin;
			    height: 30vmin;
			    background: linear-gradient(to right, #d7b889, #b27315, #966f33);
			}
			.a {
			    left: 12.5vmin;
			}
			.b {
			    left: 42.5vmin;
			}
			.c {
			    left: 72.5vmin;
			}
			
			.bottom {
			    position: relative;
			    display: block;
			    margin: 0 auto;
			    border-radius: 1vmin;
			    width: 95vmin;
			    height: 7.5vmin;
			    background: linear-gradient(to right, rgba(255, 255, 255, 0.3), transparent),
			    linear-gradient(#b27315, #966f33 13%, #faddb0 14.5%, #faddb0 27.5%, #966f33 29%, #966f33 42%, #faddb0 43.5%, #d7b889 56.5%, #966f33 58%, #966f33 71%, #d7b889 72.5%, #d7b889 85.5%, #966f33 87%, #b27315);
			}
			
			button {
			    margin: 7.5vmin auto;
			    border: none;
			    border-radius: 1vmin;
			    width: 35vmin;
			    height: 10vmin;
			    font-size: 4vmin;
			    color: rgba(0, 0, 0, 0.5);
			    background: linear-gradient(to right, #c39550, #966f33);
			    outline: none;
			    cursor: pointer;
			    transition: background 0.3s;
			}
			button:hover {
			    background: linear-gradient(to right, #caa163, #a77b39);
			}
			button:active {
			    background: linear-gradient(to right, #cf9844, #9e6f29);
			}