.logopepper { height: 8em; padding: 1.5em; will-change: filter; transition: filter 300ms; } .logopepper:hover { filter: drop-shadow(0 0 10em #ff0707); } .logopepper.react:hover { filter: drop-shadow(0 0 10em #4eff14aa); } @keyframes logo-pepper-spin { 0% { transform: rotate(0); } 25% { transform: rotate(20deg); } 75% { transform: rotate(-20deg); } 100% { transform: rotate(0); } } @keyframes logo-pepper-scale { from { transform: scale(1,1); } to { transform: scale(1.5,1.5); } } @media (prefers-reduced-motion: no-preference) { .logopepper:hover { animation: logo-pepper-spin infinite 1s linear; } } @media (prefers-reduced-motion: no-preference) { .logoPepperScaling:hover { animation: logo-pepper-scale infinite 1s linear alternate; } } button.reset { background-color: crimson; color: white; } button.reset:hover { background-color: darkred; } button.movePage { position: fixed; /* Position the button relative to the viewport (screen), not inside its parent. It stays in place even when you scroll. */ top: 50%; /* Place the button halfway down from the top of the screen. */ /* Stick the button to the left edge of the screen. */ border: 3px solid black; outline: 1px solid white; transform: translateY(-50%); background-color: aquamarine; color: white; } button.movePage.left{ left: 5%; } button.movePage.right{ right: 5%; } button.movePage:hover{ background-color: rgb(0, 176, 176); } #root { display: flex; flex-direction: column; } header { position: sticky; top: 0; left: 0; right: 0; padding: 1rem; display: flex; gap: 1rem; align-items: center; justify-content: center; background-color: var(--accent-color); backdrop-filter: blur(10px); z-index: 1; /* Otherwise any translated elements render above the blur?? */ } main { padding: 1rem 0; } input[type="checkbox"] { cursor: pointer; } .flex-row { display: flex; flex-direction: row; } .flex-col { display: flex; flex-direction: column; } .flex-1 { flex: 1; } .flex-wrap { flex-wrap: wrap; } .min-height-0 { min-height: 0; } .scroll-y { overflow-y: scroll; } .align-center { align-items: center; } .justify-center { justify-content: center; } .justify-between { justify-content: space-between; } .gap-sm { gap: .25rem; } .gap-md { gap: .5rem; } .gap-lg { gap: 1rem; } .margin-0 { margin: 0; } .padding-sm { padding: .25rem; } .padding-md { padding: .5rem; } .padding-lg { padding: 1rem; } .padding-b-sm { padding-bottom: .25rem; } .padding-b-md { padding-bottom: .5rem; } .padding-b-lg { padding-bottom: 1rem; } .round-sm, .round-md, .round-lg { overflow: hidden; } .round-sm { border-radius: .25rem; } .round-md { border-radius: .5rem; } .round-lg { border-radius: 1rem; } .border-sm { border: 1px solid canvastext; } .border-md { border: 2px solid canvastext; } .border-lg { border: 3px solid canvastext; } .font-small { font-size: .75rem; } .font-medium { font-size: 1rem; } .font-large { font-size: 1.25rem; } .mono { font-family: ui-monospace, monospace; } .bold { font-weight: bold; } .clickable { cursor: pointer; &:hover { text-decoration: underline; } } .user-select-all { -webkit-user-select: all; user-select: all; } .user-select-none { -webkit-user-select: none; user-select: none; } button.no-button { background: none; border: none; padding: 0; cursor: pointer; color: inherit; text-decoration: none; &:hover { text-decoration: underline; } }