button.input-button { cursor: pointer; border: var(--border-thickness) solid var(--background-primary); background-color: var(--background-tertiary); padding: 8px; width: 100%; } button.input-button.selected { background-color: var(--background-primary); color: var(--font-color-primary); } button.input-button:disabled { cursor: not-allowed; } button.input-button:not(.selected):not(.rainbow):disabled { opacity: 0.5; color: var(--font-color-secondary); } button.input-button:not(:disabled):hover, button.input-button:not(:disabled):focus-visible { border-color: var(--background-highlight); } button.input-button.rainbow { position: relative; animation: rainbow-border 1s linear infinite; border: 2px solid transparent; background-clip: padding-box; } button.input-button.rainbow::before { position: absolute; z-index: -1; animation: input-button-rainbow-shift 1s linear infinite; inset: -2px; border-radius: inherit; background: linear-gradient(90deg, red, orange, yellow, green, cyan, blue, violet, red); background-size: 200%; content: ''; } @keyframes input-button-rainbow-shift { from { background-position: 0%; } to { background-position: 200%; } }