:root { --red: #C7777F; --blue: #81A1C1; --orange: #D59783; --padding: 25px; --bg: rgba(0, 0, 0, 0.5); --selbg: rgba(80, 80, 80, 0.5); --redbg: linear-gradient(45deg, var(--red), #FA4343); --bluebg: linear-gradient(45deg, var(--blue), #7380ED); } #browser, #modsdiv { outline: 1px solid #444444; border: 3px solid var(--bg); } ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { border-radius: 10px; background: transparent; } ::-webkit-scrollbar-thumb { border-radius: 10px; background: var(--red); } ::selection { color: black; background: var(--red); } body { margin: 0; overflow: hidden; user-select: none; } body, button, input {font-family: "Roboto", sans-serif} button {outline: none} b, strong {font-weight: 700} body, input, button {font-weight: 500} button { border: none; color: white; outline: none; cursor: pointer; font-weight: 700; padding: 5px 10px; border-radius: 5px; transition: 0.2s ease-in-out; } .playBtn, .gamesContainer button, #winbtns div { cursor: pointer; } #browser { --spacing: var(--padding); z-index: 2; opacity: 0.0; position: fixed; overflow-y: scroll; top: var(--spacing); pointer-events: none; left: var(--spacing); background: var(--bg); right: var(--spacing); bottom: var(--spacing); transform: scale(0.98); backdrop-filter: blur(15px); border-radius: calc(var(--padding) / 3); transition: opacity 0.15s ease-in-out, transform 0.15s ease-in-out; } #browser.shown { opacity: 1.0; pointer-events: all; transform: scale(1.0); } #overlay { top: 0; left: 0; right: 0; bottom: 0; z-index: 1; opacity: 0.0; position: fixed; background: var(--bg); pointer-events: none; transition: opacity 0.15s ease-in-out; } #overlay.shown { opacity: 0.8; pointer-events: all; } @keyframes fadein { 0% {opacity: 0.0} 100% {opacity: 1.0} } #browser .el, #browser #misc, #browser .loading { --spacing: calc(var(--padding) / 2); --height: calc(var(--padding) * 3); --mischeight: calc(var(--padding) * 1.5); animation-duration: 0.15s; animation-iteration-count: 1; animation-name: fadein; animation-fill-mode: forwards; animation-timing-function: ease-in-out; opacity: 0.0; transition: 0.15s ease-in-out; } #browser .el, #browser #search, #browser #close { color: white; display: flex; align-items: center; height: var(--height); margin: var(--spacing); padding: var(--spacing); background: var(--selbg); border-radius: var(--spacing); width: calc(100% - var(--spacing) * 4); } #browser #misc, #browser #search { --height: var(--mischeight); } #browser #misc { display: flex; } #browser #search { border: none; outline: none; transition: filter 0.15s ease-in-out; width: calc(100% - var(--spacing) * 2); } #browser #search:focus { filter: brightness(1.5); } #browser #close { --height: calc(var(--padding) * 1.5); padding: 0px; margin-left: 0px; width: var(--height); } #browser #close img { opacity: 0.6; width: var(--height); height: var(--height); transform: scale(0.6); } #browser .loading { width: 100%; color: white; display: flex; text-align: center; align-items: center; justify-content: center; height: calc(100% - var(--mischeight) - var(--height)); } #browser .message { color: white; text-align: center; margin: var(--padding); width: calc(100% - var(--padding)); } #browser .el .image, #browser .el .image img { width: var(--height); height: var(--height); margin-right: var(--spacing); border-radius: var(--spacing); } #browser .el .text { overflow: hidden; } #browser .el .title, #browser .el .description { height: 1.2em; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } #browser .el .title {font-size: 1.2em} #browser .el .description {font-size: 0.8em} #browser .el button { background: var(--blue); margin-top: var(--spacing); } #winbtns { z-index: 2; display: flex; position: fixed; top: var(--padding); right: calc(var(--padding) / 2); } #winbtns div { width: 25px; opacity: 0.6; height: 25px; position: relative; background-size: contain; transition: 0.25s ease-in-out; margin-right: calc(var(--padding) / 2); } #winbtns #close {background-image: url("icons/close.png")} #winbtns #minimize {background-image: url("icons/minimize.png")} #winbtns div:hover {opacity: 1.0} #winbtns div:active {transform: scale(0.98)} button:hover {filter: brightness(110%)} button:active {filter: brightness(90%)} img {pointer-events: none} #bgHolder { top: -5px; left: -5px; right: -5px; bottom: -5px; z-index: -1; position: absolute; background-size: cover; background-position: center; background-repeat: no-repeat; transition: background-image 0.5s ease-in-out; filter: brightness(0.4) blur(2px) grayscale(0.6); } #bgHolder[bg="0"] {background-image: url("../assets/bg/viper.jpg")} #bgHolder[bg="1"] {background-image: url("../assets/bg/northstar.jpg")} #bgHolder[bg="2"] {background-image: url("../assets/bg/tf2.jpg")} .gamesContainer { width: 10%; height: 100%; min-width: 95px; max-width: 120px; float: left; display: flex; flex-wrap: wrap; align-content: center; } .mainContainer { height: 100%; flex-grow: 1; display: flex; position: relative; } /* nav bar buttons */ .gamesContainer button { background-size: 90%; background-position: center; background-repeat: no-repeat; border: none; transition: 0.3s ease-in-out; background-color: transparent; margin: 20px; position: relative; box-sizing: border-box; flex-basis: calc(100% - 10px); } .gamesContainer button.inactive { opacity: 0.5; transform: scale(0.9); } .gamesContainer button::before { content: ""; display: block; padding-top: 100%; } .gamesContainer button .content { width: 100%; height: 100%; top: 0; left: 0; position: absolute; } #vpBtn {background-image: url("icons/viper.png")} #nsBtn {background-image: url("icons/northstar.png")} #tfBtn { background-image: url("icons/titanfall2.png"); background-size: 69%; /* nice */ } .contentContainer { width: 85%; color: white; flex-grow: 1; opacity: 1.0; margin-left: 5%; position: absolute; transition: 0.15s ease-in-out; } .contentContainer.hidden { opacity: 0.0; pointer-events: none; } .contentMenu { padding: 0; flex-grow: 1; display: flex; font-size: 20px; list-style: none; margin-bottom: 0; align-items: center; justify-content: center; margin-top: var(--padding); } /* some sections do not need space between them and menu */ #nsMain, #nsRelease, #vpReleaseNotes, .playBtnContainer { margin-top: 0 !important; } .contentMenu li { opacity: 0.6; margin: 0 26px; cursor: pointer; font-weight: 700; text-align: center; height: fit-content; transition: opacity 0.3s ease-in-out; } .contentMenu li:last-child {margin-right: 0px} .contentMenu li:first-child {margin-left: 0px} .contentMenu li:hover {opacity: 0.7} .contentMenu li[active] { opacity: 1.0; pointer-events: none; } .contentMenu li::after { top: 10px; width: 30px; height: 5px; opacity: 0.0; content: " "; display: block; text-align: center; position: relative; border-radius: 50px; background: var(--red); left: calc(50% - 15px); transition: 0.2s ease-in-out; } .contentMenu li[active]::after { top: 5px; opacity: 1.0; } .section { opacity: 1.0; position: fixed; right: calc(var(--padding) * 2); left: calc(100px + var(--padding)); transition: opacity 0.15s ease-in-out; } .section.hidden { opacity: 0.0; pointer-events: none; } .contentBody img {max-width: 100%} .contentBody .img {text-align: center} .contentBody .section > :first-child:not(.img) { margin-top: 35px; } .contentContainer .playBtnContainer { text-align: center; } .contentContainer .playBtn { width: 27%; height: 11%; border: none; color: white; padding: 20px; font-size: 24px; font-weight: bold; margin-top: 100px; margin-bottom: 10px; border-radius: 10px; background: var(--redbg); transition: 0.3s ease-in-out; filter: drop-shadow(0px 8px 5px rgba(0, 0, 0, 0.1)); } .contentContainer .playBtn:hover { transform: scale(1.05); filter: drop-shadow(0px 5px 15px rgba(0, 0, 0, 0.3)) brightness(110%); } .contentContainer .playBtn:active { opacity: 0.7;transform: scale(0.98); filter: drop-shadow(0px 5px 10px rgba(0, 0, 0, 0.4)); } .contentContainer #nsMain .playBtn { background: var(--bluebg); } a { color: var(--red); text-decoration: none; transition: filter 0.2s ease-in; } a:hover { filter: brightness(80%); } #nsContent .contentMenu { margin-bottom: 0; } .contentBody .img img { transform: scale(0.85); } .contentBody .img { width: 100%; text-align: center; } #nsRelease, #vpReleaseNotes { height: 80vh; overflow-y: scroll; flex-direction: column; margin-top: 10px !important; } .inline * { display: inline-block; } #vpMain { margin-top: 140px; text-align: center; } #vpMain img { width: 20%; } #vpVersion { font-size: 16px; } .simplebar-scrollbar:before { background: var(--red) !important; } #installmod {background: var(--blue)} #togglemod, #toggleall {background: var(--orange)} #northstar, #removeall, #removemod {background: var(--red)} button:disabled { opacity: 0.5; pointer-events: none; } button.visual { opacity: 1.0; pointer-events: none; background: transparent !important; } code { font-size: 16px; padding: 2px 5px; border-radius: 3px; background-color: #00000070; } #nsMods .line { display: flex; align-items: center; margin-top: calc(var(--padding) / 2); } #modsdiv { height: 50vh; overflow-y: scroll; border-radius: 5px; background: var(--bg); backdrop-filter: blur(15px); padding: calc(var(--padding) / 4); } #modsdiv .mod { display: flex; border-radius: 5px; transition: 0.1s ease-in-out; margin: calc(var(--padding) / 3); padding: calc(var(--padding) / 3); } #modsdiv .mod.selected { background: var(--selbg); } #modsdiv .mod .disabled, .modbtns { margin-left: auto; } .modbtns button { margin-left: var(--spacing); --spacing: calc(var(--padding) / 3); margin-top: calc(var(--spacing) / 2); margin-bottom: calc(var(--spacing) / 2); } #toasts { position: fixed; z-index: 100000; right: calc(var(--padding) * 1.5); bottom: calc(var(--padding) * 1.5); } @keyframes bodyfadeaway { 0% {opacity: 0.0; transform: scale(0.95)} 100% {opacity: 1.0; transform: scale(1.0)} } #toasts .toast { width: 300px; opacity: 0.0; cursor: pointer; overflow: hidden; max-height: 100vh; background: #FFFFFF; transform: scale(0.95); transition: 0.2s ease-in-out; padding: calc(var(--padding) / 2); margin-top: calc(var(--padding) / 2); border-radius: calc(var(--padding) / 2.5); box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.2); animation-duration: 0.2s; animation-iteration-count: 1; animation-name: bodyfadeaway; animation-fill-mode: forwards; animation-timing-function: ease-in-out; } #toasts .toast.hidden { margin-top: 0px; max-height: 0px; padding-top: 0px; padding-bottom: 0px; filter: opacity(0.0); transform: scale(0.95); } #toasts .toast:not(.hidden):hover {filter: opacity(0.9)} #toasts .toast:not(.hidden):active {filter: opacity(0.8)} .toast .title { } .toast .description { opacity: 0.8; font-size: 0.8em; font-weight: 400; } /* drag control */ #bgHolder, .contentContainer, .gamesContainer { user-select: none; -webkit-app-region: drag; } #overlay.shown ~ #bgHolder, #overlay.shown ~ .contentContainer, #overlay.shown ~ .gamesContainer { -webkit-app-region: no-drag; } a, button, #close, #nsRelease, #vpReleaseNotes, .mod, #overlay, #modsdiv, #winbtns, .contentMenu { -webkit-app-region: no-drag; }