:root { --fg-main: #DBDFAC; --bg-main: #3B1F2B; --fg-light: #edefd5; --bg-dark: rgba(10, 10, 10, .5); --bg-light: rgba(245, 245, 245, .6); --main-link: #8598AD; --link-active: #ccc; --link-active: lch(from var(--main-link) calc(l + 20) c h); --gray-light: #5F758E; } @keyframes riseInDetails { 0% {opacity: 0; margin-top: 2rem} 100% {opacity: 1; margin-top: 0rem} } @keyframes riseInTab { 0% {opacity: 0; margin-top: -2rem} 100% {opacity: 1; margin-top: -4rem} } * { box-sizing: border-box; scrollbar-width: thin; } html { font-size: 18px; } body { background-color: var(--bg-main); color: var(--fg-main); margin: 0; transition: background-color .5s, border-color .5s, color .5s; } a { border: 1px solid transparent; border-bottom-color: var(--main-link); border-radius: 0; color: var(--main-link); padding: 0 .5rem ; text-decoration: none; transition: all .5s; } a:active { background-color: var(--fg-main); border-color: var(--bg-main); color: var(--link-active); } a:hover { border-color: var(--link-active); border-radius: .5rem; color: var(--link-active); } button { background-color: var(--link-active); } code { background-color: var(--bg-dark); color: var(--fg-main); font-size: smaller; padding: 0 .5rem; white-space: pre-wrap; } label { display: inline-block; border: none; max-width: 25rem; padding: 1rem; text-align: center; width: 100%; } input { background-color: var(--fg-main); } input[type="reset"], input[type="submit"] { background-color: var(--link-active); } input[type="text"], input[type="url"] { background-color: var(--fg-light); font-size: 1rem; max-width: 25rem; width: 100%; } pre { background-color: var(--bg-dark); border: 1px solid var(--fg-main); color: var(--fg-main); font-size: smaller; padding: 1rem; white-space: pre-wrap; } textarea { background-color: var(--fg-light); font-size: 1rem; max-width: 30rem; width: 100%; } details figure { margin: 1rem .5rem; } details figure pre { overflow: auto; white-space: pre; } details[open] summary ~ * { animation: riseInDetails .5s ease-in-out; } summary { cursor: pointer; } .code-cmd { color: var(--gray-light); } .code-cmnt { color: #ccc; } .code-str { color: var(--gray-light); } .copyright { font-style: italic; } .flexCol { align-items: center; display: flex; flex-direction: column; justify-content: center; max-width: 25rem; width: 100%; } .flexRow { align-items: center; display: flex; flex-direction: column; justify-content: space-around; padding: .5rem 1rem; } .tab { border: 2px solid transparent; border-top: 2px solid var(--fg-main); border-radius: .5rem .5rem 0 0; display: block; } .tab-link { background-color: var(--bg-main); border-radius: .5rem .5rem 0 0; border-bottom: 0; color: var(--main-link); display: block; padding: 1rem 2rem; position: relative; text-decoration: none; } .tab-panel { bottom: 0; display: none; left: 0; line-height: 1.5rem; overflow: auto; padding: 0 1rem 1rem; right: 0; top: 4.25rem; width: 100%; z-index: -2; } .tabs { border: 2px solid var(--fg-main); border-top-color: transparent; border-radius: .5rem .5rem 0 0; display: flex; flex-direction: column; list-style: none; margin: 0; min-height: 100vh; padding: 0; } .tab:target .tab-panel { display: block; } body:not(:has(:target)) #tabOverview-panel { display: block; } .tab:target .tab-link { background: linear-gradient(var(--bg-dark), var(--bg-main)); } .tab:target + .tab { margin-top: auto; } body:not(:has(:target)) #tabOverview-link { background-color: var(--bg-dark); color: var(--fg-main); } .themeToggle-button { background-color: var(--fg-main); border: 1px solid var(--gray-light); border-radius: 1rem; bottom: .5rem; color: var(--gray-light); display: flex; font-size: 1.5rem; padding: .5rem; position: fixed; right: .5rem; z-index: 100; } .themeToggle-svgIndicator { rotate: 180deg; transition: rotate .5s; } /** Loader from https://www.cssportal.com/css-loader-generator/ */ .dotLoader { animation: dotLoaderFrames 1s infinite steps(6); background: linear-gradient(var(--bg-main) 0 0) left -25% top 0 /20% 100% no-repeat var(--fg-main); display: block; height: 20px; margin-top: 1rem; mask: linear-gradient(90deg,var(--bg-main) 70%,#0000 0) left/20% 100%; -webkit-mask: linear-gradient(90deg,var(--bg-main) 70%,#0000 0) left/20% 100%; transition: opacity .5s; width: 120px; } @keyframes dotLoaderFrames { 100% {background-position: right -25% top 0} } /** ID Overrides */ #formHash .flexCol { min-width: 15rem; width: 50%; } #formHash input[type="submit"] { margin-top: 1rem; min-width: 5rem; } #formHash textarea { min-height: 6rem; width: 100% } #formLoadAndParse .flexCol { width: 100%; max-width: 25rem; } #formLoadAndParse label { width: 100%; max-width: 25rem; } /** Media-Query Overrides */ @media (min-width: 900px) { .flexRow { flex-direction: row; } .tab { border-color: transparent; display: inline-block; position: static; } .tab-link { background-color: transparent;; border: 2px solid var(--fg-main); border-bottom-color: transparent; margin-top: -4.5rem; } .tab-link:hover { background-color: var(--link-active); border-radius: .5rem .5rem 0 0; color: var(--bg-main); font-size: 1.2rem; margin-top: -4.65rem; } .tab-panel { animation: riseInTab .5s ease-in-out; margin-top: -4rem; position: relative; padding: 0 2rem; } .tabs { border-top: 2px solid var(--fg-main); bottom: 0; flex-direction: row; left: 0; margin-top: 4.5rem; min-height: auto; padding: 1rem; position: absolute; right: 0; top: 0; } .tab:target + .tab { margin-top: 0; } .tab:target .tab-link { border-bottom: 0; font-size: 1.2rem; margin-top: -4.55rem; } .tab:target .tab-link:hover { border-radius: .5rem .5rem 0 0; background-color: var(--bg-dark); color: var(--main-link); font-size: 1.2rem; margin-top: -4.55rem; } .tab:target .tab-panel { position: absolute; z-index: 1; } body:not(:has(:target)) #tabOverview-panel { display: block; position: absolute; z-index: 1; } .themeToggle-button { bottom: auto; position: absolute; right: 1rem; top: 1rem; } } /** State-Based Overrides */ body.invertedTheme { background-color: var(--fg-main); color: var(--bg-main); } body.invertedTheme a:hover { background-color: var(--main-link); border-color: var(--bg-dark); color: var(--fg-main); } body.invertedTheme figcaption { border-color: var(--bg-main); } body.invertedTheme figure { background-color: var(--gray-light); border-color: var(--bg-main); } body.invertedTheme input, body.invertedTheme textarea { background-color: var(--fg-light); } body.invertedTheme pre { background-color: var(--bg-light); border-color: var(--bg-main); color: var(--bg-main); } body.invertedTheme .code-cmd { color: var(--bg-dark); } body.invertedTheme .code-str { color: var(--bg-dark); } body.invertedTheme .tab-link { color: var(--bg-dark); background-color: var(--fg-main); border-color: var(--bg-main); } body.invertedTheme .tab:target .tab-link { background: linear-gradient(var(--link-active), var(--fg-main)); } body.invertedTheme .tab-link:hover { background-color: var(--main-link); border-color: var(--bg-dark); } body.invertedTheme .tab:target .tab-link { border-color: var(--bg-main); } body.invertedTheme .tab-panel { border-color: var(--bg-main); } body.invertedTheme .tabs { border: 2px solid var(--bg-main); } body.invertedTheme .themeToggle-button { background-color: var(--bg-main); color: var(--main-link); } body.invertedTheme .themeToggle-svgIndicator { rotate: 0deg; } .isLoaded .dotLoader { margin: 0; max-height: 0; opacity: 0; } .isLoading .dotLoader { opacity: 1; } a[href^='http']::after { content: '\2197'; /* Code for ↗ */ display: inline-block; margin-left: 5px; font-size: 0.9em; }