* { box-sizing: border-box; } body { font-family: sans-serif; margin: 2em 1em; line-height: 1.5em; text-align: center; } h1 { color: #373fff; line-height: 1.1; } form { background-color: #eee; display: grid; grid-gap: 1em; padding: 1em; max-width: 40ch; margin: 0 auto; box-shadow: grey 1px 1px 3px; border-radius: .25em; } label { font-weight: bold; } input[type=text] { text-transform: lowercase; border-radius: .25em; } input { border: 1px solid silver; display: block; text-align: center; font-size: 16px; margin-bottom: 10px; padding: 5px; width: 100%; } button { background-color: #bbbbf2; border: 2px solid currentColor; border-radius: .25em; cursor: pointer; font-size: inherit; line-height: 1.4em; padding: 0.25em 1em; } form button:hover { background-color: lavender; } footer { margin-top: 3em; padding-top: 1.5em; border-top: 1px solid lightgrey; } blockquote { background-color: #eee; display: block; margin: 1em auto; padding: 1em; max-width: 40ch; box-shadow: grey 1px 1px 3px; border-radius: .25em; } blockquote a { color: #373fff; } #buzzer { width: 95vw; height: 95vw; max-height: 500px; max-width: 500px; margin: 0 auto; margin-left: -8px; border-radius: 500px; background: red; border: 4px solid black; box-shadow: 4px 4px 4px rgba(0,0,0,.5); font-size: 4em; color: white; text-shadow: 2px 2px 2px black; } #buzzer.active { background: greenyellow; box-shadow: inset 4px 4px 4px rgba(0,0,0,.5); } #buzzer:active { box-shadow: inset 4px 4px 4px rgba(0,0,0,.5); } #buzzer:disabled { filter: grayscale(50%); opacity: .5; } h2 img { max-height: 40px; } figure.participant { display: inline-block; transition: ease-in all .2s; margin: 0; } figure.participant img { max-width: 40vw; width: 150px; } figure.participant figcaption { font-weight: bold; font-size: 1.3em; } .buzzed { background: yellow; animation: shake 1s cubic-bezier(.36,.07,.19,.97) both; transform: scale(1) rotate(0); backface-visibility: hidden; } @keyframes shake { 10%, 90% { transform: rscale(1.3) otate(-10deg); } 20%, 80% { transform: rscale(1.3) otate(20deg); } 30%, 50%, 70% { transform: scale(1.3) rotate(-30deg); } 40%, 60% { transform: scale(1.3) rotate(30deg); } } #messageBox { position: fixed; left: 0; right: 0; top: 50%; transform: translateY(-50%); height:100px; background: #bbbbf2; border: 3px solid black; font-size: 1.3em; font-weight: bold; display: flex; flex-direction: column; justify-content: space-evenly; } #messageBox img { max-height: 50%; } #messageBox.hide { display: none; } #participants { margin-top: 1em; } .score { display: inline-block; background: green; border-radius: 100px; color: white; padding: 4px 9px; vertical-align: top; } .participant button { display: none; } .participant.buzzed button { display: inline; }