html { width: 100%; height: 100%; background-color: #2a323d; color: white; font-weight: normal; line-height: 1.5; } #title { text-align: center; } section { width: 95%; max-width: 1200px; margin: auto; background-color: #242a33; box-shadow: 2px 2px 3px #222; border-radius: 2px; padding: 10px; margin-bottom: 20px; } section img { margin: auto; display: block; } section table { margin: auto; min-width: 50%; text-align: left; } section button { margin: 10px; background: none; outline: none; border: solid 1px grey; color: white; cursor: pointer; transition: background .2s; border-radius: 10px; padding: 4px 8px; font-size: large; transition: .2s; } section button:hover { background: #2a323d; } section .field { display: flex; margin: 8px 0; border-bottom: solid 2px #2a323d; padding-bottom: 8px; } section .field > * { flex-basis: 50%; } section .field > :first-child { flex-shrink: 1; } #footer { font-size: .8em; width: 95%; max-width: 1200px; margin: auto; margin-top: 20px; padding-bottom: 10px; text-align: center; } #footer .link { color: #ffab40; } input { background: none; border: none; border-bottom: solid 1px grey; transition: border .2s; color: white; font-size: medium; min-width: 0; } input:focus { border-bottom-color: white; outline: none; } input:invalid { color: red; } input[type=color] { padding: 0; border-bottom: none; } input[type=checkbox], input[type=radio] { display: none; } input[type=checkbox] + label, input[type=radio] + label { display: block; cursor: pointer; } input[type=radio] + label:not(:last-child) { margin-bottom: 8px; } input[type=checkbox] + label:before, input[type=radio] + label:before { border: 1px solid grey; display: inline-block; box-sizing: border-box; width: 24px; height: 24px; vertical-align: bottom; color: transparent; transition: .2s; text-align: center; margin-right: 8px; } input[type=checkbox] + label:before { content: "\2714"; border-radius: 3px; } input[type=radio] + label:before { content: "\25CF"; border-radius: 50%; font-size: smaller; } input[type=checkbox] + label:active:before, input[type=radio] + label:active:before, button:active { transform: translateY(-10px); border-color: white; } input[type=checkbox]:checked + label:before, input[type=radio]:checked + label:before { background-color: #2a323d; color: #fff; } #reset { border-bottom: none; text-transform: uppercase; border-radius: 10px; padding: 4px 8px; cursor: pointer; border: solid 2px red; transition: background .2s; } #reset:hover { background: red; } .button-row { text-align: center; } .instruction { margin: 0; } /* * Fun fact: every selector using a #id selector was originally written using * other types of selectors, apart from this one. * I usually try to avoid using IDs altogether - even in Javascript I usually * use React, so I don't even use IDs there - but had to add a bunch here to * meet the requirements :/ */ .instruction + #target { box-shadow: 2px 2px 3px #222; margin: 10px auto; } @keyframes rotate { from { transform: rotateZ(0); } to { transform: rotateZ(360deg); } } @keyframes popout { 0% { box-shadow: 0 0 red, 0 0 red, 0 0 red, 0 0 red, 0 0 red, 0 0 red, 0 0 red, 0 0 red; transform: translateX(0) translateY(0); } 50% { box-shadow: 1px -1px red, 2px -2px red, 3px -3px red, 4px -4px red, 5px -5px red, 6px -6px red, 7px -7px red, 8px -8px red; transform: translateX(-8px) translateY(8px); } 100% { box-shadow: 0 0 red, 0 0 red, 0 0 red, 0 0 red, 0 0 red, 0 0 red, 0 0 red, 0 0 red; transform: translateX(0) translateY(0); } } @keyframes jump { 0% { transform: translateY(0); } 50% { transform: translateY(-20px); } 100% { transform: translateY(0); } }