/* Basic CSS reset */ html, body { margin: 0; font-family: system-ui, sans-serif; color: #222; background: #f8f8f8; } input, textarea { font-size: 1em; box-sizing: border-box; padding: 6px 8px; } button, code, kbd, pre { font-size: 1em; } code, kbd, pre { font-family: 'Menlo', 'Monaco', monospace; border-radius: 3px; box-sizing: border-box; padding: 2px 4px 1px 4px; background: rgba(0, 0, 0, .1); } pre { padding: 8px 12px; } p { line-height: 1.5em; } a { color: #222; } a:hover { color: #666; } /* util.css * custom utility CSS library for projects by @thesephist */ /* margins */ .m0 {margin: 0} .mt0, .my0 {margin-top: 0} .mt1, .my1 {margin-top: .25rem} .mt2, .my2 {margin-top: .5rem} .mt3, .my3 {margin-top: .75rem} .mt4, .my4 {margin-top: 1.5rem} .mt5, .my5 {margin-top: 2.25rem} .mt6, .my6 {margin-top: 3.25rem} .mb0, .my0 {margin-bottom: 0} .mb1, .my1 {margin-bottom: .25rem} .mb2, .my2 {margin-bottom: .5rem} .mb3, .my3 {margin-bottom: .75rem} .mb4, .my4 {margin-bottom: 1.5rem} .mb5, .my5 {margin-bottom: 2.25rem} .mb6, .my6 {margin-bottom: 3.25rem} .ml0, .mx0 {margin-left: 0} .ml1, .mx1 {margin-left: .25rem} .ml2, .mx2 {margin-left: .5rem} .ml3, .mx3 {margin-left: .75rem} .ml4, .mx4 {margin-left: 1.5rem} .ml5, .mx5 {margin-left: 2.25rem} .ml6, .mx6 {margin-left: 3.25rem} .mr0, .mx0 {margin-right: 0} .mr1, .mx1 {margin-right: .25rem} .mr2, .mx2 {margin-right: .5rem} .mr3, .mx3 {margin-right: .75rem} .mr4, .mx4 {margin-right: 1.5rem} .mr5, .mx5 {margin-right: 2.25rem} .mr6, .mx6 {margin-right: 3.25rem} /* paddings */ .p0 {padding: 0} .pt0, .py0 {padding-top: 0} .pt1, .py1 {padding-top: .25rem} .pt2, .py2 {padding-top: .5rem} .pt3, .py3 {padding-top: .75rem} .pt4, .py4 {padding-top: 1rem} .pb0, .py0 {padding-bottom: 0} .pb1, .py1 {padding-bottom: .25rem} .pb2, .py2 {padding-bottom: .5rem} .pb3, .py3 {padding-bottom: .75rem} .pb4, .py4 {padding-bottom: 1rem} .pl0, .px0 {padding-left: 0} .pl1, .px1 {padding-left: .25rem} .pl2, .px2 {padding-left: .5rem} .pl3, .px3 {padding-left: .75rem} .pl4, .px4 {padding-left: 1rem} .pr0, .px0 {padding-right: 0} .pr1, .px1 {padding-right: .25rem} .pr2, .px2 {padding-right: .5rem} .pr3, .px3 {padding-right: .75rem} .pr4, .px4 {padding-right: 1rem} /* typography */ h1, h2, h3, h4, h5, h6 {font-weight: 400} .bold {font-weight: bold} .clean {text-decoration: none} .underline {text-decoration: underline} .f0 {font-size: .75rem} .f1 {font-size: 1rem} .f2 {font-size: 1.25rem} .f3 {font-size: 1.6rem} .f4 {font-size: 2rem} .f5 {font-size: 3rem} .text-start {text-align: start} .text-end {text-align: end} .text-center {text-align: center} /* flex & layout */ .flex {display: flex} .flex-row {flex-direction: row} .flex-column {flex-direction: column} .flex-wrap {flex-wrap: wrap} .align-center {align-items: center} .align-start {align-items: flex-start} .align-end {align-items: flex-end} .justify-center {justify-content: center} .justify-start {justify-content: flex-start} .justify-end {justify-content: flex-end} .fill, .fill-width {width: 100%} .fill, .fill-height {height: 100%} /* page widths */ .page-xs {max-width: 480px} .page-s {max-width: 600px} .page-m {max-width: 800px} .page-l {max-width: 1200px} .page-xl {max-width: 1600px} /* shadows */ .shadow1 {box-shadow: 0 2px 3px rgba(0, 0, 0, .36)} .shadow2 {box-shadow: 0 3px 5px -1px rgba(0, 0, 0, .34)} .shadow3 {box-shadow: 0 4px 7px -1px rgba(0, 0, 0, .32)} .shadow4 {box-shadow: 0 5px 9px -2px rgba(0, 0, 0, .3)} .shadow5 {box-shadow: 0 7px 12px -3px rgba(0, 0, 0, .28)} /* list */ ul.list-reset, ol.list-reset { padding-left: 0; list-style: none; } /* other utility */ .borderless {border: 0 solid transparent} .rounded {border-radius: 4px} .block {display: block} .inline-block {display: inline-block} .inline {display: inline} .hidden {display: none} .pointer {cursor: pointer} .auto-center {margin-left: auto; margin-right: auto} /* DEFAULT VARIABLES */ body { --block-text-color: #222; --block-background-color: #fff; --block-accent-color: #00ae86; --block-shadow-color: #444; } /* BASIC BLOCK STYLES */ .block { display: block; color: var(--block-text-color); border: 3px solid var(--block-text-color); border-radius: 3px; padding: 4px 8px; background: var(--block-background-color); cursor: pointer; box-sizing: border-box; position: relative; top: -2px; left: -2px; transition: transform 0.2s; margin: 8px 6px 10px 6px; z-index: 1; user-select: none; -webkit-user-select: none; -moz-user-select: none; } .block.wrapper, .block.wrapper.inline { display: inline-block; padding: 0; } .block.wrapper > * { margin: 0; } /* INTERACTIVE BLOCK STYLES */ .block::before { content: ""; background: var(--block-background-color); border: 3px solid var(--block-text-color); border-radius: 3px; box-sizing: border-box; position: absolute; top: -3px; left: -3px; height: calc(100% + 6px); width: calc(100% + 6px); z-index: -1; } .block:hover, .block:focus { transform: translate(2px, 2px); } .block::after { content: ""; display: block; box-sizing: border-box; background: var(--block-shadow-color); border: 3px solid var(--block-text-color); border-radius: 3px; height: calc(100% + 6px); width: calc(100% + 6px); position: absolute; top: 3px; left: 3px; right: 0; z-index: -2; transition: transform 0.2s; } .block:hover::after, .block:focus::after { transform: translate(-2px, -3px); } .block:active { color: var(--block-text-color); transform: translate(3px, 3px); } .block:active::after { transform: translate(-4px, -4px); } .block:focus { outline: none; } .block.fixed { cursor: initial !important; } .block.btn { font-weight: bold; } /* FIXED STYLES */ .block.fixed:hover, .block.fixed:hover::before, .block.fixed:hover::after, .block.fixed:active, .block.fixed:active::before, .block.fixed:active::after, .block.fixed:focus, .block.fixed:focus::before, .block.fixed:focus::after { transform: none !important; } /* ACCENT STYLES */ .block.accent { color: var(--block-background-color); background: var(--block-accent-color); } .block.accent::before { background: var(--block-accent-color); } /* INLINE STYLES */ .block.inline { display: inline-block; font-size: 0.75em; padding: 0 6px; margin: 3px 2px 1px 4px; } .block.inline::after { top: -1px; left: -1px; } .block.inline:hover, .block.inline:focus { transform: translate(1px, 1px); } .block.inline:hover::after, .block.inline:focus::after { transform: translate(-1px, -1px); } .block.inline:active { transform: translate(2px, 2px); } /* ROUND STYLES */ .block.round, .block.round::before, .block.round::after { border-radius: 30px; } .block.round::after { left: 1px; }