*, :before, :after { background-color: transparent; border: 0 solid; box-sizing: border-box; color: inherit; font-family: inherit; margin: 0; overflow-wrap: break-word; padding: 0; } :focus, :focus-visible { outline-color: var(--color); outline-offset: var(--border-thin); outline-style: dotted; outline-width: var(--border-thin); } html, body, div, header, nav, main, footer { max-width: none; } nav, main, header, footer { display: block; } kbd:not(.unstyled) { background-color: hsl(0, 0%, var(--l-90)); border-color: hsl(0, 0%, var(--l-70)); border-radius: var(--border-thin); border-style: solid; border-width: 1px; color: hsl(0, 0%, var(--l-20)); font-size: 0.85em; padding: var(--border-thin) var(--border-thick); white-space: nowrap; } select { cursor: pointer; } input[type='email'] { border-width: var(--border-thin); padding: var(--s-3) var(--s0); } /* NOTE(toby3d): See https://ishadeed.com/article/styling-the-good-old-button/ */ button, .button { align-items: center; appearance: button; background-color: var(--background-color); border-color: var(--background-color); border-width: var(--border-thin); color: currentColor; cursor: pointer; display: inline-flex; justify-content: center; min-width: var(--s5); overflow: visible; padding: var(--s-3) var(--s1); text-align: center; text-decoration: none; text-transform: none; white-space: nowrap; } button.with-icon:not(.icon_side_left):not(.icon_side_right), .button.with-icon:not(.icon_side_left):not(.icon_side_right) { padding: var(--s1); } button[data-state='invert'], .button[data-state='invert'] { filter: invert(100%); } /* NOTE(toby3d): See https://uxdesign.cc/button-design-user-interface-components-series-85243b6736c7 */ button:hover, .button:hover { /* TODO(toby3d) */ } button:focus, .button:focus { box-shadow: 0 0 var(--s-1) var(--background-color); outline: none; } button:active, .button:active { /* TODO(toby3d) */ } button[disabled], .button[disabled] { background-color: hsl(0, 0%, var(--l-30)); color: hsl(0, 0%, var(--l-75)); pointer-events: none; } [hidden], .display_none { display: none !important; } [hidden] + *, .display_none + * { margin-top: 0 !important; } [tabindex="-1"]:focus { outline: none; } .page { -webkit-overflow-scrolling: touch; background-color: var(--background-color); overscroll-behavior: contain; scroll-behavior: smooth; scrollbar-color: var(--thumb-color) var(--track-color); scrollbar-width: var(--border-thick); touch-action: manipulation; } .page__body { display: flex; flex-direction: column; min-height: 100vh; overflow-x: hidden; } .body__main { flex: 1 0 auto; } /* NOTE(toby3d): https://allyjs.io/tutorials/hiding-elements.html#how-to-hide-elements-visually */ .visually-hidden:not(:focus-visible):not(:active) { border: 0; clip-path: inset(100%); clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; width: 1px; } @media (prefers-reduced-motion: reduce) { * { animation-duration: 0.01ms; animation-iteration-count: 1; transition-duration: 0.01ms; } .page { scroll-behavior: auto; } } @media (prefers-color-scheme: dark) { .page { scrollbar-color: var(--track-color) var(--thumb-color); } button, .button { filter: invert(100%); } }