:root{ background-color: rgb(60,50,70); color: silver; } body{ margin: 0px } #site{ margin-left: 22ch; display: flex; flex-direction: column; } .categoryList{ padding-block: 1em; box-sizing: border-box; border-inline-end: 1px solid gold; background-color: rgb(60,60,70); height: 100vh; overflow-y: auto; min-width: 22ch; position: fixed; z-index: 1; } .categoryList.blurred{ background-color: rgb(20,20,30); opacity: 0.5; } .categoryList.blurred ~ #site{ margin-left: 31ch } #secondaryCategories{ z-index:2; left: 8ch; } .categoryList:hover{ z-index: 3; background-color: rgb(60,60,70); opacity: 1; box-shadow: 0 0 26px 0 black; } a{ color: rgb(100,150,200); margin-inline-end: 0.4ch } pre a{ margin: 0 } a:visited{ color: rgb(150,100,200) } a:hover{ color: rgb(200,150,100) } pre:empty{ display: none } .category{ padding: 0.2em 1em; cursor: pointer; text-transform: capitalize } #categories > .category[data-value]::after{ content: " (" attr(data-value) ")"; float: right} .currentCategory, .category:hover{ background-color: grey } .currentCategory::before{ content: "ยป " } .target{ margin: 0.1em; background-color: rgb(60,60,70); padding: 0.3em; border: 1px solid rgb(40,40,40); border-radius: 4px; max-width: calc(100% / var(--grid-columns,1) - 20px); cursor: pointer; white-space:nowrap; display: flex; } .target > a{ display: inline-block; width: 1em; height: 1em; background-image: url("ext.svg"); background-repeat: no-repeat; background-size: contain; flex-shrink: 0; } .target > span{ overflow: hidden; pointer-events: none; } .target:hover{ background-color: rgb(80,80,90) } .target.selected{ background-color: rgb(80,80,120) } .target > a:hover{ filter: drop-shadow(0 0 3px fuchsia) } #targets{ display: flex; flex-direction: column; flex-wrap: wrap; max-height: calc(var(--grid-rows) * 2.4rem); align-content: start; margin-bottom: 0.2em; } .banner{ padding: 0.5em 1em; margin-bottom: 0.2em; border-bottom: 1px solid black; border-left: 1px solid black; background: rgb(40,37,43); width: max-content; align-self: flex-end; order: -1; } kbd{ border-radius: 3px; padding: 2px 3px 1px; border: 1px solid rgb(40,40,40); box-shadow: inset 0 0 2px currentColor; } .banner > .keyinfo, #targets[style] + .banner > .placeholder{ display: none; } #targets[style] + .banner > .keyinfo{ display: block; } .hint{ text-align: end } .hint::before{ content: "Hint: "; font-style: italic; } pre{ white-space: pre-wrap; margin: 1em; border: 2px inset; padding: 0 0 0 2em; background-color: rgb(30,30,40); } pre > div{ background-color: rgb(40,37,43); padding: 1em 0.5em; border-inline-start: 1px solid rgb(90,90,90) } .categoryList:not(.blurred)+.categoryList, .hidden{ display: none !important } @keyframes showDelayed{ from{ visibility: hidden } to{ visibility: visibile }} @keyframes loadingBar{ from{ background-size: 0% } to{ background-size: 100% } } #placeholder{ margin: 2em; border: 2px solid darkslateblue; border-radius: 3px; background-image: linear-gradient(90deg,slateblue,purple); background-repeat: no-repeat; background-position: left; animation: loadingBar 1500ms linear } .placeholder-text{ animation: showDelayed 2s steps(1) } /* Dirty hack for mobile but at least it's something */ @media screen and (max-width: 700px ){ #secondaryCategories{ display: none; } .categoryList{ opacity: 0.6; } #ui.no-content > #categories{ opacity: 1; } #site{ background-color: rgb(60,50,70); min-height: 100vh; border-inline-start: 1px solid gold; box-shadow: 0 0 26px 0 black; } #ui > #site{ margin-left: 7ch; position: relative; z-index: 2; } #ui.no-content > #site{ z-index: -1; } .banner{ display: none; } #ui.no-content > #site > .banner{ display: block; } }